shen-ruby 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/HISTORY.md +4 -0
- data/README.md +7 -6
- data/bin/srrepl +5 -0
- data/lib/shen_ruby/version.rb +1 -1
- data/shen/lib/shen_ruby/shen.rb +2 -3
- data/shen/release/k_lambda/declarations.kl +223 -217
- data/shen/release/k_lambda/reader.kl +4 -0
- data/shen/release/k_lambda/t-star.kl +1171 -961
- data/shen/release/k_lambda/toplevel.kl +1 -1
- data/shen/release/k_lambda/types.kl +41 -35
- metadata +2 -2
@@ -1056,3 +1056,7 @@ For an explication of this license see http://www.lambdassociates.org/News/june1
|
|
1056
1056
|
(concat V1078 V1080))
|
1057
1057
|
(true V1080)))
|
1058
1058
|
|
1059
|
+
(defun read-from-string (V466)
|
1060
|
+
(let Ns (map (lambda V465 (string->n V465)) (explode V466))
|
1061
|
+
(compile shen-<st_input> Ns shen-read-error)))
|
1062
|
+
|
@@ -134,257 +134,159 @@ For an explication of this license see http://www.lambdassociates.org/News/june1
|
|
134
134
|
false))
|
135
135
|
Case)))
|
136
136
|
|
137
|
-
(defun shen-th* (
|
137
|
+
(defun shen-th* (V1507 V1508 V1509 V1510 V1511)
|
138
138
|
(let Throwcontrol (shen-catchpoint)
|
139
139
|
(shen-cutpoint Throwcontrol
|
140
140
|
(let Case
|
141
141
|
(do (shen-incinfs)
|
142
|
-
(shen-show (cons
|
143
|
-
(freeze (fwhen false
|
142
|
+
(shen-show (cons V1507 (cons : (cons V1508 ()))) V1509 V1510
|
143
|
+
(freeze (fwhen false V1510 V1511))))
|
144
144
|
(if (= Case false)
|
145
145
|
(let Case
|
146
|
-
(let F (shen-newpv
|
146
|
+
(let F (shen-newpv V1510)
|
147
147
|
(do (shen-incinfs)
|
148
|
-
(fwhen (shen-typedf? (shen-lazyderef
|
148
|
+
(fwhen (shen-typedf? (shen-lazyderef V1507 V1510)) V1510
|
149
149
|
(freeze
|
150
|
-
(bind F (shen-sigf (shen-lazyderef
|
151
|
-
(freeze (call (cons F (cons
|
150
|
+
(bind F (shen-sigf (shen-lazyderef V1507 V1510)) V1510
|
151
|
+
(freeze (call (cons F (cons V1508 ())) V1510 V1511)))))))
|
152
152
|
(if (= Case false)
|
153
|
-
(let Case (do (shen-incinfs) (shen-base
|
153
|
+
(let Case (do (shen-incinfs) (shen-base V1507 V1508 V1510 V1511))
|
154
154
|
(if (= Case false)
|
155
155
|
(let Case
|
156
|
-
(do (shen-incinfs)
|
156
|
+
(do (shen-incinfs)
|
157
|
+
(shen-by_hypothesis V1507 V1508 V1509 V1510 V1511))
|
157
158
|
(if (= Case false)
|
158
159
|
(let Case
|
159
|
-
(let
|
160
|
-
(if (cons?
|
161
|
-
(let F (hd
|
162
|
-
(let
|
163
|
-
(if (
|
164
|
-
(
|
165
|
-
(
|
166
|
-
(if (= () V680)
|
167
|
-
(let B (shen-newpv V789)
|
168
|
-
(do (shen-incinfs)
|
169
|
-
(shen-th* F (cons B (cons --> (cons V787 ()))) V788 V789
|
170
|
-
(freeze (shen-th* X B V788 V789 V790)))))
|
171
|
-
false)))
|
160
|
+
(let V1397 (shen-lazyderef V1507 V1510)
|
161
|
+
(if (cons? V1397)
|
162
|
+
(let F (hd V1397)
|
163
|
+
(let V1398 (shen-lazyderef (tl V1397) V1510)
|
164
|
+
(if (= () V1398)
|
165
|
+
(do (shen-incinfs)
|
166
|
+
(shen-th* F (cons --> (cons V1508 ())) V1509 V1510 V1511))
|
172
167
|
false)))
|
173
168
|
false))
|
174
169
|
(if (= Case false)
|
175
170
|
(let Case
|
176
|
-
(let
|
177
|
-
(if (cons?
|
178
|
-
(let
|
179
|
-
(
|
180
|
-
(
|
181
|
-
(
|
182
|
-
(let
|
183
|
-
(
|
184
|
-
(
|
185
|
-
(
|
186
|
-
(
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
171
|
+
(let V1399 (shen-lazyderef V1507 V1510)
|
172
|
+
(if (cons? V1399)
|
173
|
+
(let F (hd V1399)
|
174
|
+
(let V1400 (shen-lazyderef (tl V1399) V1510)
|
175
|
+
(if (cons? V1400)
|
176
|
+
(let X (hd V1400)
|
177
|
+
(let V1401 (shen-lazyderef (tl V1400) V1510)
|
178
|
+
(if (= () V1401)
|
179
|
+
(let B (shen-newpv V1510)
|
180
|
+
(do (shen-incinfs)
|
181
|
+
(shen-th* F (cons B (cons --> (cons V1508 ()))) V1509
|
182
|
+
V1510 (freeze (shen-th* X B V1509 V1510 V1511)))))
|
183
|
+
false)))
|
184
|
+
false)))
|
185
|
+
false))
|
186
|
+
(if (= Case false)
|
187
|
+
(let Case
|
188
|
+
(let V1402 (shen-lazyderef V1507 V1510)
|
189
|
+
(if (cons? V1402)
|
190
|
+
(let V1403 (shen-lazyderef (hd V1402) V1510)
|
191
|
+
(if (= cons V1403)
|
192
|
+
(let V1404 (shen-lazyderef (tl V1402) V1510)
|
193
|
+
(if (cons? V1404)
|
194
|
+
(let X (hd V1404)
|
195
|
+
(let V1405 (shen-lazyderef (tl V1404) V1510)
|
196
|
+
(if (cons? V1405)
|
197
|
+
(let Y (hd V1405)
|
198
|
+
(let V1406 (shen-lazyderef (tl V1405) V1510)
|
199
|
+
(if (= () V1406)
|
200
|
+
(let V1407 (shen-lazyderef V1508 V1510)
|
201
|
+
(if (cons? V1407)
|
202
|
+
(let V1408 (shen-lazyderef (hd V1407) V1510)
|
203
|
+
(if (= list V1408)
|
204
|
+
(let V1409 (shen-lazyderef (tl V1407) V1510)
|
205
|
+
(if (cons? V1409)
|
206
|
+
(let A (hd V1409)
|
207
|
+
(let V1410 (shen-lazyderef (tl V1409) V1510)
|
208
|
+
(if (= () V1410)
|
209
|
+
(do (shen-incinfs)
|
210
|
+
(shen-th* X A V1509 V1510
|
211
|
+
(freeze
|
212
|
+
(shen-th* Y (cons list (cons A ()))
|
213
|
+
V1509 V1510 V1511))))
|
214
|
+
(if (shen-pvar? V1410)
|
215
|
+
(do (shen-bindv V1410 () V1510)
|
216
|
+
(let Result
|
217
|
+
(do (shen-incinfs)
|
218
|
+
(shen-th* X A V1509 V1510
|
219
|
+
(freeze
|
220
|
+
(shen-th* Y (cons list (cons A ()))
|
221
|
+
V1509 V1510 V1511))))
|
222
|
+
(do (shen-unbindv V1410 V1510)
|
223
|
+
Result)))
|
224
|
+
false))))
|
225
|
+
(if (shen-pvar? V1409)
|
226
|
+
(let A (shen-newpv V1510)
|
227
|
+
(do (shen-bindv V1409 (cons A ()) V1510)
|
204
228
|
(let Result
|
205
229
|
(do (shen-incinfs)
|
206
|
-
(shen-th* X A
|
230
|
+
(shen-th* X A V1509 V1510
|
207
231
|
(freeze
|
208
232
|
(shen-th* Y (cons list (cons A ()))
|
209
|
-
|
210
|
-
(do (shen-unbindv
|
211
|
-
|
212
|
-
(if (shen-pvar?
|
213
|
-
(
|
214
|
-
(
|
215
|
-
(let
|
216
|
-
(
|
217
|
-
(
|
218
|
-
(
|
219
|
-
(shen-
|
220
|
-
|
221
|
-
(do (shen-unbindv V688 V789) Result))))
|
222
|
-
false)))
|
223
|
-
(if (shen-pvar? V687)
|
224
|
-
(do (shen-bindv V687 list V789)
|
225
|
-
(let Result
|
226
|
-
(let V690 (shen-lazyderef (tl V686) V789)
|
227
|
-
(if (cons? V690)
|
228
|
-
(let A (hd V690)
|
229
|
-
(let V691 (shen-lazyderef (tl V690) V789)
|
230
|
-
(if (= () V691)
|
231
|
-
(do (shen-incinfs)
|
232
|
-
(shen-th* X A V788 V789
|
233
|
-
(freeze
|
234
|
-
(shen-th* Y (cons list (cons A ()))
|
235
|
-
V788 V789 V790))))
|
236
|
-
(if (shen-pvar? V691)
|
237
|
-
(do (shen-bindv V691 () V789)
|
238
|
-
(let Result
|
239
|
-
(do (shen-incinfs)
|
240
|
-
(shen-th* X A V788 V789
|
241
|
-
(freeze
|
242
|
-
(shen-th* Y
|
243
|
-
(cons list (cons A ())) V788 V789
|
244
|
-
V790))))
|
245
|
-
(do (shen-unbindv V691 V789) Result)))
|
246
|
-
false))))
|
247
|
-
(if (shen-pvar? V690)
|
248
|
-
(let A (shen-newpv V789)
|
249
|
-
(do (shen-bindv V690 (cons A ()) V789)
|
250
|
-
(let Result
|
251
|
-
(do (shen-incinfs)
|
252
|
-
(shen-th* X A V788 V789
|
253
|
-
(freeze
|
254
|
-
(shen-th* Y (cons list (cons A ()))
|
255
|
-
V788 V789 V790))))
|
256
|
-
(do (shen-unbindv V690 V789) Result))))
|
257
|
-
false)))
|
258
|
-
(do (shen-unbindv V687 V789) Result)))
|
259
|
-
false)))
|
260
|
-
(if (shen-pvar? V686)
|
261
|
-
(let A (shen-newpv V789)
|
262
|
-
(do
|
263
|
-
(shen-bindv V686 (cons list (cons A ())) V789)
|
264
|
-
(let Result
|
265
|
-
(do (shen-incinfs)
|
266
|
-
(shen-th* X A V788 V789
|
267
|
-
(freeze
|
268
|
-
(shen-th* Y (cons list (cons A ())) V788
|
269
|
-
V789 V790))))
|
270
|
-
(do (shen-unbindv V686 V789) Result))))
|
271
|
-
false)))
|
272
|
-
false)))
|
273
|
-
false)))
|
274
|
-
false))
|
275
|
-
false))
|
276
|
-
false))
|
277
|
-
(if (= Case false)
|
278
|
-
(let Case
|
279
|
-
(let V692 (shen-lazyderef V786 V789)
|
280
|
-
(if (cons? V692)
|
281
|
-
(let V693 (shen-lazyderef (hd V692) V789)
|
282
|
-
(if (= @p V693)
|
283
|
-
(let V694 (shen-lazyderef (tl V692) V789)
|
284
|
-
(if (cons? V694)
|
285
|
-
(let X (hd V694)
|
286
|
-
(let V695 (shen-lazyderef (tl V694) V789)
|
287
|
-
(if (cons? V695)
|
288
|
-
(let Y (hd V695)
|
289
|
-
(let V696 (shen-lazyderef (tl V695) V789)
|
290
|
-
(if (= () V696)
|
291
|
-
(let V697 (shen-lazyderef V787 V789)
|
292
|
-
(if (cons? V697)
|
293
|
-
(let A (hd V697)
|
294
|
-
(let V698 (shen-lazyderef (tl V697) V789)
|
295
|
-
(if (cons? V698)
|
296
|
-
(let V699 (shen-lazyderef (hd V698) V789)
|
297
|
-
(if (= * V699)
|
298
|
-
(let V700 (shen-lazyderef (tl V698) V789)
|
299
|
-
(if (cons? V700)
|
300
|
-
(let B (hd V700)
|
301
|
-
(let V701 (shen-lazyderef (tl V700) V789)
|
302
|
-
(if (= () V701)
|
233
|
+
V1509 V1510 V1511))))
|
234
|
+
(do (shen-unbindv V1409 V1510) Result))))
|
235
|
+
false)))
|
236
|
+
(if (shen-pvar? V1408)
|
237
|
+
(do (shen-bindv V1408 list V1510)
|
238
|
+
(let Result
|
239
|
+
(let V1411 (shen-lazyderef (tl V1407) V1510)
|
240
|
+
(if (cons? V1411)
|
241
|
+
(let A (hd V1411)
|
242
|
+
(let V1412
|
243
|
+
(shen-lazyderef (tl V1411) V1510)
|
244
|
+
(if (= () V1412)
|
303
245
|
(do (shen-incinfs)
|
304
|
-
(shen-th* X A
|
246
|
+
(shen-th* X A V1509 V1510
|
305
247
|
(freeze
|
306
|
-
(shen-th* Y
|
307
|
-
|
308
|
-
|
248
|
+
(shen-th* Y (cons list (cons A ()))
|
249
|
+
V1509 V1510 V1511))))
|
250
|
+
(if (shen-pvar? V1412)
|
251
|
+
(do (shen-bindv V1412 () V1510)
|
309
252
|
(let Result
|
310
253
|
(do (shen-incinfs)
|
311
|
-
(shen-th* X A
|
254
|
+
(shen-th* X A V1509 V1510
|
312
255
|
(freeze
|
313
|
-
(shen-th* Y
|
314
|
-
|
256
|
+
(shen-th* Y
|
257
|
+
(cons list (cons A ())) V1509
|
258
|
+
V1510 V1511))))
|
259
|
+
(do (shen-unbindv V1412 V1510)
|
315
260
|
Result)))
|
316
261
|
false))))
|
317
|
-
(if (shen-pvar?
|
318
|
-
(let
|
319
|
-
(do
|
262
|
+
(if (shen-pvar? V1411)
|
263
|
+
(let A (shen-newpv V1510)
|
264
|
+
(do
|
265
|
+
(shen-bindv V1411 (cons A ()) V1510)
|
320
266
|
(let Result
|
321
267
|
(do (shen-incinfs)
|
322
|
-
(shen-th* X A
|
268
|
+
(shen-th* X A V1509 V1510
|
323
269
|
(freeze
|
324
|
-
(shen-th* Y
|
325
|
-
|
270
|
+
(shen-th* Y
|
271
|
+
(cons list (cons A ())) V1509
|
272
|
+
V1510 V1511))))
|
273
|
+
(do (shen-unbindv V1411 V1510)
|
326
274
|
Result))))
|
327
275
|
false)))
|
328
|
-
(
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
(do (shen-bindv V703 () V789)
|
343
|
-
(let Result
|
344
|
-
(do (shen-incinfs)
|
345
|
-
(shen-th* X A V788 V789
|
346
|
-
(freeze
|
347
|
-
(shen-th* Y B V788 V789
|
348
|
-
V790))))
|
349
|
-
(do (shen-unbindv V703 V789)
|
350
|
-
Result)))
|
351
|
-
false))))
|
352
|
-
(if (shen-pvar? V702)
|
353
|
-
(let B (shen-newpv V789)
|
354
|
-
(do
|
355
|
-
(shen-bindv V702 (cons B ()) V789)
|
356
|
-
(let Result
|
357
|
-
(do (shen-incinfs)
|
358
|
-
(shen-th* X A V788 V789
|
359
|
-
(freeze
|
360
|
-
(shen-th* Y B V788 V789 V790))))
|
361
|
-
(do (shen-unbindv V702 V789)
|
362
|
-
Result))))
|
363
|
-
false)))
|
364
|
-
(do (shen-unbindv V699 V789) Result)))
|
365
|
-
false)))
|
366
|
-
(if (shen-pvar? V698)
|
367
|
-
(let B (shen-newpv V789)
|
368
|
-
(do
|
369
|
-
(shen-bindv V698 (cons * (cons B ()))
|
370
|
-
V789)
|
371
|
-
(let Result
|
372
|
-
(do (shen-incinfs)
|
373
|
-
(shen-th* X A V788 V789
|
374
|
-
(freeze (shen-th* Y B V788 V789 V790))))
|
375
|
-
(do (shen-unbindv V698 V789) Result))))
|
376
|
-
false))))
|
377
|
-
(if (shen-pvar? V697)
|
378
|
-
(let A (shen-newpv V789)
|
379
|
-
(let B (shen-newpv V789)
|
380
|
-
(do
|
381
|
-
(shen-bindv V697
|
382
|
-
(cons A (cons * (cons B ()))) V789)
|
383
|
-
(let Result
|
384
|
-
(do (shen-incinfs)
|
385
|
-
(shen-th* X A V788 V789
|
386
|
-
(freeze (shen-th* Y B V788 V789 V790))))
|
387
|
-
(do (shen-unbindv V697 V789) Result)))))
|
276
|
+
(do (shen-unbindv V1408 V1510) Result)))
|
277
|
+
false)))
|
278
|
+
(if (shen-pvar? V1407)
|
279
|
+
(let A (shen-newpv V1510)
|
280
|
+
(do
|
281
|
+
(shen-bindv V1407 (cons list (cons A ()))
|
282
|
+
V1510)
|
283
|
+
(let Result
|
284
|
+
(do (shen-incinfs)
|
285
|
+
(shen-th* X A V1509 V1510
|
286
|
+
(freeze
|
287
|
+
(shen-th* Y (cons list (cons A ())) V1509
|
288
|
+
V1510 V1511))))
|
289
|
+
(do (shen-unbindv V1407 V1510) Result))))
|
388
290
|
false)))
|
389
291
|
false)))
|
390
292
|
false)))
|
@@ -393,112 +295,129 @@ For an explication of this license see http://www.lambdassociates.org/News/june1
|
|
393
295
|
false))
|
394
296
|
(if (= Case false)
|
395
297
|
(let Case
|
396
|
-
(let
|
397
|
-
(if (cons?
|
398
|
-
(let
|
399
|
-
(if (= @
|
400
|
-
(let
|
401
|
-
(if (cons?
|
402
|
-
(let X (hd
|
403
|
-
(let
|
404
|
-
(if (cons?
|
405
|
-
(let Y (hd
|
406
|
-
(let
|
407
|
-
(if (= ()
|
408
|
-
(let
|
409
|
-
(if (cons?
|
410
|
-
(let
|
411
|
-
(
|
412
|
-
(
|
413
|
-
(
|
414
|
-
(
|
415
|
-
(let
|
416
|
-
(
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
V790))))
|
423
|
-
(if (shen-pvar? V712)
|
424
|
-
(do (shen-bindv V712 () V789)
|
425
|
-
(let Result
|
426
|
-
(do (shen-incinfs)
|
427
|
-
(shen-th* X A V788 V789
|
428
|
-
(freeze
|
429
|
-
(shen-th* Y
|
430
|
-
(cons vector (cons A ())) V788
|
431
|
-
V789 V790))))
|
432
|
-
(do (shen-unbindv V712 V789)
|
433
|
-
Result)))
|
434
|
-
false))))
|
435
|
-
(if (shen-pvar? V711)
|
436
|
-
(let A (shen-newpv V789)
|
437
|
-
(do (shen-bindv V711 (cons A ()) V789)
|
438
|
-
(let Result
|
439
|
-
(do (shen-incinfs)
|
440
|
-
(shen-th* X A V788 V789
|
441
|
-
(freeze
|
442
|
-
(shen-th* Y
|
443
|
-
(cons vector (cons A ())) V788
|
444
|
-
V789 V790))))
|
445
|
-
(do (shen-unbindv V711 V789) Result))))
|
446
|
-
false)))
|
447
|
-
(if (shen-pvar? V710)
|
448
|
-
(do (shen-bindv V710 vector V789)
|
449
|
-
(let Result
|
450
|
-
(let V713 (shen-lazyderef (tl V709) V789)
|
451
|
-
(if (cons? V713)
|
452
|
-
(let A (hd V713)
|
453
|
-
(let V714
|
454
|
-
(shen-lazyderef (tl V713) V789)
|
455
|
-
(if (= () V714)
|
298
|
+
(let V1413 (shen-lazyderef V1507 V1510)
|
299
|
+
(if (cons? V1413)
|
300
|
+
(let V1414 (shen-lazyderef (hd V1413) V1510)
|
301
|
+
(if (= @p V1414)
|
302
|
+
(let V1415 (shen-lazyderef (tl V1413) V1510)
|
303
|
+
(if (cons? V1415)
|
304
|
+
(let X (hd V1415)
|
305
|
+
(let V1416 (shen-lazyderef (tl V1415) V1510)
|
306
|
+
(if (cons? V1416)
|
307
|
+
(let Y (hd V1416)
|
308
|
+
(let V1417 (shen-lazyderef (tl V1416) V1510)
|
309
|
+
(if (= () V1417)
|
310
|
+
(let V1418 (shen-lazyderef V1508 V1510)
|
311
|
+
(if (cons? V1418)
|
312
|
+
(let A (hd V1418)
|
313
|
+
(let V1419 (shen-lazyderef (tl V1418) V1510)
|
314
|
+
(if (cons? V1419)
|
315
|
+
(let V1420 (shen-lazyderef (hd V1419) V1510)
|
316
|
+
(if (= * V1420)
|
317
|
+
(let V1421
|
318
|
+
(shen-lazyderef (tl V1419) V1510)
|
319
|
+
(if (cons? V1421)
|
320
|
+
(let B (hd V1421)
|
321
|
+
(let V1422
|
322
|
+
(shen-lazyderef (tl V1421) V1510)
|
323
|
+
(if (= () V1422)
|
456
324
|
(do (shen-incinfs)
|
457
|
-
(shen-th* X A
|
325
|
+
(shen-th* X A V1509 V1510
|
458
326
|
(freeze
|
459
|
-
(shen-th* Y
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
(do (shen-bindv V714 () V789)
|
327
|
+
(shen-th* Y B V1509 V1510
|
328
|
+
V1511))))
|
329
|
+
(if (shen-pvar? V1422)
|
330
|
+
(do (shen-bindv V1422 () V1510)
|
464
331
|
(let Result
|
465
332
|
(do (shen-incinfs)
|
466
|
-
(shen-th* X A
|
333
|
+
(shen-th* X A V1509 V1510
|
467
334
|
(freeze
|
468
|
-
(shen-th* Y
|
469
|
-
|
470
|
-
|
471
|
-
(do (shen-unbindv V714 V789)
|
335
|
+
(shen-th* Y B V1509 V1510
|
336
|
+
V1511))))
|
337
|
+
(do (shen-unbindv V1422 V1510)
|
472
338
|
Result)))
|
473
339
|
false))))
|
474
|
-
(if (shen-pvar?
|
475
|
-
(let
|
340
|
+
(if (shen-pvar? V1421)
|
341
|
+
(let B (shen-newpv V1510)
|
476
342
|
(do
|
477
|
-
(shen-bindv
|
343
|
+
(shen-bindv V1421 (cons B ()) V1510)
|
478
344
|
(let Result
|
479
345
|
(do (shen-incinfs)
|
480
|
-
(shen-th* X A
|
346
|
+
(shen-th* X A V1509 V1510
|
481
347
|
(freeze
|
482
|
-
(shen-th* Y
|
483
|
-
|
484
|
-
|
485
|
-
(do (shen-unbindv V713 V789)
|
348
|
+
(shen-th* Y B V1509 V1510
|
349
|
+
V1511))))
|
350
|
+
(do (shen-unbindv V1421 V1510)
|
486
351
|
Result))))
|
487
352
|
false)))
|
488
|
-
(
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
353
|
+
(if (shen-pvar? V1420)
|
354
|
+
(do (shen-bindv V1420 * V1510)
|
355
|
+
(let Result
|
356
|
+
(let V1423
|
357
|
+
(shen-lazyderef (tl V1419) V1510)
|
358
|
+
(if (cons? V1423)
|
359
|
+
(let B (hd V1423)
|
360
|
+
(let V1424
|
361
|
+
(shen-lazyderef (tl V1423) V1510)
|
362
|
+
(if (= () V1424)
|
363
|
+
(do (shen-incinfs)
|
364
|
+
(shen-th* X A V1509 V1510
|
365
|
+
(freeze
|
366
|
+
(shen-th* Y B V1509 V1510
|
367
|
+
V1511))))
|
368
|
+
(if (shen-pvar? V1424)
|
369
|
+
(do (shen-bindv V1424 () V1510)
|
370
|
+
(let Result
|
371
|
+
(do (shen-incinfs)
|
372
|
+
(shen-th* X A V1509 V1510
|
373
|
+
(freeze
|
374
|
+
(shen-th* Y B V1509 V1510
|
375
|
+
V1511))))
|
376
|
+
(do (shen-unbindv V1424 V1510)
|
377
|
+
Result)))
|
378
|
+
false))))
|
379
|
+
(if (shen-pvar? V1423)
|
380
|
+
(let B (shen-newpv V1510)
|
381
|
+
(do
|
382
|
+
(shen-bindv V1423 (cons B ())
|
383
|
+
V1510)
|
384
|
+
(let Result
|
385
|
+
(do (shen-incinfs)
|
386
|
+
(shen-th* X A V1509 V1510
|
387
|
+
(freeze
|
388
|
+
(shen-th* Y B V1509 V1510
|
389
|
+
V1511))))
|
390
|
+
(do (shen-unbindv V1423 V1510)
|
391
|
+
Result))))
|
392
|
+
false)))
|
393
|
+
(do (shen-unbindv V1420 V1510)
|
394
|
+
Result)))
|
395
|
+
false)))
|
396
|
+
(if (shen-pvar? V1419)
|
397
|
+
(let B (shen-newpv V1510)
|
398
|
+
(do
|
399
|
+
(shen-bindv V1419 (cons * (cons B ()))
|
400
|
+
V1510)
|
401
|
+
(let Result
|
402
|
+
(do (shen-incinfs)
|
403
|
+
(shen-th* X A V1509 V1510
|
404
|
+
(freeze
|
405
|
+
(shen-th* Y B V1509 V1510 V1511))))
|
406
|
+
(do (shen-unbindv V1419 V1510)
|
407
|
+
Result))))
|
408
|
+
false))))
|
409
|
+
(if (shen-pvar? V1418)
|
410
|
+
(let A (shen-newpv V1510)
|
411
|
+
(let B (shen-newpv V1510)
|
412
|
+
(do
|
413
|
+
(shen-bindv V1418
|
414
|
+
(cons A (cons * (cons B ()))) V1510)
|
415
|
+
(let Result
|
416
|
+
(do (shen-incinfs)
|
417
|
+
(shen-th* X A V1509 V1510
|
418
|
+
(freeze
|
419
|
+
(shen-th* Y B V1509 V1510 V1511))))
|
420
|
+
(do (shen-unbindv V1418 V1510) Result)))))
|
502
421
|
false)))
|
503
422
|
false)))
|
504
423
|
false)))
|
@@ -507,32 +426,118 @@ For an explication of this license see http://www.lambdassociates.org/News/june1
|
|
507
426
|
false))
|
508
427
|
(if (= Case false)
|
509
428
|
(let Case
|
510
|
-
(let
|
511
|
-
(if (cons?
|
512
|
-
(let
|
513
|
-
(if (= @
|
514
|
-
(let
|
515
|
-
(if (cons?
|
516
|
-
(let X (hd
|
517
|
-
(let
|
518
|
-
(if (cons?
|
519
|
-
(let Y (hd
|
520
|
-
(let
|
521
|
-
(if (= ()
|
522
|
-
(let
|
523
|
-
(if (
|
524
|
-
(
|
525
|
-
(
|
526
|
-
(
|
527
|
-
(shen-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
429
|
+
(let V1425 (shen-lazyderef V1507 V1510)
|
430
|
+
(if (cons? V1425)
|
431
|
+
(let V1426 (shen-lazyderef (hd V1425) V1510)
|
432
|
+
(if (= @v V1426)
|
433
|
+
(let V1427 (shen-lazyderef (tl V1425) V1510)
|
434
|
+
(if (cons? V1427)
|
435
|
+
(let X (hd V1427)
|
436
|
+
(let V1428 (shen-lazyderef (tl V1427) V1510)
|
437
|
+
(if (cons? V1428)
|
438
|
+
(let Y (hd V1428)
|
439
|
+
(let V1429 (shen-lazyderef (tl V1428) V1510)
|
440
|
+
(if (= () V1429)
|
441
|
+
(let V1430 (shen-lazyderef V1508 V1510)
|
442
|
+
(if (cons? V1430)
|
443
|
+
(let V1431 (shen-lazyderef (hd V1430) V1510)
|
444
|
+
(if (= vector V1431)
|
445
|
+
(let V1432
|
446
|
+
(shen-lazyderef (tl V1430) V1510)
|
447
|
+
(if (cons? V1432)
|
448
|
+
(let A (hd V1432)
|
449
|
+
(let V1433
|
450
|
+
(shen-lazyderef (tl V1432) V1510)
|
451
|
+
(if (= () V1433)
|
452
|
+
(do (shen-incinfs)
|
453
|
+
(shen-th* X A V1509 V1510
|
454
|
+
(freeze
|
455
|
+
(shen-th* Y
|
456
|
+
(cons vector (cons A ())) V1509
|
457
|
+
V1510 V1511))))
|
458
|
+
(if (shen-pvar? V1433)
|
459
|
+
(do (shen-bindv V1433 () V1510)
|
460
|
+
(let Result
|
461
|
+
(do (shen-incinfs)
|
462
|
+
(shen-th* X A V1509 V1510
|
463
|
+
(freeze
|
464
|
+
(shen-th* Y
|
465
|
+
(cons vector (cons A ()))
|
466
|
+
V1509 V1510 V1511))))
|
467
|
+
(do (shen-unbindv V1433 V1510)
|
468
|
+
Result)))
|
469
|
+
false))))
|
470
|
+
(if (shen-pvar? V1432)
|
471
|
+
(let A (shen-newpv V1510)
|
472
|
+
(do
|
473
|
+
(shen-bindv V1432 (cons A ()) V1510)
|
474
|
+
(let Result
|
475
|
+
(do (shen-incinfs)
|
476
|
+
(shen-th* X A V1509 V1510
|
477
|
+
(freeze
|
478
|
+
(shen-th* Y
|
479
|
+
(cons vector (cons A ())) V1509
|
480
|
+
V1510 V1511))))
|
481
|
+
(do (shen-unbindv V1432 V1510)
|
482
|
+
Result))))
|
483
|
+
false)))
|
484
|
+
(if (shen-pvar? V1431)
|
485
|
+
(do (shen-bindv V1431 vector V1510)
|
486
|
+
(let Result
|
487
|
+
(let V1434
|
488
|
+
(shen-lazyderef (tl V1430) V1510)
|
489
|
+
(if (cons? V1434)
|
490
|
+
(let A (hd V1434)
|
491
|
+
(let V1435
|
492
|
+
(shen-lazyderef (tl V1434) V1510)
|
493
|
+
(if (= () V1435)
|
494
|
+
(do (shen-incinfs)
|
495
|
+
(shen-th* X A V1509 V1510
|
496
|
+
(freeze
|
497
|
+
(shen-th* Y
|
498
|
+
(cons vector (cons A ()))
|
499
|
+
V1509 V1510 V1511))))
|
500
|
+
(if (shen-pvar? V1435)
|
501
|
+
(do (shen-bindv V1435 () V1510)
|
502
|
+
(let Result
|
503
|
+
(do (shen-incinfs)
|
504
|
+
(shen-th* X A V1509 V1510
|
505
|
+
(freeze
|
506
|
+
(shen-th* Y
|
507
|
+
(cons vector (cons A ()))
|
508
|
+
V1509 V1510 V1511))))
|
509
|
+
(do (shen-unbindv V1435 V1510)
|
510
|
+
Result)))
|
511
|
+
false))))
|
512
|
+
(if (shen-pvar? V1434)
|
513
|
+
(let A (shen-newpv V1510)
|
514
|
+
(do
|
515
|
+
(shen-bindv V1434 (cons A ())
|
516
|
+
V1510)
|
517
|
+
(let Result
|
518
|
+
(do (shen-incinfs)
|
519
|
+
(shen-th* X A V1509 V1510
|
520
|
+
(freeze
|
521
|
+
(shen-th* Y
|
522
|
+
(cons vector (cons A ()))
|
523
|
+
V1509 V1510 V1511))))
|
524
|
+
(do (shen-unbindv V1434 V1510)
|
525
|
+
Result))))
|
526
|
+
false)))
|
527
|
+
(do (shen-unbindv V1431 V1510) Result)))
|
528
|
+
false)))
|
529
|
+
(if (shen-pvar? V1430)
|
530
|
+
(let A (shen-newpv V1510)
|
531
|
+
(do
|
532
|
+
(shen-bindv V1430
|
533
|
+
(cons vector (cons A ())) V1510)
|
534
|
+
(let Result
|
535
|
+
(do (shen-incinfs)
|
536
|
+
(shen-th* X A V1509 V1510
|
537
|
+
(freeze
|
538
|
+
(shen-th* Y (cons vector (cons A ()))
|
539
|
+
V1509 V1510 V1511))))
|
540
|
+
(do (shen-unbindv V1430 V1510) Result))))
|
536
541
|
false)))
|
537
542
|
false)))
|
538
543
|
false)))
|
@@ -541,333 +546,348 @@ For an explication of this license see http://www.lambdassociates.org/News/june1
|
|
541
546
|
false))
|
542
547
|
(if (= Case false)
|
543
548
|
(let Case
|
544
|
-
(let
|
545
|
-
(if (cons?
|
546
|
-
(let
|
547
|
-
(if (=
|
548
|
-
(let
|
549
|
-
(if (cons?
|
550
|
-
(let X (hd
|
551
|
-
(let
|
552
|
-
(if (cons?
|
553
|
-
(let Y (hd
|
554
|
-
(let
|
555
|
-
(if (= ()
|
556
|
-
(let
|
557
|
-
(if (
|
558
|
-
(
|
559
|
-
(
|
560
|
-
(
|
561
|
-
(
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
549
|
+
(let V1436 (shen-lazyderef V1507 V1510)
|
550
|
+
(if (cons? V1436)
|
551
|
+
(let V1437 (shen-lazyderef (hd V1436) V1510)
|
552
|
+
(if (= @s V1437)
|
553
|
+
(let V1438 (shen-lazyderef (tl V1436) V1510)
|
554
|
+
(if (cons? V1438)
|
555
|
+
(let X (hd V1438)
|
556
|
+
(let V1439 (shen-lazyderef (tl V1438) V1510)
|
557
|
+
(if (cons? V1439)
|
558
|
+
(let Y (hd V1439)
|
559
|
+
(let V1440 (shen-lazyderef (tl V1439) V1510)
|
560
|
+
(if (= () V1440)
|
561
|
+
(let V1441 (shen-lazyderef V1508 V1510)
|
562
|
+
(if (= string V1441)
|
563
|
+
(do (shen-incinfs)
|
564
|
+
(shen-th* X string V1509 V1510
|
565
|
+
(freeze
|
566
|
+
(shen-th* Y string V1509 V1510 V1511))))
|
567
|
+
(if (shen-pvar? V1441)
|
568
|
+
(do (shen-bindv V1441 string V1510)
|
569
|
+
(let Result
|
570
|
+
(do (shen-incinfs)
|
571
|
+
(shen-th* X string V1509 V1510
|
572
|
+
(freeze
|
573
|
+
(shen-th* Y string V1509 V1510
|
574
|
+
V1511))))
|
575
|
+
(do (shen-unbindv V1441 V1510) Result)))
|
576
|
+
false)))
|
577
|
+
false)))
|
578
|
+
false)))
|
579
|
+
false))
|
580
|
+
false))
|
581
|
+
false))
|
582
|
+
(if (= Case false)
|
583
|
+
(let Case
|
584
|
+
(let V1442 (shen-lazyderef V1507 V1510)
|
585
|
+
(if (cons? V1442)
|
586
|
+
(let V1443 (shen-lazyderef (hd V1442) V1510)
|
587
|
+
(if (= lambda V1443)
|
588
|
+
(let V1444 (shen-lazyderef (tl V1442) V1510)
|
589
|
+
(if (cons? V1444)
|
590
|
+
(let X (hd V1444)
|
591
|
+
(let V1445 (shen-lazyderef (tl V1444) V1510)
|
592
|
+
(if (cons? V1445)
|
593
|
+
(let Y (hd V1445)
|
594
|
+
(let V1446 (shen-lazyderef (tl V1445) V1510)
|
595
|
+
(if (= () V1446)
|
596
|
+
(let V1447 (shen-lazyderef V1508 V1510)
|
597
|
+
(if (cons? V1447)
|
598
|
+
(let A (hd V1447)
|
599
|
+
(let V1448
|
600
|
+
(shen-lazyderef (tl V1447) V1510)
|
601
|
+
(if (cons? V1448)
|
602
|
+
(let V1449
|
603
|
+
(shen-lazyderef (hd V1448) V1510)
|
604
|
+
(if (= --> V1449)
|
605
|
+
(let V1450
|
606
|
+
(shen-lazyderef (tl V1448) V1510)
|
607
|
+
(if (cons? V1450)
|
608
|
+
(let B (hd V1450)
|
609
|
+
(let V1451
|
610
|
+
(shen-lazyderef (tl V1450)
|
611
|
+
V1510)
|
612
|
+
(if (= () V1451)
|
613
|
+
(let Z (shen-newpv V1510)
|
614
|
+
(let X&& (shen-newpv V1510)
|
615
|
+
(do (shen-incinfs)
|
616
|
+
(cut Throwcontrol V1510
|
578
617
|
(freeze
|
579
|
-
(bind
|
580
|
-
(shen-
|
581
|
-
(shen-lazyderef X&&
|
582
|
-
V789)
|
583
|
-
(shen-lazyderef X V789)
|
584
|
-
(shen-lazyderef Y V789))
|
585
|
-
V789
|
618
|
+
(bind X&&
|
619
|
+
(shen-placeholder) V1510
|
586
620
|
(freeze
|
587
|
-
(
|
588
|
-
(
|
589
|
-
(
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
621
|
+
(bind Z
|
622
|
+
(shen-ebr
|
623
|
+
(shen-lazyderef X&&
|
624
|
+
V1510)
|
625
|
+
(shen-lazyderef X
|
626
|
+
V1510)
|
627
|
+
(shen-lazyderef Y
|
628
|
+
V1510))
|
629
|
+
V1510
|
630
|
+
(freeze
|
631
|
+
(shen-th* Z B
|
632
|
+
(cons
|
633
|
+
(cons X&&
|
634
|
+
(cons :
|
635
|
+
(cons A ())))
|
636
|
+
V1509)
|
637
|
+
V1510 V1511))))))))))
|
638
|
+
(if (shen-pvar? V1451)
|
639
|
+
(do
|
640
|
+
(shen-bindv V1451 () V1510)
|
641
|
+
(let Result
|
642
|
+
(let Z (shen-newpv V1510)
|
643
|
+
(let X&& (shen-newpv V1510)
|
644
|
+
(do (shen-incinfs)
|
645
|
+
(cut Throwcontrol V1510
|
646
|
+
(freeze
|
647
|
+
(bind X&&
|
648
|
+
(shen-placeholder)
|
649
|
+
V1510
|
650
|
+
(freeze
|
651
|
+
(bind Z
|
652
|
+
(shen-ebr
|
653
|
+
(shen-lazyderef X&&
|
654
|
+
V1510)
|
655
|
+
(shen-lazyderef X
|
656
|
+
V1510)
|
657
|
+
(shen-lazyderef Y
|
658
|
+
V1510))
|
659
|
+
V1510
|
660
|
+
(freeze
|
661
|
+
(shen-th* Z B
|
662
|
+
(cons
|
663
|
+
(cons X&&
|
664
|
+
(cons :
|
665
|
+
(cons A ())))
|
666
|
+
V1509)
|
667
|
+
V1510
|
668
|
+
V1511))))))))))
|
669
|
+
(do
|
670
|
+
(shen-unbindv V1451 V1510)
|
671
|
+
Result)))
|
672
|
+
false))))
|
673
|
+
(if (shen-pvar? V1450)
|
674
|
+
(let B (shen-newpv V1510)
|
675
|
+
(do
|
676
|
+
(shen-bindv V1450 (cons B ())
|
677
|
+
V1510)
|
596
678
|
(let Result
|
597
|
-
(let Z (shen-newpv
|
598
|
-
(let X&& (shen-newpv
|
679
|
+
(let Z (shen-newpv V1510)
|
680
|
+
(let X&& (shen-newpv V1510)
|
599
681
|
(do (shen-incinfs)
|
600
|
-
(cut Throwcontrol
|
682
|
+
(cut Throwcontrol V1510
|
601
683
|
(freeze
|
602
684
|
(bind X&&
|
603
|
-
(shen-placeholder)
|
685
|
+
(shen-placeholder) V1510
|
604
686
|
(freeze
|
605
687
|
(bind Z
|
606
688
|
(shen-ebr
|
607
689
|
(shen-lazyderef X&&
|
608
|
-
|
690
|
+
V1510)
|
609
691
|
(shen-lazyderef X
|
610
|
-
|
692
|
+
V1510)
|
611
693
|
(shen-lazyderef Y
|
612
|
-
|
613
|
-
|
694
|
+
V1510))
|
695
|
+
V1510
|
614
696
|
(freeze
|
615
697
|
(shen-th* Z B
|
616
698
|
(cons
|
617
699
|
(cons X&&
|
618
700
|
(cons :
|
619
701
|
(cons A ())))
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
V789)
|
643
|
-
(shen-lazyderef X V789)
|
644
|
-
(shen-lazyderef Y
|
645
|
-
V789))
|
646
|
-
V789
|
647
|
-
(freeze
|
648
|
-
(shen-th* Z B
|
649
|
-
(cons
|
650
|
-
(cons X&&
|
651
|
-
(cons :
|
652
|
-
(cons A ())))
|
653
|
-
V788)
|
654
|
-
V789 V790))))))))))
|
655
|
-
(do (shen-unbindv V729 V789)
|
656
|
-
Result))))
|
657
|
-
false)))
|
658
|
-
(if (shen-pvar? V728)
|
659
|
-
(do (shen-bindv V728 --> V789)
|
660
|
-
(let Result
|
661
|
-
(let V731
|
662
|
-
(shen-lazyderef (tl V727) V789)
|
663
|
-
(if (cons? V731)
|
664
|
-
(let B (hd V731)
|
665
|
-
(let V732
|
666
|
-
(shen-lazyderef (tl V731) V789)
|
667
|
-
(if (= () V732)
|
668
|
-
(let Z (shen-newpv V789)
|
669
|
-
(let X&& (shen-newpv V789)
|
670
|
-
(do (shen-incinfs)
|
671
|
-
(cut Throwcontrol V789
|
672
|
-
(freeze
|
673
|
-
(bind X&&
|
674
|
-
(shen-placeholder) V789
|
702
|
+
V1509)
|
703
|
+
V1510
|
704
|
+
V1511))))))))))
|
705
|
+
(do (shen-unbindv V1450 V1510)
|
706
|
+
Result))))
|
707
|
+
false)))
|
708
|
+
(if (shen-pvar? V1449)
|
709
|
+
(do (shen-bindv V1449 --> V1510)
|
710
|
+
(let Result
|
711
|
+
(let V1452
|
712
|
+
(shen-lazyderef (tl V1448)
|
713
|
+
V1510)
|
714
|
+
(if (cons? V1452)
|
715
|
+
(let B (hd V1452)
|
716
|
+
(let V1453
|
717
|
+
(shen-lazyderef (tl V1452)
|
718
|
+
V1510)
|
719
|
+
(if (= () V1453)
|
720
|
+
(let Z (shen-newpv V1510)
|
721
|
+
(let X&& (shen-newpv V1510)
|
722
|
+
(do (shen-incinfs)
|
723
|
+
(cut Throwcontrol V1510
|
675
724
|
(freeze
|
676
|
-
(bind
|
677
|
-
(shen-
|
678
|
-
|
679
|
-
V789)
|
680
|
-
(shen-lazyderef X
|
681
|
-
V789)
|
682
|
-
(shen-lazyderef Y
|
683
|
-
V789))
|
684
|
-
V789
|
725
|
+
(bind X&&
|
726
|
+
(shen-placeholder)
|
727
|
+
V1510
|
685
728
|
(freeze
|
686
|
-
(
|
687
|
-
(
|
688
|
-
(
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
729
|
+
(bind Z
|
730
|
+
(shen-ebr
|
731
|
+
(shen-lazyderef X&&
|
732
|
+
V1510)
|
733
|
+
(shen-lazyderef X
|
734
|
+
V1510)
|
735
|
+
(shen-lazyderef Y
|
736
|
+
V1510))
|
737
|
+
V1510
|
738
|
+
(freeze
|
739
|
+
(shen-th* Z B
|
740
|
+
(cons
|
741
|
+
(cons X&&
|
742
|
+
(cons :
|
743
|
+
(cons A ())))
|
744
|
+
V1509)
|
745
|
+
V1510
|
746
|
+
V1511))))))))))
|
747
|
+
(if (shen-pvar? V1453)
|
748
|
+
(do
|
749
|
+
(shen-bindv V1453 ()
|
750
|
+
V1510)
|
751
|
+
(let Result
|
752
|
+
(let Z (shen-newpv V1510)
|
753
|
+
(let X&&
|
754
|
+
(shen-newpv V1510)
|
755
|
+
(do (shen-incinfs)
|
756
|
+
(cut Throwcontrol
|
757
|
+
V1510
|
758
|
+
(freeze
|
759
|
+
(bind X&&
|
760
|
+
(shen-placeholder)
|
761
|
+
V1510
|
762
|
+
(freeze
|
763
|
+
(bind Z
|
764
|
+
(shen-ebr
|
765
|
+
(shen-lazyderef
|
766
|
+
X&& V1510)
|
767
|
+
(shen-lazyderef
|
768
|
+
X V1510)
|
769
|
+
(shen-lazyderef
|
770
|
+
Y V1510))
|
771
|
+
V1510
|
772
|
+
(freeze
|
773
|
+
(shen-th* Z B
|
774
|
+
(cons
|
775
|
+
(cons X&&
|
776
|
+
(cons :
|
777
|
+
(cons A
|
778
|
+
())))
|
779
|
+
V1509)
|
780
|
+
V1510
|
781
|
+
V1511))))))))))
|
782
|
+
(do
|
783
|
+
(shen-unbindv V1453
|
784
|
+
V1510)
|
785
|
+
Result)))
|
786
|
+
false))))
|
787
|
+
(if (shen-pvar? V1452)
|
788
|
+
(let B (shen-newpv V1510)
|
694
789
|
(do
|
695
|
-
(shen-bindv
|
790
|
+
(shen-bindv V1452
|
791
|
+
(cons B ()) V1510)
|
696
792
|
(let Result
|
697
|
-
(let Z (shen-newpv
|
698
|
-
(let X&&
|
793
|
+
(let Z (shen-newpv V1510)
|
794
|
+
(let X&&
|
795
|
+
(shen-newpv V1510)
|
699
796
|
(do (shen-incinfs)
|
700
|
-
(cut Throwcontrol
|
797
|
+
(cut Throwcontrol V1510
|
701
798
|
(freeze
|
702
799
|
(bind X&&
|
703
800
|
(shen-placeholder)
|
704
|
-
|
801
|
+
V1510
|
705
802
|
(freeze
|
706
803
|
(bind Z
|
707
804
|
(shen-ebr
|
708
805
|
(shen-lazyderef
|
709
|
-
X&&
|
806
|
+
X&& V1510)
|
710
807
|
(shen-lazyderef X
|
711
|
-
|
808
|
+
V1510)
|
712
809
|
(shen-lazyderef Y
|
713
|
-
|
714
|
-
|
810
|
+
V1510))
|
811
|
+
V1510
|
715
812
|
(freeze
|
716
813
|
(shen-th* Z B
|
717
814
|
(cons
|
718
815
|
(cons X&&
|
719
816
|
(cons :
|
720
817
|
(cons A ())))
|
721
|
-
|
722
|
-
|
723
|
-
|
818
|
+
V1509)
|
819
|
+
V1510
|
820
|
+
V1511))))))))))
|
724
821
|
(do
|
725
|
-
(shen-unbindv
|
726
|
-
Result)))
|
727
|
-
|
728
|
-
(
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
(let B (shen-newpv V789)
|
822
|
+
(shen-unbindv V1452 V1510)
|
823
|
+
Result))))
|
824
|
+
false)))
|
825
|
+
(do (shen-unbindv V1449 V1510)
|
826
|
+
Result)))
|
827
|
+
false)))
|
828
|
+
(if (shen-pvar? V1448)
|
829
|
+
(let B (shen-newpv V1510)
|
830
|
+
(do
|
831
|
+
(shen-bindv V1448
|
832
|
+
(cons --> (cons B ())) V1510)
|
833
|
+
(let Result
|
834
|
+
(let Z (shen-newpv V1510)
|
835
|
+
(let X&& (shen-newpv V1510)
|
836
|
+
(do (shen-incinfs)
|
837
|
+
(cut Throwcontrol V1510
|
838
|
+
(freeze
|
839
|
+
(bind X&& (shen-placeholder)
|
840
|
+
V1510
|
841
|
+
(freeze
|
842
|
+
(bind Z
|
843
|
+
(shen-ebr
|
844
|
+
(shen-lazyderef X&&
|
845
|
+
V1510)
|
846
|
+
(shen-lazyderef X V1510)
|
847
|
+
(shen-lazyderef Y V1510))
|
848
|
+
V1510
|
849
|
+
(freeze
|
850
|
+
(shen-th* Z B
|
851
|
+
(cons
|
852
|
+
(cons X&&
|
853
|
+
(cons :
|
854
|
+
(cons A ())))
|
855
|
+
V1509)
|
856
|
+
V1510 V1511))))))))))
|
857
|
+
(do (shen-unbindv V1448 V1510)
|
858
|
+
Result))))
|
859
|
+
false))))
|
860
|
+
(if (shen-pvar? V1447)
|
861
|
+
(let A (shen-newpv V1510)
|
862
|
+
(let B (shen-newpv V1510)
|
767
863
|
(do
|
768
|
-
(shen-bindv
|
769
|
-
(cons --> (cons B ()))
|
864
|
+
(shen-bindv V1447
|
865
|
+
(cons A (cons --> (cons B ())))
|
866
|
+
V1510)
|
770
867
|
(let Result
|
771
|
-
(let Z (shen-newpv
|
772
|
-
(let X&& (shen-newpv
|
868
|
+
(let Z (shen-newpv V1510)
|
869
|
+
(let X&& (shen-newpv V1510)
|
773
870
|
(do (shen-incinfs)
|
774
|
-
(cut Throwcontrol
|
871
|
+
(cut Throwcontrol V1510
|
775
872
|
(freeze
|
776
873
|
(bind X&& (shen-placeholder)
|
777
|
-
|
874
|
+
V1510
|
778
875
|
(freeze
|
779
876
|
(bind Z
|
780
877
|
(shen-ebr
|
781
|
-
(shen-lazyderef X&&
|
782
|
-
(shen-lazyderef X
|
783
|
-
(shen-lazyderef Y
|
784
|
-
|
878
|
+
(shen-lazyderef X&& V1510)
|
879
|
+
(shen-lazyderef X V1510)
|
880
|
+
(shen-lazyderef Y V1510))
|
881
|
+
V1510
|
785
882
|
(freeze
|
786
883
|
(shen-th* Z B
|
787
884
|
(cons
|
788
885
|
(cons X&&
|
789
886
|
(cons : (cons A ())))
|
790
|
-
|
791
|
-
|
792
|
-
(do (shen-unbindv
|
793
|
-
Result))))
|
794
|
-
false))))
|
795
|
-
(if (shen-pvar? V726)
|
796
|
-
(let A (shen-newpv V789)
|
797
|
-
(let B (shen-newpv V789)
|
798
|
-
(do
|
799
|
-
(shen-bindv V726
|
800
|
-
(cons A (cons --> (cons B ()))) V789)
|
801
|
-
(let Result
|
802
|
-
(let Z (shen-newpv V789)
|
803
|
-
(let X&& (shen-newpv V789)
|
804
|
-
(do (shen-incinfs)
|
805
|
-
(cut Throwcontrol V789
|
806
|
-
(freeze
|
807
|
-
(bind X&& (shen-placeholder) V789
|
808
|
-
(freeze
|
809
|
-
(bind Z
|
810
|
-
(shen-ebr
|
811
|
-
(shen-lazyderef X&& V789)
|
812
|
-
(shen-lazyderef X V789)
|
813
|
-
(shen-lazyderef Y V789))
|
814
|
-
V789
|
815
|
-
(freeze
|
816
|
-
(shen-th* Z B
|
817
|
-
(cons
|
818
|
-
(cons X&&
|
819
|
-
(cons : (cons A ())))
|
820
|
-
V788)
|
821
|
-
V789 V790))))))))))
|
822
|
-
(do (shen-unbindv V726 V789)
|
823
|
-
Result)))))
|
824
|
-
false)))
|
825
|
-
false)))
|
826
|
-
false)))
|
827
|
-
false))
|
828
|
-
false))
|
829
|
-
false))
|
830
|
-
(if (= Case false)
|
831
|
-
(let Case
|
832
|
-
(let V733 (shen-lazyderef V786 V789)
|
833
|
-
(if (cons? V733)
|
834
|
-
(let V734 (shen-lazyderef (hd V733) V789)
|
835
|
-
(if (= let V734)
|
836
|
-
(let V735 (shen-lazyderef (tl V733) V789)
|
837
|
-
(if (cons? V735)
|
838
|
-
(let X (hd V735)
|
839
|
-
(let V736 (shen-lazyderef (tl V735) V789)
|
840
|
-
(if (cons? V736)
|
841
|
-
(let Y (hd V736)
|
842
|
-
(let V737 (shen-lazyderef (tl V736) V789)
|
843
|
-
(if (cons? V737)
|
844
|
-
(let Z (hd V737)
|
845
|
-
(let V738 (shen-lazyderef (tl V737) V789)
|
846
|
-
(if (= () V738)
|
847
|
-
(let W (shen-newpv V789)
|
848
|
-
(let X&& (shen-newpv V789)
|
849
|
-
(let B (shen-newpv V789)
|
850
|
-
(do (shen-incinfs)
|
851
|
-
(cut Throwcontrol V789
|
852
|
-
(freeze
|
853
|
-
(shen-th* Y B V788 V789
|
854
|
-
(freeze
|
855
|
-
(bind X&& (shen-placeholder)
|
856
|
-
V789
|
857
|
-
(freeze
|
858
|
-
(bind W
|
859
|
-
(shen-ebr
|
860
|
-
(shen-lazyderef X&& V789)
|
861
|
-
(shen-lazyderef X V789)
|
862
|
-
(shen-lazyderef Z V789))
|
863
|
-
V789
|
864
|
-
(freeze
|
865
|
-
(shen-th* W V787
|
866
|
-
(cons
|
867
|
-
(cons X&&
|
868
|
-
(cons : (cons B ())))
|
869
|
-
V788)
|
870
|
-
V789 V790)))))))))))))
|
887
|
+
V1509)
|
888
|
+
V1510 V1511))))))))))
|
889
|
+
(do (shen-unbindv V1447 V1510)
|
890
|
+
Result)))))
|
871
891
|
false)))
|
872
892
|
false)))
|
873
893
|
false)))
|
@@ -876,292 +896,342 @@ For an explication of this license see http://www.lambdassociates.org/News/june1
|
|
876
896
|
false))
|
877
897
|
(if (= Case false)
|
878
898
|
(let Case
|
879
|
-
(let
|
880
|
-
(if (cons?
|
881
|
-
(let
|
882
|
-
(if (=
|
883
|
-
(let
|
884
|
-
(if (cons?
|
885
|
-
(let
|
886
|
-
(
|
887
|
-
(
|
888
|
-
(
|
889
|
-
(let
|
890
|
-
(
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
(
|
901
|
-
(
|
902
|
-
(shen-
|
903
|
-
|
904
|
-
|
905
|
-
|
906
|
-
(
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
899
|
+
(let V1454 (shen-lazyderef V1507 V1510)
|
900
|
+
(if (cons? V1454)
|
901
|
+
(let V1455 (shen-lazyderef (hd V1454) V1510)
|
902
|
+
(if (= let V1455)
|
903
|
+
(let V1456 (shen-lazyderef (tl V1454) V1510)
|
904
|
+
(if (cons? V1456)
|
905
|
+
(let X (hd V1456)
|
906
|
+
(let V1457 (shen-lazyderef (tl V1456) V1510)
|
907
|
+
(if (cons? V1457)
|
908
|
+
(let Y (hd V1457)
|
909
|
+
(let V1458
|
910
|
+
(shen-lazyderef (tl V1457) V1510)
|
911
|
+
(if (cons? V1458)
|
912
|
+
(let Z (hd V1458)
|
913
|
+
(let V1459
|
914
|
+
(shen-lazyderef (tl V1458) V1510)
|
915
|
+
(if (= () V1459)
|
916
|
+
(let W (shen-newpv V1510)
|
917
|
+
(let X&& (shen-newpv V1510)
|
918
|
+
(let B (shen-newpv V1510)
|
919
|
+
(do (shen-incinfs)
|
920
|
+
(cut Throwcontrol V1510
|
921
|
+
(freeze
|
922
|
+
(shen-th* Y B V1509 V1510
|
923
|
+
(freeze
|
924
|
+
(bind X&& (shen-placeholder)
|
925
|
+
V1510
|
926
|
+
(freeze
|
927
|
+
(bind W
|
928
|
+
(shen-ebr
|
929
|
+
(shen-lazyderef X&& V1510)
|
930
|
+
(shen-lazyderef X V1510)
|
931
|
+
(shen-lazyderef Z V1510))
|
932
|
+
V1510
|
933
|
+
(freeze
|
934
|
+
(shen-th* W V1508
|
935
|
+
(cons
|
936
|
+
(cons X&&
|
937
|
+
(cons :
|
938
|
+
(cons B ())))
|
939
|
+
V1509)
|
940
|
+
V1510 V1511)))))))))))))
|
941
|
+
false)))
|
942
|
+
false)))
|
943
|
+
false)))
|
944
|
+
false))
|
945
|
+
false))
|
946
|
+
false))
|
947
|
+
(if (= Case false)
|
948
|
+
(let Case
|
949
|
+
(let V1460 (shen-lazyderef V1507 V1510)
|
950
|
+
(if (cons? V1460)
|
951
|
+
(let V1461 (shen-lazyderef (hd V1460) V1510)
|
952
|
+
(if (= open V1461)
|
953
|
+
(let V1462 (shen-lazyderef (tl V1460) V1510)
|
954
|
+
(if (cons? V1462)
|
955
|
+
(let V1463 (shen-lazyderef (hd V1462) V1510)
|
956
|
+
(if (= file V1463)
|
957
|
+
(let V1464
|
958
|
+
(shen-lazyderef (tl V1462) V1510)
|
959
|
+
(if (cons? V1464)
|
960
|
+
(let FileName (hd V1464)
|
961
|
+
(let V1465
|
962
|
+
(shen-lazyderef (tl V1464) V1510)
|
963
|
+
(if (cons? V1465)
|
964
|
+
(let Direction1393 (hd V1465)
|
965
|
+
(let V1466
|
966
|
+
(shen-lazyderef (tl V1465) V1510)
|
967
|
+
(if (= () V1466)
|
968
|
+
(let V1467
|
969
|
+
(shen-lazyderef V1508 V1510)
|
970
|
+
(if (cons? V1467)
|
971
|
+
(let V1468
|
972
|
+
(shen-lazyderef (hd V1467)
|
973
|
+
V1510)
|
974
|
+
(if (= stream V1468)
|
975
|
+
(let V1469
|
976
|
+
(shen-lazyderef (tl V1467)
|
977
|
+
V1510)
|
978
|
+
(if (cons? V1469)
|
979
|
+
(let Direction (hd V1469)
|
980
|
+
(let V1470
|
981
|
+
(shen-lazyderef (tl V1469)
|
982
|
+
V1510)
|
983
|
+
(if (= () V1470)
|
984
|
+
(do (shen-incinfs)
|
985
|
+
(unify! Direction
|
986
|
+
Direction1393 V1510
|
914
987
|
(freeze
|
915
|
-
(
|
916
|
-
|
917
|
-
|
918
|
-
|
988
|
+
(cut Throwcontrol V1510
|
989
|
+
(freeze
|
990
|
+
(shen-th* FileName
|
991
|
+
string V1509 V1510
|
992
|
+
V1511))))))
|
993
|
+
(if (shen-pvar? V1470)
|
994
|
+
(do
|
995
|
+
(shen-bindv V1470 ()
|
996
|
+
V1510)
|
997
|
+
(let Result
|
998
|
+
(do (shen-incinfs)
|
999
|
+
(unify! Direction
|
1000
|
+
Direction1393 V1510
|
1001
|
+
(freeze
|
1002
|
+
(cut Throwcontrol
|
1003
|
+
V1510
|
1004
|
+
(freeze
|
1005
|
+
(shen-th* FileName
|
1006
|
+
string V1509
|
1007
|
+
V1510 V1511))))))
|
1008
|
+
(do
|
1009
|
+
(shen-unbindv V1470
|
1010
|
+
V1510)
|
1011
|
+
Result)))
|
1012
|
+
false))))
|
1013
|
+
(if (shen-pvar? V1469)
|
1014
|
+
(let Direction
|
1015
|
+
(shen-newpv V1510)
|
919
1016
|
(do
|
920
|
-
(shen-bindv
|
1017
|
+
(shen-bindv V1469
|
1018
|
+
(cons Direction ())
|
1019
|
+
V1510)
|
921
1020
|
(let Result
|
922
1021
|
(do (shen-incinfs)
|
923
1022
|
(unify! Direction
|
924
|
-
|
1023
|
+
Direction1393 V1510
|
925
1024
|
(freeze
|
926
|
-
(cut Throwcontrol
|
1025
|
+
(cut Throwcontrol
|
1026
|
+
V1510
|
927
1027
|
(freeze
|
928
1028
|
(shen-th* FileName
|
929
|
-
string
|
930
|
-
|
1029
|
+
string V1509 V1510
|
1030
|
+
V1511))))))
|
931
1031
|
(do
|
932
|
-
(shen-unbindv
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
(
|
939
|
-
|
940
|
-
|
941
|
-
(let
|
942
|
-
(
|
943
|
-
|
944
|
-
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
|
952
|
-
|
953
|
-
Result))))
|
954
|
-
false)))
|
955
|
-
(if (shen-pvar? V747)
|
956
|
-
(do
|
957
|
-
(shen-bindv V747 stream V789)
|
958
|
-
(let Result
|
959
|
-
(let V750
|
960
|
-
(shen-lazyderef (tl V746)
|
961
|
-
V789)
|
962
|
-
(if (cons? V750)
|
963
|
-
(let Direction (hd V750)
|
964
|
-
(let V751
|
965
|
-
(shen-lazyderef (tl V750)
|
966
|
-
V789)
|
967
|
-
(if (= () V751)
|
968
|
-
(do (shen-incinfs)
|
969
|
-
(unify! Direction
|
970
|
-
Direction674 V789
|
971
|
-
(freeze
|
972
|
-
(cut Throwcontrol V789
|
1032
|
+
(shen-unbindv V1469
|
1033
|
+
V1510)
|
1034
|
+
Result))))
|
1035
|
+
false)))
|
1036
|
+
(if (shen-pvar? V1468)
|
1037
|
+
(do
|
1038
|
+
(shen-bindv V1468 stream
|
1039
|
+
V1510)
|
1040
|
+
(let Result
|
1041
|
+
(let V1471
|
1042
|
+
(shen-lazyderef (tl V1467)
|
1043
|
+
V1510)
|
1044
|
+
(if (cons? V1471)
|
1045
|
+
(let Direction (hd V1471)
|
1046
|
+
(let V1472
|
1047
|
+
(shen-lazyderef
|
1048
|
+
(tl V1471) V1510)
|
1049
|
+
(if (= () V1472)
|
1050
|
+
(do (shen-incinfs)
|
1051
|
+
(unify! Direction
|
1052
|
+
Direction1393 V1510
|
973
1053
|
(freeze
|
974
|
-
(
|
975
|
-
|
976
|
-
|
977
|
-
|
1054
|
+
(cut Throwcontrol
|
1055
|
+
V1510
|
1056
|
+
(freeze
|
1057
|
+
(shen-th* FileName
|
1058
|
+
string V1509
|
1059
|
+
V1510 V1511))))))
|
1060
|
+
(if (shen-pvar? V1472)
|
1061
|
+
(do
|
1062
|
+
(shen-bindv V1472 ()
|
1063
|
+
V1510)
|
1064
|
+
(let Result
|
1065
|
+
(do (shen-incinfs)
|
1066
|
+
(unify! Direction
|
1067
|
+
Direction1393
|
1068
|
+
V1510
|
1069
|
+
(freeze
|
1070
|
+
(cut Throwcontrol
|
1071
|
+
V1510
|
1072
|
+
(freeze
|
1073
|
+
(shen-th*
|
1074
|
+
FileName
|
1075
|
+
string V1509
|
1076
|
+
V1510
|
1077
|
+
V1511))))))
|
1078
|
+
(do
|
1079
|
+
(shen-unbindv V1472
|
1080
|
+
V1510)
|
1081
|
+
Result)))
|
1082
|
+
false))))
|
1083
|
+
(if (shen-pvar? V1471)
|
1084
|
+
(let Direction
|
1085
|
+
(shen-newpv V1510)
|
978
1086
|
(do
|
979
|
-
(shen-bindv
|
980
|
-
|
1087
|
+
(shen-bindv V1471
|
1088
|
+
(cons Direction ())
|
1089
|
+
V1510)
|
981
1090
|
(let Result
|
982
1091
|
(do (shen-incinfs)
|
983
1092
|
(unify! Direction
|
984
|
-
|
1093
|
+
Direction1393 V1510
|
985
1094
|
(freeze
|
986
1095
|
(cut Throwcontrol
|
987
|
-
|
1096
|
+
V1510
|
988
1097
|
(freeze
|
989
1098
|
(shen-th*
|
990
1099
|
FileName string
|
991
|
-
|
992
|
-
|
1100
|
+
V1509 V1510
|
1101
|
+
V1511))))))
|
993
1102
|
(do
|
994
|
-
(shen-unbindv
|
995
|
-
|
996
|
-
Result)))
|
997
|
-
|
998
|
-
(
|
999
|
-
(
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1014
|
-
string V788 V789
|
1015
|
-
V790))))))
|
1016
|
-
(do
|
1017
|
-
(shen-unbindv V750
|
1018
|
-
V789)
|
1019
|
-
Result))))
|
1020
|
-
false)))
|
1021
|
-
(do (shen-unbindv V747 V789)
|
1022
|
-
Result)))
|
1023
|
-
false)))
|
1024
|
-
(if (shen-pvar? V746)
|
1025
|
-
(let Direction (shen-newpv V789)
|
1026
|
-
(do
|
1027
|
-
(shen-bindv V746
|
1028
|
-
(cons stream
|
1029
|
-
(cons Direction ()))
|
1030
|
-
V789)
|
1031
|
-
(let Result
|
1032
|
-
(do (shen-incinfs)
|
1033
|
-
(unify! Direction Direction674
|
1034
|
-
V789
|
1035
|
-
(freeze
|
1036
|
-
(cut Throwcontrol V789
|
1103
|
+
(shen-unbindv V1471
|
1104
|
+
V1510)
|
1105
|
+
Result))))
|
1106
|
+
false)))
|
1107
|
+
(do
|
1108
|
+
(shen-unbindv V1468 V1510)
|
1109
|
+
Result)))
|
1110
|
+
false)))
|
1111
|
+
(if (shen-pvar? V1467)
|
1112
|
+
(let Direction
|
1113
|
+
(shen-newpv V1510)
|
1114
|
+
(do
|
1115
|
+
(shen-bindv V1467
|
1116
|
+
(cons stream
|
1117
|
+
(cons Direction ()))
|
1118
|
+
V1510)
|
1119
|
+
(let Result
|
1120
|
+
(do (shen-incinfs)
|
1121
|
+
(unify! Direction
|
1122
|
+
Direction1393 V1510
|
1037
1123
|
(freeze
|
1038
|
-
(
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1124
|
+
(cut Throwcontrol V1510
|
1125
|
+
(freeze
|
1126
|
+
(shen-th* FileName
|
1127
|
+
string V1509 V1510
|
1128
|
+
V1511))))))
|
1129
|
+
(do
|
1130
|
+
(shen-unbindv V1467 V1510)
|
1131
|
+
Result))))
|
1132
|
+
false)))
|
1133
|
+
false)))
|
1134
|
+
false)))
|
1135
|
+
false))
|
1045
1136
|
false))
|
1046
1137
|
false))
|
1047
1138
|
false))
|
1048
1139
|
false))
|
1049
|
-
false))
|
1050
|
-
(if (= Case false)
|
1051
|
-
(let Case
|
1052
|
-
(let V752 (shen-lazyderef V786 V789)
|
1053
|
-
(if (cons? V752)
|
1054
|
-
(let V753 (shen-lazyderef (hd V752) V789)
|
1055
|
-
(if (= type V753)
|
1056
|
-
(let V754 (shen-lazyderef (tl V752) V789)
|
1057
|
-
(if (cons? V754)
|
1058
|
-
(let X (hd V754)
|
1059
|
-
(let V755 (shen-lazyderef (tl V754) V789)
|
1060
|
-
(if (cons? V755)
|
1061
|
-
(let A (hd V755)
|
1062
|
-
(let V756 (shen-lazyderef (tl V755) V789)
|
1063
|
-
(if (= () V756)
|
1064
|
-
(do (shen-incinfs)
|
1065
|
-
(cut Throwcontrol V789
|
1066
|
-
(freeze
|
1067
|
-
(unify A V787 V789
|
1068
|
-
(freeze
|
1069
|
-
(shen-th* X A V788 V789 V790))))))
|
1070
|
-
false)))
|
1071
|
-
false)))
|
1072
|
-
false))
|
1073
|
-
false))
|
1074
|
-
false))
|
1075
1140
|
(if (= Case false)
|
1076
1141
|
(let Case
|
1077
|
-
(let
|
1078
|
-
(if (cons?
|
1079
|
-
(let
|
1080
|
-
(if (=
|
1081
|
-
(let
|
1082
|
-
(if (cons?
|
1083
|
-
(let
|
1084
|
-
(
|
1085
|
-
(
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
(shen-lazyderef A V789))
|
1096
|
-
V789
|
1142
|
+
(let V1473 (shen-lazyderef V1507 V1510)
|
1143
|
+
(if (cons? V1473)
|
1144
|
+
(let V1474 (shen-lazyderef (hd V1473) V1510)
|
1145
|
+
(if (= type V1474)
|
1146
|
+
(let V1475 (shen-lazyderef (tl V1473) V1510)
|
1147
|
+
(if (cons? V1475)
|
1148
|
+
(let X (hd V1475)
|
1149
|
+
(let V1476
|
1150
|
+
(shen-lazyderef (tl V1475) V1510)
|
1151
|
+
(if (cons? V1476)
|
1152
|
+
(let A (hd V1476)
|
1153
|
+
(let V1477
|
1154
|
+
(shen-lazyderef (tl V1476) V1510)
|
1155
|
+
(if (= () V1477)
|
1156
|
+
(do (shen-incinfs)
|
1157
|
+
(cut Throwcontrol V1510
|
1158
|
+
(freeze
|
1159
|
+
(unify A V1508 V1510
|
1097
1160
|
(freeze
|
1098
|
-
(
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1161
|
+
(shen-th* X A V1509 V1510
|
1162
|
+
V1511))))))
|
1163
|
+
false)))
|
1164
|
+
false)))
|
1102
1165
|
false))
|
1103
1166
|
false))
|
1104
1167
|
false))
|
1105
1168
|
(if (= Case false)
|
1106
1169
|
(let Case
|
1107
|
-
(let
|
1108
|
-
(if (cons?
|
1109
|
-
(let
|
1110
|
-
(if (=
|
1111
|
-
(let
|
1112
|
-
(
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1170
|
+
(let V1478 (shen-lazyderef V1507 V1510)
|
1171
|
+
(if (cons? V1478)
|
1172
|
+
(let V1479 (shen-lazyderef (hd V1478) V1510)
|
1173
|
+
(if (= input+ V1479)
|
1174
|
+
(let V1480
|
1175
|
+
(shen-lazyderef (tl V1478) V1510)
|
1176
|
+
(if (cons? V1480)
|
1177
|
+
(let V1481
|
1178
|
+
(shen-lazyderef (hd V1480) V1510)
|
1179
|
+
(if (= : V1481)
|
1180
|
+
(let V1482
|
1181
|
+
(shen-lazyderef (tl V1480) V1510)
|
1182
|
+
(if (cons? V1482)
|
1183
|
+
(let A (hd V1482)
|
1184
|
+
(let V1483
|
1185
|
+
(shen-lazyderef (tl V1482) V1510)
|
1186
|
+
(if (= () V1483)
|
1187
|
+
(let C (shen-newpv V1510)
|
1188
|
+
(do (shen-incinfs)
|
1189
|
+
(bind C
|
1190
|
+
(shen-normalise-type
|
1191
|
+
(shen-lazyderef A V1510))
|
1192
|
+
V1510
|
1125
1193
|
(freeze
|
1126
|
-
(
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
|
1131
|
-
(cons :
|
1132
|
-
(cons verified ())))
|
1133
|
-
V788)
|
1134
|
-
V789 V790))))))))
|
1135
|
-
false)))
|
1136
|
-
false)))
|
1194
|
+
(unify V1508 C V1510
|
1195
|
+
V1511)))))
|
1196
|
+
false)))
|
1197
|
+
false))
|
1198
|
+
false))
|
1137
1199
|
false))
|
1138
1200
|
false))
|
1139
1201
|
false))
|
1140
1202
|
(if (= Case false)
|
1141
1203
|
(let Case
|
1142
|
-
(let
|
1143
|
-
(if (cons?
|
1144
|
-
(let
|
1145
|
-
(
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1150
|
-
|
1151
|
-
|
1152
|
-
|
1153
|
-
|
1154
|
-
|
1155
|
-
|
1204
|
+
(let V1484 (shen-lazyderef V1507 V1510)
|
1205
|
+
(if (cons? V1484)
|
1206
|
+
(let V1485
|
1207
|
+
(shen-lazyderef (hd V1484) V1510)
|
1208
|
+
(if (= where V1485)
|
1209
|
+
(let V1486
|
1210
|
+
(shen-lazyderef (tl V1484) V1510)
|
1211
|
+
(if (cons? V1486)
|
1212
|
+
(let P (hd V1486)
|
1213
|
+
(let V1487
|
1214
|
+
(shen-lazyderef (tl V1486) V1510)
|
1215
|
+
(if (cons? V1487)
|
1216
|
+
(let X (hd V1487)
|
1217
|
+
(let V1488
|
1218
|
+
(shen-lazyderef (tl V1487) V1510)
|
1219
|
+
(if (= () V1488)
|
1156
1220
|
(do (shen-incinfs)
|
1157
|
-
(cut Throwcontrol
|
1221
|
+
(cut Throwcontrol V1510
|
1158
1222
|
(freeze
|
1159
|
-
(shen-th*
|
1160
|
-
|
1161
|
-
V787 V788 V789
|
1223
|
+
(shen-th* P boolean V1509
|
1224
|
+
V1510
|
1162
1225
|
(freeze
|
1163
|
-
(
|
1164
|
-
|
1226
|
+
(cut Throwcontrol V1510
|
1227
|
+
(freeze
|
1228
|
+
(shen-th* X V1508
|
1229
|
+
(cons
|
1230
|
+
(cons P
|
1231
|
+
(cons :
|
1232
|
+
(cons verified ())))
|
1233
|
+
V1509)
|
1234
|
+
V1510 V1511))))))))
|
1165
1235
|
false)))
|
1166
1236
|
false)))
|
1167
1237
|
false))
|
@@ -1169,113 +1239,168 @@ For an explication of this license see http://www.lambdassociates.org/News/june1
|
|
1169
1239
|
false))
|
1170
1240
|
(if (= Case false)
|
1171
1241
|
(let Case
|
1172
|
-
(let
|
1173
|
-
(if (cons?
|
1174
|
-
(let
|
1175
|
-
(
|
1176
|
-
|
1177
|
-
|
1178
|
-
(
|
1179
|
-
|
1180
|
-
|
1181
|
-
|
1182
|
-
(
|
1183
|
-
|
1184
|
-
|
1185
|
-
|
1186
|
-
(
|
1187
|
-
|
1242
|
+
(let V1489 (shen-lazyderef V1507 V1510)
|
1243
|
+
(if (cons? V1489)
|
1244
|
+
(let V1490
|
1245
|
+
(shen-lazyderef (hd V1489) V1510)
|
1246
|
+
(if (= set V1490)
|
1247
|
+
(let V1491
|
1248
|
+
(shen-lazyderef (tl V1489) V1510)
|
1249
|
+
(if (cons? V1491)
|
1250
|
+
(let Var (hd V1491)
|
1251
|
+
(let V1492
|
1252
|
+
(shen-lazyderef (tl V1491) V1510)
|
1253
|
+
(if (cons? V1492)
|
1254
|
+
(let Val (hd V1492)
|
1255
|
+
(let V1493
|
1256
|
+
(shen-lazyderef (tl V1492)
|
1257
|
+
V1510)
|
1258
|
+
(if (= () V1493)
|
1259
|
+
(do (shen-incinfs)
|
1260
|
+
(cut Throwcontrol V1510
|
1261
|
+
(freeze
|
1262
|
+
(shen-th*
|
1263
|
+
(cons value (cons Var ()))
|
1264
|
+
V1508 V1509 V1510
|
1265
|
+
(freeze
|
1266
|
+
(shen-th* Val V1508 V1509
|
1267
|
+
V1510 V1511))))))
|
1268
|
+
false)))
|
1188
1269
|
false)))
|
1189
1270
|
false))
|
1190
1271
|
false))
|
1191
1272
|
false))
|
1192
1273
|
(if (= Case false)
|
1193
1274
|
(let Case
|
1194
|
-
(let
|
1195
|
-
(
|
1196
|
-
(
|
1197
|
-
(
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1204
|
-
|
1205
|
-
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1214
|
-
|
1215
|
-
(shen-t*-def
|
1216
|
-
(cons define (cons F X))
|
1217
|
-
V787 V788 V789 V790))))))
|
1218
|
-
false))
|
1275
|
+
(let V1494 (shen-lazyderef V1507 V1510)
|
1276
|
+
(if (cons? V1494)
|
1277
|
+
(let V1495
|
1278
|
+
(shen-lazyderef (hd V1494) V1510)
|
1279
|
+
(if (= fail V1495)
|
1280
|
+
(let V1496
|
1281
|
+
(shen-lazyderef (tl V1494) V1510)
|
1282
|
+
(if (= () V1496)
|
1283
|
+
(let V1497
|
1284
|
+
(shen-lazyderef V1508 V1510)
|
1285
|
+
(if (= symbol V1497)
|
1286
|
+
(do (shen-incinfs) (thaw V1511))
|
1287
|
+
(if (shen-pvar? V1497)
|
1288
|
+
(do
|
1289
|
+
(shen-bindv V1497 symbol V1510)
|
1290
|
+
(let Result
|
1291
|
+
(do (shen-incinfs)
|
1292
|
+
(thaw V1511))
|
1293
|
+
(do (shen-unbindv V1497 V1510)
|
1294
|
+
Result)))
|
1295
|
+
false)))
|
1219
1296
|
false))
|
1220
1297
|
false))
|
1298
|
+
false))
|
1299
|
+
(if (= Case false)
|
1300
|
+
(let Case
|
1301
|
+
(let NewHyp (shen-newpv V1510)
|
1302
|
+
(do (shen-incinfs)
|
1303
|
+
(shen-t*-hyps V1509 NewHyp V1510
|
1304
|
+
(freeze
|
1305
|
+
(shen-th* V1507 V1508 NewHyp V1510
|
1306
|
+
V1511)))))
|
1221
1307
|
(if (= Case false)
|
1222
1308
|
(let Case
|
1223
|
-
(let
|
1224
|
-
(
|
1225
|
-
|
1226
|
-
|
1227
|
-
(
|
1228
|
-
|
1229
|
-
|
1230
|
-
(
|
1231
|
-
|
1232
|
-
|
1233
|
-
|
1234
|
-
|
1235
|
-
(
|
1236
|
-
(
|
1237
|
-
(
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1309
|
+
(let V1498
|
1310
|
+
(shen-lazyderef V1507 V1510)
|
1311
|
+
(if (cons? V1498)
|
1312
|
+
(let V1499
|
1313
|
+
(shen-lazyderef (hd V1498) V1510)
|
1314
|
+
(if (= define V1499)
|
1315
|
+
(let V1500
|
1316
|
+
(shen-lazyderef (tl V1498)
|
1317
|
+
V1510)
|
1318
|
+
(if (cons? V1500)
|
1319
|
+
(let F (hd V1500)
|
1320
|
+
(let X (tl V1500)
|
1321
|
+
(do (shen-incinfs)
|
1322
|
+
(cut Throwcontrol V1510
|
1323
|
+
(freeze
|
1324
|
+
(shen-t*-def
|
1325
|
+
(cons define (cons F X))
|
1326
|
+
V1508 V1509 V1510
|
1327
|
+
V1511))))))
|
1328
|
+
false))
|
1241
1329
|
false))
|
1242
1330
|
false))
|
1243
1331
|
(if (= Case false)
|
1244
1332
|
(let Case
|
1245
|
-
(let
|
1246
|
-
(shen-lazyderef
|
1247
|
-
(if (cons?
|
1248
|
-
(let
|
1249
|
-
(shen-lazyderef (hd
|
1250
|
-
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1333
|
+
(let V1501
|
1334
|
+
(shen-lazyderef V1507 V1510)
|
1335
|
+
(if (cons? V1501)
|
1336
|
+
(let V1502
|
1337
|
+
(shen-lazyderef (hd V1501)
|
1338
|
+
V1510)
|
1339
|
+
(if
|
1340
|
+
(= shen-process-datatype V1502)
|
1341
|
+
(let V1503
|
1342
|
+
(shen-lazyderef V1508 V1510)
|
1343
|
+
(if (= symbol V1503)
|
1254
1344
|
(do (shen-incinfs)
|
1255
|
-
(thaw
|
1256
|
-
(if (shen-pvar?
|
1345
|
+
(thaw V1511))
|
1346
|
+
(if (shen-pvar? V1503)
|
1257
1347
|
(do
|
1258
|
-
(shen-bindv
|
1259
|
-
|
1348
|
+
(shen-bindv V1503 symbol
|
1349
|
+
V1510)
|
1260
1350
|
(let Result
|
1261
1351
|
(do (shen-incinfs)
|
1262
|
-
(thaw
|
1352
|
+
(thaw V1511))
|
1263
1353
|
(do
|
1264
|
-
(shen-unbindv
|
1354
|
+
(shen-unbindv V1503
|
1355
|
+
V1510)
|
1265
1356
|
Result)))
|
1266
1357
|
false)))
|
1267
1358
|
false))
|
1268
1359
|
false))
|
1269
1360
|
(if (= Case false)
|
1270
|
-
(let
|
1271
|
-
(
|
1272
|
-
(
|
1273
|
-
|
1274
|
-
(
|
1275
|
-
(shen-
|
1276
|
-
|
1277
|
-
|
1278
|
-
|
1361
|
+
(let Case
|
1362
|
+
(let V1504
|
1363
|
+
(shen-lazyderef V1507 V1510)
|
1364
|
+
(if (cons? V1504)
|
1365
|
+
(let V1505
|
1366
|
+
(shen-lazyderef (hd V1504)
|
1367
|
+
V1510)
|
1368
|
+
(if
|
1369
|
+
(= shen-synonyms-help V1505)
|
1370
|
+
(let V1506
|
1371
|
+
(shen-lazyderef V1508 V1510)
|
1372
|
+
(if (= symbol V1506)
|
1373
|
+
(do (shen-incinfs)
|
1374
|
+
(thaw V1511))
|
1375
|
+
(if (shen-pvar? V1506)
|
1376
|
+
(do
|
1377
|
+
(shen-bindv V1506 symbol
|
1378
|
+
V1510)
|
1379
|
+
(let Result
|
1380
|
+
(do (shen-incinfs)
|
1381
|
+
(thaw V1511))
|
1382
|
+
(do
|
1383
|
+
(shen-unbindv V1506
|
1384
|
+
V1510)
|
1385
|
+
Result)))
|
1386
|
+
false)))
|
1387
|
+
false))
|
1388
|
+
false))
|
1389
|
+
(if (= Case false)
|
1390
|
+
(let Datatypes
|
1391
|
+
(shen-newpv V1510)
|
1392
|
+
(do (shen-incinfs)
|
1393
|
+
(bind Datatypes
|
1394
|
+
(value shen-*datatypes*)
|
1395
|
+
V1510
|
1396
|
+
(freeze
|
1397
|
+
(shen-udefs*
|
1398
|
+
(cons V1507
|
1399
|
+
(cons :
|
1400
|
+
(cons V1508 ())))
|
1401
|
+
V1509 Datatypes V1510
|
1402
|
+
V1511)))))
|
1403
|
+
Case))
|
1279
1404
|
Case))
|
1280
1405
|
Case))
|
1281
1406
|
Case))
|
@@ -3077,32 +3202,117 @@ For an explication of this license see http://www.lambdassociates.org/News/june1
|
|
3077
3202
|
V889 V890)))
|
3078
3203
|
Case)))
|
3079
3204
|
|
3080
|
-
(defun shen-t*-ruleh (
|
3205
|
+
(defun shen-t*-ruleh (V1512 V1513 V1514 V1515 V1516)
|
3081
3206
|
(let Throwcontrol (shen-catchpoint)
|
3082
3207
|
(shen-cutpoint Throwcontrol
|
3083
|
-
(let
|
3084
|
-
(
|
3085
|
-
(
|
3086
|
-
(let
|
3087
|
-
(if (
|
3088
|
-
(let
|
3089
|
-
(
|
3090
|
-
(
|
3091
|
-
(let
|
3092
|
-
(
|
3093
|
-
(let
|
3094
|
-
(
|
3095
|
-
(shen-
|
3096
|
-
(
|
3097
|
-
(
|
3208
|
+
(let Case
|
3209
|
+
(let V1380 (shen-lazyderef V1512 V1515)
|
3210
|
+
(if (cons? V1380)
|
3211
|
+
(let V1381 (shen-lazyderef (hd V1380) V1515)
|
3212
|
+
(if (= () V1381)
|
3213
|
+
(let V1382 (shen-lazyderef (tl V1380) V1515)
|
3214
|
+
(if (cons? V1382)
|
3215
|
+
(let Result (hd V1382)
|
3216
|
+
(let V1383 (shen-lazyderef (tl V1382) V1515)
|
3217
|
+
(if (= () V1383)
|
3218
|
+
(let V1384 (shen-lazyderef V1513 V1515)
|
3219
|
+
(if (cons? V1384)
|
3220
|
+
(let V1385 (shen-lazyderef (hd V1384) V1515)
|
3221
|
+
(if (= --> V1385)
|
3222
|
+
(let V1386 (shen-lazyderef (tl V1384) V1515)
|
3223
|
+
(if (cons? V1386)
|
3224
|
+
(let A (hd V1386)
|
3225
|
+
(let V1387 (shen-lazyderef (tl V1386) V1515)
|
3226
|
+
(if (= () V1387)
|
3227
|
+
(do (shen-incinfs)
|
3228
|
+
(cut Throwcontrol V1515
|
3229
|
+
(freeze (shen-th* Result A V1514 V1515 V1516))))
|
3230
|
+
(if (shen-pvar? V1387)
|
3231
|
+
(do (shen-bindv V1387 () V1515)
|
3232
|
+
(let Result
|
3233
|
+
(do (shen-incinfs)
|
3234
|
+
(cut Throwcontrol V1515
|
3235
|
+
(freeze (shen-th* Result A V1514 V1515 V1516))))
|
3236
|
+
(do (shen-unbindv V1387 V1515) Result)))
|
3237
|
+
false))))
|
3238
|
+
(if (shen-pvar? V1386)
|
3239
|
+
(let A (shen-newpv V1515)
|
3240
|
+
(do (shen-bindv V1386 (cons A ()) V1515)
|
3241
|
+
(let Result
|
3242
|
+
(do (shen-incinfs)
|
3243
|
+
(cut Throwcontrol V1515
|
3244
|
+
(freeze (shen-th* Result A V1514 V1515 V1516))))
|
3245
|
+
(do (shen-unbindv V1386 V1515) Result))))
|
3246
|
+
false)))
|
3247
|
+
(if (shen-pvar? V1385)
|
3248
|
+
(do (shen-bindv V1385 --> V1515)
|
3249
|
+
(let Result
|
3250
|
+
(let V1388 (shen-lazyderef (tl V1384) V1515)
|
3251
|
+
(if (cons? V1388)
|
3252
|
+
(let A (hd V1388)
|
3253
|
+
(let V1389 (shen-lazyderef (tl V1388) V1515)
|
3254
|
+
(if (= () V1389)
|
3255
|
+
(do (shen-incinfs)
|
3256
|
+
(cut Throwcontrol V1515
|
3257
|
+
(freeze (shen-th* Result A V1514 V1515 V1516))))
|
3258
|
+
(if (shen-pvar? V1389)
|
3259
|
+
(do (shen-bindv V1389 () V1515)
|
3260
|
+
(let Result
|
3261
|
+
(do (shen-incinfs)
|
3262
|
+
(cut Throwcontrol V1515
|
3263
|
+
(freeze (shen-th* Result A V1514 V1515 V1516))))
|
3264
|
+
(do (shen-unbindv V1389 V1515) Result)))
|
3265
|
+
false))))
|
3266
|
+
(if (shen-pvar? V1388)
|
3267
|
+
(let A (shen-newpv V1515)
|
3268
|
+
(do (shen-bindv V1388 (cons A ()) V1515)
|
3269
|
+
(let Result
|
3270
|
+
(do (shen-incinfs)
|
3271
|
+
(cut Throwcontrol V1515
|
3272
|
+
(freeze (shen-th* Result A V1514 V1515 V1516))))
|
3273
|
+
(do (shen-unbindv V1388 V1515) Result))))
|
3274
|
+
false)))
|
3275
|
+
(do (shen-unbindv V1385 V1515) Result)))
|
3276
|
+
false)))
|
3277
|
+
(if (shen-pvar? V1384)
|
3278
|
+
(let A (shen-newpv V1515)
|
3279
|
+
(do (shen-bindv V1384 (cons --> (cons A ())) V1515)
|
3280
|
+
(let Result
|
3281
|
+
(do (shen-incinfs)
|
3282
|
+
(cut Throwcontrol V1515
|
3283
|
+
(freeze (shen-th* Result A V1514 V1515 V1516))))
|
3284
|
+
(do (shen-unbindv V1384 V1515) Result))))
|
3285
|
+
false)))
|
3286
|
+
false)))
|
3287
|
+
false))
|
3288
|
+
false))
|
3289
|
+
false))
|
3290
|
+
(if (= Case false)
|
3291
|
+
(let V1390 (shen-lazyderef V1512 V1515)
|
3292
|
+
(if (cons? V1390)
|
3293
|
+
(let Patterns (hd V1390)
|
3294
|
+
(let V1391 (shen-lazyderef (tl V1390) V1515)
|
3295
|
+
(if (cons? V1391)
|
3296
|
+
(let Result (hd V1391)
|
3297
|
+
(let V1392 (shen-lazyderef (tl V1391) V1515)
|
3298
|
+
(if (= () V1392)
|
3299
|
+
(let NewHyp (shen-newpv V1515)
|
3300
|
+
(let B (shen-newpv V1515)
|
3301
|
+
(let AllHyp (shen-newpv V1515)
|
3302
|
+
(do (shen-incinfs)
|
3303
|
+
(shen-t*-patterns Patterns V1513 NewHyp B V1515
|
3098
3304
|
(freeze
|
3099
|
-
(
|
3305
|
+
(cut Throwcontrol V1515
|
3100
3306
|
(freeze
|
3101
|
-
(
|
3102
|
-
(freeze
|
3103
|
-
|
3104
|
-
|
3105
|
-
|
3307
|
+
(shen-conc NewHyp V1514 AllHyp V1515
|
3308
|
+
(freeze
|
3309
|
+
(cut Throwcontrol V1515
|
3310
|
+
(freeze
|
3311
|
+
(shen-th* Result B AllHyp V1515 V1516)))))))))))))
|
3312
|
+
false)))
|
3313
|
+
false)))
|
3314
|
+
false))
|
3315
|
+
Case)))))
|
3106
3316
|
|
3107
3317
|
(defun shen-type-insecure-rule-error-message (V896 V897)
|
3108
3318
|
(interror "type error in rule ~A of ~A~%" (@p V896 (@p V897 ()))))
|