shen/release/k_lambda/t-star.kl in shen-ruby-0.2.0 vs shen/release/k_lambda/t-star.kl in shen-ruby-0.3.0

- old
+ new

@@ -132,1152 +132,1277 @@ (let Ds (tl V750) (do (shen-incinfs) (shen-udefs* V773 V774 Ds V776 V777))) false)) Case))) -(defun shen-th* (V786 V787 V788 V789 V790) +(defun shen-th* (V1507 V1508 V1509 V1510 V1511) (let Throwcontrol (shen-catchpoint) (shen-cutpoint Throwcontrol (let Case (do (shen-incinfs) - (shen-show (cons V786 (cons : (cons V787 ()))) V788 V789 - (freeze (fwhen false V789 V790)))) + (shen-show (cons V1507 (cons : (cons V1508 ()))) V1509 V1510 + (freeze (fwhen false V1510 V1511)))) (if (= Case false) (let Case - (let F (shen-newpv V789) + (let F (shen-newpv V1510) (do (shen-incinfs) - (fwhen (shen-typedf? (shen-lazyderef V786 V789)) V789 + (fwhen (shen-typedf? (shen-lazyderef V1507 V1510)) V1510 (freeze - (bind F (shen-sigf (shen-lazyderef V786 V789)) V789 - (freeze (call (cons F (cons V787 ())) V789 V790))))))) + (bind F (shen-sigf (shen-lazyderef V1507 V1510)) V1510 + (freeze (call (cons F (cons V1508 ())) V1510 V1511))))))) (if (= Case false) - (let Case (do (shen-incinfs) (shen-base V786 V787 V789 V790)) + (let Case (do (shen-incinfs) (shen-base V1507 V1508 V1510 V1511)) (if (= Case false) (let Case - (do (shen-incinfs) (shen-by_hypothesis V786 V787 V788 V789 V790)) + (do (shen-incinfs) + (shen-by_hypothesis V1507 V1508 V1509 V1510 V1511)) (if (= Case false) (let Case - (let V678 (shen-lazyderef V786 V789) - (if (cons? V678) - (let F (hd V678) - (let V679 (shen-lazyderef (tl V678) V789) - (if (cons? V679) - (let X (hd V679) - (let V680 (shen-lazyderef (tl V679) V789) - (if (= () V680) - (let B (shen-newpv V789) - (do (shen-incinfs) - (shen-th* F (cons B (cons --> (cons V787 ()))) V788 V789 - (freeze (shen-th* X B V788 V789 V790))))) - false))) + (let V1397 (shen-lazyderef V1507 V1510) + (if (cons? V1397) + (let F (hd V1397) + (let V1398 (shen-lazyderef (tl V1397) V1510) + (if (= () V1398) + (do (shen-incinfs) + (shen-th* F (cons --> (cons V1508 ())) V1509 V1510 V1511)) false))) false)) (if (= Case false) (let Case - (let V681 (shen-lazyderef V786 V789) - (if (cons? V681) - (let V682 (shen-lazyderef (hd V681) V789) - (if (= cons V682) - (let V683 (shen-lazyderef (tl V681) V789) - (if (cons? V683) - (let X (hd V683) - (let V684 (shen-lazyderef (tl V683) V789) - (if (cons? V684) - (let Y (hd V684) - (let V685 (shen-lazyderef (tl V684) V789) - (if (= () V685) - (let V686 (shen-lazyderef V787 V789) - (if (cons? V686) - (let V687 (shen-lazyderef (hd V686) V789) - (if (= list V687) - (let V688 (shen-lazyderef (tl V686) V789) - (if (cons? V688) - (let A (hd V688) - (let V689 (shen-lazyderef (tl V688) V789) - (if (= () V689) - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y (cons list (cons A ())) V788 - V789 V790)))) - (if (shen-pvar? V689) - (do (shen-bindv V689 () V789) + (let V1399 (shen-lazyderef V1507 V1510) + (if (cons? V1399) + (let F (hd V1399) + (let V1400 (shen-lazyderef (tl V1399) V1510) + (if (cons? V1400) + (let X (hd V1400) + (let V1401 (shen-lazyderef (tl V1400) V1510) + (if (= () V1401) + (let B (shen-newpv V1510) + (do (shen-incinfs) + (shen-th* F (cons B (cons --> (cons V1508 ()))) V1509 + V1510 (freeze (shen-th* X B V1509 V1510 V1511))))) + false))) + false))) + false)) + (if (= Case false) + (let Case + (let V1402 (shen-lazyderef V1507 V1510) + (if (cons? V1402) + (let V1403 (shen-lazyderef (hd V1402) V1510) + (if (= cons V1403) + (let V1404 (shen-lazyderef (tl V1402) V1510) + (if (cons? V1404) + (let X (hd V1404) + (let V1405 (shen-lazyderef (tl V1404) V1510) + (if (cons? V1405) + (let Y (hd V1405) + (let V1406 (shen-lazyderef (tl V1405) V1510) + (if (= () V1406) + (let V1407 (shen-lazyderef V1508 V1510) + (if (cons? V1407) + (let V1408 (shen-lazyderef (hd V1407) V1510) + (if (= list V1408) + (let V1409 (shen-lazyderef (tl V1407) V1510) + (if (cons? V1409) + (let A (hd V1409) + (let V1410 (shen-lazyderef (tl V1409) V1510) + (if (= () V1410) + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y (cons list (cons A ())) + V1509 V1510 V1511)))) + (if (shen-pvar? V1410) + (do (shen-bindv V1410 () V1510) + (let Result + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y (cons list (cons A ())) + V1509 V1510 V1511)))) + (do (shen-unbindv V1410 V1510) + Result))) + false)))) + (if (shen-pvar? V1409) + (let A (shen-newpv V1510) + (do (shen-bindv V1409 (cons A ()) V1510) (let Result (do (shen-incinfs) - (shen-th* X A V788 V789 + (shen-th* X A V1509 V1510 (freeze (shen-th* Y (cons list (cons A ())) - V788 V789 V790)))) - (do (shen-unbindv V689 V789) Result))) - false)))) - (if (shen-pvar? V688) - (let A (shen-newpv V789) - (do (shen-bindv V688 (cons A ()) V789) - (let Result - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y (cons list (cons A ())) - V788 V789 V790)))) - (do (shen-unbindv V688 V789) Result)))) - false))) - (if (shen-pvar? V687) - (do (shen-bindv V687 list V789) - (let Result - (let V690 (shen-lazyderef (tl V686) V789) - (if (cons? V690) - (let A (hd V690) - (let V691 (shen-lazyderef (tl V690) V789) - (if (= () V691) - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y (cons list (cons A ())) - V788 V789 V790)))) - (if (shen-pvar? V691) - (do (shen-bindv V691 () V789) - (let Result - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y - (cons list (cons A ())) V788 V789 - V790)))) - (do (shen-unbindv V691 V789) Result))) - false)))) - (if (shen-pvar? V690) - (let A (shen-newpv V789) - (do (shen-bindv V690 (cons A ()) V789) - (let Result - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y (cons list (cons A ())) - V788 V789 V790)))) - (do (shen-unbindv V690 V789) Result)))) - false))) - (do (shen-unbindv V687 V789) Result))) - false))) - (if (shen-pvar? V686) - (let A (shen-newpv V789) - (do - (shen-bindv V686 (cons list (cons A ())) V789) - (let Result - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y (cons list (cons A ())) V788 - V789 V790)))) - (do (shen-unbindv V686 V789) Result)))) - false))) - false))) - false))) - false)) - false)) - false)) - (if (= Case false) - (let Case - (let V692 (shen-lazyderef V786 V789) - (if (cons? V692) - (let V693 (shen-lazyderef (hd V692) V789) - (if (= @p V693) - (let V694 (shen-lazyderef (tl V692) V789) - (if (cons? V694) - (let X (hd V694) - (let V695 (shen-lazyderef (tl V694) V789) - (if (cons? V695) - (let Y (hd V695) - (let V696 (shen-lazyderef (tl V695) V789) - (if (= () V696) - (let V697 (shen-lazyderef V787 V789) - (if (cons? V697) - (let A (hd V697) - (let V698 (shen-lazyderef (tl V697) V789) - (if (cons? V698) - (let V699 (shen-lazyderef (hd V698) V789) - (if (= * V699) - (let V700 (shen-lazyderef (tl V698) V789) - (if (cons? V700) - (let B (hd V700) - (let V701 (shen-lazyderef (tl V700) V789) - (if (= () V701) + V1509 V1510 V1511)))) + (do (shen-unbindv V1409 V1510) Result)))) + false))) + (if (shen-pvar? V1408) + (do (shen-bindv V1408 list V1510) + (let Result + (let V1411 (shen-lazyderef (tl V1407) V1510) + (if (cons? V1411) + (let A (hd V1411) + (let V1412 + (shen-lazyderef (tl V1411) V1510) + (if (= () V1412) (do (shen-incinfs) - (shen-th* X A V788 V789 + (shen-th* X A V1509 V1510 (freeze - (shen-th* Y B V788 V789 V790)))) - (if (shen-pvar? V701) - (do (shen-bindv V701 () V789) + (shen-th* Y (cons list (cons A ())) + V1509 V1510 V1511)))) + (if (shen-pvar? V1412) + (do (shen-bindv V1412 () V1510) (let Result (do (shen-incinfs) - (shen-th* X A V788 V789 + (shen-th* X A V1509 V1510 (freeze - (shen-th* Y B V788 V789 V790)))) - (do (shen-unbindv V701 V789) + (shen-th* Y + (cons list (cons A ())) V1509 + V1510 V1511)))) + (do (shen-unbindv V1412 V1510) Result))) false)))) - (if (shen-pvar? V700) - (let B (shen-newpv V789) - (do (shen-bindv V700 (cons B ()) V789) + (if (shen-pvar? V1411) + (let A (shen-newpv V1510) + (do + (shen-bindv V1411 (cons A ()) V1510) (let Result (do (shen-incinfs) - (shen-th* X A V788 V789 + (shen-th* X A V1509 V1510 (freeze - (shen-th* Y B V788 V789 V790)))) - (do (shen-unbindv V700 V789) + (shen-th* Y + (cons list (cons A ())) V1509 + V1510 V1511)))) + (do (shen-unbindv V1411 V1510) Result)))) false))) - (if (shen-pvar? V699) - (do (shen-bindv V699 * V789) - (let Result - (let V702 (shen-lazyderef (tl V698) V789) - (if (cons? V702) - (let B (hd V702) - (let V703 - (shen-lazyderef (tl V702) V789) - (if (= () V703) - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y B V788 V789 V790)))) - (if (shen-pvar? V703) - (do (shen-bindv V703 () V789) - (let Result - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y B V788 V789 - V790)))) - (do (shen-unbindv V703 V789) - Result))) - false)))) - (if (shen-pvar? V702) - (let B (shen-newpv V789) - (do - (shen-bindv V702 (cons B ()) V789) - (let Result - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y B V788 V789 V790)))) - (do (shen-unbindv V702 V789) - Result)))) - false))) - (do (shen-unbindv V699 V789) Result))) - false))) - (if (shen-pvar? V698) - (let B (shen-newpv V789) - (do - (shen-bindv V698 (cons * (cons B ())) - V789) - (let Result - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze (shen-th* Y B V788 V789 V790)))) - (do (shen-unbindv V698 V789) Result)))) - false)))) - (if (shen-pvar? V697) - (let A (shen-newpv V789) - (let B (shen-newpv V789) - (do - (shen-bindv V697 - (cons A (cons * (cons B ()))) V789) - (let Result - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze (shen-th* Y B V788 V789 V790)))) - (do (shen-unbindv V697 V789) Result))))) + (do (shen-unbindv V1408 V1510) Result))) + false))) + (if (shen-pvar? V1407) + (let A (shen-newpv V1510) + (do + (shen-bindv V1407 (cons list (cons A ())) + V1510) + (let Result + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y (cons list (cons A ())) V1509 + V1510 V1511)))) + (do (shen-unbindv V1407 V1510) Result)))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case - (let V704 (shen-lazyderef V786 V789) - (if (cons? V704) - (let V705 (shen-lazyderef (hd V704) V789) - (if (= @v V705) - (let V706 (shen-lazyderef (tl V704) V789) - (if (cons? V706) - (let X (hd V706) - (let V707 (shen-lazyderef (tl V706) V789) - (if (cons? V707) - (let Y (hd V707) - (let V708 (shen-lazyderef (tl V707) V789) - (if (= () V708) - (let V709 (shen-lazyderef V787 V789) - (if (cons? V709) - (let V710 (shen-lazyderef (hd V709) V789) - (if (= vector V710) - (let V711 (shen-lazyderef (tl V709) V789) - (if (cons? V711) - (let A (hd V711) - (let V712 (shen-lazyderef (tl V711) V789) - (if (= () V712) - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y - (cons vector (cons A ())) V788 V789 - V790)))) - (if (shen-pvar? V712) - (do (shen-bindv V712 () V789) - (let Result + (let V1413 (shen-lazyderef V1507 V1510) + (if (cons? V1413) + (let V1414 (shen-lazyderef (hd V1413) V1510) + (if (= @p V1414) + (let V1415 (shen-lazyderef (tl V1413) V1510) + (if (cons? V1415) + (let X (hd V1415) + (let V1416 (shen-lazyderef (tl V1415) V1510) + (if (cons? V1416) + (let Y (hd V1416) + (let V1417 (shen-lazyderef (tl V1416) V1510) + (if (= () V1417) + (let V1418 (shen-lazyderef V1508 V1510) + (if (cons? V1418) + (let A (hd V1418) + (let V1419 (shen-lazyderef (tl V1418) V1510) + (if (cons? V1419) + (let V1420 (shen-lazyderef (hd V1419) V1510) + (if (= * V1420) + (let V1421 + (shen-lazyderef (tl V1419) V1510) + (if (cons? V1421) + (let B (hd V1421) + (let V1422 + (shen-lazyderef (tl V1421) V1510) + (if (= () V1422) (do (shen-incinfs) - (shen-th* X A V788 V789 + (shen-th* X A V1509 V1510 (freeze - (shen-th* Y - (cons vector (cons A ())) V788 - V789 V790)))) - (do (shen-unbindv V712 V789) - Result))) - false)))) - (if (shen-pvar? V711) - (let A (shen-newpv V789) - (do (shen-bindv V711 (cons A ()) V789) - (let Result - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y - (cons vector (cons A ())) V788 - V789 V790)))) - (do (shen-unbindv V711 V789) Result)))) - false))) - (if (shen-pvar? V710) - (do (shen-bindv V710 vector V789) - (let Result - (let V713 (shen-lazyderef (tl V709) V789) - (if (cons? V713) - (let A (hd V713) - (let V714 - (shen-lazyderef (tl V713) V789) - (if (= () V714) - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y - (cons vector (cons A ())) V788 - V789 V790)))) - (if (shen-pvar? V714) - (do (shen-bindv V714 () V789) + (shen-th* Y B V1509 V1510 + V1511)))) + (if (shen-pvar? V1422) + (do (shen-bindv V1422 () V1510) (let Result (do (shen-incinfs) - (shen-th* X A V788 V789 + (shen-th* X A V1509 V1510 (freeze - (shen-th* Y - (cons vector (cons A ())) - V788 V789 V790)))) - (do (shen-unbindv V714 V789) + (shen-th* Y B V1509 V1510 + V1511)))) + (do (shen-unbindv V1422 V1510) Result))) false)))) - (if (shen-pvar? V713) - (let A (shen-newpv V789) + (if (shen-pvar? V1421) + (let B (shen-newpv V1510) (do - (shen-bindv V713 (cons A ()) V789) + (shen-bindv V1421 (cons B ()) V1510) (let Result (do (shen-incinfs) - (shen-th* X A V788 V789 + (shen-th* X A V1509 V1510 (freeze - (shen-th* Y - (cons vector (cons A ())) V788 - V789 V790)))) - (do (shen-unbindv V713 V789) + (shen-th* Y B V1509 V1510 + V1511)))) + (do (shen-unbindv V1421 V1510) Result)))) false))) - (do (shen-unbindv V710 V789) Result))) - false))) - (if (shen-pvar? V709) - (let A (shen-newpv V789) - (do - (shen-bindv V709 (cons vector (cons A ())) - V789) - (let Result - (do (shen-incinfs) - (shen-th* X A V788 V789 - (freeze - (shen-th* Y (cons vector (cons A ())) - V788 V789 V790)))) - (do (shen-unbindv V709 V789) Result)))) + (if (shen-pvar? V1420) + (do (shen-bindv V1420 * V1510) + (let Result + (let V1423 + (shen-lazyderef (tl V1419) V1510) + (if (cons? V1423) + (let B (hd V1423) + (let V1424 + (shen-lazyderef (tl V1423) V1510) + (if (= () V1424) + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y B V1509 V1510 + V1511)))) + (if (shen-pvar? V1424) + (do (shen-bindv V1424 () V1510) + (let Result + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y B V1509 V1510 + V1511)))) + (do (shen-unbindv V1424 V1510) + Result))) + false)))) + (if (shen-pvar? V1423) + (let B (shen-newpv V1510) + (do + (shen-bindv V1423 (cons B ()) + V1510) + (let Result + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y B V1509 V1510 + V1511)))) + (do (shen-unbindv V1423 V1510) + Result)))) + false))) + (do (shen-unbindv V1420 V1510) + Result))) + false))) + (if (shen-pvar? V1419) + (let B (shen-newpv V1510) + (do + (shen-bindv V1419 (cons * (cons B ())) + V1510) + (let Result + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y B V1509 V1510 V1511)))) + (do (shen-unbindv V1419 V1510) + Result)))) + false)))) + (if (shen-pvar? V1418) + (let A (shen-newpv V1510) + (let B (shen-newpv V1510) + (do + (shen-bindv V1418 + (cons A (cons * (cons B ()))) V1510) + (let Result + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y B V1509 V1510 V1511)))) + (do (shen-unbindv V1418 V1510) Result))))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case - (let V715 (shen-lazyderef V786 V789) - (if (cons? V715) - (let V716 (shen-lazyderef (hd V715) V789) - (if (= @s V716) - (let V717 (shen-lazyderef (tl V715) V789) - (if (cons? V717) - (let X (hd V717) - (let V718 (shen-lazyderef (tl V717) V789) - (if (cons? V718) - (let Y (hd V718) - (let V719 (shen-lazyderef (tl V718) V789) - (if (= () V719) - (let V720 (shen-lazyderef V787 V789) - (if (= string V720) - (do (shen-incinfs) - (shen-th* X string V788 V789 - (freeze - (shen-th* Y string V788 V789 V790)))) - (if (shen-pvar? V720) - (do (shen-bindv V720 string V789) - (let Result - (do (shen-incinfs) - (shen-th* X string V788 V789 - (freeze - (shen-th* Y string V788 V789 V790)))) - (do (shen-unbindv V720 V789) Result))) + (let V1425 (shen-lazyderef V1507 V1510) + (if (cons? V1425) + (let V1426 (shen-lazyderef (hd V1425) V1510) + (if (= @v V1426) + (let V1427 (shen-lazyderef (tl V1425) V1510) + (if (cons? V1427) + (let X (hd V1427) + (let V1428 (shen-lazyderef (tl V1427) V1510) + (if (cons? V1428) + (let Y (hd V1428) + (let V1429 (shen-lazyderef (tl V1428) V1510) + (if (= () V1429) + (let V1430 (shen-lazyderef V1508 V1510) + (if (cons? V1430) + (let V1431 (shen-lazyderef (hd V1430) V1510) + (if (= vector V1431) + (let V1432 + (shen-lazyderef (tl V1430) V1510) + (if (cons? V1432) + (let A (hd V1432) + (let V1433 + (shen-lazyderef (tl V1432) V1510) + (if (= () V1433) + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y + (cons vector (cons A ())) V1509 + V1510 V1511)))) + (if (shen-pvar? V1433) + (do (shen-bindv V1433 () V1510) + (let Result + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y + (cons vector (cons A ())) + V1509 V1510 V1511)))) + (do (shen-unbindv V1433 V1510) + Result))) + false)))) + (if (shen-pvar? V1432) + (let A (shen-newpv V1510) + (do + (shen-bindv V1432 (cons A ()) V1510) + (let Result + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y + (cons vector (cons A ())) V1509 + V1510 V1511)))) + (do (shen-unbindv V1432 V1510) + Result)))) + false))) + (if (shen-pvar? V1431) + (do (shen-bindv V1431 vector V1510) + (let Result + (let V1434 + (shen-lazyderef (tl V1430) V1510) + (if (cons? V1434) + (let A (hd V1434) + (let V1435 + (shen-lazyderef (tl V1434) V1510) + (if (= () V1435) + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y + (cons vector (cons A ())) + V1509 V1510 V1511)))) + (if (shen-pvar? V1435) + (do (shen-bindv V1435 () V1510) + (let Result + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y + (cons vector (cons A ())) + V1509 V1510 V1511)))) + (do (shen-unbindv V1435 V1510) + Result))) + false)))) + (if (shen-pvar? V1434) + (let A (shen-newpv V1510) + (do + (shen-bindv V1434 (cons A ()) + V1510) + (let Result + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y + (cons vector (cons A ())) + V1509 V1510 V1511)))) + (do (shen-unbindv V1434 V1510) + Result)))) + false))) + (do (shen-unbindv V1431 V1510) Result))) + false))) + (if (shen-pvar? V1430) + (let A (shen-newpv V1510) + (do + (shen-bindv V1430 + (cons vector (cons A ())) V1510) + (let Result + (do (shen-incinfs) + (shen-th* X A V1509 V1510 + (freeze + (shen-th* Y (cons vector (cons A ())) + V1509 V1510 V1511)))) + (do (shen-unbindv V1430 V1510) Result)))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case - (let V721 (shen-lazyderef V786 V789) - (if (cons? V721) - (let V722 (shen-lazyderef (hd V721) V789) - (if (= lambda V722) - (let V723 (shen-lazyderef (tl V721) V789) - (if (cons? V723) - (let X (hd V723) - (let V724 (shen-lazyderef (tl V723) V789) - (if (cons? V724) - (let Y (hd V724) - (let V725 (shen-lazyderef (tl V724) V789) - (if (= () V725) - (let V726 (shen-lazyderef V787 V789) - (if (cons? V726) - (let A (hd V726) - (let V727 (shen-lazyderef (tl V726) V789) - (if (cons? V727) - (let V728 - (shen-lazyderef (hd V727) V789) - (if (= --> V728) - (let V729 - (shen-lazyderef (tl V727) V789) - (if (cons? V729) - (let B (hd V729) - (let V730 - (shen-lazyderef (tl V729) V789) - (if (= () V730) - (let Z (shen-newpv V789) - (let X&& (shen-newpv V789) - (do (shen-incinfs) - (cut Throwcontrol V789 - (freeze - (bind X&& (shen-placeholder) - V789 + (let V1436 (shen-lazyderef V1507 V1510) + (if (cons? V1436) + (let V1437 (shen-lazyderef (hd V1436) V1510) + (if (= @s V1437) + (let V1438 (shen-lazyderef (tl V1436) V1510) + (if (cons? V1438) + (let X (hd V1438) + (let V1439 (shen-lazyderef (tl V1438) V1510) + (if (cons? V1439) + (let Y (hd V1439) + (let V1440 (shen-lazyderef (tl V1439) V1510) + (if (= () V1440) + (let V1441 (shen-lazyderef V1508 V1510) + (if (= string V1441) + (do (shen-incinfs) + (shen-th* X string V1509 V1510 + (freeze + (shen-th* Y string V1509 V1510 V1511)))) + (if (shen-pvar? V1441) + (do (shen-bindv V1441 string V1510) + (let Result + (do (shen-incinfs) + (shen-th* X string V1509 V1510 + (freeze + (shen-th* Y string V1509 V1510 + V1511)))) + (do (shen-unbindv V1441 V1510) Result))) + false))) + false))) + false))) + false)) + false)) + false)) + (if (= Case false) + (let Case + (let V1442 (shen-lazyderef V1507 V1510) + (if (cons? V1442) + (let V1443 (shen-lazyderef (hd V1442) V1510) + (if (= lambda V1443) + (let V1444 (shen-lazyderef (tl V1442) V1510) + (if (cons? V1444) + (let X (hd V1444) + (let V1445 (shen-lazyderef (tl V1444) V1510) + (if (cons? V1445) + (let Y (hd V1445) + (let V1446 (shen-lazyderef (tl V1445) V1510) + (if (= () V1446) + (let V1447 (shen-lazyderef V1508 V1510) + (if (cons? V1447) + (let A (hd V1447) + (let V1448 + (shen-lazyderef (tl V1447) V1510) + (if (cons? V1448) + (let V1449 + (shen-lazyderef (hd V1448) V1510) + (if (= --> V1449) + (let V1450 + (shen-lazyderef (tl V1448) V1510) + (if (cons? V1450) + (let B (hd V1450) + (let V1451 + (shen-lazyderef (tl V1450) + V1510) + (if (= () V1451) + (let Z (shen-newpv V1510) + (let X&& (shen-newpv V1510) + (do (shen-incinfs) + (cut Throwcontrol V1510 (freeze - (bind Z - (shen-ebr - (shen-lazyderef X&& - V789) - (shen-lazyderef X V789) - (shen-lazyderef Y V789)) - V789 + (bind X&& + (shen-placeholder) V1510 (freeze - (shen-th* Z B - (cons - (cons X&& - (cons : - (cons A ()))) - V788) - V789 V790)))))))))) - (if (shen-pvar? V730) - (do (shen-bindv V730 () V789) + (bind Z + (shen-ebr + (shen-lazyderef X&& + V1510) + (shen-lazyderef X + V1510) + (shen-lazyderef Y + V1510)) + V1510 + (freeze + (shen-th* Z B + (cons + (cons X&& + (cons : + (cons A ()))) + V1509) + V1510 V1511)))))))))) + (if (shen-pvar? V1451) + (do + (shen-bindv V1451 () V1510) + (let Result + (let Z (shen-newpv V1510) + (let X&& (shen-newpv V1510) + (do (shen-incinfs) + (cut Throwcontrol V1510 + (freeze + (bind X&& + (shen-placeholder) + V1510 + (freeze + (bind Z + (shen-ebr + (shen-lazyderef X&& + V1510) + (shen-lazyderef X + V1510) + (shen-lazyderef Y + V1510)) + V1510 + (freeze + (shen-th* Z B + (cons + (cons X&& + (cons : + (cons A ()))) + V1509) + V1510 + V1511)))))))))) + (do + (shen-unbindv V1451 V1510) + Result))) + false)))) + (if (shen-pvar? V1450) + (let B (shen-newpv V1510) + (do + (shen-bindv V1450 (cons B ()) + V1510) (let Result - (let Z (shen-newpv V789) - (let X&& (shen-newpv V789) + (let Z (shen-newpv V1510) + (let X&& (shen-newpv V1510) (do (shen-incinfs) - (cut Throwcontrol V789 + (cut Throwcontrol V1510 (freeze (bind X&& - (shen-placeholder) V789 + (shen-placeholder) V1510 (freeze (bind Z (shen-ebr (shen-lazyderef X&& - V789) + V1510) (shen-lazyderef X - V789) + V1510) (shen-lazyderef Y - V789)) - V789 + V1510)) + V1510 (freeze (shen-th* Z B (cons (cons X&& (cons : (cons A ()))) - V788) - V789 V790)))))))))) - (do (shen-unbindv V730 V789) - Result))) - false)))) - (if (shen-pvar? V729) - (let B (shen-newpv V789) - (do - (shen-bindv V729 (cons B ()) - V789) - (let Result - (let Z (shen-newpv V789) - (let X&& (shen-newpv V789) - (do (shen-incinfs) - (cut Throwcontrol V789 - (freeze - (bind X&& - (shen-placeholder) V789 - (freeze - (bind Z - (shen-ebr - (shen-lazyderef X&& - V789) - (shen-lazyderef X V789) - (shen-lazyderef Y - V789)) - V789 + V1509) + V1510 + V1511)))))))))) + (do (shen-unbindv V1450 V1510) + Result)))) + false))) + (if (shen-pvar? V1449) + (do (shen-bindv V1449 --> V1510) + (let Result + (let V1452 + (shen-lazyderef (tl V1448) + V1510) + (if (cons? V1452) + (let B (hd V1452) + (let V1453 + (shen-lazyderef (tl V1452) + V1510) + (if (= () V1453) + (let Z (shen-newpv V1510) + (let X&& (shen-newpv V1510) + (do (shen-incinfs) + (cut Throwcontrol V1510 (freeze - (shen-th* Z B - (cons - (cons X&& - (cons : - (cons A ()))) - V788) - V789 V790)))))))))) - (do (shen-unbindv V729 V789) - Result)))) - false))) - (if (shen-pvar? V728) - (do (shen-bindv V728 --> V789) - (let Result - (let V731 - (shen-lazyderef (tl V727) V789) - (if (cons? V731) - (let B (hd V731) - (let V732 - (shen-lazyderef (tl V731) V789) - (if (= () V732) - (let Z (shen-newpv V789) - (let X&& (shen-newpv V789) - (do (shen-incinfs) - (cut Throwcontrol V789 - (freeze - (bind X&& - (shen-placeholder) V789 - (freeze - (bind Z - (shen-ebr - (shen-lazyderef X&& - V789) - (shen-lazyderef X - V789) - (shen-lazyderef Y - V789)) - V789 + (bind X&& + (shen-placeholder) + V1510 (freeze - (shen-th* Z B - (cons - (cons X&& - (cons : - (cons A ()))) - V788) - V789 V790)))))))))) - (if (shen-pvar? V732) + (bind Z + (shen-ebr + (shen-lazyderef X&& + V1510) + (shen-lazyderef X + V1510) + (shen-lazyderef Y + V1510)) + V1510 + (freeze + (shen-th* Z B + (cons + (cons X&& + (cons : + (cons A ()))) + V1509) + V1510 + V1511)))))))))) + (if (shen-pvar? V1453) + (do + (shen-bindv V1453 () + V1510) + (let Result + (let Z (shen-newpv V1510) + (let X&& + (shen-newpv V1510) + (do (shen-incinfs) + (cut Throwcontrol + V1510 + (freeze + (bind X&& + (shen-placeholder) + V1510 + (freeze + (bind Z + (shen-ebr + (shen-lazyderef + X&& V1510) + (shen-lazyderef + X V1510) + (shen-lazyderef + Y V1510)) + V1510 + (freeze + (shen-th* Z B + (cons + (cons X&& + (cons : + (cons A + ()))) + V1509) + V1510 + V1511)))))))))) + (do + (shen-unbindv V1453 + V1510) + Result))) + false)))) + (if (shen-pvar? V1452) + (let B (shen-newpv V1510) (do - (shen-bindv V732 () V789) + (shen-bindv V1452 + (cons B ()) V1510) (let Result - (let Z (shen-newpv V789) - (let X&& (shen-newpv V789) + (let Z (shen-newpv V1510) + (let X&& + (shen-newpv V1510) (do (shen-incinfs) - (cut Throwcontrol V789 + (cut Throwcontrol V1510 (freeze (bind X&& (shen-placeholder) - V789 + V1510 (freeze (bind Z (shen-ebr (shen-lazyderef - X&& V789) + X&& V1510) (shen-lazyderef X - V789) + V1510) (shen-lazyderef Y - V789)) - V789 + V1510)) + V1510 (freeze (shen-th* Z B (cons (cons X&& (cons : (cons A ()))) - V788) - V789 - V790)))))))))) + V1509) + V1510 + V1511)))))))))) (do - (shen-unbindv V732 V789) - Result))) - false)))) - (if (shen-pvar? V731) - (let B (shen-newpv V789) - (do - (shen-bindv V731 (cons B ()) - V789) - (let Result - (let Z (shen-newpv V789) - (let X&& (shen-newpv V789) - (do (shen-incinfs) - (cut Throwcontrol V789 - (freeze - (bind X&& - (shen-placeholder) V789 - (freeze - (bind Z - (shen-ebr - (shen-lazyderef X&& - V789) - (shen-lazyderef X - V789) - (shen-lazyderef Y - V789)) - V789 - (freeze - (shen-th* Z B - (cons - (cons X&& - (cons : - (cons A ()))) - V788) - V789 V790)))))))))) - (do (shen-unbindv V731 V789) - Result)))) - false))) - (do (shen-unbindv V728 V789) - Result))) - false))) - (if (shen-pvar? V727) - (let B (shen-newpv V789) + (shen-unbindv V1452 V1510) + Result)))) + false))) + (do (shen-unbindv V1449 V1510) + Result))) + false))) + (if (shen-pvar? V1448) + (let B (shen-newpv V1510) + (do + (shen-bindv V1448 + (cons --> (cons B ())) V1510) + (let Result + (let Z (shen-newpv V1510) + (let X&& (shen-newpv V1510) + (do (shen-incinfs) + (cut Throwcontrol V1510 + (freeze + (bind X&& (shen-placeholder) + V1510 + (freeze + (bind Z + (shen-ebr + (shen-lazyderef X&& + V1510) + (shen-lazyderef X V1510) + (shen-lazyderef Y V1510)) + V1510 + (freeze + (shen-th* Z B + (cons + (cons X&& + (cons : + (cons A ()))) + V1509) + V1510 V1511)))))))))) + (do (shen-unbindv V1448 V1510) + Result)))) + false)))) + (if (shen-pvar? V1447) + (let A (shen-newpv V1510) + (let B (shen-newpv V1510) (do - (shen-bindv V727 - (cons --> (cons B ())) V789) + (shen-bindv V1447 + (cons A (cons --> (cons B ()))) + V1510) (let Result - (let Z (shen-newpv V789) - (let X&& (shen-newpv V789) + (let Z (shen-newpv V1510) + (let X&& (shen-newpv V1510) (do (shen-incinfs) - (cut Throwcontrol V789 + (cut Throwcontrol V1510 (freeze (bind X&& (shen-placeholder) - V789 + V1510 (freeze (bind Z (shen-ebr - (shen-lazyderef X&& V789) - (shen-lazyderef X V789) - (shen-lazyderef Y V789)) - V789 + (shen-lazyderef X&& V1510) + (shen-lazyderef X V1510) + (shen-lazyderef Y V1510)) + V1510 (freeze (shen-th* Z B (cons (cons X&& (cons : (cons A ()))) - V788) - V789 V790)))))))))) - (do (shen-unbindv V727 V789) - Result)))) - false)))) - (if (shen-pvar? V726) - (let A (shen-newpv V789) - (let B (shen-newpv V789) - (do - (shen-bindv V726 - (cons A (cons --> (cons B ()))) V789) - (let Result - (let Z (shen-newpv V789) - (let X&& (shen-newpv V789) - (do (shen-incinfs) - (cut Throwcontrol V789 - (freeze - (bind X&& (shen-placeholder) V789 - (freeze - (bind Z - (shen-ebr - (shen-lazyderef X&& V789) - (shen-lazyderef X V789) - (shen-lazyderef Y V789)) - V789 - (freeze - (shen-th* Z B - (cons - (cons X&& - (cons : (cons A ()))) - V788) - V789 V790)))))))))) - (do (shen-unbindv V726 V789) - Result))))) - false))) - false))) - false))) - false)) - false)) - false)) - (if (= Case false) - (let Case - (let V733 (shen-lazyderef V786 V789) - (if (cons? V733) - (let V734 (shen-lazyderef (hd V733) V789) - (if (= let V734) - (let V735 (shen-lazyderef (tl V733) V789) - (if (cons? V735) - (let X (hd V735) - (let V736 (shen-lazyderef (tl V735) V789) - (if (cons? V736) - (let Y (hd V736) - (let V737 (shen-lazyderef (tl V736) V789) - (if (cons? V737) - (let Z (hd V737) - (let V738 (shen-lazyderef (tl V737) V789) - (if (= () V738) - (let W (shen-newpv V789) - (let X&& (shen-newpv V789) - (let B (shen-newpv V789) - (do (shen-incinfs) - (cut Throwcontrol V789 - (freeze - (shen-th* Y B V788 V789 - (freeze - (bind X&& (shen-placeholder) - V789 - (freeze - (bind W - (shen-ebr - (shen-lazyderef X&& V789) - (shen-lazyderef X V789) - (shen-lazyderef Z V789)) - V789 - (freeze - (shen-th* W V787 - (cons - (cons X&& - (cons : (cons B ()))) - V788) - V789 V790))))))))))))) + V1509) + V1510 V1511)))))))))) + (do (shen-unbindv V1447 V1510) + Result))))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case - (let V739 (shen-lazyderef V786 V789) - (if (cons? V739) - (let V740 (shen-lazyderef (hd V739) V789) - (if (= open V740) - (let V741 (shen-lazyderef (tl V739) V789) - (if (cons? V741) - (let V742 (shen-lazyderef (hd V741) V789) - (if (= file V742) - (let V743 (shen-lazyderef (tl V741) V789) - (if (cons? V743) - (let FileName (hd V743) - (let V744 (shen-lazyderef (tl V743) V789) - (if (cons? V744) - (let Direction674 (hd V744) - (let V745 - (shen-lazyderef (tl V744) V789) - (if (= () V745) - (let V746 (shen-lazyderef V787 V789) - (if (cons? V746) - (let V747 - (shen-lazyderef (hd V746) V789) - (if (= stream V747) - (let V748 - (shen-lazyderef (tl V746) V789) - (if (cons? V748) - (let Direction (hd V748) - (let V749 - (shen-lazyderef (tl V748) - V789) - (if (= () V749) - (do (shen-incinfs) - (unify! Direction - Direction674 V789 - (freeze - (cut Throwcontrol V789 + (let V1454 (shen-lazyderef V1507 V1510) + (if (cons? V1454) + (let V1455 (shen-lazyderef (hd V1454) V1510) + (if (= let V1455) + (let V1456 (shen-lazyderef (tl V1454) V1510) + (if (cons? V1456) + (let X (hd V1456) + (let V1457 (shen-lazyderef (tl V1456) V1510) + (if (cons? V1457) + (let Y (hd V1457) + (let V1458 + (shen-lazyderef (tl V1457) V1510) + (if (cons? V1458) + (let Z (hd V1458) + (let V1459 + (shen-lazyderef (tl V1458) V1510) + (if (= () V1459) + (let W (shen-newpv V1510) + (let X&& (shen-newpv V1510) + (let B (shen-newpv V1510) + (do (shen-incinfs) + (cut Throwcontrol V1510 + (freeze + (shen-th* Y B V1509 V1510 + (freeze + (bind X&& (shen-placeholder) + V1510 + (freeze + (bind W + (shen-ebr + (shen-lazyderef X&& V1510) + (shen-lazyderef X V1510) + (shen-lazyderef Z V1510)) + V1510 + (freeze + (shen-th* W V1508 + (cons + (cons X&& + (cons : + (cons B ()))) + V1509) + V1510 V1511))))))))))))) + false))) + false))) + false))) + false)) + false)) + false)) + (if (= Case false) + (let Case + (let V1460 (shen-lazyderef V1507 V1510) + (if (cons? V1460) + (let V1461 (shen-lazyderef (hd V1460) V1510) + (if (= open V1461) + (let V1462 (shen-lazyderef (tl V1460) V1510) + (if (cons? V1462) + (let V1463 (shen-lazyderef (hd V1462) V1510) + (if (= file V1463) + (let V1464 + (shen-lazyderef (tl V1462) V1510) + (if (cons? V1464) + (let FileName (hd V1464) + (let V1465 + (shen-lazyderef (tl V1464) V1510) + (if (cons? V1465) + (let Direction1393 (hd V1465) + (let V1466 + (shen-lazyderef (tl V1465) V1510) + (if (= () V1466) + (let V1467 + (shen-lazyderef V1508 V1510) + (if (cons? V1467) + (let V1468 + (shen-lazyderef (hd V1467) + V1510) + (if (= stream V1468) + (let V1469 + (shen-lazyderef (tl V1467) + V1510) + (if (cons? V1469) + (let Direction (hd V1469) + (let V1470 + (shen-lazyderef (tl V1469) + V1510) + (if (= () V1470) + (do (shen-incinfs) + (unify! Direction + Direction1393 V1510 (freeze - (shen-th* FileName - string V788 V789 - V790)))))) - (if (shen-pvar? V749) + (cut Throwcontrol V1510 + (freeze + (shen-th* FileName + string V1509 V1510 + V1511)))))) + (if (shen-pvar? V1470) + (do + (shen-bindv V1470 () + V1510) + (let Result + (do (shen-incinfs) + (unify! Direction + Direction1393 V1510 + (freeze + (cut Throwcontrol + V1510 + (freeze + (shen-th* FileName + string V1509 + V1510 V1511)))))) + (do + (shen-unbindv V1470 + V1510) + Result))) + false)))) + (if (shen-pvar? V1469) + (let Direction + (shen-newpv V1510) (do - (shen-bindv V749 () V789) + (shen-bindv V1469 + (cons Direction ()) + V1510) (let Result (do (shen-incinfs) (unify! Direction - Direction674 V789 + Direction1393 V1510 (freeze - (cut Throwcontrol V789 + (cut Throwcontrol + V1510 (freeze (shen-th* FileName - string V788 V789 - V790)))))) + string V1509 V1510 + V1511)))))) (do - (shen-unbindv V749 V789) - Result))) - false)))) - (if (shen-pvar? V748) - (let Direction - (shen-newpv V789) - (do - (shen-bindv V748 - (cons Direction ()) V789) - (let Result - (do (shen-incinfs) - (unify! Direction - Direction674 V789 - (freeze - (cut Throwcontrol V789 - (freeze - (shen-th* FileName - string V788 V789 - V790)))))) - (do - (shen-unbindv V748 V789) - Result)))) - false))) - (if (shen-pvar? V747) - (do - (shen-bindv V747 stream V789) - (let Result - (let V750 - (shen-lazyderef (tl V746) - V789) - (if (cons? V750) - (let Direction (hd V750) - (let V751 - (shen-lazyderef (tl V750) - V789) - (if (= () V751) - (do (shen-incinfs) - (unify! Direction - Direction674 V789 - (freeze - (cut Throwcontrol V789 + (shen-unbindv V1469 + V1510) + Result)))) + false))) + (if (shen-pvar? V1468) + (do + (shen-bindv V1468 stream + V1510) + (let Result + (let V1471 + (shen-lazyderef (tl V1467) + V1510) + (if (cons? V1471) + (let Direction (hd V1471) + (let V1472 + (shen-lazyderef + (tl V1471) V1510) + (if (= () V1472) + (do (shen-incinfs) + (unify! Direction + Direction1393 V1510 (freeze - (shen-th* FileName - string V788 V789 - V790)))))) - (if (shen-pvar? V751) + (cut Throwcontrol + V1510 + (freeze + (shen-th* FileName + string V1509 + V1510 V1511)))))) + (if (shen-pvar? V1472) + (do + (shen-bindv V1472 () + V1510) + (let Result + (do (shen-incinfs) + (unify! Direction + Direction1393 + V1510 + (freeze + (cut Throwcontrol + V1510 + (freeze + (shen-th* + FileName + string V1509 + V1510 + V1511)))))) + (do + (shen-unbindv V1472 + V1510) + Result))) + false)))) + (if (shen-pvar? V1471) + (let Direction + (shen-newpv V1510) (do - (shen-bindv V751 () - V789) + (shen-bindv V1471 + (cons Direction ()) + V1510) (let Result (do (shen-incinfs) (unify! Direction - Direction674 V789 + Direction1393 V1510 (freeze (cut Throwcontrol - V789 + V1510 (freeze (shen-th* FileName string - V788 V789 - V790)))))) + V1509 V1510 + V1511)))))) (do - (shen-unbindv V751 - V789) - Result))) - false)))) - (if (shen-pvar? V750) - (let Direction - (shen-newpv V789) - (do - (shen-bindv V750 - (cons Direction ()) - V789) - (let Result - (do (shen-incinfs) - (unify! Direction - Direction674 V789 - (freeze - (cut Throwcontrol - V789 - (freeze - (shen-th* FileName - string V788 V789 - V790)))))) - (do - (shen-unbindv V750 - V789) - Result)))) - false))) - (do (shen-unbindv V747 V789) - Result))) - false))) - (if (shen-pvar? V746) - (let Direction (shen-newpv V789) - (do - (shen-bindv V746 - (cons stream - (cons Direction ())) - V789) - (let Result - (do (shen-incinfs) - (unify! Direction Direction674 - V789 - (freeze - (cut Throwcontrol V789 + (shen-unbindv V1471 + V1510) + Result)))) + false))) + (do + (shen-unbindv V1468 V1510) + Result))) + false))) + (if (shen-pvar? V1467) + (let Direction + (shen-newpv V1510) + (do + (shen-bindv V1467 + (cons stream + (cons Direction ())) + V1510) + (let Result + (do (shen-incinfs) + (unify! Direction + Direction1393 V1510 (freeze - (shen-th* FileName string - V788 V789 V790)))))) - (do (shen-unbindv V746 V789) - Result)))) - false))) - false))) - false))) + (cut Throwcontrol V1510 + (freeze + (shen-th* FileName + string V1509 V1510 + V1511)))))) + (do + (shen-unbindv V1467 V1510) + Result)))) + false))) + false))) + false))) + false)) false)) false)) false)) false)) - false)) - (if (= Case false) - (let Case - (let V752 (shen-lazyderef V786 V789) - (if (cons? V752) - (let V753 (shen-lazyderef (hd V752) V789) - (if (= type V753) - (let V754 (shen-lazyderef (tl V752) V789) - (if (cons? V754) - (let X (hd V754) - (let V755 (shen-lazyderef (tl V754) V789) - (if (cons? V755) - (let A (hd V755) - (let V756 (shen-lazyderef (tl V755) V789) - (if (= () V756) - (do (shen-incinfs) - (cut Throwcontrol V789 - (freeze - (unify A V787 V789 - (freeze - (shen-th* X A V788 V789 V790)))))) - false))) - false))) - false)) - false)) - false)) (if (= Case false) (let Case - (let V757 (shen-lazyderef V786 V789) - (if (cons? V757) - (let V758 (shen-lazyderef (hd V757) V789) - (if (= input+ V758) - (let V759 (shen-lazyderef (tl V757) V789) - (if (cons? V759) - (let V760 (shen-lazyderef (hd V759) V789) - (if (= : V760) - (let V761 (shen-lazyderef (tl V759) V789) - (if (cons? V761) - (let A (hd V761) - (let V762 - (shen-lazyderef (tl V761) V789) - (if (= () V762) - (let C (shen-newpv V789) - (do (shen-incinfs) - (bind C - (shen-normalise-type - (shen-lazyderef A V789)) - V789 + (let V1473 (shen-lazyderef V1507 V1510) + (if (cons? V1473) + (let V1474 (shen-lazyderef (hd V1473) V1510) + (if (= type V1474) + (let V1475 (shen-lazyderef (tl V1473) V1510) + (if (cons? V1475) + (let X (hd V1475) + (let V1476 + (shen-lazyderef (tl V1475) V1510) + (if (cons? V1476) + (let A (hd V1476) + (let V1477 + (shen-lazyderef (tl V1476) V1510) + (if (= () V1477) + (do (shen-incinfs) + (cut Throwcontrol V1510 + (freeze + (unify A V1508 V1510 (freeze - (unify V787 C V789 V790))))) - false))) - false)) - false)) + (shen-th* X A V1509 V1510 + V1511)))))) + false))) + false))) false)) false)) false)) (if (= Case false) (let Case - (let V763 (shen-lazyderef V786 V789) - (if (cons? V763) - (let V764 (shen-lazyderef (hd V763) V789) - (if (= where V764) - (let V765 (shen-lazyderef (tl V763) V789) - (if (cons? V765) - (let P (hd V765) - (let V766 - (shen-lazyderef (tl V765) V789) - (if (cons? V766) - (let X (hd V766) - (let V767 - (shen-lazyderef (tl V766) V789) - (if (= () V767) - (do (shen-incinfs) - (cut Throwcontrol V789 - (freeze - (shen-th* P boolean V788 V789 + (let V1478 (shen-lazyderef V1507 V1510) + (if (cons? V1478) + (let V1479 (shen-lazyderef (hd V1478) V1510) + (if (= input+ V1479) + (let V1480 + (shen-lazyderef (tl V1478) V1510) + (if (cons? V1480) + (let V1481 + (shen-lazyderef (hd V1480) V1510) + (if (= : V1481) + (let V1482 + (shen-lazyderef (tl V1480) V1510) + (if (cons? V1482) + (let A (hd V1482) + (let V1483 + (shen-lazyderef (tl V1482) V1510) + (if (= () V1483) + (let C (shen-newpv V1510) + (do (shen-incinfs) + (bind C + (shen-normalise-type + (shen-lazyderef A V1510)) + V1510 (freeze - (cut Throwcontrol V789 - (freeze - (shen-th* X V787 - (cons - (cons P - (cons : - (cons verified ()))) - V788) - V789 V790)))))))) - false))) - false))) + (unify V1508 C V1510 + V1511))))) + false))) + false)) + false)) false)) false)) false)) (if (= Case false) (let Case - (let V768 (shen-lazyderef V786 V789) - (if (cons? V768) - (let V769 (shen-lazyderef (hd V768) V789) - (if (= set V769) - (let V770 (shen-lazyderef (tl V768) V789) - (if (cons? V770) - (let Var (hd V770) - (let V771 - (shen-lazyderef (tl V770) V789) - (if (cons? V771) - (let Val (hd V771) - (let V772 - (shen-lazyderef (tl V771) V789) - (if (= () V772) + (let V1484 (shen-lazyderef V1507 V1510) + (if (cons? V1484) + (let V1485 + (shen-lazyderef (hd V1484) V1510) + (if (= where V1485) + (let V1486 + (shen-lazyderef (tl V1484) V1510) + (if (cons? V1486) + (let P (hd V1486) + (let V1487 + (shen-lazyderef (tl V1486) V1510) + (if (cons? V1487) + (let X (hd V1487) + (let V1488 + (shen-lazyderef (tl V1487) V1510) + (if (= () V1488) (do (shen-incinfs) - (cut Throwcontrol V789 + (cut Throwcontrol V1510 (freeze - (shen-th* - (cons value (cons Var ())) - V787 V788 V789 + (shen-th* P boolean V1509 + V1510 (freeze - (shen-th* Val V787 V788 V789 - V790)))))) + (cut Throwcontrol V1510 + (freeze + (shen-th* X V1508 + (cons + (cons P + (cons : + (cons verified ()))) + V1509) + V1510 V1511)))))))) false))) false))) false)) false)) false)) (if (= Case false) (let Case - (let V773 (shen-lazyderef V786 V789) - (if (cons? V773) - (let V774 (shen-lazyderef (hd V773) V789) - (if (= fail V774) - (let V775 - (shen-lazyderef (tl V773) V789) - (if (= () V775) - (let V776 (shen-lazyderef V787 V789) - (if (= symbol V776) - (do (shen-incinfs) (thaw V790)) - (if (shen-pvar? V776) - (do (shen-bindv V776 symbol V789) - (let Result - (do (shen-incinfs) (thaw V790)) - (do (shen-unbindv V776 V789) - Result))) + (let V1489 (shen-lazyderef V1507 V1510) + (if (cons? V1489) + (let V1490 + (shen-lazyderef (hd V1489) V1510) + (if (= set V1490) + (let V1491 + (shen-lazyderef (tl V1489) V1510) + (if (cons? V1491) + (let Var (hd V1491) + (let V1492 + (shen-lazyderef (tl V1491) V1510) + (if (cons? V1492) + (let Val (hd V1492) + (let V1493 + (shen-lazyderef (tl V1492) + V1510) + (if (= () V1493) + (do (shen-incinfs) + (cut Throwcontrol V1510 + (freeze + (shen-th* + (cons value (cons Var ())) + V1508 V1509 V1510 + (freeze + (shen-th* Val V1508 V1509 + V1510 V1511)))))) + false))) false))) false)) false)) false)) (if (= Case false) (let Case - (let NewHyp (shen-newpv V789) - (do (shen-incinfs) - (shen-t*-hyps V788 NewHyp V789 - (freeze - (shen-th* V786 V787 NewHyp V789 - V790))))) - (if (= Case false) - (let Case - (let V777 (shen-lazyderef V786 V789) - (if (cons? V777) - (let V778 - (shen-lazyderef (hd V777) V789) - (if (= define V778) - (let V779 - (shen-lazyderef (tl V777) V789) - (if (cons? V779) - (let F (hd V779) - (let X (tl V779) - (do (shen-incinfs) - (cut Throwcontrol V789 - (freeze - (shen-t*-def - (cons define (cons F X)) - V787 V788 V789 V790)))))) - false)) + (let V1494 (shen-lazyderef V1507 V1510) + (if (cons? V1494) + (let V1495 + (shen-lazyderef (hd V1494) V1510) + (if (= fail V1495) + (let V1496 + (shen-lazyderef (tl V1494) V1510) + (if (= () V1496) + (let V1497 + (shen-lazyderef V1508 V1510) + (if (= symbol V1497) + (do (shen-incinfs) (thaw V1511)) + (if (shen-pvar? V1497) + (do + (shen-bindv V1497 symbol V1510) + (let Result + (do (shen-incinfs) + (thaw V1511)) + (do (shen-unbindv V1497 V1510) + Result))) + false))) false)) false)) + false)) + (if (= Case false) + (let Case + (let NewHyp (shen-newpv V1510) + (do (shen-incinfs) + (shen-t*-hyps V1509 NewHyp V1510 + (freeze + (shen-th* V1507 V1508 NewHyp V1510 + V1511))))) (if (= Case false) (let Case - (let V780 (shen-lazyderef V786 V789) - (if (cons? V780) - (let V781 - (shen-lazyderef (hd V780) V789) - (if (= shen-process-datatype V781) - (let V782 - (shen-lazyderef V787 V789) - (if (= symbol V782) - (do (shen-incinfs) (thaw V790)) - (if (shen-pvar? V782) - (do - (shen-bindv V782 symbol V789) - (let Result - (do (shen-incinfs) - (thaw V790)) - (do (shen-unbindv V782 V789) - Result))) - false))) + (let V1498 + (shen-lazyderef V1507 V1510) + (if (cons? V1498) + (let V1499 + (shen-lazyderef (hd V1498) V1510) + (if (= define V1499) + (let V1500 + (shen-lazyderef (tl V1498) + V1510) + (if (cons? V1500) + (let F (hd V1500) + (let X (tl V1500) + (do (shen-incinfs) + (cut Throwcontrol V1510 + (freeze + (shen-t*-def + (cons define (cons F X)) + V1508 V1509 V1510 + V1511)))))) + false)) false)) false)) (if (= Case false) (let Case - (let V783 - (shen-lazyderef V786 V789) - (if (cons? V783) - (let V784 - (shen-lazyderef (hd V783) V789) - (if (= shen-synonyms-help V784) - (let V785 - (shen-lazyderef V787 V789) - (if (= symbol V785) + (let V1501 + (shen-lazyderef V1507 V1510) + (if (cons? V1501) + (let V1502 + (shen-lazyderef (hd V1501) + V1510) + (if + (= shen-process-datatype V1502) + (let V1503 + (shen-lazyderef V1508 V1510) + (if (= symbol V1503) (do (shen-incinfs) - (thaw V790)) - (if (shen-pvar? V785) + (thaw V1511)) + (if (shen-pvar? V1503) (do - (shen-bindv V785 symbol - V789) + (shen-bindv V1503 symbol + V1510) (let Result (do (shen-incinfs) - (thaw V790)) + (thaw V1511)) (do - (shen-unbindv V785 V789) + (shen-unbindv V1503 + V1510) Result))) false))) false)) false)) (if (= Case false) - (let Datatypes (shen-newpv V789) - (do (shen-incinfs) - (bind Datatypes - (value shen-*datatypes*) V789 - (freeze - (shen-udefs* - (cons V786 - (cons : (cons V787 ()))) - V788 Datatypes V789 V790))))) + (let Case + (let V1504 + (shen-lazyderef V1507 V1510) + (if (cons? V1504) + (let V1505 + (shen-lazyderef (hd V1504) + V1510) + (if + (= shen-synonyms-help V1505) + (let V1506 + (shen-lazyderef V1508 V1510) + (if (= symbol V1506) + (do (shen-incinfs) + (thaw V1511)) + (if (shen-pvar? V1506) + (do + (shen-bindv V1506 symbol + V1510) + (let Result + (do (shen-incinfs) + (thaw V1511)) + (do + (shen-unbindv V1506 + V1510) + Result))) + false))) + false)) + false)) + (if (= Case false) + (let Datatypes + (shen-newpv V1510) + (do (shen-incinfs) + (bind Datatypes + (value shen-*datatypes*) + V1510 + (freeze + (shen-udefs* + (cons V1507 + (cons : + (cons V1508 ()))) + V1509 Datatypes V1510 + V1511))))) + Case)) Case)) Case)) Case)) Case)) Case)) @@ -3075,35 +3200,120 @@ (shen-type-insecure-rule-error-message (shen-lazyderef V886 V889) (shen-lazyderef V887 V889)) V889 V890))) Case))) -(defun shen-t*-ruleh (V891 V892 V893 V894 V895) +(defun shen-t*-ruleh (V1512 V1513 V1514 V1515 V1516) (let Throwcontrol (shen-catchpoint) (shen-cutpoint Throwcontrol - (let V503 (shen-lazyderef V891 V894) - (if (cons? V503) - (let Patterns (hd V503) - (let V504 (shen-lazyderef (tl V503) V894) - (if (cons? V504) - (let Result (hd V504) - (let V505 (shen-lazyderef (tl V504) V894) - (if (= () V505) - (let NewHyp (shen-newpv V894) - (let B (shen-newpv V894) - (let AllHyp (shen-newpv V894) - (do (shen-incinfs) - (shen-t*-patterns Patterns V892 NewHyp B V894 - (freeze - (cut Throwcontrol V894 + (let Case + (let V1380 (shen-lazyderef V1512 V1515) + (if (cons? V1380) + (let V1381 (shen-lazyderef (hd V1380) V1515) + (if (= () V1381) + (let V1382 (shen-lazyderef (tl V1380) V1515) + (if (cons? V1382) + (let Result (hd V1382) + (let V1383 (shen-lazyderef (tl V1382) V1515) + (if (= () V1383) + (let V1384 (shen-lazyderef V1513 V1515) + (if (cons? V1384) + (let V1385 (shen-lazyderef (hd V1384) V1515) + (if (= --> V1385) + (let V1386 (shen-lazyderef (tl V1384) V1515) + (if (cons? V1386) + (let A (hd V1386) + (let V1387 (shen-lazyderef (tl V1386) V1515) + (if (= () V1387) + (do (shen-incinfs) + (cut Throwcontrol V1515 + (freeze (shen-th* Result A V1514 V1515 V1516)))) + (if (shen-pvar? V1387) + (do (shen-bindv V1387 () V1515) + (let Result + (do (shen-incinfs) + (cut Throwcontrol V1515 + (freeze (shen-th* Result A V1514 V1515 V1516)))) + (do (shen-unbindv V1387 V1515) Result))) + false)))) + (if (shen-pvar? V1386) + (let A (shen-newpv V1515) + (do (shen-bindv V1386 (cons A ()) V1515) + (let Result + (do (shen-incinfs) + (cut Throwcontrol V1515 + (freeze (shen-th* Result A V1514 V1515 V1516)))) + (do (shen-unbindv V1386 V1515) Result)))) + false))) + (if (shen-pvar? V1385) + (do (shen-bindv V1385 --> V1515) + (let Result + (let V1388 (shen-lazyderef (tl V1384) V1515) + (if (cons? V1388) + (let A (hd V1388) + (let V1389 (shen-lazyderef (tl V1388) V1515) + (if (= () V1389) + (do (shen-incinfs) + (cut Throwcontrol V1515 + (freeze (shen-th* Result A V1514 V1515 V1516)))) + (if (shen-pvar? V1389) + (do (shen-bindv V1389 () V1515) + (let Result + (do (shen-incinfs) + (cut Throwcontrol V1515 + (freeze (shen-th* Result A V1514 V1515 V1516)))) + (do (shen-unbindv V1389 V1515) Result))) + false)))) + (if (shen-pvar? V1388) + (let A (shen-newpv V1515) + (do (shen-bindv V1388 (cons A ()) V1515) + (let Result + (do (shen-incinfs) + (cut Throwcontrol V1515 + (freeze (shen-th* Result A V1514 V1515 V1516)))) + (do (shen-unbindv V1388 V1515) Result)))) + false))) + (do (shen-unbindv V1385 V1515) Result))) + false))) + (if (shen-pvar? V1384) + (let A (shen-newpv V1515) + (do (shen-bindv V1384 (cons --> (cons A ())) V1515) + (let Result + (do (shen-incinfs) + (cut Throwcontrol V1515 + (freeze (shen-th* Result A V1514 V1515 V1516)))) + (do (shen-unbindv V1384 V1515) Result)))) + false))) + false))) + false)) + false)) + false)) + (if (= Case false) + (let V1390 (shen-lazyderef V1512 V1515) + (if (cons? V1390) + (let Patterns (hd V1390) + (let V1391 (shen-lazyderef (tl V1390) V1515) + (if (cons? V1391) + (let Result (hd V1391) + (let V1392 (shen-lazyderef (tl V1391) V1515) + (if (= () V1392) + (let NewHyp (shen-newpv V1515) + (let B (shen-newpv V1515) + (let AllHyp (shen-newpv V1515) + (do (shen-incinfs) + (shen-t*-patterns Patterns V1513 NewHyp B V1515 (freeze - (shen-conc NewHyp V893 AllHyp V894 + (cut Throwcontrol V1515 (freeze - (cut Throwcontrol V894 - (freeze (shen-th* Result B AllHyp V894 V895))))))))))))) - false))) - false))) - false))))) + (shen-conc NewHyp V1514 AllHyp V1515 + (freeze + (cut Throwcontrol V1515 + (freeze + (shen-th* Result B AllHyp V1515 V1516))))))))))))) + false))) + false))) + false)) + Case))))) (defun shen-type-insecure-rule-error-message (V896 V897) (interror "type error in rule ~A of ~A~%" (@p V896 (@p V897 ())))) (defun shen-t*-patterns (V898 V899 V900 V901 V902 V903)