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.
@@ -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* (V786 V787 V788 V789 V790)
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 V786 (cons : (cons V787 ()))) V788 V789
143
- (freeze (fwhen false V789 V790))))
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 V789)
146
+ (let F (shen-newpv V1510)
147
147
  (do (shen-incinfs)
148
- (fwhen (shen-typedf? (shen-lazyderef V786 V789)) V789
148
+ (fwhen (shen-typedf? (shen-lazyderef V1507 V1510)) V1510
149
149
  (freeze
150
- (bind F (shen-sigf (shen-lazyderef V786 V789)) V789
151
- (freeze (call (cons F (cons V787 ())) V789 V790)))))))
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 V786 V787 V789 V790))
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) (shen-by_hypothesis V786 V787 V788 V789 V790))
156
+ (do (shen-incinfs)
157
+ (shen-by_hypothesis V1507 V1508 V1509 V1510 V1511))
157
158
  (if (= Case false)
158
159
  (let Case
159
- (let V678 (shen-lazyderef V786 V789)
160
- (if (cons? V678)
161
- (let F (hd V678)
162
- (let V679 (shen-lazyderef (tl V678) V789)
163
- (if (cons? V679)
164
- (let X (hd V679)
165
- (let V680 (shen-lazyderef (tl V679) V789)
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 V681 (shen-lazyderef V786 V789)
177
- (if (cons? V681)
178
- (let V682 (shen-lazyderef (hd V681) V789)
179
- (if (= cons V682)
180
- (let V683 (shen-lazyderef (tl V681) V789)
181
- (if (cons? V683)
182
- (let X (hd V683)
183
- (let V684 (shen-lazyderef (tl V683) V789)
184
- (if (cons? V684)
185
- (let Y (hd V684)
186
- (let V685 (shen-lazyderef (tl V684) V789)
187
- (if (= () V685)
188
- (let V686 (shen-lazyderef V787 V789)
189
- (if (cons? V686)
190
- (let V687 (shen-lazyderef (hd V686) V789)
191
- (if (= list V687)
192
- (let V688 (shen-lazyderef (tl V686) V789)
193
- (if (cons? V688)
194
- (let A (hd V688)
195
- (let V689 (shen-lazyderef (tl V688) V789)
196
- (if (= () V689)
197
- (do (shen-incinfs)
198
- (shen-th* X A V788 V789
199
- (freeze
200
- (shen-th* Y (cons list (cons A ())) V788
201
- V789 V790))))
202
- (if (shen-pvar? V689)
203
- (do (shen-bindv V689 () V789)
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 V788 V789
230
+ (shen-th* X A V1509 V1510
207
231
  (freeze
208
232
  (shen-th* Y (cons list (cons A ()))
209
- V788 V789 V790))))
210
- (do (shen-unbindv V689 V789) Result)))
211
- false))))
212
- (if (shen-pvar? V688)
213
- (let A (shen-newpv V789)
214
- (do (shen-bindv V688 (cons A ()) V789)
215
- (let Result
216
- (do (shen-incinfs)
217
- (shen-th* X A V788 V789
218
- (freeze
219
- (shen-th* Y (cons list (cons A ()))
220
- V788 V789 V790))))
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 V788 V789
246
+ (shen-th* X A V1509 V1510
305
247
  (freeze
306
- (shen-th* Y B V788 V789 V790))))
307
- (if (shen-pvar? V701)
308
- (do (shen-bindv V701 () V789)
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 V788 V789
254
+ (shen-th* X A V1509 V1510
312
255
  (freeze
313
- (shen-th* Y B V788 V789 V790))))
314
- (do (shen-unbindv V701 V789)
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? V700)
318
- (let B (shen-newpv V789)
319
- (do (shen-bindv V700 (cons B ()) V789)
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 V788 V789
268
+ (shen-th* X A V1509 V1510
323
269
  (freeze
324
- (shen-th* Y B V788 V789 V790))))
325
- (do (shen-unbindv V700 V789)
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
- (if (shen-pvar? V699)
329
- (do (shen-bindv V699 * V789)
330
- (let Result
331
- (let V702 (shen-lazyderef (tl V698) V789)
332
- (if (cons? V702)
333
- (let B (hd V702)
334
- (let V703
335
- (shen-lazyderef (tl V702) V789)
336
- (if (= () V703)
337
- (do (shen-incinfs)
338
- (shen-th* X A V788 V789
339
- (freeze
340
- (shen-th* Y B V788 V789 V790))))
341
- (if (shen-pvar? V703)
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 V704 (shen-lazyderef V786 V789)
397
- (if (cons? V704)
398
- (let V705 (shen-lazyderef (hd V704) V789)
399
- (if (= @v V705)
400
- (let V706 (shen-lazyderef (tl V704) V789)
401
- (if (cons? V706)
402
- (let X (hd V706)
403
- (let V707 (shen-lazyderef (tl V706) V789)
404
- (if (cons? V707)
405
- (let Y (hd V707)
406
- (let V708 (shen-lazyderef (tl V707) V789)
407
- (if (= () V708)
408
- (let V709 (shen-lazyderef V787 V789)
409
- (if (cons? V709)
410
- (let V710 (shen-lazyderef (hd V709) V789)
411
- (if (= vector V710)
412
- (let V711 (shen-lazyderef (tl V709) V789)
413
- (if (cons? V711)
414
- (let A (hd V711)
415
- (let V712 (shen-lazyderef (tl V711) V789)
416
- (if (= () V712)
417
- (do (shen-incinfs)
418
- (shen-th* X A V788 V789
419
- (freeze
420
- (shen-th* Y
421
- (cons vector (cons A ())) V788 V789
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 V788 V789
325
+ (shen-th* X A V1509 V1510
458
326
  (freeze
459
- (shen-th* Y
460
- (cons vector (cons A ())) V788
461
- V789 V790))))
462
- (if (shen-pvar? V714)
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 V788 V789
333
+ (shen-th* X A V1509 V1510
467
334
  (freeze
468
- (shen-th* Y
469
- (cons vector (cons A ()))
470
- V788 V789 V790))))
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? V713)
475
- (let A (shen-newpv V789)
340
+ (if (shen-pvar? V1421)
341
+ (let B (shen-newpv V1510)
476
342
  (do
477
- (shen-bindv V713 (cons A ()) V789)
343
+ (shen-bindv V1421 (cons B ()) V1510)
478
344
  (let Result
479
345
  (do (shen-incinfs)
480
- (shen-th* X A V788 V789
346
+ (shen-th* X A V1509 V1510
481
347
  (freeze
482
- (shen-th* Y
483
- (cons vector (cons A ())) V788
484
- V789 V790))))
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
- (do (shen-unbindv V710 V789) Result)))
489
- false)))
490
- (if (shen-pvar? V709)
491
- (let A (shen-newpv V789)
492
- (do
493
- (shen-bindv V709 (cons vector (cons A ()))
494
- V789)
495
- (let Result
496
- (do (shen-incinfs)
497
- (shen-th* X A V788 V789
498
- (freeze
499
- (shen-th* Y (cons vector (cons A ()))
500
- V788 V789 V790))))
501
- (do (shen-unbindv V709 V789) Result))))
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 V715 (shen-lazyderef V786 V789)
511
- (if (cons? V715)
512
- (let V716 (shen-lazyderef (hd V715) V789)
513
- (if (= @s V716)
514
- (let V717 (shen-lazyderef (tl V715) V789)
515
- (if (cons? V717)
516
- (let X (hd V717)
517
- (let V718 (shen-lazyderef (tl V717) V789)
518
- (if (cons? V718)
519
- (let Y (hd V718)
520
- (let V719 (shen-lazyderef (tl V718) V789)
521
- (if (= () V719)
522
- (let V720 (shen-lazyderef V787 V789)
523
- (if (= string V720)
524
- (do (shen-incinfs)
525
- (shen-th* X string V788 V789
526
- (freeze
527
- (shen-th* Y string V788 V789 V790))))
528
- (if (shen-pvar? V720)
529
- (do (shen-bindv V720 string V789)
530
- (let Result
531
- (do (shen-incinfs)
532
- (shen-th* X string V788 V789
533
- (freeze
534
- (shen-th* Y string V788 V789 V790))))
535
- (do (shen-unbindv V720 V789) Result)))
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 V721 (shen-lazyderef V786 V789)
545
- (if (cons? V721)
546
- (let V722 (shen-lazyderef (hd V721) V789)
547
- (if (= lambda V722)
548
- (let V723 (shen-lazyderef (tl V721) V789)
549
- (if (cons? V723)
550
- (let X (hd V723)
551
- (let V724 (shen-lazyderef (tl V723) V789)
552
- (if (cons? V724)
553
- (let Y (hd V724)
554
- (let V725 (shen-lazyderef (tl V724) V789)
555
- (if (= () V725)
556
- (let V726 (shen-lazyderef V787 V789)
557
- (if (cons? V726)
558
- (let A (hd V726)
559
- (let V727 (shen-lazyderef (tl V726) V789)
560
- (if (cons? V727)
561
- (let V728
562
- (shen-lazyderef (hd V727) V789)
563
- (if (= --> V728)
564
- (let V729
565
- (shen-lazyderef (tl V727) V789)
566
- (if (cons? V729)
567
- (let B (hd V729)
568
- (let V730
569
- (shen-lazyderef (tl V729) V789)
570
- (if (= () V730)
571
- (let Z (shen-newpv V789)
572
- (let X&& (shen-newpv V789)
573
- (do (shen-incinfs)
574
- (cut Throwcontrol V789
575
- (freeze
576
- (bind X&& (shen-placeholder)
577
- V789
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 Z
580
- (shen-ebr
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
- (shen-th* Z B
588
- (cons
589
- (cons X&&
590
- (cons :
591
- (cons A ())))
592
- V788)
593
- V789 V790))))))))))
594
- (if (shen-pvar? V730)
595
- (do (shen-bindv V730 () V789)
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 V789)
598
- (let X&& (shen-newpv V789)
679
+ (let Z (shen-newpv V1510)
680
+ (let X&& (shen-newpv V1510)
599
681
  (do (shen-incinfs)
600
- (cut Throwcontrol V789
682
+ (cut Throwcontrol V1510
601
683
  (freeze
602
684
  (bind X&&
603
- (shen-placeholder) V789
685
+ (shen-placeholder) V1510
604
686
  (freeze
605
687
  (bind Z
606
688
  (shen-ebr
607
689
  (shen-lazyderef X&&
608
- V789)
690
+ V1510)
609
691
  (shen-lazyderef X
610
- V789)
692
+ V1510)
611
693
  (shen-lazyderef Y
612
- V789))
613
- V789
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
- V788)
621
- V789 V790))))))))))
622
- (do (shen-unbindv V730 V789)
623
- Result)))
624
- false))))
625
- (if (shen-pvar? V729)
626
- (let B (shen-newpv V789)
627
- (do
628
- (shen-bindv V729 (cons B ())
629
- V789)
630
- (let Result
631
- (let Z (shen-newpv V789)
632
- (let X&& (shen-newpv V789)
633
- (do (shen-incinfs)
634
- (cut Throwcontrol V789
635
- (freeze
636
- (bind X&&
637
- (shen-placeholder) V789
638
- (freeze
639
- (bind Z
640
- (shen-ebr
641
- (shen-lazyderef X&&
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 Z
677
- (shen-ebr
678
- (shen-lazyderef X&&
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
- (shen-th* Z B
687
- (cons
688
- (cons X&&
689
- (cons :
690
- (cons A ())))
691
- V788)
692
- V789 V790))))))))))
693
- (if (shen-pvar? V732)
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 V732 () V789)
790
+ (shen-bindv V1452
791
+ (cons B ()) V1510)
696
792
  (let Result
697
- (let Z (shen-newpv V789)
698
- (let X&& (shen-newpv V789)
793
+ (let Z (shen-newpv V1510)
794
+ (let X&&
795
+ (shen-newpv V1510)
699
796
  (do (shen-incinfs)
700
- (cut Throwcontrol V789
797
+ (cut Throwcontrol V1510
701
798
  (freeze
702
799
  (bind X&&
703
800
  (shen-placeholder)
704
- V789
801
+ V1510
705
802
  (freeze
706
803
  (bind Z
707
804
  (shen-ebr
708
805
  (shen-lazyderef
709
- X&& V789)
806
+ X&& V1510)
710
807
  (shen-lazyderef X
711
- V789)
808
+ V1510)
712
809
  (shen-lazyderef Y
713
- V789))
714
- V789
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
- V788)
722
- V789
723
- V790))))))))))
818
+ V1509)
819
+ V1510
820
+ V1511))))))))))
724
821
  (do
725
- (shen-unbindv V732 V789)
726
- Result)))
727
- false))))
728
- (if (shen-pvar? V731)
729
- (let B (shen-newpv V789)
730
- (do
731
- (shen-bindv V731 (cons B ())
732
- V789)
733
- (let Result
734
- (let Z (shen-newpv V789)
735
- (let X&& (shen-newpv V789)
736
- (do (shen-incinfs)
737
- (cut Throwcontrol V789
738
- (freeze
739
- (bind X&&
740
- (shen-placeholder) V789
741
- (freeze
742
- (bind Z
743
- (shen-ebr
744
- (shen-lazyderef X&&
745
- V789)
746
- (shen-lazyderef X
747
- V789)
748
- (shen-lazyderef Y
749
- V789))
750
- V789
751
- (freeze
752
- (shen-th* Z B
753
- (cons
754
- (cons X&&
755
- (cons :
756
- (cons A ())))
757
- V788)
758
- V789 V790))))))))))
759
- (do (shen-unbindv V731 V789)
760
- Result))))
761
- false)))
762
- (do (shen-unbindv V728 V789)
763
- Result)))
764
- false)))
765
- (if (shen-pvar? V727)
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 V727
769
- (cons --> (cons B ())) V789)
864
+ (shen-bindv V1447
865
+ (cons A (cons --> (cons B ())))
866
+ V1510)
770
867
  (let Result
771
- (let Z (shen-newpv V789)
772
- (let X&& (shen-newpv V789)
868
+ (let Z (shen-newpv V1510)
869
+ (let X&& (shen-newpv V1510)
773
870
  (do (shen-incinfs)
774
- (cut Throwcontrol V789
871
+ (cut Throwcontrol V1510
775
872
  (freeze
776
873
  (bind X&& (shen-placeholder)
777
- V789
874
+ V1510
778
875
  (freeze
779
876
  (bind Z
780
877
  (shen-ebr
781
- (shen-lazyderef X&& V789)
782
- (shen-lazyderef X V789)
783
- (shen-lazyderef Y V789))
784
- V789
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
- V788)
791
- V789 V790))))))))))
792
- (do (shen-unbindv V727 V789)
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 V739 (shen-lazyderef V786 V789)
880
- (if (cons? V739)
881
- (let V740 (shen-lazyderef (hd V739) V789)
882
- (if (= open V740)
883
- (let V741 (shen-lazyderef (tl V739) V789)
884
- (if (cons? V741)
885
- (let V742 (shen-lazyderef (hd V741) V789)
886
- (if (= file V742)
887
- (let V743 (shen-lazyderef (tl V741) V789)
888
- (if (cons? V743)
889
- (let FileName (hd V743)
890
- (let V744 (shen-lazyderef (tl V743) V789)
891
- (if (cons? V744)
892
- (let Direction674 (hd V744)
893
- (let V745
894
- (shen-lazyderef (tl V744) V789)
895
- (if (= () V745)
896
- (let V746 (shen-lazyderef V787 V789)
897
- (if (cons? V746)
898
- (let V747
899
- (shen-lazyderef (hd V746) V789)
900
- (if (= stream V747)
901
- (let V748
902
- (shen-lazyderef (tl V746) V789)
903
- (if (cons? V748)
904
- (let Direction (hd V748)
905
- (let V749
906
- (shen-lazyderef (tl V748)
907
- V789)
908
- (if (= () V749)
909
- (do (shen-incinfs)
910
- (unify! Direction
911
- Direction674 V789
912
- (freeze
913
- (cut Throwcontrol V789
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
- (shen-th* FileName
916
- string V788 V789
917
- V790))))))
918
- (if (shen-pvar? V749)
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 V749 () V789)
1017
+ (shen-bindv V1469
1018
+ (cons Direction ())
1019
+ V1510)
921
1020
  (let Result
922
1021
  (do (shen-incinfs)
923
1022
  (unify! Direction
924
- Direction674 V789
1023
+ Direction1393 V1510
925
1024
  (freeze
926
- (cut Throwcontrol V789
1025
+ (cut Throwcontrol
1026
+ V1510
927
1027
  (freeze
928
1028
  (shen-th* FileName
929
- string V788 V789
930
- V790))))))
1029
+ string V1509 V1510
1030
+ V1511))))))
931
1031
  (do
932
- (shen-unbindv V749 V789)
933
- Result)))
934
- false))))
935
- (if (shen-pvar? V748)
936
- (let Direction
937
- (shen-newpv V789)
938
- (do
939
- (shen-bindv V748
940
- (cons Direction ()) V789)
941
- (let Result
942
- (do (shen-incinfs)
943
- (unify! Direction
944
- Direction674 V789
945
- (freeze
946
- (cut Throwcontrol V789
947
- (freeze
948
- (shen-th* FileName
949
- string V788 V789
950
- V790))))))
951
- (do
952
- (shen-unbindv V748 V789)
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
- (shen-th* FileName
975
- string V788 V789
976
- V790))))))
977
- (if (shen-pvar? V751)
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 V751 ()
980
- V789)
1087
+ (shen-bindv V1471
1088
+ (cons Direction ())
1089
+ V1510)
981
1090
  (let Result
982
1091
  (do (shen-incinfs)
983
1092
  (unify! Direction
984
- Direction674 V789
1093
+ Direction1393 V1510
985
1094
  (freeze
986
1095
  (cut Throwcontrol
987
- V789
1096
+ V1510
988
1097
  (freeze
989
1098
  (shen-th*
990
1099
  FileName string
991
- V788 V789
992
- V790))))))
1100
+ V1509 V1510
1101
+ V1511))))))
993
1102
  (do
994
- (shen-unbindv V751
995
- V789)
996
- Result)))
997
- false))))
998
- (if (shen-pvar? V750)
999
- (let Direction
1000
- (shen-newpv V789)
1001
- (do
1002
- (shen-bindv V750
1003
- (cons Direction ())
1004
- V789)
1005
- (let Result
1006
- (do (shen-incinfs)
1007
- (unify! Direction
1008
- Direction674 V789
1009
- (freeze
1010
- (cut Throwcontrol
1011
- V789
1012
- (freeze
1013
- (shen-th* FileName
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
- (shen-th* FileName string
1039
- V788 V789 V790))))))
1040
- (do (shen-unbindv V746 V789)
1041
- Result))))
1042
- false)))
1043
- false)))
1044
- false)))
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 V757 (shen-lazyderef V786 V789)
1078
- (if (cons? V757)
1079
- (let V758 (shen-lazyderef (hd V757) V789)
1080
- (if (= input+ V758)
1081
- (let V759 (shen-lazyderef (tl V757) V789)
1082
- (if (cons? V759)
1083
- (let V760 (shen-lazyderef (hd V759) V789)
1084
- (if (= : V760)
1085
- (let V761 (shen-lazyderef (tl V759) V789)
1086
- (if (cons? V761)
1087
- (let A (hd V761)
1088
- (let V762
1089
- (shen-lazyderef (tl V761) V789)
1090
- (if (= () V762)
1091
- (let C (shen-newpv V789)
1092
- (do (shen-incinfs)
1093
- (bind C
1094
- (shen-normalise-type
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
- (unify V787 C V789 V790)))))
1099
- false)))
1100
- false))
1101
- false))
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 V763 (shen-lazyderef V786 V789)
1108
- (if (cons? V763)
1109
- (let V764 (shen-lazyderef (hd V763) V789)
1110
- (if (= where V764)
1111
- (let V765 (shen-lazyderef (tl V763) V789)
1112
- (if (cons? V765)
1113
- (let P (hd V765)
1114
- (let V766
1115
- (shen-lazyderef (tl V765) V789)
1116
- (if (cons? V766)
1117
- (let X (hd V766)
1118
- (let V767
1119
- (shen-lazyderef (tl V766) V789)
1120
- (if (= () V767)
1121
- (do (shen-incinfs)
1122
- (cut Throwcontrol V789
1123
- (freeze
1124
- (shen-th* P boolean V788 V789
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
- (cut Throwcontrol V789
1127
- (freeze
1128
- (shen-th* X V787
1129
- (cons
1130
- (cons P
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 V768 (shen-lazyderef V786 V789)
1143
- (if (cons? V768)
1144
- (let V769 (shen-lazyderef (hd V768) V789)
1145
- (if (= set V769)
1146
- (let V770 (shen-lazyderef (tl V768) V789)
1147
- (if (cons? V770)
1148
- (let Var (hd V770)
1149
- (let V771
1150
- (shen-lazyderef (tl V770) V789)
1151
- (if (cons? V771)
1152
- (let Val (hd V771)
1153
- (let V772
1154
- (shen-lazyderef (tl V771) V789)
1155
- (if (= () V772)
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 V789
1221
+ (cut Throwcontrol V1510
1158
1222
  (freeze
1159
- (shen-th*
1160
- (cons value (cons Var ()))
1161
- V787 V788 V789
1223
+ (shen-th* P boolean V1509
1224
+ V1510
1162
1225
  (freeze
1163
- (shen-th* Val V787 V788 V789
1164
- V790))))))
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 V773 (shen-lazyderef V786 V789)
1173
- (if (cons? V773)
1174
- (let V774 (shen-lazyderef (hd V773) V789)
1175
- (if (= fail V774)
1176
- (let V775
1177
- (shen-lazyderef (tl V773) V789)
1178
- (if (= () V775)
1179
- (let V776 (shen-lazyderef V787 V789)
1180
- (if (= symbol V776)
1181
- (do (shen-incinfs) (thaw V790))
1182
- (if (shen-pvar? V776)
1183
- (do (shen-bindv V776 symbol V789)
1184
- (let Result
1185
- (do (shen-incinfs) (thaw V790))
1186
- (do (shen-unbindv V776 V789)
1187
- Result)))
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 NewHyp (shen-newpv V789)
1195
- (do (shen-incinfs)
1196
- (shen-t*-hyps V788 NewHyp V789
1197
- (freeze
1198
- (shen-th* V786 V787 NewHyp V789
1199
- V790)))))
1200
- (if (= Case false)
1201
- (let Case
1202
- (let V777 (shen-lazyderef V786 V789)
1203
- (if (cons? V777)
1204
- (let V778
1205
- (shen-lazyderef (hd V777) V789)
1206
- (if (= define V778)
1207
- (let V779
1208
- (shen-lazyderef (tl V777) V789)
1209
- (if (cons? V779)
1210
- (let F (hd V779)
1211
- (let X (tl V779)
1212
- (do (shen-incinfs)
1213
- (cut Throwcontrol V789
1214
- (freeze
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 V780 (shen-lazyderef V786 V789)
1224
- (if (cons? V780)
1225
- (let V781
1226
- (shen-lazyderef (hd V780) V789)
1227
- (if (= shen-process-datatype V781)
1228
- (let V782
1229
- (shen-lazyderef V787 V789)
1230
- (if (= symbol V782)
1231
- (do (shen-incinfs) (thaw V790))
1232
- (if (shen-pvar? V782)
1233
- (do
1234
- (shen-bindv V782 symbol V789)
1235
- (let Result
1236
- (do (shen-incinfs)
1237
- (thaw V790))
1238
- (do (shen-unbindv V782 V789)
1239
- Result)))
1240
- false)))
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 V783
1246
- (shen-lazyderef V786 V789)
1247
- (if (cons? V783)
1248
- (let V784
1249
- (shen-lazyderef (hd V783) V789)
1250
- (if (= shen-synonyms-help V784)
1251
- (let V785
1252
- (shen-lazyderef V787 V789)
1253
- (if (= symbol V785)
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 V790))
1256
- (if (shen-pvar? V785)
1345
+ (thaw V1511))
1346
+ (if (shen-pvar? V1503)
1257
1347
  (do
1258
- (shen-bindv V785 symbol
1259
- V789)
1348
+ (shen-bindv V1503 symbol
1349
+ V1510)
1260
1350
  (let Result
1261
1351
  (do (shen-incinfs)
1262
- (thaw V790))
1352
+ (thaw V1511))
1263
1353
  (do
1264
- (shen-unbindv V785 V789)
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 Datatypes (shen-newpv V789)
1271
- (do (shen-incinfs)
1272
- (bind Datatypes
1273
- (value shen-*datatypes*) V789
1274
- (freeze
1275
- (shen-udefs*
1276
- (cons V786
1277
- (cons : (cons V787 ())))
1278
- V788 Datatypes V789 V790)))))
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 (V891 V892 V893 V894 V895)
3205
+ (defun shen-t*-ruleh (V1512 V1513 V1514 V1515 V1516)
3081
3206
  (let Throwcontrol (shen-catchpoint)
3082
3207
  (shen-cutpoint Throwcontrol
3083
- (let V503 (shen-lazyderef V891 V894)
3084
- (if (cons? V503)
3085
- (let Patterns (hd V503)
3086
- (let V504 (shen-lazyderef (tl V503) V894)
3087
- (if (cons? V504)
3088
- (let Result (hd V504)
3089
- (let V505 (shen-lazyderef (tl V504) V894)
3090
- (if (= () V505)
3091
- (let NewHyp (shen-newpv V894)
3092
- (let B (shen-newpv V894)
3093
- (let AllHyp (shen-newpv V894)
3094
- (do (shen-incinfs)
3095
- (shen-t*-patterns Patterns V892 NewHyp B V894
3096
- (freeze
3097
- (cut Throwcontrol V894
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
- (shen-conc NewHyp V893 AllHyp V894
3305
+ (cut Throwcontrol V1515
3100
3306
  (freeze
3101
- (cut Throwcontrol V894
3102
- (freeze (shen-th* Result B AllHyp V894 V895)))))))))))))
3103
- false)))
3104
- false)))
3105
- false)))))
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 ()))))