shen-ruby 0.13.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -23,101 +23,101 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
23
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
24
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
25
25
 
26
- (defun shen.typecheck (V2028 V2029) (let Curry (shen.curry V2028) (let ProcessN (shen.start-new-prolog-process) (let Type (shen.insert-prolog-variables (shen.demodulate (shen.curry-type V2029)) ProcessN) (let Continuation (freeze (return Type ProcessN shen.void)) (shen.t* (cons Curry (cons : (cons Type ()))) () ProcessN Continuation))))))
26
+ (defun shen.typecheck (V2077 V2078) (let Curry (shen.curry V2077) (let ProcessN (shen.start-new-prolog-process) (let Type (shen.insert-prolog-variables (shen.demodulate (shen.curry-type V2078)) ProcessN) (let Continuation (freeze (return Type ProcessN shen.void)) (shen.t* (cons Curry (cons : (cons Type ()))) () ProcessN Continuation))))))
27
27
 
28
- (defun shen.curry (V2030) (cond ((and (cons? V2030) (shen.special? (hd V2030))) (cons (hd V2030) (map shen.curry (tl V2030)))) ((and (cons? V2030) (and (cons? (tl V2030)) (shen.extraspecial? (hd V2030)))) V2030) ((and (cons? V2030) (and (= type (hd V2030)) (and (cons? (tl V2030)) (and (cons? (tl (tl V2030))) (= () (tl (tl (tl V2030)))))))) (cons type (cons (shen.curry (hd (tl V2030))) (tl (tl V2030))))) ((and (cons? V2030) (and (cons? (tl V2030)) (cons? (tl (tl V2030))))) (shen.curry (cons (cons (hd V2030) (cons (hd (tl V2030)) ())) (tl (tl V2030))))) ((and (cons? V2030) (and (cons? (tl V2030)) (= () (tl (tl V2030))))) (cons (shen.curry (hd V2030)) (cons (shen.curry (hd (tl V2030))) ()))) (true V2030)))
28
+ (defun shen.curry (V2079) (cond ((and (cons? V2079) (shen.special? (hd V2079))) (cons (hd V2079) (map (lambda V1754 (shen.curry V1754)) (tl V2079)))) ((and (cons? V2079) (and (cons? (tl V2079)) (shen.extraspecial? (hd V2079)))) V2079) ((and (cons? V2079) (and (= type (hd V2079)) (and (cons? (tl V2079)) (and (cons? (tl (tl V2079))) (= () (tl (tl (tl V2079)))))))) (cons type (cons (shen.curry (hd (tl V2079))) (tl (tl V2079))))) ((and (cons? V2079) (and (cons? (tl V2079)) (cons? (tl (tl V2079))))) (shen.curry (cons (cons (hd V2079) (cons (hd (tl V2079)) ())) (tl (tl V2079))))) ((and (cons? V2079) (and (cons? (tl V2079)) (= () (tl (tl V2079))))) (cons (shen.curry (hd V2079)) (cons (shen.curry (hd (tl V2079))) ()))) (true V2079)))
29
29
 
30
- (defun shen.special? (V2031) (element? V2031 (value shen.*special*)))
30
+ (defun shen.special? (V2080) (element? V2080 (value shen.*special*)))
31
31
 
32
- (defun shen.extraspecial? (V2032) (element? V2032 (value shen.*extraspecial*)))
32
+ (defun shen.extraspecial? (V2081) (element? V2081 (value shen.*extraspecial*)))
33
33
 
34
- (defun shen.t* (V2033 V2034 V2035 V2036) (let Throwcontrol (shen.catchpoint) (shen.cutpoint Throwcontrol (let Case (let Error (shen.newpv V2035) (do (shen.incinfs) (fwhen (shen.maxinfexceeded?) V2035 (freeze (bind Error (shen.errormaxinfs) V2035 V2036))))) (if (= Case false) (let Case (let V2022 (shen.lazyderef V2033 V2035) (if (= fail V2022) (do (shen.incinfs) (cut Throwcontrol V2035 (freeze (shen.prolog-failure V2035 V2036)))) false)) (if (= Case false) (let Case (let V2023 (shen.lazyderef V2033 V2035) (if (cons? V2023) (let X (hd V2023) (let V2024 (shen.lazyderef (tl V2023) V2035) (if (cons? V2024) (let V2025 (shen.lazyderef (hd V2024) V2035) (if (= : V2025) (let V2026 (shen.lazyderef (tl V2024) V2035) (if (cons? V2026) (let A (hd V2026) (let V2027 (shen.lazyderef (tl V2026) V2035) (if (= () V2027) (do (shen.incinfs) (fwhen (shen.type-theory-enabled?) V2035 (freeze (cut Throwcontrol V2035 (freeze (shen.th* X A V2034 V2035 V2036)))))) false))) false)) false)) false))) false)) (if (= Case false) (let Datatypes (shen.newpv V2035) (do (shen.incinfs) (shen.show V2033 V2034 V2035 (freeze (bind Datatypes (value shen.*datatypes*) V2035 (freeze (shen.udefs* V2033 V2034 Datatypes V2035 V2036))))))) Case)) Case)) Case)))))
34
+ (defun shen.t* (V2082 V2083 V2084 V2085) (let Throwcontrol (shen.catchpoint) (shen.cutpoint Throwcontrol (let Case (let Error (shen.newpv V2084) (do (shen.incinfs) (fwhen (shen.maxinfexceeded?) V2084 (freeze (bind Error (shen.errormaxinfs) V2084 V2085))))) (if (= Case false) (let Case (let V2071 (shen.lazyderef V2082 V2084) (if (= fail V2071) (do (shen.incinfs) (cut Throwcontrol V2084 (freeze (shen.prolog-failure V2084 V2085)))) false)) (if (= Case false) (let Case (let V2072 (shen.lazyderef V2082 V2084) (if (cons? V2072) (let X (hd V2072) (let V2073 (shen.lazyderef (tl V2072) V2084) (if (cons? V2073) (let V2074 (shen.lazyderef (hd V2073) V2084) (if (= : V2074) (let V2075 (shen.lazyderef (tl V2073) V2084) (if (cons? V2075) (let A (hd V2075) (let V2076 (shen.lazyderef (tl V2075) V2084) (if (= () V2076) (do (shen.incinfs) (fwhen (shen.type-theory-enabled?) V2084 (freeze (cut Throwcontrol V2084 (freeze (shen.th* X A V2083 V2084 V2085)))))) false))) false)) false)) false))) false)) (if (= Case false) (let Datatypes (shen.newpv V2084) (do (shen.incinfs) (shen.show V2082 V2083 V2084 (freeze (bind Datatypes (value shen.*datatypes*) V2084 (freeze (shen.udefs* V2082 V2083 Datatypes V2084 V2085))))))) Case)) Case)) Case)))))
35
35
 
36
36
  (defun shen.type-theory-enabled? () (value shen.*shen-type-theory-enabled?*))
37
37
 
38
- (defun enable-type-theory (V2041) (cond ((= + V2041) (set shen.*shen-type-theory-enabled?* true)) ((= - V2041) (set shen.*shen-type-theory-enabled?* false)) (true (simple-error "enable-type-theory expects a + or a -
38
+ (defun enable-type-theory (V2090) (cond ((= + V2090) (set shen.*shen-type-theory-enabled?* true)) ((= - V2090) (set shen.*shen-type-theory-enabled?* false)) (true (simple-error "enable-type-theory expects a + or a -
39
39
  "))))
40
40
 
41
- (defun shen.prolog-failure (V2050 V2051) false)
41
+ (defun shen.prolog-failure (V2099 V2100) false)
42
42
 
43
43
  (defun shen.maxinfexceeded? () (> (inferences) (value shen.*maxinferences*)))
44
44
 
45
45
  (defun shen.errormaxinfs () (simple-error "maximum inferences exceeded~%"))
46
46
 
47
- (defun shen.udefs* (V2052 V2053 V2054 V2055 V2056) (let Case (let V2018 (shen.lazyderef V2054 V2055) (if (cons? V2018) (let D (hd V2018) (do (shen.incinfs) (call (cons D (cons V2052 (cons V2053 ()))) V2055 V2056))) false)) (if (= Case false) (let V2019 (shen.lazyderef V2054 V2055) (if (cons? V2019) (let Ds (tl V2019) (do (shen.incinfs) (shen.udefs* V2052 V2053 Ds V2055 V2056))) false)) Case)))
47
+ (defun shen.udefs* (V2101 V2102 V2103 V2104 V2105) (let Case (let V2067 (shen.lazyderef V2103 V2104) (if (cons? V2067) (let D (hd V2067) (do (shen.incinfs) (call (cons D (cons V2101 (cons V2102 ()))) V2104 V2105))) false)) (if (= Case false) (let V2068 (shen.lazyderef V2103 V2104) (if (cons? V2068) (let Ds (tl V2068) (do (shen.incinfs) (shen.udefs* V2101 V2102 Ds V2104 V2105))) false)) Case)))
48
48
 
49
- (defun shen.th* (V2057 V2058 V2059 V2060 V2061) (let Throwcontrol (shen.catchpoint) (shen.cutpoint Throwcontrol (let Case (do (shen.incinfs) (shen.show (cons V2057 (cons : (cons V2058 ()))) V2059 V2060 (freeze (fwhen false V2060 V2061)))) (if (= Case false) (let Case (let F (shen.newpv V2060) (do (shen.incinfs) (fwhen (shen.typedf? (shen.lazyderef V2057 V2060)) V2060 (freeze (bind F (shen.sigf (shen.lazyderef V2057 V2060)) V2060 (freeze (call (cons F (cons V2058 ())) V2060 V2061))))))) (if (= Case false) (let Case (do (shen.incinfs) (shen.base V2057 V2058 V2060 V2061)) (if (= Case false) (let Case (do (shen.incinfs) (shen.by_hypothesis V2057 V2058 V2059 V2060 V2061)) (if (= Case false) (let Case (let V1914 (shen.lazyderef V2057 V2060) (if (cons? V1914) (let F (hd V1914) (let V1915 (shen.lazyderef (tl V1914) V2060) (if (= () V1915) (do (shen.incinfs) (shen.th* F (cons --> (cons V2058 ())) V2059 V2060 V2061)) false))) false)) (if (= Case false) (let Case (let V1916 (shen.lazyderef V2057 V2060) (if (cons? V1916) (let F (hd V1916) (let V1917 (shen.lazyderef (tl V1916) V2060) (if (cons? V1917) (let X (hd V1917) (let V1918 (shen.lazyderef (tl V1917) V2060) (if (= () V1918) (let B (shen.newpv V2060) (do (shen.incinfs) (shen.th* F (cons B (cons --> (cons V2058 ()))) V2059 V2060 (freeze (shen.th* X B V2059 V2060 V2061))))) false))) false))) false)) (if (= Case false) (let Case (let V1919 (shen.lazyderef V2057 V2060) (if (cons? V1919) (let V1920 (shen.lazyderef (hd V1919) V2060) (if (= cons V1920) (let V1921 (shen.lazyderef (tl V1919) V2060) (if (cons? V1921) (let X (hd V1921) (let V1922 (shen.lazyderef (tl V1921) V2060) (if (cons? V1922) (let Y (hd V1922) (let V1923 (shen.lazyderef (tl V1922) V2060) (if (= () V1923) (let V1924 (shen.lazyderef V2058 V2060) (if (cons? V1924) (let V1925 (shen.lazyderef (hd V1924) V2060) (if (= list V1925) (let V1926 (shen.lazyderef (tl V1924) V2060) (if (cons? V1926) (let A (hd V1926) (let V1927 (shen.lazyderef (tl V1926) V2060) (if (= () V1927) (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons list (cons A ())) V2059 V2060 V2061)))) (if (shen.pvar? V1927) (do (shen.bindv V1927 () V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons list (cons A ())) V2059 V2060 V2061)))) (do (shen.unbindv V1927 V2060) Result))) false)))) (if (shen.pvar? V1926) (let A (shen.newpv V2060) (do (shen.bindv V1926 (cons A ()) V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons list (cons A ())) V2059 V2060 V2061)))) (do (shen.unbindv V1926 V2060) Result)))) false))) (if (shen.pvar? V1925) (do (shen.bindv V1925 list V2060) (let Result (let V1928 (shen.lazyderef (tl V1924) V2060) (if (cons? V1928) (let A (hd V1928) (let V1929 (shen.lazyderef (tl V1928) V2060) (if (= () V1929) (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons list (cons A ())) V2059 V2060 V2061)))) (if (shen.pvar? V1929) (do (shen.bindv V1929 () V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons list (cons A ())) V2059 V2060 V2061)))) (do (shen.unbindv V1929 V2060) Result))) false)))) (if (shen.pvar? V1928) (let A (shen.newpv V2060) (do (shen.bindv V1928 (cons A ()) V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons list (cons A ())) V2059 V2060 V2061)))) (do (shen.unbindv V1928 V2060) Result)))) false))) (do (shen.unbindv V1925 V2060) Result))) false))) (if (shen.pvar? V1924) (let A (shen.newpv V2060) (do (shen.bindv V1924 (cons list (cons A ())) V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons list (cons A ())) V2059 V2060 V2061)))) (do (shen.unbindv V1924 V2060) Result)))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1930 (shen.lazyderef V2057 V2060) (if (cons? V1930) (let V1931 (shen.lazyderef (hd V1930) V2060) (if (= @p V1931) (let V1932 (shen.lazyderef (tl V1930) V2060) (if (cons? V1932) (let X (hd V1932) (let V1933 (shen.lazyderef (tl V1932) V2060) (if (cons? V1933) (let Y (hd V1933) (let V1934 (shen.lazyderef (tl V1933) V2060) (if (= () V1934) (let V1935 (shen.lazyderef V2058 V2060) (if (cons? V1935) (let A (hd V1935) (let V1936 (shen.lazyderef (tl V1935) V2060) (if (cons? V1936) (let V1937 (shen.lazyderef (hd V1936) V2060) (if (= * V1937) (let V1938 (shen.lazyderef (tl V1936) V2060) (if (cons? V1938) (let B (hd V1938) (let V1939 (shen.lazyderef (tl V1938) V2060) (if (= () V1939) (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y B V2059 V2060 V2061)))) (if (shen.pvar? V1939) (do (shen.bindv V1939 () V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y B V2059 V2060 V2061)))) (do (shen.unbindv V1939 V2060) Result))) false)))) (if (shen.pvar? V1938) (let B (shen.newpv V2060) (do (shen.bindv V1938 (cons B ()) V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y B V2059 V2060 V2061)))) (do (shen.unbindv V1938 V2060) Result)))) false))) (if (shen.pvar? V1937) (do (shen.bindv V1937 * V2060) (let Result (let V1940 (shen.lazyderef (tl V1936) V2060) (if (cons? V1940) (let B (hd V1940) (let V1941 (shen.lazyderef (tl V1940) V2060) (if (= () V1941) (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y B V2059 V2060 V2061)))) (if (shen.pvar? V1941) (do (shen.bindv V1941 () V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y B V2059 V2060 V2061)))) (do (shen.unbindv V1941 V2060) Result))) false)))) (if (shen.pvar? V1940) (let B (shen.newpv V2060) (do (shen.bindv V1940 (cons B ()) V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y B V2059 V2060 V2061)))) (do (shen.unbindv V1940 V2060) Result)))) false))) (do (shen.unbindv V1937 V2060) Result))) false))) (if (shen.pvar? V1936) (let B (shen.newpv V2060) (do (shen.bindv V1936 (cons * (cons B ())) V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y B V2059 V2060 V2061)))) (do (shen.unbindv V1936 V2060) Result)))) false)))) (if (shen.pvar? V1935) (let A (shen.newpv V2060) (let B (shen.newpv V2060) (do (shen.bindv V1935 (cons A (cons * (cons B ()))) V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y B V2059 V2060 V2061)))) (do (shen.unbindv V1935 V2060) Result))))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1942 (shen.lazyderef V2057 V2060) (if (cons? V1942) (let V1943 (shen.lazyderef (hd V1942) V2060) (if (= @v V1943) (let V1944 (shen.lazyderef (tl V1942) V2060) (if (cons? V1944) (let X (hd V1944) (let V1945 (shen.lazyderef (tl V1944) V2060) (if (cons? V1945) (let Y (hd V1945) (let V1946 (shen.lazyderef (tl V1945) V2060) (if (= () V1946) (let V1947 (shen.lazyderef V2058 V2060) (if (cons? V1947) (let V1948 (shen.lazyderef (hd V1947) V2060) (if (= vector V1948) (let V1949 (shen.lazyderef (tl V1947) V2060) (if (cons? V1949) (let A (hd V1949) (let V1950 (shen.lazyderef (tl V1949) V2060) (if (= () V1950) (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons vector (cons A ())) V2059 V2060 V2061)))) (if (shen.pvar? V1950) (do (shen.bindv V1950 () V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons vector (cons A ())) V2059 V2060 V2061)))) (do (shen.unbindv V1950 V2060) Result))) false)))) (if (shen.pvar? V1949) (let A (shen.newpv V2060) (do (shen.bindv V1949 (cons A ()) V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons vector (cons A ())) V2059 V2060 V2061)))) (do (shen.unbindv V1949 V2060) Result)))) false))) (if (shen.pvar? V1948) (do (shen.bindv V1948 vector V2060) (let Result (let V1951 (shen.lazyderef (tl V1947) V2060) (if (cons? V1951) (let A (hd V1951) (let V1952 (shen.lazyderef (tl V1951) V2060) (if (= () V1952) (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons vector (cons A ())) V2059 V2060 V2061)))) (if (shen.pvar? V1952) (do (shen.bindv V1952 () V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons vector (cons A ())) V2059 V2060 V2061)))) (do (shen.unbindv V1952 V2060) Result))) false)))) (if (shen.pvar? V1951) (let A (shen.newpv V2060) (do (shen.bindv V1951 (cons A ()) V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons vector (cons A ())) V2059 V2060 V2061)))) (do (shen.unbindv V1951 V2060) Result)))) false))) (do (shen.unbindv V1948 V2060) Result))) false))) (if (shen.pvar? V1947) (let A (shen.newpv V2060) (do (shen.bindv V1947 (cons vector (cons A ())) V2060) (let Result (do (shen.incinfs) (shen.th* X A V2059 V2060 (freeze (shen.th* Y (cons vector (cons A ())) V2059 V2060 V2061)))) (do (shen.unbindv V1947 V2060) Result)))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1953 (shen.lazyderef V2057 V2060) (if (cons? V1953) (let V1954 (shen.lazyderef (hd V1953) V2060) (if (= @s V1954) (let V1955 (shen.lazyderef (tl V1953) V2060) (if (cons? V1955) (let X (hd V1955) (let V1956 (shen.lazyderef (tl V1955) V2060) (if (cons? V1956) (let Y (hd V1956) (let V1957 (shen.lazyderef (tl V1956) V2060) (if (= () V1957) (let V1958 (shen.lazyderef V2058 V2060) (if (= string V1958) (do (shen.incinfs) (shen.th* X string V2059 V2060 (freeze (shen.th* Y string V2059 V2060 V2061)))) (if (shen.pvar? V1958) (do (shen.bindv V1958 string V2060) (let Result (do (shen.incinfs) (shen.th* X string V2059 V2060 (freeze (shen.th* Y string V2059 V2060 V2061)))) (do (shen.unbindv V1958 V2060) Result))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1959 (shen.lazyderef V2057 V2060) (if (cons? V1959) (let V1960 (shen.lazyderef (hd V1959) V2060) (if (= lambda V1960) (let V1961 (shen.lazyderef (tl V1959) V2060) (if (cons? V1961) (let X (hd V1961) (let V1962 (shen.lazyderef (tl V1961) V2060) (if (cons? V1962) (let Y (hd V1962) (let V1963 (shen.lazyderef (tl V1962) V2060) (if (= () V1963) (let V1964 (shen.lazyderef V2058 V2060) (if (cons? V1964) (let A (hd V1964) (let V1965 (shen.lazyderef (tl V1964) V2060) (if (cons? V1965) (let V1966 (shen.lazyderef (hd V1965) V2060) (if (= --> V1966) (let V1967 (shen.lazyderef (tl V1965) V2060) (if (cons? V1967) (let B (hd V1967) (let V1968 (shen.lazyderef (tl V1967) V2060) (if (= () V1968) (let Z (shen.newpv V2060) (let X&& (shen.newpv V2060) (do (shen.incinfs) (cut Throwcontrol V2060 (freeze (bind X&& (shen.placeholder) V2060 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2060) (shen.lazyderef X V2060) (shen.lazyderef Y V2060)) V2060 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2059) V2060 V2061)))))))))) (if (shen.pvar? V1968) (do (shen.bindv V1968 () V2060) (let Result (let Z (shen.newpv V2060) (let X&& (shen.newpv V2060) (do (shen.incinfs) (cut Throwcontrol V2060 (freeze (bind X&& (shen.placeholder) V2060 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2060) (shen.lazyderef X V2060) (shen.lazyderef Y V2060)) V2060 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2059) V2060 V2061)))))))))) (do (shen.unbindv V1968 V2060) Result))) false)))) (if (shen.pvar? V1967) (let B (shen.newpv V2060) (do (shen.bindv V1967 (cons B ()) V2060) (let Result (let Z (shen.newpv V2060) (let X&& (shen.newpv V2060) (do (shen.incinfs) (cut Throwcontrol V2060 (freeze (bind X&& (shen.placeholder) V2060 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2060) (shen.lazyderef X V2060) (shen.lazyderef Y V2060)) V2060 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2059) V2060 V2061)))))))))) (do (shen.unbindv V1967 V2060) Result)))) false))) (if (shen.pvar? V1966) (do (shen.bindv V1966 --> V2060) (let Result (let V1969 (shen.lazyderef (tl V1965) V2060) (if (cons? V1969) (let B (hd V1969) (let V1970 (shen.lazyderef (tl V1969) V2060) (if (= () V1970) (let Z (shen.newpv V2060) (let X&& (shen.newpv V2060) (do (shen.incinfs) (cut Throwcontrol V2060 (freeze (bind X&& (shen.placeholder) V2060 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2060) (shen.lazyderef X V2060) (shen.lazyderef Y V2060)) V2060 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2059) V2060 V2061)))))))))) (if (shen.pvar? V1970) (do (shen.bindv V1970 () V2060) (let Result (let Z (shen.newpv V2060) (let X&& (shen.newpv V2060) (do (shen.incinfs) (cut Throwcontrol V2060 (freeze (bind X&& (shen.placeholder) V2060 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2060) (shen.lazyderef X V2060) (shen.lazyderef Y V2060)) V2060 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2059) V2060 V2061)))))))))) (do (shen.unbindv V1970 V2060) Result))) false)))) (if (shen.pvar? V1969) (let B (shen.newpv V2060) (do (shen.bindv V1969 (cons B ()) V2060) (let Result (let Z (shen.newpv V2060) (let X&& (shen.newpv V2060) (do (shen.incinfs) (cut Throwcontrol V2060 (freeze (bind X&& (shen.placeholder) V2060 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2060) (shen.lazyderef X V2060) (shen.lazyderef Y V2060)) V2060 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2059) V2060 V2061)))))))))) (do (shen.unbindv V1969 V2060) Result)))) false))) (do (shen.unbindv V1966 V2060) Result))) false))) (if (shen.pvar? V1965) (let B (shen.newpv V2060) (do (shen.bindv V1965 (cons --> (cons B ())) V2060) (let Result (let Z (shen.newpv V2060) (let X&& (shen.newpv V2060) (do (shen.incinfs) (cut Throwcontrol V2060 (freeze (bind X&& (shen.placeholder) V2060 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2060) (shen.lazyderef X V2060) (shen.lazyderef Y V2060)) V2060 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2059) V2060 V2061)))))))))) (do (shen.unbindv V1965 V2060) Result)))) false)))) (if (shen.pvar? V1964) (let A (shen.newpv V2060) (let B (shen.newpv V2060) (do (shen.bindv V1964 (cons A (cons --> (cons B ()))) V2060) (let Result (let Z (shen.newpv V2060) (let X&& (shen.newpv V2060) (do (shen.incinfs) (cut Throwcontrol V2060 (freeze (bind X&& (shen.placeholder) V2060 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2060) (shen.lazyderef X V2060) (shen.lazyderef Y V2060)) V2060 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2059) V2060 V2061)))))))))) (do (shen.unbindv V1964 V2060) Result))))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1971 (shen.lazyderef V2057 V2060) (if (cons? V1971) (let V1972 (shen.lazyderef (hd V1971) V2060) (if (= let V1972) (let V1973 (shen.lazyderef (tl V1971) V2060) (if (cons? V1973) (let X (hd V1973) (let V1974 (shen.lazyderef (tl V1973) V2060) (if (cons? V1974) (let Y (hd V1974) (let V1975 (shen.lazyderef (tl V1974) V2060) (if (cons? V1975) (let Z (hd V1975) (let V1976 (shen.lazyderef (tl V1975) V2060) (if (= () V1976) (let W (shen.newpv V2060) (let X&& (shen.newpv V2060) (let B (shen.newpv V2060) (do (shen.incinfs) (shen.th* Y B V2059 V2060 (freeze (bind X&& (shen.placeholder) V2060 (freeze (bind W (shen.ebr (shen.lazyderef X&& V2060) (shen.lazyderef X V2060) (shen.lazyderef Z V2060)) V2060 (freeze (shen.th* W V2058 (cons (cons X&& (cons : (cons B ()))) V2059) V2060 V2061))))))))))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1977 (shen.lazyderef V2057 V2060) (if (cons? V1977) (let V1978 (shen.lazyderef (hd V1977) V2060) (if (= open V1978) (let V1979 (shen.lazyderef (tl V1977) V2060) (if (cons? V1979) (let FileName (hd V1979) (let V1980 (shen.lazyderef (tl V1979) V2060) (if (cons? V1980) (let Direction1910 (hd V1980) (let V1981 (shen.lazyderef (tl V1980) V2060) (if (= () V1981) (let V1982 (shen.lazyderef V2058 V2060) (if (cons? V1982) (let V1983 (shen.lazyderef (hd V1982) V2060) (if (= stream V1983) (let V1984 (shen.lazyderef (tl V1982) V2060) (if (cons? V1984) (let Direction (hd V1984) (let V1985 (shen.lazyderef (tl V1984) V2060) (if (= () V1985) (do (shen.incinfs) (unify! Direction Direction1910 V2060 (freeze (cut Throwcontrol V2060 (freeze (shen.th* FileName string V2059 V2060 V2061)))))) (if (shen.pvar? V1985) (do (shen.bindv V1985 () V2060) (let Result (do (shen.incinfs) (unify! Direction Direction1910 V2060 (freeze (cut Throwcontrol V2060 (freeze (shen.th* FileName string V2059 V2060 V2061)))))) (do (shen.unbindv V1985 V2060) Result))) false)))) (if (shen.pvar? V1984) (let Direction (shen.newpv V2060) (do (shen.bindv V1984 (cons Direction ()) V2060) (let Result (do (shen.incinfs) (unify! Direction Direction1910 V2060 (freeze (cut Throwcontrol V2060 (freeze (shen.th* FileName string V2059 V2060 V2061)))))) (do (shen.unbindv V1984 V2060) Result)))) false))) (if (shen.pvar? V1983) (do (shen.bindv V1983 stream V2060) (let Result (let V1986 (shen.lazyderef (tl V1982) V2060) (if (cons? V1986) (let Direction (hd V1986) (let V1987 (shen.lazyderef (tl V1986) V2060) (if (= () V1987) (do (shen.incinfs) (unify! Direction Direction1910 V2060 (freeze (cut Throwcontrol V2060 (freeze (shen.th* FileName string V2059 V2060 V2061)))))) (if (shen.pvar? V1987) (do (shen.bindv V1987 () V2060) (let Result (do (shen.incinfs) (unify! Direction Direction1910 V2060 (freeze (cut Throwcontrol V2060 (freeze (shen.th* FileName string V2059 V2060 V2061)))))) (do (shen.unbindv V1987 V2060) Result))) false)))) (if (shen.pvar? V1986) (let Direction (shen.newpv V2060) (do (shen.bindv V1986 (cons Direction ()) V2060) (let Result (do (shen.incinfs) (unify! Direction Direction1910 V2060 (freeze (cut Throwcontrol V2060 (freeze (shen.th* FileName string V2059 V2060 V2061)))))) (do (shen.unbindv V1986 V2060) Result)))) false))) (do (shen.unbindv V1983 V2060) Result))) false))) (if (shen.pvar? V1982) (let Direction (shen.newpv V2060) (do (shen.bindv V1982 (cons stream (cons Direction ())) V2060) (let Result (do (shen.incinfs) (unify! Direction Direction1910 V2060 (freeze (cut Throwcontrol V2060 (freeze (shen.th* FileName string V2059 V2060 V2061)))))) (do (shen.unbindv V1982 V2060) Result)))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1988 (shen.lazyderef V2057 V2060) (if (cons? V1988) (let V1989 (shen.lazyderef (hd V1988) V2060) (if (= type V1989) (let V1990 (shen.lazyderef (tl V1988) V2060) (if (cons? V1990) (let X (hd V1990) (let V1991 (shen.lazyderef (tl V1990) V2060) (if (cons? V1991) (let A (hd V1991) (let V1992 (shen.lazyderef (tl V1991) V2060) (if (= () V1992) (do (shen.incinfs) (cut Throwcontrol V2060 (freeze (unify A V2058 V2060 (freeze (shen.th* X A V2059 V2060 V2061)))))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1993 (shen.lazyderef V2057 V2060) (if (cons? V1993) (let V1994 (shen.lazyderef (hd V1993) V2060) (if (= input+ V1994) (let V1995 (shen.lazyderef (tl V1993) V2060) (if (cons? V1995) (let A (hd V1995) (let V1996 (shen.lazyderef (tl V1995) V2060) (if (cons? V1996) (let Stream (hd V1996) (let V1997 (shen.lazyderef (tl V1996) V2060) (if (= () V1997) (let C (shen.newpv V2060) (do (shen.incinfs) (bind C (shen.demodulate (shen.lazyderef A V2060)) V2060 (freeze (unify V2058 C V2060 (freeze (shen.th* Stream (cons stream (cons in ())) V2059 V2060 V2061))))))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1998 (shen.lazyderef V2057 V2060) (if (cons? V1998) (let V1999 (shen.lazyderef (hd V1998) V2060) (if (= set V1999) (let V2000 (shen.lazyderef (tl V1998) V2060) (if (cons? V2000) (let Var (hd V2000) (let V2001 (shen.lazyderef (tl V2000) V2060) (if (cons? V2001) (let Val (hd V2001) (let V2002 (shen.lazyderef (tl V2001) V2060) (if (= () V2002) (do (shen.incinfs) (cut Throwcontrol V2060 (freeze (shen.th* Var symbol V2059 V2060 (freeze (cut Throwcontrol V2060 (freeze (shen.th* (cons value (cons Var ())) V2058 V2059 V2060 (freeze (shen.th* Val V2058 V2059 V2060 V2061)))))))))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let NewHyp (shen.newpv V2060) (do (shen.incinfs) (shen.t*-hyps V2059 NewHyp V2060 (freeze (shen.th* V2057 V2058 NewHyp V2060 V2061))))) (if (= Case false) (let Case (let V2003 (shen.lazyderef V2057 V2060) (if (cons? V2003) (let V2004 (shen.lazyderef (hd V2003) V2060) (if (= define V2004) (let V2005 (shen.lazyderef (tl V2003) V2060) (if (cons? V2005) (let F (hd V2005) (let X (tl V2005) (do (shen.incinfs) (cut Throwcontrol V2060 (freeze (shen.t*-def (cons define (cons F X)) V2058 V2059 V2060 V2061)))))) false)) false)) false)) (if (= Case false) (let Case (let V2006 (shen.lazyderef V2057 V2060) (if (cons? V2006) (let V2007 (shen.lazyderef (hd V2006) V2060) (if (= defmacro V2007) (let V2008 (shen.lazyderef V2058 V2060) (if (= unit V2008) (do (shen.incinfs) (cut Throwcontrol V2060 V2061)) (if (shen.pvar? V2008) (do (shen.bindv V2008 unit V2060) (let Result (do (shen.incinfs) (cut Throwcontrol V2060 V2061)) (do (shen.unbindv V2008 V2060) Result))) false))) false)) false)) (if (= Case false) (let Case (let V2009 (shen.lazyderef V2057 V2060) (if (cons? V2009) (let V2010 (shen.lazyderef (hd V2009) V2060) (if (= shen.process-datatype V2010) (let V2011 (shen.lazyderef V2058 V2060) (if (= symbol V2011) (do (shen.incinfs) (thaw V2061)) (if (shen.pvar? V2011) (do (shen.bindv V2011 symbol V2060) (let Result (do (shen.incinfs) (thaw V2061)) (do (shen.unbindv V2011 V2060) Result))) false))) false)) false)) (if (= Case false) (let Case (let V2012 (shen.lazyderef V2057 V2060) (if (cons? V2012) (let V2013 (shen.lazyderef (hd V2012) V2060) (if (= shen.synonyms-help V2013) (let V2014 (shen.lazyderef V2058 V2060) (if (= symbol V2014) (do (shen.incinfs) (thaw V2061)) (if (shen.pvar? V2014) (do (shen.bindv V2014 symbol V2060) (let Result (do (shen.incinfs) (thaw V2061)) (do (shen.unbindv V2014 V2060) Result))) false))) false)) false)) (if (= Case false) (let Datatypes (shen.newpv V2060) (do (shen.incinfs) (bind Datatypes (value shen.*datatypes*) V2060 (freeze (shen.udefs* (cons V2057 (cons : (cons V2058 ()))) V2059 Datatypes V2060 V2061))))) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)))))
49
+ (defun shen.th* (V2106 V2107 V2108 V2109 V2110) (let Throwcontrol (shen.catchpoint) (shen.cutpoint Throwcontrol (let Case (do (shen.incinfs) (shen.show (cons V2106 (cons : (cons V2107 ()))) V2108 V2109 (freeze (fwhen false V2109 V2110)))) (if (= Case false) (let Case (let F (shen.newpv V2109) (do (shen.incinfs) (fwhen (shen.typedf? (shen.lazyderef V2106 V2109)) V2109 (freeze (bind F (shen.sigf (shen.lazyderef V2106 V2109)) V2109 (freeze (call (cons F (cons V2107 ())) V2109 V2110))))))) (if (= Case false) (let Case (do (shen.incinfs) (shen.base V2106 V2107 V2109 V2110)) (if (= Case false) (let Case (do (shen.incinfs) (shen.by_hypothesis V2106 V2107 V2108 V2109 V2110)) (if (= Case false) (let Case (let V1963 (shen.lazyderef V2106 V2109) (if (cons? V1963) (let F (hd V1963) (let V1964 (shen.lazyderef (tl V1963) V2109) (if (= () V1964) (do (shen.incinfs) (shen.th* F (cons --> (cons V2107 ())) V2108 V2109 V2110)) false))) false)) (if (= Case false) (let Case (let V1965 (shen.lazyderef V2106 V2109) (if (cons? V1965) (let F (hd V1965) (let V1966 (shen.lazyderef (tl V1965) V2109) (if (cons? V1966) (let X (hd V1966) (let V1967 (shen.lazyderef (tl V1966) V2109) (if (= () V1967) (let B (shen.newpv V2109) (do (shen.incinfs) (shen.th* F (cons B (cons --> (cons V2107 ()))) V2108 V2109 (freeze (shen.th* X B V2108 V2109 V2110))))) false))) false))) false)) (if (= Case false) (let Case (let V1968 (shen.lazyderef V2106 V2109) (if (cons? V1968) (let V1969 (shen.lazyderef (hd V1968) V2109) (if (= cons V1969) (let V1970 (shen.lazyderef (tl V1968) V2109) (if (cons? V1970) (let X (hd V1970) (let V1971 (shen.lazyderef (tl V1970) V2109) (if (cons? V1971) (let Y (hd V1971) (let V1972 (shen.lazyderef (tl V1971) V2109) (if (= () V1972) (let V1973 (shen.lazyderef V2107 V2109) (if (cons? V1973) (let V1974 (shen.lazyderef (hd V1973) V2109) (if (= list V1974) (let V1975 (shen.lazyderef (tl V1973) V2109) (if (cons? V1975) (let A (hd V1975) (let V1976 (shen.lazyderef (tl V1975) V2109) (if (= () V1976) (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons list (cons A ())) V2108 V2109 V2110)))) (if (shen.pvar? V1976) (do (shen.bindv V1976 () V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons list (cons A ())) V2108 V2109 V2110)))) (do (shen.unbindv V1976 V2109) Result))) false)))) (if (shen.pvar? V1975) (let A (shen.newpv V2109) (do (shen.bindv V1975 (cons A ()) V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons list (cons A ())) V2108 V2109 V2110)))) (do (shen.unbindv V1975 V2109) Result)))) false))) (if (shen.pvar? V1974) (do (shen.bindv V1974 list V2109) (let Result (let V1977 (shen.lazyderef (tl V1973) V2109) (if (cons? V1977) (let A (hd V1977) (let V1978 (shen.lazyderef (tl V1977) V2109) (if (= () V1978) (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons list (cons A ())) V2108 V2109 V2110)))) (if (shen.pvar? V1978) (do (shen.bindv V1978 () V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons list (cons A ())) V2108 V2109 V2110)))) (do (shen.unbindv V1978 V2109) Result))) false)))) (if (shen.pvar? V1977) (let A (shen.newpv V2109) (do (shen.bindv V1977 (cons A ()) V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons list (cons A ())) V2108 V2109 V2110)))) (do (shen.unbindv V1977 V2109) Result)))) false))) (do (shen.unbindv V1974 V2109) Result))) false))) (if (shen.pvar? V1973) (let A (shen.newpv V2109) (do (shen.bindv V1973 (cons list (cons A ())) V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons list (cons A ())) V2108 V2109 V2110)))) (do (shen.unbindv V1973 V2109) Result)))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1979 (shen.lazyderef V2106 V2109) (if (cons? V1979) (let V1980 (shen.lazyderef (hd V1979) V2109) (if (= @p V1980) (let V1981 (shen.lazyderef (tl V1979) V2109) (if (cons? V1981) (let X (hd V1981) (let V1982 (shen.lazyderef (tl V1981) V2109) (if (cons? V1982) (let Y (hd V1982) (let V1983 (shen.lazyderef (tl V1982) V2109) (if (= () V1983) (let V1984 (shen.lazyderef V2107 V2109) (if (cons? V1984) (let A (hd V1984) (let V1985 (shen.lazyderef (tl V1984) V2109) (if (cons? V1985) (let V1986 (shen.lazyderef (hd V1985) V2109) (if (= * V1986) (let V1987 (shen.lazyderef (tl V1985) V2109) (if (cons? V1987) (let B (hd V1987) (let V1988 (shen.lazyderef (tl V1987) V2109) (if (= () V1988) (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y B V2108 V2109 V2110)))) (if (shen.pvar? V1988) (do (shen.bindv V1988 () V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y B V2108 V2109 V2110)))) (do (shen.unbindv V1988 V2109) Result))) false)))) (if (shen.pvar? V1987) (let B (shen.newpv V2109) (do (shen.bindv V1987 (cons B ()) V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y B V2108 V2109 V2110)))) (do (shen.unbindv V1987 V2109) Result)))) false))) (if (shen.pvar? V1986) (do (shen.bindv V1986 * V2109) (let Result (let V1989 (shen.lazyderef (tl V1985) V2109) (if (cons? V1989) (let B (hd V1989) (let V1990 (shen.lazyderef (tl V1989) V2109) (if (= () V1990) (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y B V2108 V2109 V2110)))) (if (shen.pvar? V1990) (do (shen.bindv V1990 () V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y B V2108 V2109 V2110)))) (do (shen.unbindv V1990 V2109) Result))) false)))) (if (shen.pvar? V1989) (let B (shen.newpv V2109) (do (shen.bindv V1989 (cons B ()) V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y B V2108 V2109 V2110)))) (do (shen.unbindv V1989 V2109) Result)))) false))) (do (shen.unbindv V1986 V2109) Result))) false))) (if (shen.pvar? V1985) (let B (shen.newpv V2109) (do (shen.bindv V1985 (cons * (cons B ())) V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y B V2108 V2109 V2110)))) (do (shen.unbindv V1985 V2109) Result)))) false)))) (if (shen.pvar? V1984) (let A (shen.newpv V2109) (let B (shen.newpv V2109) (do (shen.bindv V1984 (cons A (cons * (cons B ()))) V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y B V2108 V2109 V2110)))) (do (shen.unbindv V1984 V2109) Result))))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1991 (shen.lazyderef V2106 V2109) (if (cons? V1991) (let V1992 (shen.lazyderef (hd V1991) V2109) (if (= @v V1992) (let V1993 (shen.lazyderef (tl V1991) V2109) (if (cons? V1993) (let X (hd V1993) (let V1994 (shen.lazyderef (tl V1993) V2109) (if (cons? V1994) (let Y (hd V1994) (let V1995 (shen.lazyderef (tl V1994) V2109) (if (= () V1995) (let V1996 (shen.lazyderef V2107 V2109) (if (cons? V1996) (let V1997 (shen.lazyderef (hd V1996) V2109) (if (= vector V1997) (let V1998 (shen.lazyderef (tl V1996) V2109) (if (cons? V1998) (let A (hd V1998) (let V1999 (shen.lazyderef (tl V1998) V2109) (if (= () V1999) (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons vector (cons A ())) V2108 V2109 V2110)))) (if (shen.pvar? V1999) (do (shen.bindv V1999 () V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons vector (cons A ())) V2108 V2109 V2110)))) (do (shen.unbindv V1999 V2109) Result))) false)))) (if (shen.pvar? V1998) (let A (shen.newpv V2109) (do (shen.bindv V1998 (cons A ()) V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons vector (cons A ())) V2108 V2109 V2110)))) (do (shen.unbindv V1998 V2109) Result)))) false))) (if (shen.pvar? V1997) (do (shen.bindv V1997 vector V2109) (let Result (let V2000 (shen.lazyderef (tl V1996) V2109) (if (cons? V2000) (let A (hd V2000) (let V2001 (shen.lazyderef (tl V2000) V2109) (if (= () V2001) (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons vector (cons A ())) V2108 V2109 V2110)))) (if (shen.pvar? V2001) (do (shen.bindv V2001 () V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons vector (cons A ())) V2108 V2109 V2110)))) (do (shen.unbindv V2001 V2109) Result))) false)))) (if (shen.pvar? V2000) (let A (shen.newpv V2109) (do (shen.bindv V2000 (cons A ()) V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons vector (cons A ())) V2108 V2109 V2110)))) (do (shen.unbindv V2000 V2109) Result)))) false))) (do (shen.unbindv V1997 V2109) Result))) false))) (if (shen.pvar? V1996) (let A (shen.newpv V2109) (do (shen.bindv V1996 (cons vector (cons A ())) V2109) (let Result (do (shen.incinfs) (shen.th* X A V2108 V2109 (freeze (shen.th* Y (cons vector (cons A ())) V2108 V2109 V2110)))) (do (shen.unbindv V1996 V2109) Result)))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V2002 (shen.lazyderef V2106 V2109) (if (cons? V2002) (let V2003 (shen.lazyderef (hd V2002) V2109) (if (= @s V2003) (let V2004 (shen.lazyderef (tl V2002) V2109) (if (cons? V2004) (let X (hd V2004) (let V2005 (shen.lazyderef (tl V2004) V2109) (if (cons? V2005) (let Y (hd V2005) (let V2006 (shen.lazyderef (tl V2005) V2109) (if (= () V2006) (let V2007 (shen.lazyderef V2107 V2109) (if (= string V2007) (do (shen.incinfs) (shen.th* X string V2108 V2109 (freeze (shen.th* Y string V2108 V2109 V2110)))) (if (shen.pvar? V2007) (do (shen.bindv V2007 string V2109) (let Result (do (shen.incinfs) (shen.th* X string V2108 V2109 (freeze (shen.th* Y string V2108 V2109 V2110)))) (do (shen.unbindv V2007 V2109) Result))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V2008 (shen.lazyderef V2106 V2109) (if (cons? V2008) (let V2009 (shen.lazyderef (hd V2008) V2109) (if (= lambda V2009) (let V2010 (shen.lazyderef (tl V2008) V2109) (if (cons? V2010) (let X (hd V2010) (let V2011 (shen.lazyderef (tl V2010) V2109) (if (cons? V2011) (let Y (hd V2011) (let V2012 (shen.lazyderef (tl V2011) V2109) (if (= () V2012) (let V2013 (shen.lazyderef V2107 V2109) (if (cons? V2013) (let A (hd V2013) (let V2014 (shen.lazyderef (tl V2013) V2109) (if (cons? V2014) (let V2015 (shen.lazyderef (hd V2014) V2109) (if (= --> V2015) (let V2016 (shen.lazyderef (tl V2014) V2109) (if (cons? V2016) (let B (hd V2016) (let V2017 (shen.lazyderef (tl V2016) V2109) (if (= () V2017) (let Z (shen.newpv V2109) (let X&& (shen.newpv V2109) (do (shen.incinfs) (cut Throwcontrol V2109 (freeze (bind X&& (shen.placeholder) V2109 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2109) (shen.lazyderef X V2109) (shen.lazyderef Y V2109)) V2109 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2108) V2109 V2110)))))))))) (if (shen.pvar? V2017) (do (shen.bindv V2017 () V2109) (let Result (let Z (shen.newpv V2109) (let X&& (shen.newpv V2109) (do (shen.incinfs) (cut Throwcontrol V2109 (freeze (bind X&& (shen.placeholder) V2109 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2109) (shen.lazyderef X V2109) (shen.lazyderef Y V2109)) V2109 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2108) V2109 V2110)))))))))) (do (shen.unbindv V2017 V2109) Result))) false)))) (if (shen.pvar? V2016) (let B (shen.newpv V2109) (do (shen.bindv V2016 (cons B ()) V2109) (let Result (let Z (shen.newpv V2109) (let X&& (shen.newpv V2109) (do (shen.incinfs) (cut Throwcontrol V2109 (freeze (bind X&& (shen.placeholder) V2109 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2109) (shen.lazyderef X V2109) (shen.lazyderef Y V2109)) V2109 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2108) V2109 V2110)))))))))) (do (shen.unbindv V2016 V2109) Result)))) false))) (if (shen.pvar? V2015) (do (shen.bindv V2015 --> V2109) (let Result (let V2018 (shen.lazyderef (tl V2014) V2109) (if (cons? V2018) (let B (hd V2018) (let V2019 (shen.lazyderef (tl V2018) V2109) (if (= () V2019) (let Z (shen.newpv V2109) (let X&& (shen.newpv V2109) (do (shen.incinfs) (cut Throwcontrol V2109 (freeze (bind X&& (shen.placeholder) V2109 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2109) (shen.lazyderef X V2109) (shen.lazyderef Y V2109)) V2109 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2108) V2109 V2110)))))))))) (if (shen.pvar? V2019) (do (shen.bindv V2019 () V2109) (let Result (let Z (shen.newpv V2109) (let X&& (shen.newpv V2109) (do (shen.incinfs) (cut Throwcontrol V2109 (freeze (bind X&& (shen.placeholder) V2109 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2109) (shen.lazyderef X V2109) (shen.lazyderef Y V2109)) V2109 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2108) V2109 V2110)))))))))) (do (shen.unbindv V2019 V2109) Result))) false)))) (if (shen.pvar? V2018) (let B (shen.newpv V2109) (do (shen.bindv V2018 (cons B ()) V2109) (let Result (let Z (shen.newpv V2109) (let X&& (shen.newpv V2109) (do (shen.incinfs) (cut Throwcontrol V2109 (freeze (bind X&& (shen.placeholder) V2109 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2109) (shen.lazyderef X V2109) (shen.lazyderef Y V2109)) V2109 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2108) V2109 V2110)))))))))) (do (shen.unbindv V2018 V2109) Result)))) false))) (do (shen.unbindv V2015 V2109) Result))) false))) (if (shen.pvar? V2014) (let B (shen.newpv V2109) (do (shen.bindv V2014 (cons --> (cons B ())) V2109) (let Result (let Z (shen.newpv V2109) (let X&& (shen.newpv V2109) (do (shen.incinfs) (cut Throwcontrol V2109 (freeze (bind X&& (shen.placeholder) V2109 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2109) (shen.lazyderef X V2109) (shen.lazyderef Y V2109)) V2109 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2108) V2109 V2110)))))))))) (do (shen.unbindv V2014 V2109) Result)))) false)))) (if (shen.pvar? V2013) (let A (shen.newpv V2109) (let B (shen.newpv V2109) (do (shen.bindv V2013 (cons A (cons --> (cons B ()))) V2109) (let Result (let Z (shen.newpv V2109) (let X&& (shen.newpv V2109) (do (shen.incinfs) (cut Throwcontrol V2109 (freeze (bind X&& (shen.placeholder) V2109 (freeze (bind Z (shen.ebr (shen.lazyderef X&& V2109) (shen.lazyderef X V2109) (shen.lazyderef Y V2109)) V2109 (freeze (shen.th* Z B (cons (cons X&& (cons : (cons A ()))) V2108) V2109 V2110)))))))))) (do (shen.unbindv V2013 V2109) Result))))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V2020 (shen.lazyderef V2106 V2109) (if (cons? V2020) (let V2021 (shen.lazyderef (hd V2020) V2109) (if (= let V2021) (let V2022 (shen.lazyderef (tl V2020) V2109) (if (cons? V2022) (let X (hd V2022) (let V2023 (shen.lazyderef (tl V2022) V2109) (if (cons? V2023) (let Y (hd V2023) (let V2024 (shen.lazyderef (tl V2023) V2109) (if (cons? V2024) (let Z (hd V2024) (let V2025 (shen.lazyderef (tl V2024) V2109) (if (= () V2025) (let W (shen.newpv V2109) (let X&& (shen.newpv V2109) (let B (shen.newpv V2109) (do (shen.incinfs) (shen.th* Y B V2108 V2109 (freeze (bind X&& (shen.placeholder) V2109 (freeze (bind W (shen.ebr (shen.lazyderef X&& V2109) (shen.lazyderef X V2109) (shen.lazyderef Z V2109)) V2109 (freeze (shen.th* W V2107 (cons (cons X&& (cons : (cons B ()))) V2108) V2109 V2110))))))))))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V2026 (shen.lazyderef V2106 V2109) (if (cons? V2026) (let V2027 (shen.lazyderef (hd V2026) V2109) (if (= open V2027) (let V2028 (shen.lazyderef (tl V2026) V2109) (if (cons? V2028) (let FileName (hd V2028) (let V2029 (shen.lazyderef (tl V2028) V2109) (if (cons? V2029) (let Direction1959 (hd V2029) (let V2030 (shen.lazyderef (tl V2029) V2109) (if (= () V2030) (let V2031 (shen.lazyderef V2107 V2109) (if (cons? V2031) (let V2032 (shen.lazyderef (hd V2031) V2109) (if (= stream V2032) (let V2033 (shen.lazyderef (tl V2031) V2109) (if (cons? V2033) (let Direction (hd V2033) (let V2034 (shen.lazyderef (tl V2033) V2109) (if (= () V2034) (do (shen.incinfs) (unify! Direction Direction1959 V2109 (freeze (cut Throwcontrol V2109 (freeze (shen.th* FileName string V2108 V2109 V2110)))))) (if (shen.pvar? V2034) (do (shen.bindv V2034 () V2109) (let Result (do (shen.incinfs) (unify! Direction Direction1959 V2109 (freeze (cut Throwcontrol V2109 (freeze (shen.th* FileName string V2108 V2109 V2110)))))) (do (shen.unbindv V2034 V2109) Result))) false)))) (if (shen.pvar? V2033) (let Direction (shen.newpv V2109) (do (shen.bindv V2033 (cons Direction ()) V2109) (let Result (do (shen.incinfs) (unify! Direction Direction1959 V2109 (freeze (cut Throwcontrol V2109 (freeze (shen.th* FileName string V2108 V2109 V2110)))))) (do (shen.unbindv V2033 V2109) Result)))) false))) (if (shen.pvar? V2032) (do (shen.bindv V2032 stream V2109) (let Result (let V2035 (shen.lazyderef (tl V2031) V2109) (if (cons? V2035) (let Direction (hd V2035) (let V2036 (shen.lazyderef (tl V2035) V2109) (if (= () V2036) (do (shen.incinfs) (unify! Direction Direction1959 V2109 (freeze (cut Throwcontrol V2109 (freeze (shen.th* FileName string V2108 V2109 V2110)))))) (if (shen.pvar? V2036) (do (shen.bindv V2036 () V2109) (let Result (do (shen.incinfs) (unify! Direction Direction1959 V2109 (freeze (cut Throwcontrol V2109 (freeze (shen.th* FileName string V2108 V2109 V2110)))))) (do (shen.unbindv V2036 V2109) Result))) false)))) (if (shen.pvar? V2035) (let Direction (shen.newpv V2109) (do (shen.bindv V2035 (cons Direction ()) V2109) (let Result (do (shen.incinfs) (unify! Direction Direction1959 V2109 (freeze (cut Throwcontrol V2109 (freeze (shen.th* FileName string V2108 V2109 V2110)))))) (do (shen.unbindv V2035 V2109) Result)))) false))) (do (shen.unbindv V2032 V2109) Result))) false))) (if (shen.pvar? V2031) (let Direction (shen.newpv V2109) (do (shen.bindv V2031 (cons stream (cons Direction ())) V2109) (let Result (do (shen.incinfs) (unify! Direction Direction1959 V2109 (freeze (cut Throwcontrol V2109 (freeze (shen.th* FileName string V2108 V2109 V2110)))))) (do (shen.unbindv V2031 V2109) Result)))) false))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V2037 (shen.lazyderef V2106 V2109) (if (cons? V2037) (let V2038 (shen.lazyderef (hd V2037) V2109) (if (= type V2038) (let V2039 (shen.lazyderef (tl V2037) V2109) (if (cons? V2039) (let X (hd V2039) (let V2040 (shen.lazyderef (tl V2039) V2109) (if (cons? V2040) (let A (hd V2040) (let V2041 (shen.lazyderef (tl V2040) V2109) (if (= () V2041) (do (shen.incinfs) (cut Throwcontrol V2109 (freeze (unify A V2107 V2109 (freeze (shen.th* X A V2108 V2109 V2110)))))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V2042 (shen.lazyderef V2106 V2109) (if (cons? V2042) (let V2043 (shen.lazyderef (hd V2042) V2109) (if (= input+ V2043) (let V2044 (shen.lazyderef (tl V2042) V2109) (if (cons? V2044) (let A (hd V2044) (let V2045 (shen.lazyderef (tl V2044) V2109) (if (cons? V2045) (let Stream (hd V2045) (let V2046 (shen.lazyderef (tl V2045) V2109) (if (= () V2046) (let C (shen.newpv V2109) (do (shen.incinfs) (bind C (shen.demodulate (shen.lazyderef A V2109)) V2109 (freeze (unify V2107 C V2109 (freeze (shen.th* Stream (cons stream (cons in ())) V2108 V2109 V2110))))))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V2047 (shen.lazyderef V2106 V2109) (if (cons? V2047) (let V2048 (shen.lazyderef (hd V2047) V2109) (if (= set V2048) (let V2049 (shen.lazyderef (tl V2047) V2109) (if (cons? V2049) (let Var (hd V2049) (let V2050 (shen.lazyderef (tl V2049) V2109) (if (cons? V2050) (let Val (hd V2050) (let V2051 (shen.lazyderef (tl V2050) V2109) (if (= () V2051) (do (shen.incinfs) (cut Throwcontrol V2109 (freeze (shen.th* Var symbol V2108 V2109 (freeze (cut Throwcontrol V2109 (freeze (shen.th* (cons value (cons Var ())) V2107 V2108 V2109 (freeze (shen.th* Val V2107 V2108 V2109 V2110)))))))))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let NewHyp (shen.newpv V2109) (do (shen.incinfs) (shen.t*-hyps V2108 NewHyp V2109 (freeze (shen.th* V2106 V2107 NewHyp V2109 V2110))))) (if (= Case false) (let Case (let V2052 (shen.lazyderef V2106 V2109) (if (cons? V2052) (let V2053 (shen.lazyderef (hd V2052) V2109) (if (= define V2053) (let V2054 (shen.lazyderef (tl V2052) V2109) (if (cons? V2054) (let F (hd V2054) (let X (tl V2054) (do (shen.incinfs) (cut Throwcontrol V2109 (freeze (shen.t*-def (cons define (cons F X)) V2107 V2108 V2109 V2110)))))) false)) false)) false)) (if (= Case false) (let Case (let V2055 (shen.lazyderef V2106 V2109) (if (cons? V2055) (let V2056 (shen.lazyderef (hd V2055) V2109) (if (= defmacro V2056) (let V2057 (shen.lazyderef V2107 V2109) (if (= unit V2057) (do (shen.incinfs) (cut Throwcontrol V2109 V2110)) (if (shen.pvar? V2057) (do (shen.bindv V2057 unit V2109) (let Result (do (shen.incinfs) (cut Throwcontrol V2109 V2110)) (do (shen.unbindv V2057 V2109) Result))) false))) false)) false)) (if (= Case false) (let Case (let V2058 (shen.lazyderef V2106 V2109) (if (cons? V2058) (let V2059 (shen.lazyderef (hd V2058) V2109) (if (= shen.process-datatype V2059) (let V2060 (shen.lazyderef V2107 V2109) (if (= symbol V2060) (do (shen.incinfs) (thaw V2110)) (if (shen.pvar? V2060) (do (shen.bindv V2060 symbol V2109) (let Result (do (shen.incinfs) (thaw V2110)) (do (shen.unbindv V2060 V2109) Result))) false))) false)) false)) (if (= Case false) (let Case (let V2061 (shen.lazyderef V2106 V2109) (if (cons? V2061) (let V2062 (shen.lazyderef (hd V2061) V2109) (if (= shen.synonyms-help V2062) (let V2063 (shen.lazyderef V2107 V2109) (if (= symbol V2063) (do (shen.incinfs) (thaw V2110)) (if (shen.pvar? V2063) (do (shen.bindv V2063 symbol V2109) (let Result (do (shen.incinfs) (thaw V2110)) (do (shen.unbindv V2063 V2109) Result))) false))) false)) false)) (if (= Case false) (let Datatypes (shen.newpv V2109) (do (shen.incinfs) (bind Datatypes (value shen.*datatypes*) V2109 (freeze (shen.udefs* (cons V2106 (cons : (cons V2107 ()))) V2108 Datatypes V2109 V2110))))) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)) Case)))))
50
50
 
51
- (defun shen.t*-hyps (V2062 V2063 V2064 V2065) (let Case (let V1825 (shen.lazyderef V2062 V2064) (if (cons? V1825) (let V1826 (shen.lazyderef (hd V1825) V2064) (if (cons? V1826) (let V1827 (shen.lazyderef (hd V1826) V2064) (if (cons? V1827) (let V1828 (shen.lazyderef (hd V1827) V2064) (if (= cons V1828) (let V1829 (shen.lazyderef (tl V1827) V2064) (if (cons? V1829) (let X (hd V1829) (let V1830 (shen.lazyderef (tl V1829) V2064) (if (cons? V1830) (let Y (hd V1830) (let V1831 (shen.lazyderef (tl V1830) V2064) (if (= () V1831) (let V1832 (shen.lazyderef (tl V1826) V2064) (if (cons? V1832) (let V1833 (shen.lazyderef (hd V1832) V2064) (if (= : V1833) (let V1834 (shen.lazyderef (tl V1832) V2064) (if (cons? V1834) (let V1835 (shen.lazyderef (hd V1834) V2064) (if (cons? V1835) (let V1836 (shen.lazyderef (hd V1835) V2064) (if (= list V1836) (let V1837 (shen.lazyderef (tl V1835) V2064) (if (cons? V1837) (let A (hd V1837) (let V1838 (shen.lazyderef (tl V1837) V2064) (if (= () V1838) (let V1839 (shen.lazyderef (tl V1834) V2064) (if (= () V1839) (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1839) (do (shen.bindv V1839 () V2064) (let Result (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1839 V2064) Result))) false))) (if (shen.pvar? V1838) (do (shen.bindv V1838 () V2064) (let Result (let V1840 (shen.lazyderef (tl V1834) V2064) (if (= () V1840) (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1840) (do (shen.bindv V1840 () V2064) (let Result (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1840 V2064) Result))) false))) (do (shen.unbindv V1838 V2064) Result))) false)))) (if (shen.pvar? V1837) (let A (shen.newpv V2064) (do (shen.bindv V1837 (cons A ()) V2064) (let Result (let V1841 (shen.lazyderef (tl V1834) V2064) (if (= () V1841) (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1841) (do (shen.bindv V1841 () V2064) (let Result (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1841 V2064) Result))) false))) (do (shen.unbindv V1837 V2064) Result)))) false))) (if (shen.pvar? V1836) (do (shen.bindv V1836 list V2064) (let Result (let V1842 (shen.lazyderef (tl V1835) V2064) (if (cons? V1842) (let A (hd V1842) (let V1843 (shen.lazyderef (tl V1842) V2064) (if (= () V1843) (let V1844 (shen.lazyderef (tl V1834) V2064) (if (= () V1844) (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1844) (do (shen.bindv V1844 () V2064) (let Result (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1844 V2064) Result))) false))) (if (shen.pvar? V1843) (do (shen.bindv V1843 () V2064) (let Result (let V1845 (shen.lazyderef (tl V1834) V2064) (if (= () V1845) (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1845) (do (shen.bindv V1845 () V2064) (let Result (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1845 V2064) Result))) false))) (do (shen.unbindv V1843 V2064) Result))) false)))) (if (shen.pvar? V1842) (let A (shen.newpv V2064) (do (shen.bindv V1842 (cons A ()) V2064) (let Result (let V1846 (shen.lazyderef (tl V1834) V2064) (if (= () V1846) (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1846) (do (shen.bindv V1846 () V2064) (let Result (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1846 V2064) Result))) false))) (do (shen.unbindv V1842 V2064) Result)))) false))) (do (shen.unbindv V1836 V2064) Result))) false))) (if (shen.pvar? V1835) (let A (shen.newpv V2064) (do (shen.bindv V1835 (cons list (cons A ())) V2064) (let Result (let V1847 (shen.lazyderef (tl V1834) V2064) (if (= () V1847) (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1847) (do (shen.bindv V1847 () V2064) (let Result (let Hyp (tl V1825) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons list (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1847 V2064) Result))) false))) (do (shen.unbindv V1835 V2064) Result)))) false))) false)) false)) false)) false))) false))) false)) false)) false)) false)) false)) (if (= Case false) (let Case (let V1848 (shen.lazyderef V2062 V2064) (if (cons? V1848) (let V1849 (shen.lazyderef (hd V1848) V2064) (if (cons? V1849) (let V1850 (shen.lazyderef (hd V1849) V2064) (if (cons? V1850) (let V1851 (shen.lazyderef (hd V1850) V2064) (if (= @p V1851) (let V1852 (shen.lazyderef (tl V1850) V2064) (if (cons? V1852) (let X (hd V1852) (let V1853 (shen.lazyderef (tl V1852) V2064) (if (cons? V1853) (let Y (hd V1853) (let V1854 (shen.lazyderef (tl V1853) V2064) (if (= () V1854) (let V1855 (shen.lazyderef (tl V1849) V2064) (if (cons? V1855) (let V1856 (shen.lazyderef (hd V1855) V2064) (if (= : V1856) (let V1857 (shen.lazyderef (tl V1855) V2064) (if (cons? V1857) (let V1858 (shen.lazyderef (hd V1857) V2064) (if (cons? V1858) (let A (hd V1858) (let V1859 (shen.lazyderef (tl V1858) V2064) (if (cons? V1859) (let V1860 (shen.lazyderef (hd V1859) V2064) (if (= * V1860) (let V1861 (shen.lazyderef (tl V1859) V2064) (if (cons? V1861) (let B (hd V1861) (let V1862 (shen.lazyderef (tl V1861) V2064) (if (= () V1862) (let V1863 (shen.lazyderef (tl V1857) V2064) (if (= () V1863) (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1863) (do (shen.bindv V1863 () V2064) (let Result (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1863 V2064) Result))) false))) (if (shen.pvar? V1862) (do (shen.bindv V1862 () V2064) (let Result (let V1864 (shen.lazyderef (tl V1857) V2064) (if (= () V1864) (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1864) (do (shen.bindv V1864 () V2064) (let Result (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1864 V2064) Result))) false))) (do (shen.unbindv V1862 V2064) Result))) false)))) (if (shen.pvar? V1861) (let B (shen.newpv V2064) (do (shen.bindv V1861 (cons B ()) V2064) (let Result (let V1865 (shen.lazyderef (tl V1857) V2064) (if (= () V1865) (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1865) (do (shen.bindv V1865 () V2064) (let Result (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1865 V2064) Result))) false))) (do (shen.unbindv V1861 V2064) Result)))) false))) (if (shen.pvar? V1860) (do (shen.bindv V1860 * V2064) (let Result (let V1866 (shen.lazyderef (tl V1859) V2064) (if (cons? V1866) (let B (hd V1866) (let V1867 (shen.lazyderef (tl V1866) V2064) (if (= () V1867) (let V1868 (shen.lazyderef (tl V1857) V2064) (if (= () V1868) (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1868) (do (shen.bindv V1868 () V2064) (let Result (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1868 V2064) Result))) false))) (if (shen.pvar? V1867) (do (shen.bindv V1867 () V2064) (let Result (let V1869 (shen.lazyderef (tl V1857) V2064) (if (= () V1869) (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1869) (do (shen.bindv V1869 () V2064) (let Result (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1869 V2064) Result))) false))) (do (shen.unbindv V1867 V2064) Result))) false)))) (if (shen.pvar? V1866) (let B (shen.newpv V2064) (do (shen.bindv V1866 (cons B ()) V2064) (let Result (let V1870 (shen.lazyderef (tl V1857) V2064) (if (= () V1870) (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1870) (do (shen.bindv V1870 () V2064) (let Result (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1870 V2064) Result))) false))) (do (shen.unbindv V1866 V2064) Result)))) false))) (do (shen.unbindv V1860 V2064) Result))) false))) (if (shen.pvar? V1859) (let B (shen.newpv V2064) (do (shen.bindv V1859 (cons * (cons B ())) V2064) (let Result (let V1871 (shen.lazyderef (tl V1857) V2064) (if (= () V1871) (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1871) (do (shen.bindv V1871 () V2064) (let Result (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1871 V2064) Result))) false))) (do (shen.unbindv V1859 V2064) Result)))) false)))) (if (shen.pvar? V1858) (let A (shen.newpv V2064) (let B (shen.newpv V2064) (do (shen.bindv V1858 (cons A (cons * (cons B ()))) V2064) (let Result (let V1872 (shen.lazyderef (tl V1857) V2064) (if (= () V1872) (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1872) (do (shen.bindv V1872 () V2064) (let Result (let Hyp (tl V1848) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (shen.lazyderef B V2064) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1872 V2064) Result))) false))) (do (shen.unbindv V1858 V2064) Result))))) false))) false)) false)) false)) false))) false))) false)) false)) false)) false)) false)) (if (= Case false) (let Case (let V1873 (shen.lazyderef V2062 V2064) (if (cons? V1873) (let V1874 (shen.lazyderef (hd V1873) V2064) (if (cons? V1874) (let V1875 (shen.lazyderef (hd V1874) V2064) (if (cons? V1875) (let V1876 (shen.lazyderef (hd V1875) V2064) (if (= @v V1876) (let V1877 (shen.lazyderef (tl V1875) V2064) (if (cons? V1877) (let X (hd V1877) (let V1878 (shen.lazyderef (tl V1877) V2064) (if (cons? V1878) (let Y (hd V1878) (let V1879 (shen.lazyderef (tl V1878) V2064) (if (= () V1879) (let V1880 (shen.lazyderef (tl V1874) V2064) (if (cons? V1880) (let V1881 (shen.lazyderef (hd V1880) V2064) (if (= : V1881) (let V1882 (shen.lazyderef (tl V1880) V2064) (if (cons? V1882) (let V1883 (shen.lazyderef (hd V1882) V2064) (if (cons? V1883) (let V1884 (shen.lazyderef (hd V1883) V2064) (if (= vector V1884) (let V1885 (shen.lazyderef (tl V1883) V2064) (if (cons? V1885) (let A (hd V1885) (let V1886 (shen.lazyderef (tl V1885) V2064) (if (= () V1886) (let V1887 (shen.lazyderef (tl V1882) V2064) (if (= () V1887) (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1887) (do (shen.bindv V1887 () V2064) (let Result (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1887 V2064) Result))) false))) (if (shen.pvar? V1886) (do (shen.bindv V1886 () V2064) (let Result (let V1888 (shen.lazyderef (tl V1882) V2064) (if (= () V1888) (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1888) (do (shen.bindv V1888 () V2064) (let Result (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1888 V2064) Result))) false))) (do (shen.unbindv V1886 V2064) Result))) false)))) (if (shen.pvar? V1885) (let A (shen.newpv V2064) (do (shen.bindv V1885 (cons A ()) V2064) (let Result (let V1889 (shen.lazyderef (tl V1882) V2064) (if (= () V1889) (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1889) (do (shen.bindv V1889 () V2064) (let Result (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1889 V2064) Result))) false))) (do (shen.unbindv V1885 V2064) Result)))) false))) (if (shen.pvar? V1884) (do (shen.bindv V1884 vector V2064) (let Result (let V1890 (shen.lazyderef (tl V1883) V2064) (if (cons? V1890) (let A (hd V1890) (let V1891 (shen.lazyderef (tl V1890) V2064) (if (= () V1891) (let V1892 (shen.lazyderef (tl V1882) V2064) (if (= () V1892) (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1892) (do (shen.bindv V1892 () V2064) (let Result (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1892 V2064) Result))) false))) (if (shen.pvar? V1891) (do (shen.bindv V1891 () V2064) (let Result (let V1893 (shen.lazyderef (tl V1882) V2064) (if (= () V1893) (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1893) (do (shen.bindv V1893 () V2064) (let Result (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1893 V2064) Result))) false))) (do (shen.unbindv V1891 V2064) Result))) false)))) (if (shen.pvar? V1890) (let A (shen.newpv V2064) (do (shen.bindv V1890 (cons A ()) V2064) (let Result (let V1894 (shen.lazyderef (tl V1882) V2064) (if (= () V1894) (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1894) (do (shen.bindv V1894 () V2064) (let Result (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1894 V2064) Result))) false))) (do (shen.unbindv V1890 V2064) Result)))) false))) (do (shen.unbindv V1884 V2064) Result))) false))) (if (shen.pvar? V1883) (let A (shen.newpv V2064) (do (shen.bindv V1883 (cons vector (cons A ())) V2064) (let Result (let V1895 (shen.lazyderef (tl V1882) V2064) (if (= () V1895) (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1895) (do (shen.bindv V1895 () V2064) (let Result (let Hyp (tl V1873) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons (shen.lazyderef A V2064) ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons (cons vector (cons (shen.lazyderef A V2064) ())) ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1895 V2064) Result))) false))) (do (shen.unbindv V1883 V2064) Result)))) false))) false)) false)) false)) false))) false))) false)) false)) false)) false)) false)) (if (= Case false) (let Case (let V1896 (shen.lazyderef V2062 V2064) (if (cons? V1896) (let V1897 (shen.lazyderef (hd V1896) V2064) (if (cons? V1897) (let V1898 (shen.lazyderef (hd V1897) V2064) (if (cons? V1898) (let V1899 (shen.lazyderef (hd V1898) V2064) (if (= @s V1899) (let V1900 (shen.lazyderef (tl V1898) V2064) (if (cons? V1900) (let X (hd V1900) (let V1901 (shen.lazyderef (tl V1900) V2064) (if (cons? V1901) (let Y (hd V1901) (let V1902 (shen.lazyderef (tl V1901) V2064) (if (= () V1902) (let V1903 (shen.lazyderef (tl V1897) V2064) (if (cons? V1903) (let V1904 (shen.lazyderef (hd V1903) V2064) (if (= : V1904) (let V1905 (shen.lazyderef (tl V1903) V2064) (if (cons? V1905) (let V1906 (shen.lazyderef (hd V1905) V2064) (if (= string V1906) (let V1907 (shen.lazyderef (tl V1905) V2064) (if (= () V1907) (let Hyp (tl V1896) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons string ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons string ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1907) (do (shen.bindv V1907 () V2064) (let Result (let Hyp (tl V1896) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons string ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons string ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1907 V2064) Result))) false))) (if (shen.pvar? V1906) (do (shen.bindv V1906 string V2064) (let Result (let V1908 (shen.lazyderef (tl V1905) V2064) (if (= () V1908) (let Hyp (tl V1896) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons string ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons string ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (if (shen.pvar? V1908) (do (shen.bindv V1908 () V2064) (let Result (let Hyp (tl V1896) (do (shen.incinfs) (bind V2063 (cons (cons (shen.lazyderef X V2064) (cons : (cons string ()))) (cons (cons (shen.lazyderef Y V2064) (cons : (cons string ()))) (shen.lazyderef Hyp V2064))) V2064 V2065))) (do (shen.unbindv V1908 V2064) Result))) false))) (do (shen.unbindv V1906 V2064) Result))) false))) false)) false)) false)) false))) false))) false)) false)) false)) false)) false)) (if (= Case false) (let V1909 (shen.lazyderef V2062 V2064) (if (cons? V1909) (let X (hd V1909) (let Hyp (tl V1909) (let NewHyps (shen.newpv V2064) (do (shen.incinfs) (bind V2063 (cons (shen.lazyderef X V2064) (shen.lazyderef NewHyps V2064)) V2064 (freeze (shen.t*-hyps Hyp NewHyps V2064 V2065))))))) false)) Case)) Case)) Case)) Case)))
51
+ (defun shen.t*-hyps (V2111 V2112 V2113 V2114) (let Case (let V1874 (shen.lazyderef V2111 V2113) (if (cons? V1874) (let V1875 (shen.lazyderef (hd V1874) V2113) (if (cons? V1875) (let V1876 (shen.lazyderef (hd V1875) V2113) (if (cons? V1876) (let V1877 (shen.lazyderef (hd V1876) V2113) (if (= cons V1877) (let V1878 (shen.lazyderef (tl V1876) V2113) (if (cons? V1878) (let X (hd V1878) (let V1879 (shen.lazyderef (tl V1878) V2113) (if (cons? V1879) (let Y (hd V1879) (let V1880 (shen.lazyderef (tl V1879) V2113) (if (= () V1880) (let V1881 (shen.lazyderef (tl V1875) V2113) (if (cons? V1881) (let V1882 (shen.lazyderef (hd V1881) V2113) (if (= : V1882) (let V1883 (shen.lazyderef (tl V1881) V2113) (if (cons? V1883) (let V1884 (shen.lazyderef (hd V1883) V2113) (if (cons? V1884) (let V1885 (shen.lazyderef (hd V1884) V2113) (if (= list V1885) (let V1886 (shen.lazyderef (tl V1884) V2113) (if (cons? V1886) (let A (hd V1886) (let V1887 (shen.lazyderef (tl V1886) V2113) (if (= () V1887) (let V1888 (shen.lazyderef (tl V1883) V2113) (if (= () V1888) (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1888) (do (shen.bindv V1888 () V2113) (let Result (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1888 V2113) Result))) false))) (if (shen.pvar? V1887) (do (shen.bindv V1887 () V2113) (let Result (let V1889 (shen.lazyderef (tl V1883) V2113) (if (= () V1889) (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1889) (do (shen.bindv V1889 () V2113) (let Result (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1889 V2113) Result))) false))) (do (shen.unbindv V1887 V2113) Result))) false)))) (if (shen.pvar? V1886) (let A (shen.newpv V2113) (do (shen.bindv V1886 (cons A ()) V2113) (let Result (let V1890 (shen.lazyderef (tl V1883) V2113) (if (= () V1890) (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1890) (do (shen.bindv V1890 () V2113) (let Result (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1890 V2113) Result))) false))) (do (shen.unbindv V1886 V2113) Result)))) false))) (if (shen.pvar? V1885) (do (shen.bindv V1885 list V2113) (let Result (let V1891 (shen.lazyderef (tl V1884) V2113) (if (cons? V1891) (let A (hd V1891) (let V1892 (shen.lazyderef (tl V1891) V2113) (if (= () V1892) (let V1893 (shen.lazyderef (tl V1883) V2113) (if (= () V1893) (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1893) (do (shen.bindv V1893 () V2113) (let Result (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1893 V2113) Result))) false))) (if (shen.pvar? V1892) (do (shen.bindv V1892 () V2113) (let Result (let V1894 (shen.lazyderef (tl V1883) V2113) (if (= () V1894) (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1894) (do (shen.bindv V1894 () V2113) (let Result (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1894 V2113) Result))) false))) (do (shen.unbindv V1892 V2113) Result))) false)))) (if (shen.pvar? V1891) (let A (shen.newpv V2113) (do (shen.bindv V1891 (cons A ()) V2113) (let Result (let V1895 (shen.lazyderef (tl V1883) V2113) (if (= () V1895) (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1895) (do (shen.bindv V1895 () V2113) (let Result (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1895 V2113) Result))) false))) (do (shen.unbindv V1891 V2113) Result)))) false))) (do (shen.unbindv V1885 V2113) Result))) false))) (if (shen.pvar? V1884) (let A (shen.newpv V2113) (do (shen.bindv V1884 (cons list (cons A ())) V2113) (let Result (let V1896 (shen.lazyderef (tl V1883) V2113) (if (= () V1896) (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1896) (do (shen.bindv V1896 () V2113) (let Result (let Hyp (tl V1874) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons list (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1896 V2113) Result))) false))) (do (shen.unbindv V1884 V2113) Result)))) false))) false)) false)) false)) false))) false))) false)) false)) false)) false)) false)) (if (= Case false) (let Case (let V1897 (shen.lazyderef V2111 V2113) (if (cons? V1897) (let V1898 (shen.lazyderef (hd V1897) V2113) (if (cons? V1898) (let V1899 (shen.lazyderef (hd V1898) V2113) (if (cons? V1899) (let V1900 (shen.lazyderef (hd V1899) V2113) (if (= @p V1900) (let V1901 (shen.lazyderef (tl V1899) V2113) (if (cons? V1901) (let X (hd V1901) (let V1902 (shen.lazyderef (tl V1901) V2113) (if (cons? V1902) (let Y (hd V1902) (let V1903 (shen.lazyderef (tl V1902) V2113) (if (= () V1903) (let V1904 (shen.lazyderef (tl V1898) V2113) (if (cons? V1904) (let V1905 (shen.lazyderef (hd V1904) V2113) (if (= : V1905) (let V1906 (shen.lazyderef (tl V1904) V2113) (if (cons? V1906) (let V1907 (shen.lazyderef (hd V1906) V2113) (if (cons? V1907) (let A (hd V1907) (let V1908 (shen.lazyderef (tl V1907) V2113) (if (cons? V1908) (let V1909 (shen.lazyderef (hd V1908) V2113) (if (= * V1909) (let V1910 (shen.lazyderef (tl V1908) V2113) (if (cons? V1910) (let B (hd V1910) (let V1911 (shen.lazyderef (tl V1910) V2113) (if (= () V1911) (let V1912 (shen.lazyderef (tl V1906) V2113) (if (= () V1912) (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1912) (do (shen.bindv V1912 () V2113) (let Result (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1912 V2113) Result))) false))) (if (shen.pvar? V1911) (do (shen.bindv V1911 () V2113) (let Result (let V1913 (shen.lazyderef (tl V1906) V2113) (if (= () V1913) (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1913) (do (shen.bindv V1913 () V2113) (let Result (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1913 V2113) Result))) false))) (do (shen.unbindv V1911 V2113) Result))) false)))) (if (shen.pvar? V1910) (let B (shen.newpv V2113) (do (shen.bindv V1910 (cons B ()) V2113) (let Result (let V1914 (shen.lazyderef (tl V1906) V2113) (if (= () V1914) (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1914) (do (shen.bindv V1914 () V2113) (let Result (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1914 V2113) Result))) false))) (do (shen.unbindv V1910 V2113) Result)))) false))) (if (shen.pvar? V1909) (do (shen.bindv V1909 * V2113) (let Result (let V1915 (shen.lazyderef (tl V1908) V2113) (if (cons? V1915) (let B (hd V1915) (let V1916 (shen.lazyderef (tl V1915) V2113) (if (= () V1916) (let V1917 (shen.lazyderef (tl V1906) V2113) (if (= () V1917) (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1917) (do (shen.bindv V1917 () V2113) (let Result (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1917 V2113) Result))) false))) (if (shen.pvar? V1916) (do (shen.bindv V1916 () V2113) (let Result (let V1918 (shen.lazyderef (tl V1906) V2113) (if (= () V1918) (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1918) (do (shen.bindv V1918 () V2113) (let Result (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1918 V2113) Result))) false))) (do (shen.unbindv V1916 V2113) Result))) false)))) (if (shen.pvar? V1915) (let B (shen.newpv V2113) (do (shen.bindv V1915 (cons B ()) V2113) (let Result (let V1919 (shen.lazyderef (tl V1906) V2113) (if (= () V1919) (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1919) (do (shen.bindv V1919 () V2113) (let Result (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1919 V2113) Result))) false))) (do (shen.unbindv V1915 V2113) Result)))) false))) (do (shen.unbindv V1909 V2113) Result))) false))) (if (shen.pvar? V1908) (let B (shen.newpv V2113) (do (shen.bindv V1908 (cons * (cons B ())) V2113) (let Result (let V1920 (shen.lazyderef (tl V1906) V2113) (if (= () V1920) (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1920) (do (shen.bindv V1920 () V2113) (let Result (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1920 V2113) Result))) false))) (do (shen.unbindv V1908 V2113) Result)))) false)))) (if (shen.pvar? V1907) (let A (shen.newpv V2113) (let B (shen.newpv V2113) (do (shen.bindv V1907 (cons A (cons * (cons B ()))) V2113) (let Result (let V1921 (shen.lazyderef (tl V1906) V2113) (if (= () V1921) (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1921) (do (shen.bindv V1921 () V2113) (let Result (let Hyp (tl V1897) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (shen.lazyderef B V2113) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1921 V2113) Result))) false))) (do (shen.unbindv V1907 V2113) Result))))) false))) false)) false)) false)) false))) false))) false)) false)) false)) false)) false)) (if (= Case false) (let Case (let V1922 (shen.lazyderef V2111 V2113) (if (cons? V1922) (let V1923 (shen.lazyderef (hd V1922) V2113) (if (cons? V1923) (let V1924 (shen.lazyderef (hd V1923) V2113) (if (cons? V1924) (let V1925 (shen.lazyderef (hd V1924) V2113) (if (= @v V1925) (let V1926 (shen.lazyderef (tl V1924) V2113) (if (cons? V1926) (let X (hd V1926) (let V1927 (shen.lazyderef (tl V1926) V2113) (if (cons? V1927) (let Y (hd V1927) (let V1928 (shen.lazyderef (tl V1927) V2113) (if (= () V1928) (let V1929 (shen.lazyderef (tl V1923) V2113) (if (cons? V1929) (let V1930 (shen.lazyderef (hd V1929) V2113) (if (= : V1930) (let V1931 (shen.lazyderef (tl V1929) V2113) (if (cons? V1931) (let V1932 (shen.lazyderef (hd V1931) V2113) (if (cons? V1932) (let V1933 (shen.lazyderef (hd V1932) V2113) (if (= vector V1933) (let V1934 (shen.lazyderef (tl V1932) V2113) (if (cons? V1934) (let A (hd V1934) (let V1935 (shen.lazyderef (tl V1934) V2113) (if (= () V1935) (let V1936 (shen.lazyderef (tl V1931) V2113) (if (= () V1936) (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1936) (do (shen.bindv V1936 () V2113) (let Result (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1936 V2113) Result))) false))) (if (shen.pvar? V1935) (do (shen.bindv V1935 () V2113) (let Result (let V1937 (shen.lazyderef (tl V1931) V2113) (if (= () V1937) (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1937) (do (shen.bindv V1937 () V2113) (let Result (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1937 V2113) Result))) false))) (do (shen.unbindv V1935 V2113) Result))) false)))) (if (shen.pvar? V1934) (let A (shen.newpv V2113) (do (shen.bindv V1934 (cons A ()) V2113) (let Result (let V1938 (shen.lazyderef (tl V1931) V2113) (if (= () V1938) (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1938) (do (shen.bindv V1938 () V2113) (let Result (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1938 V2113) Result))) false))) (do (shen.unbindv V1934 V2113) Result)))) false))) (if (shen.pvar? V1933) (do (shen.bindv V1933 vector V2113) (let Result (let V1939 (shen.lazyderef (tl V1932) V2113) (if (cons? V1939) (let A (hd V1939) (let V1940 (shen.lazyderef (tl V1939) V2113) (if (= () V1940) (let V1941 (shen.lazyderef (tl V1931) V2113) (if (= () V1941) (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1941) (do (shen.bindv V1941 () V2113) (let Result (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1941 V2113) Result))) false))) (if (shen.pvar? V1940) (do (shen.bindv V1940 () V2113) (let Result (let V1942 (shen.lazyderef (tl V1931) V2113) (if (= () V1942) (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1942) (do (shen.bindv V1942 () V2113) (let Result (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1942 V2113) Result))) false))) (do (shen.unbindv V1940 V2113) Result))) false)))) (if (shen.pvar? V1939) (let A (shen.newpv V2113) (do (shen.bindv V1939 (cons A ()) V2113) (let Result (let V1943 (shen.lazyderef (tl V1931) V2113) (if (= () V1943) (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1943) (do (shen.bindv V1943 () V2113) (let Result (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1943 V2113) Result))) false))) (do (shen.unbindv V1939 V2113) Result)))) false))) (do (shen.unbindv V1933 V2113) Result))) false))) (if (shen.pvar? V1932) (let A (shen.newpv V2113) (do (shen.bindv V1932 (cons vector (cons A ())) V2113) (let Result (let V1944 (shen.lazyderef (tl V1931) V2113) (if (= () V1944) (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1944) (do (shen.bindv V1944 () V2113) (let Result (let Hyp (tl V1922) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons (shen.lazyderef A V2113) ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons (cons vector (cons (shen.lazyderef A V2113) ())) ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1944 V2113) Result))) false))) (do (shen.unbindv V1932 V2113) Result)))) false))) false)) false)) false)) false))) false))) false)) false)) false)) false)) false)) (if (= Case false) (let Case (let V1945 (shen.lazyderef V2111 V2113) (if (cons? V1945) (let V1946 (shen.lazyderef (hd V1945) V2113) (if (cons? V1946) (let V1947 (shen.lazyderef (hd V1946) V2113) (if (cons? V1947) (let V1948 (shen.lazyderef (hd V1947) V2113) (if (= @s V1948) (let V1949 (shen.lazyderef (tl V1947) V2113) (if (cons? V1949) (let X (hd V1949) (let V1950 (shen.lazyderef (tl V1949) V2113) (if (cons? V1950) (let Y (hd V1950) (let V1951 (shen.lazyderef (tl V1950) V2113) (if (= () V1951) (let V1952 (shen.lazyderef (tl V1946) V2113) (if (cons? V1952) (let V1953 (shen.lazyderef (hd V1952) V2113) (if (= : V1953) (let V1954 (shen.lazyderef (tl V1952) V2113) (if (cons? V1954) (let V1955 (shen.lazyderef (hd V1954) V2113) (if (= string V1955) (let V1956 (shen.lazyderef (tl V1954) V2113) (if (= () V1956) (let Hyp (tl V1945) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons string ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons string ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1956) (do (shen.bindv V1956 () V2113) (let Result (let Hyp (tl V1945) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons string ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons string ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1956 V2113) Result))) false))) (if (shen.pvar? V1955) (do (shen.bindv V1955 string V2113) (let Result (let V1957 (shen.lazyderef (tl V1954) V2113) (if (= () V1957) (let Hyp (tl V1945) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons string ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons string ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (if (shen.pvar? V1957) (do (shen.bindv V1957 () V2113) (let Result (let Hyp (tl V1945) (do (shen.incinfs) (bind V2112 (cons (cons (shen.lazyderef X V2113) (cons : (cons string ()))) (cons (cons (shen.lazyderef Y V2113) (cons : (cons string ()))) (shen.lazyderef Hyp V2113))) V2113 V2114))) (do (shen.unbindv V1957 V2113) Result))) false))) (do (shen.unbindv V1955 V2113) Result))) false))) false)) false)) false)) false))) false))) false)) false)) false)) false)) false)) (if (= Case false) (let V1958 (shen.lazyderef V2111 V2113) (if (cons? V1958) (let X (hd V1958) (let Hyp (tl V1958) (let NewHyps (shen.newpv V2113) (do (shen.incinfs) (bind V2112 (cons (shen.lazyderef X V2113) (shen.lazyderef NewHyps V2113)) V2113 (freeze (shen.t*-hyps Hyp NewHyps V2113 V2114))))))) false)) Case)) Case)) Case)) Case)))
52
52
 
53
- (defun shen.show (V2078 V2079 V2080 V2081) (cond ((value shen.*spy*) (do (shen.line) (do (shen.show-p (shen.deref V2078 V2080)) (do (nl 1) (do (nl 1) (do (shen.show-assumptions (shen.deref V2079 V2080) 1) (do (shen.prhush "
54
- > " (stoutput)) (do (shen.pause-for-user) (thaw V2081))))))))) (true (thaw V2081))))
53
+ (defun shen.show (V2127 V2128 V2129 V2130) (cond ((value shen.*spy*) (do (shen.line) (do (shen.show-p (shen.deref V2127 V2129)) (do (nl 1) (do (nl 1) (do (shen.show-assumptions (shen.deref V2128 V2129) 1) (do (shen.prhush "
54
+ > " (stoutput)) (do (shen.pause-for-user) (thaw V2130))))))))) (true (thaw V2130))))
55
55
 
56
56
  (defun shen.line () (let Infs (inferences) (shen.prhush (cn "____________________________________________________________ " (shen.app Infs (cn " inference" (shen.app (if (= 1 Infs) "" "s") "
57
57
  ?- " shen.a)) shen.a)) (stoutput))))
58
58
 
59
- (defun shen.show-p (V2082) (cond ((and (cons? V2082) (and (cons? (tl V2082)) (and (= : (hd (tl V2082))) (and (cons? (tl (tl V2082))) (= () (tl (tl (tl V2082)))))))) (shen.prhush (shen.app (hd V2082) (cn " : " (shen.app (hd (tl (tl V2082))) "" shen.r)) shen.r) (stoutput))) (true (shen.prhush (shen.app V2082 "" shen.r) (stoutput)))))
59
+ (defun shen.show-p (V2131) (cond ((and (cons? V2131) (and (cons? (tl V2131)) (and (= : (hd (tl V2131))) (and (cons? (tl (tl V2131))) (= () (tl (tl (tl V2131)))))))) (shen.prhush (shen.app (hd V2131) (cn " : " (shen.app (hd (tl (tl V2131))) "" shen.r)) shen.r) (stoutput))) (true (shen.prhush (shen.app V2131 "" shen.r) (stoutput)))))
60
60
 
61
- (defun shen.show-assumptions (V2085 V2086) (cond ((= () V2085) shen.skip) ((cons? V2085) (do (shen.prhush (shen.app V2086 ". " shen.a) (stoutput)) (do (shen.show-p (hd V2085)) (do (nl 1) (shen.show-assumptions (tl V2085) (+ V2086 1)))))) (true (shen.f_error shen.show-assumptions))))
61
+ (defun shen.show-assumptions (V2134 V2135) (cond ((= () V2134) shen.skip) ((cons? V2134) (do (shen.prhush (shen.app V2135 ". " shen.a) (stoutput)) (do (shen.show-p (hd V2134)) (do (nl 1) (shen.show-assumptions (tl V2134) (+ V2135 1)))))) (true (shen.f_error shen.show-assumptions))))
62
62
 
63
63
  (defun shen.pause-for-user () (let Byte (read-byte (stinput)) (if (= Byte 94) (simple-error "input aborted
64
64
  ") (nl 1))))
65
65
 
66
- (defun shen.typedf? (V2087) (cons? (assoc V2087 (value shen.*signedfuncs*))))
66
+ (defun shen.typedf? (V2136) (cons? (assoc V2136 (value shen.*signedfuncs*))))
67
67
 
68
- (defun shen.sigf (V2088) (concat shen.type-signature-of- V2088))
68
+ (defun shen.sigf (V2137) (concat shen.type-signature-of- V2137))
69
69
 
70
70
  (defun shen.placeholder () (gensym &&))
71
71
 
72
- (defun shen.base (V2089 V2090 V2091 V2092) (let Case (let V1812 (shen.lazyderef V2090 V2091) (if (= number V1812) (do (shen.incinfs) (fwhen (number? (shen.lazyderef V2089 V2091)) V2091 V2092)) (if (shen.pvar? V1812) (do (shen.bindv V1812 number V2091) (let Result (do (shen.incinfs) (fwhen (number? (shen.lazyderef V2089 V2091)) V2091 V2092)) (do (shen.unbindv V1812 V2091) Result))) false))) (if (= Case false) (let Case (let V1813 (shen.lazyderef V2090 V2091) (if (= boolean V1813) (do (shen.incinfs) (fwhen (boolean? (shen.lazyderef V2089 V2091)) V2091 V2092)) (if (shen.pvar? V1813) (do (shen.bindv V1813 boolean V2091) (let Result (do (shen.incinfs) (fwhen (boolean? (shen.lazyderef V2089 V2091)) V2091 V2092)) (do (shen.unbindv V1813 V2091) Result))) false))) (if (= Case false) (let Case (let V1814 (shen.lazyderef V2090 V2091) (if (= string V1814) (do (shen.incinfs) (fwhen (string? (shen.lazyderef V2089 V2091)) V2091 V2092)) (if (shen.pvar? V1814) (do (shen.bindv V1814 string V2091) (let Result (do (shen.incinfs) (fwhen (string? (shen.lazyderef V2089 V2091)) V2091 V2092)) (do (shen.unbindv V1814 V2091) Result))) false))) (if (= Case false) (let Case (let V1815 (shen.lazyderef V2090 V2091) (if (= symbol V1815) (do (shen.incinfs) (fwhen (symbol? (shen.lazyderef V2089 V2091)) V2091 (freeze (fwhen (not (shen.ue? (shen.lazyderef V2089 V2091))) V2091 V2092)))) (if (shen.pvar? V1815) (do (shen.bindv V1815 symbol V2091) (let Result (do (shen.incinfs) (fwhen (symbol? (shen.lazyderef V2089 V2091)) V2091 (freeze (fwhen (not (shen.ue? (shen.lazyderef V2089 V2091))) V2091 V2092)))) (do (shen.unbindv V1815 V2091) Result))) false))) (if (= Case false) (let V1816 (shen.lazyderef V2089 V2091) (if (= () V1816) (let V1817 (shen.lazyderef V2090 V2091) (if (cons? V1817) (let V1818 (shen.lazyderef (hd V1817) V2091) (if (= list V1818) (let V1819 (shen.lazyderef (tl V1817) V2091) (if (cons? V1819) (let A (hd V1819) (let V1820 (shen.lazyderef (tl V1819) V2091) (if (= () V1820) (do (shen.incinfs) (thaw V2092)) (if (shen.pvar? V1820) (do (shen.bindv V1820 () V2091) (let Result (do (shen.incinfs) (thaw V2092)) (do (shen.unbindv V1820 V2091) Result))) false)))) (if (shen.pvar? V1819) (let A (shen.newpv V2091) (do (shen.bindv V1819 (cons A ()) V2091) (let Result (do (shen.incinfs) (thaw V2092)) (do (shen.unbindv V1819 V2091) Result)))) false))) (if (shen.pvar? V1818) (do (shen.bindv V1818 list V2091) (let Result (let V1821 (shen.lazyderef (tl V1817) V2091) (if (cons? V1821) (let A (hd V1821) (let V1822 (shen.lazyderef (tl V1821) V2091) (if (= () V1822) (do (shen.incinfs) (thaw V2092)) (if (shen.pvar? V1822) (do (shen.bindv V1822 () V2091) (let Result (do (shen.incinfs) (thaw V2092)) (do (shen.unbindv V1822 V2091) Result))) false)))) (if (shen.pvar? V1821) (let A (shen.newpv V2091) (do (shen.bindv V1821 (cons A ()) V2091) (let Result (do (shen.incinfs) (thaw V2092)) (do (shen.unbindv V1821 V2091) Result)))) false))) (do (shen.unbindv V1818 V2091) Result))) false))) (if (shen.pvar? V1817) (let A (shen.newpv V2091) (do (shen.bindv V1817 (cons list (cons A ())) V2091) (let Result (do (shen.incinfs) (thaw V2092)) (do (shen.unbindv V1817 V2091) Result)))) false))) false)) Case)) Case)) Case)) Case)))
72
+ (defun shen.base (V2138 V2139 V2140 V2141) (let Case (let V1861 (shen.lazyderef V2139 V2140) (if (= number V1861) (do (shen.incinfs) (fwhen (number? (shen.lazyderef V2138 V2140)) V2140 V2141)) (if (shen.pvar? V1861) (do (shen.bindv V1861 number V2140) (let Result (do (shen.incinfs) (fwhen (number? (shen.lazyderef V2138 V2140)) V2140 V2141)) (do (shen.unbindv V1861 V2140) Result))) false))) (if (= Case false) (let Case (let V1862 (shen.lazyderef V2139 V2140) (if (= boolean V1862) (do (shen.incinfs) (fwhen (boolean? (shen.lazyderef V2138 V2140)) V2140 V2141)) (if (shen.pvar? V1862) (do (shen.bindv V1862 boolean V2140) (let Result (do (shen.incinfs) (fwhen (boolean? (shen.lazyderef V2138 V2140)) V2140 V2141)) (do (shen.unbindv V1862 V2140) Result))) false))) (if (= Case false) (let Case (let V1863 (shen.lazyderef V2139 V2140) (if (= string V1863) (do (shen.incinfs) (fwhen (string? (shen.lazyderef V2138 V2140)) V2140 V2141)) (if (shen.pvar? V1863) (do (shen.bindv V1863 string V2140) (let Result (do (shen.incinfs) (fwhen (string? (shen.lazyderef V2138 V2140)) V2140 V2141)) (do (shen.unbindv V1863 V2140) Result))) false))) (if (= Case false) (let Case (let V1864 (shen.lazyderef V2139 V2140) (if (= symbol V1864) (do (shen.incinfs) (fwhen (symbol? (shen.lazyderef V2138 V2140)) V2140 (freeze (fwhen (not (shen.ue? (shen.lazyderef V2138 V2140))) V2140 V2141)))) (if (shen.pvar? V1864) (do (shen.bindv V1864 symbol V2140) (let Result (do (shen.incinfs) (fwhen (symbol? (shen.lazyderef V2138 V2140)) V2140 (freeze (fwhen (not (shen.ue? (shen.lazyderef V2138 V2140))) V2140 V2141)))) (do (shen.unbindv V1864 V2140) Result))) false))) (if (= Case false) (let V1865 (shen.lazyderef V2138 V2140) (if (= () V1865) (let V1866 (shen.lazyderef V2139 V2140) (if (cons? V1866) (let V1867 (shen.lazyderef (hd V1866) V2140) (if (= list V1867) (let V1868 (shen.lazyderef (tl V1866) V2140) (if (cons? V1868) (let A (hd V1868) (let V1869 (shen.lazyderef (tl V1868) V2140) (if (= () V1869) (do (shen.incinfs) (thaw V2141)) (if (shen.pvar? V1869) (do (shen.bindv V1869 () V2140) (let Result (do (shen.incinfs) (thaw V2141)) (do (shen.unbindv V1869 V2140) Result))) false)))) (if (shen.pvar? V1868) (let A (shen.newpv V2140) (do (shen.bindv V1868 (cons A ()) V2140) (let Result (do (shen.incinfs) (thaw V2141)) (do (shen.unbindv V1868 V2140) Result)))) false))) (if (shen.pvar? V1867) (do (shen.bindv V1867 list V2140) (let Result (let V1870 (shen.lazyderef (tl V1866) V2140) (if (cons? V1870) (let A (hd V1870) (let V1871 (shen.lazyderef (tl V1870) V2140) (if (= () V1871) (do (shen.incinfs) (thaw V2141)) (if (shen.pvar? V1871) (do (shen.bindv V1871 () V2140) (let Result (do (shen.incinfs) (thaw V2141)) (do (shen.unbindv V1871 V2140) Result))) false)))) (if (shen.pvar? V1870) (let A (shen.newpv V2140) (do (shen.bindv V1870 (cons A ()) V2140) (let Result (do (shen.incinfs) (thaw V2141)) (do (shen.unbindv V1870 V2140) Result)))) false))) (do (shen.unbindv V1867 V2140) Result))) false))) (if (shen.pvar? V1866) (let A (shen.newpv V2140) (do (shen.bindv V1866 (cons list (cons A ())) V2140) (let Result (do (shen.incinfs) (thaw V2141)) (do (shen.unbindv V1866 V2140) Result)))) false))) false)) Case)) Case)) Case)) Case)))
73
73
 
74
- (defun shen.by_hypothesis (V2093 V2094 V2095 V2096 V2097) (let Case (let V1803 (shen.lazyderef V2095 V2096) (if (cons? V1803) (let V1804 (shen.lazyderef (hd V1803) V2096) (if (cons? V1804) (let Y (hd V1804) (let V1805 (shen.lazyderef (tl V1804) V2096) (if (cons? V1805) (let V1806 (shen.lazyderef (hd V1805) V2096) (if (= : V1806) (let V1807 (shen.lazyderef (tl V1805) V2096) (if (cons? V1807) (let B (hd V1807) (let V1808 (shen.lazyderef (tl V1807) V2096) (if (= () V1808) (do (shen.incinfs) (identical V2093 Y V2096 (freeze (unify! V2094 B V2096 V2097)))) false))) false)) false)) false))) false)) false)) (if (= Case false) (let V1809 (shen.lazyderef V2095 V2096) (if (cons? V1809) (let Hyp (tl V1809) (do (shen.incinfs) (shen.by_hypothesis V2093 V2094 Hyp V2096 V2097))) false)) Case)))
74
+ (defun shen.by_hypothesis (V2142 V2143 V2144 V2145 V2146) (let Case (let V1852 (shen.lazyderef V2144 V2145) (if (cons? V1852) (let V1853 (shen.lazyderef (hd V1852) V2145) (if (cons? V1853) (let Y (hd V1853) (let V1854 (shen.lazyderef (tl V1853) V2145) (if (cons? V1854) (let V1855 (shen.lazyderef (hd V1854) V2145) (if (= : V1855) (let V1856 (shen.lazyderef (tl V1854) V2145) (if (cons? V1856) (let B (hd V1856) (let V1857 (shen.lazyderef (tl V1856) V2145) (if (= () V1857) (do (shen.incinfs) (identical V2142 Y V2145 (freeze (unify! V2143 B V2145 V2146)))) false))) false)) false)) false))) false)) false)) (if (= Case false) (let V1858 (shen.lazyderef V2144 V2145) (if (cons? V1858) (let Hyp (tl V1858) (do (shen.incinfs) (shen.by_hypothesis V2142 V2143 Hyp V2145 V2146))) false)) Case)))
75
75
 
76
- (defun shen.t*-def (V2098 V2099 V2100 V2101 V2102) (let V1797 (shen.lazyderef V2098 V2101) (if (cons? V1797) (let V1798 (shen.lazyderef (hd V1797) V2101) (if (= define V1798) (let V1799 (shen.lazyderef (tl V1797) V2101) (if (cons? V1799) (let F (hd V1799) (let X (tl V1799) (let E (shen.newpv V2101) (do (shen.incinfs) (shen.t*-defh (compile shen.<sig+rules> X (lambda E (if (cons? E) (simple-error (cn "parse error here: " (shen.app E "
76
+ (defun shen.t*-def (V2147 V2148 V2149 V2150 V2151) (let V1846 (shen.lazyderef V2147 V2150) (if (cons? V1846) (let V1847 (shen.lazyderef (hd V1846) V2150) (if (= define V1847) (let V1848 (shen.lazyderef (tl V1846) V2150) (if (cons? V1848) (let F (hd V1848) (let X (tl V1848) (let V1755 (shen.newpv V2150) (let E (shen.newpv V2150) (do (shen.incinfs) (shen.t*-defh (compile (lambda V1755 (shen.<sig+rules> V1755)) X (lambda E (if (cons? E) (simple-error (cn "parse error here: " (shen.app E "
77
77
  " shen.s))) (simple-error "parse error
78
- ")))) F V2099 V2100 V2101 V2102))))) false)) false)) false)))
78
+ ")))) F V2148 V2149 V2150 V2151)))))) false)) false)) false)))
79
79
 
80
- (defun shen.t*-defh (V2103 V2104 V2105 V2106 V2107 V2108) (let V1793 (shen.lazyderef V2103 V2107) (if (cons? V1793) (let Sig (hd V1793) (let Rules (tl V1793) (do (shen.incinfs) (shen.t*-defhh Sig (shen.ue-sig Sig) V2104 V2105 V2106 Rules V2107 V2108)))) false)))
80
+ (defun shen.t*-defh (V2152 V2153 V2154 V2155 V2156 V2157) (let V1842 (shen.lazyderef V2152 V2156) (if (cons? V1842) (let Sig (hd V1842) (let Rules (tl V1842) (do (shen.incinfs) (shen.t*-defhh Sig (shen.ue-sig Sig) V2153 V2154 V2155 Rules V2156 V2157)))) false)))
81
81
 
82
- (defun shen.t*-defhh (V2109 V2110 V2111 V2112 V2113 V2114 V2115 V2116) (do (shen.incinfs) (shen.t*-rules V2114 V2110 1 V2111 (cons (cons V2111 (cons : (cons V2110 ()))) V2113) V2115 (freeze (shen.memo V2111 V2109 V2112 V2115 V2116)))))
82
+ (defun shen.t*-defhh (V2158 V2159 V2160 V2161 V2162 V2163 V2164 V2165) (do (shen.incinfs) (shen.t*-rules V2163 V2159 1 V2160 (cons (cons V2160 (cons : (cons V2159 ()))) V2162) V2164 (freeze (shen.memo V2160 V2158 V2161 V2164 V2165)))))
83
83
 
84
- (defun shen.memo (V2117 V2118 V2119 V2120 V2121) (let Jnk (shen.newpv V2120) (do (shen.incinfs) (unify! V2119 V2118 V2120 (freeze (bind Jnk (declare (shen.lazyderef V2117 V2120) (shen.lazyderef V2119 V2120)) V2120 V2121))))))
84
+ (defun shen.memo (V2166 V2167 V2168 V2169 V2170) (let Jnk (shen.newpv V2169) (do (shen.incinfs) (unify! V2168 V2167 V2169 (freeze (bind Jnk (declare (shen.lazyderef V2166 V2169) (shen.lazyderef V2168 V2169)) V2169 V2170))))))
85
85
 
86
- (defun shen.<sig+rules> (V2122) (let Parse_shen.<signature> (shen.<signature> V2122) (if (not (= (fail) Parse_shen.<signature>)) (let Parse_shen.<non-ll-rules> (shen.<non-ll-rules> Parse_shen.<signature>) (if (not (= (fail) Parse_shen.<non-ll-rules>)) (shen.pair (hd Parse_shen.<non-ll-rules>) (cons (shen.hdtl Parse_shen.<signature>) (shen.hdtl Parse_shen.<non-ll-rules>))) (fail))) (fail))))
86
+ (defun shen.<sig+rules> (V2171) (let Parse_shen.<signature> (shen.<signature> V2171) (if (not (= (fail) Parse_shen.<signature>)) (let Parse_shen.<non-ll-rules> (shen.<non-ll-rules> Parse_shen.<signature>) (if (not (= (fail) Parse_shen.<non-ll-rules>)) (shen.pair (hd Parse_shen.<non-ll-rules>) (cons (shen.hdtl Parse_shen.<signature>) (shen.hdtl Parse_shen.<non-ll-rules>))) (fail))) (fail))))
87
87
 
88
- (defun shen.<non-ll-rules> (V2123) (let YaccParse (let Parse_shen.<rule> (shen.<rule> V2123) (if (not (= (fail) Parse_shen.<rule>)) (let Parse_shen.<non-ll-rules> (shen.<non-ll-rules> Parse_shen.<rule>) (if (not (= (fail) Parse_shen.<non-ll-rules>)) (shen.pair (hd Parse_shen.<non-ll-rules>) (cons (shen.hdtl Parse_shen.<rule>) (shen.hdtl Parse_shen.<non-ll-rules>))) (fail))) (fail))) (if (= YaccParse (fail)) (let Parse_shen.<rule> (shen.<rule> V2123) (if (not (= (fail) Parse_shen.<rule>)) (shen.pair (hd Parse_shen.<rule>) (cons (shen.hdtl Parse_shen.<rule>) ())) (fail))) YaccParse)))
88
+ (defun shen.<non-ll-rules> (V2172) (let YaccParse (let Parse_shen.<rule> (shen.<rule> V2172) (if (not (= (fail) Parse_shen.<rule>)) (let Parse_shen.<non-ll-rules> (shen.<non-ll-rules> Parse_shen.<rule>) (if (not (= (fail) Parse_shen.<non-ll-rules>)) (shen.pair (hd Parse_shen.<non-ll-rules>) (cons (shen.hdtl Parse_shen.<rule>) (shen.hdtl Parse_shen.<non-ll-rules>))) (fail))) (fail))) (if (= YaccParse (fail)) (let Parse_shen.<rule> (shen.<rule> V2172) (if (not (= (fail) Parse_shen.<rule>)) (shen.pair (hd Parse_shen.<rule>) (cons (shen.hdtl Parse_shen.<rule>) ())) (fail))) YaccParse)))
89
89
 
90
- (defun shen.ue (V2124) (cond ((and (cons? V2124) (and (cons? (tl V2124)) (and (= () (tl (tl V2124))) (= (hd V2124) protect)))) V2124) ((cons? V2124) (map shen.ue V2124)) ((variable? V2124) (concat && V2124)) (true V2124)))
90
+ (defun shen.ue (V2173) (cond ((and (cons? V2173) (and (cons? (tl V2173)) (and (= () (tl (tl V2173))) (= (hd V2173) protect)))) V2173) ((cons? V2173) (map (lambda V1756 (shen.ue V1756)) V2173)) ((variable? V2173) (concat && V2173)) (true V2173)))
91
91
 
92
- (defun shen.ue-sig (V2125) (cond ((cons? V2125) (map shen.ue-sig V2125)) ((variable? V2125) (concat &&& V2125)) (true V2125)))
92
+ (defun shen.ue-sig (V2174) (cond ((cons? V2174) (map (lambda V1757 (shen.ue-sig V1757)) V2174)) ((variable? V2174) (concat &&& V2174)) (true V2174)))
93
93
 
94
- (defun shen.ues (V2130) (cond ((shen.ue? V2130) (cons V2130 ())) ((cons? V2130) (union (shen.ues (hd V2130)) (shen.ues (tl V2130)))) (true ())))
94
+ (defun shen.ues (V2179) (cond ((shen.ue? V2179) (cons V2179 ())) ((cons? V2179) (union (shen.ues (hd V2179)) (shen.ues (tl V2179)))) (true ())))
95
95
 
96
- (defun shen.ue? (V2131) (and (symbol? V2131) (shen.ue-h? (str V2131))))
96
+ (defun shen.ue? (V2180) (and (symbol? V2180) (shen.ue-h? (str V2180))))
97
97
 
98
- (defun shen.ue-h? (V2138) (cond ((and (shen.+string? V2138) (and (= "&" (pos V2138 0)) (and (shen.+string? (tlstr V2138)) (= "&" (pos (tlstr V2138) 0))))) true) (true false)))
98
+ (defun shen.ue-h? (V2187) (cond ((and (shen.+string? V2187) (and (= "&" (pos V2187 0)) (and (shen.+string? (tlstr V2187)) (= "&" (pos (tlstr V2187) 0))))) true) (true false)))
99
99
 
100
- (defun shen.t*-rules (V2139 V2140 V2141 V2142 V2143 V2144 V2145) (let Throwcontrol (shen.catchpoint) (shen.cutpoint Throwcontrol (let Case (let V1777 (shen.lazyderef V2139 V2144) (if (= () V1777) (do (shen.incinfs) (thaw V2145)) false)) (if (= Case false) (let Case (let V1778 (shen.lazyderef V2139 V2144) (if (cons? V1778) (let Rule (hd V1778) (let Rules (tl V1778) (do (shen.incinfs) (shen.t*-rule (shen.ue Rule) V2140 V2143 V2144 (freeze (cut Throwcontrol V2144 (freeze (shen.t*-rules Rules V2140 (+ V2141 1) V2142 V2143 V2144 V2145)))))))) false)) (if (= Case false) (let Err (shen.newpv V2144) (do (shen.incinfs) (bind Err (simple-error (cn "type error in rule " (shen.app (shen.lazyderef V2141 V2144) (cn " of " (shen.app (shen.lazyderef V2142 V2144) "" shen.a)) shen.a))) V2144 V2145))) Case)) Case)))))
100
+ (defun shen.t*-rules (V2188 V2189 V2190 V2191 V2192 V2193 V2194) (let Throwcontrol (shen.catchpoint) (shen.cutpoint Throwcontrol (let Case (let V1826 (shen.lazyderef V2188 V2193) (if (= () V1826) (do (shen.incinfs) (thaw V2194)) false)) (if (= Case false) (let Case (let V1827 (shen.lazyderef V2188 V2193) (if (cons? V1827) (let Rule (hd V1827) (let Rules (tl V1827) (do (shen.incinfs) (shen.t*-rule (shen.ue Rule) V2189 V2192 V2193 (freeze (cut Throwcontrol V2193 (freeze (shen.t*-rules Rules V2189 (+ V2190 1) V2191 V2192 V2193 V2194)))))))) false)) (if (= Case false) (let Err (shen.newpv V2193) (do (shen.incinfs) (bind Err (simple-error (cn "type error in rule " (shen.app (shen.lazyderef V2190 V2193) (cn " of " (shen.app (shen.lazyderef V2191 V2193) "" shen.a)) shen.a))) V2193 V2194))) Case)) Case)))))
101
101
 
102
- (defun shen.t*-rule (V2146 V2147 V2148 V2149 V2150) (let Throwcontrol (shen.catchpoint) (shen.cutpoint Throwcontrol (let V1769 (shen.lazyderef V2146 V2149) (if (cons? V1769) (let Patterns (hd V1769) (let V1770 (shen.lazyderef (tl V1769) V2149) (if (cons? V1770) (let Action (hd V1770) (let V1771 (shen.lazyderef (tl V1770) V2149) (if (= () V1771) (let NewHyps (shen.newpv V2149) (do (shen.incinfs) (shen.newhyps (shen.placeholders Patterns) V2148 NewHyps V2149 (freeze (shen.t*-patterns Patterns V2147 NewHyps V2149 (freeze (cut Throwcontrol V2149 (freeze (shen.t*-action (shen.curry (shen.ue Action)) (shen.result-type Patterns V2147) (shen.patthyps Patterns V2147 V2148) V2149 V2150))))))))) false))) false))) false)))))
102
+ (defun shen.t*-rule (V2195 V2196 V2197 V2198 V2199) (let Throwcontrol (shen.catchpoint) (shen.cutpoint Throwcontrol (let V1818 (shen.lazyderef V2195 V2198) (if (cons? V1818) (let Patterns (hd V1818) (let V1819 (shen.lazyderef (tl V1818) V2198) (if (cons? V1819) (let Action (hd V1819) (let V1820 (shen.lazyderef (tl V1819) V2198) (if (= () V1820) (let NewHyps (shen.newpv V2198) (do (shen.incinfs) (shen.newhyps (shen.placeholders Patterns) V2197 NewHyps V2198 (freeze (shen.t*-patterns Patterns V2196 NewHyps V2198 (freeze (cut Throwcontrol V2198 (freeze (shen.t*-action (shen.curry (shen.ue Action)) (shen.result-type Patterns V2196) (shen.patthyps Patterns V2196 V2197) V2198 V2199))))))))) false))) false))) false)))))
103
103
 
104
- (defun shen.placeholders (V2155) (cond ((shen.ue? V2155) (cons V2155 ())) ((cons? V2155) (union (shen.placeholders (hd V2155)) (shen.placeholders (tl V2155)))) (true ())))
104
+ (defun shen.placeholders (V2204) (cond ((shen.ue? V2204) (cons V2204 ())) ((cons? V2204) (union (shen.placeholders (hd V2204)) (shen.placeholders (tl V2204)))) (true ())))
105
105
 
106
- (defun shen.newhyps (V2156 V2157 V2158 V2159 V2160) (let Case (let V1756 (shen.lazyderef V2156 V2159) (if (= () V1756) (do (shen.incinfs) (unify! V2158 V2157 V2159 V2160)) false)) (if (= Case false) (let V1757 (shen.lazyderef V2156 V2159) (if (cons? V1757) (let V1752 (hd V1757) (let Vs (tl V1757) (let V1758 (shen.lazyderef V2158 V2159) (if (cons? V1758) (let V1759 (shen.lazyderef (hd V1758) V2159) (if (cons? V1759) (let V (hd V1759) (let V1760 (shen.lazyderef (tl V1759) V2159) (if (cons? V1760) (let V1761 (shen.lazyderef (hd V1760) V2159) (if (= : V1761) (let V1762 (shen.lazyderef (tl V1760) V2159) (if (cons? V1762) (let A (hd V1762) (let V1763 (shen.lazyderef (tl V1762) V2159) (if (= () V1763) (let NewHyp (tl V1758) (do (shen.incinfs) (unify! V V1752 V2159 (freeze (shen.newhyps Vs V2157 NewHyp V2159 V2160))))) (if (shen.pvar? V1763) (do (shen.bindv V1763 () V2159) (let Result (let NewHyp (tl V1758) (do (shen.incinfs) (unify! V V1752 V2159 (freeze (shen.newhyps Vs V2157 NewHyp V2159 V2160))))) (do (shen.unbindv V1763 V2159) Result))) false)))) (if (shen.pvar? V1762) (let A (shen.newpv V2159) (do (shen.bindv V1762 (cons A ()) V2159) (let Result (let NewHyp (tl V1758) (do (shen.incinfs) (unify! V V1752 V2159 (freeze (shen.newhyps Vs V2157 NewHyp V2159 V2160))))) (do (shen.unbindv V1762 V2159) Result)))) false))) (if (shen.pvar? V1761) (do (shen.bindv V1761 : V2159) (let Result (let V1764 (shen.lazyderef (tl V1760) V2159) (if (cons? V1764) (let A (hd V1764) (let V1765 (shen.lazyderef (tl V1764) V2159) (if (= () V1765) (let NewHyp (tl V1758) (do (shen.incinfs) (unify! V V1752 V2159 (freeze (shen.newhyps Vs V2157 NewHyp V2159 V2160))))) (if (shen.pvar? V1765) (do (shen.bindv V1765 () V2159) (let Result (let NewHyp (tl V1758) (do (shen.incinfs) (unify! V V1752 V2159 (freeze (shen.newhyps Vs V2157 NewHyp V2159 V2160))))) (do (shen.unbindv V1765 V2159) Result))) false)))) (if (shen.pvar? V1764) (let A (shen.newpv V2159) (do (shen.bindv V1764 (cons A ()) V2159) (let Result (let NewHyp (tl V1758) (do (shen.incinfs) (unify! V V1752 V2159 (freeze (shen.newhyps Vs V2157 NewHyp V2159 V2160))))) (do (shen.unbindv V1764 V2159) Result)))) false))) (do (shen.unbindv V1761 V2159) Result))) false))) (if (shen.pvar? V1760) (let A (shen.newpv V2159) (do (shen.bindv V1760 (cons : (cons A ())) V2159) (let Result (let NewHyp (tl V1758) (do (shen.incinfs) (unify! V V1752 V2159 (freeze (shen.newhyps Vs V2157 NewHyp V2159 V2160))))) (do (shen.unbindv V1760 V2159) Result)))) false)))) (if (shen.pvar? V1759) (let V (shen.newpv V2159) (let A (shen.newpv V2159) (do (shen.bindv V1759 (cons V (cons : (cons A ()))) V2159) (let Result (let NewHyp (tl V1758) (do (shen.incinfs) (unify! V V1752 V2159 (freeze (shen.newhyps Vs V2157 NewHyp V2159 V2160))))) (do (shen.unbindv V1759 V2159) Result))))) false))) (if (shen.pvar? V1758) (let V (shen.newpv V2159) (let A (shen.newpv V2159) (let NewHyp (shen.newpv V2159) (do (shen.bindv V1758 (cons (cons V (cons : (cons A ()))) NewHyp) V2159) (let Result (do (shen.incinfs) (unify! V V1752 V2159 (freeze (shen.newhyps Vs V2157 NewHyp V2159 V2160)))) (do (shen.unbindv V1758 V2159) Result)))))) false))))) false)) Case)))
106
+ (defun shen.newhyps (V2205 V2206 V2207 V2208 V2209) (let Case (let V1805 (shen.lazyderef V2205 V2208) (if (= () V1805) (do (shen.incinfs) (unify! V2207 V2206 V2208 V2209)) false)) (if (= Case false) (let V1806 (shen.lazyderef V2205 V2208) (if (cons? V1806) (let V1801 (hd V1806) (let Vs (tl V1806) (let V1807 (shen.lazyderef V2207 V2208) (if (cons? V1807) (let V1808 (shen.lazyderef (hd V1807) V2208) (if (cons? V1808) (let V (hd V1808) (let V1809 (shen.lazyderef (tl V1808) V2208) (if (cons? V1809) (let V1810 (shen.lazyderef (hd V1809) V2208) (if (= : V1810) (let V1811 (shen.lazyderef (tl V1809) V2208) (if (cons? V1811) (let A (hd V1811) (let V1812 (shen.lazyderef (tl V1811) V2208) (if (= () V1812) (let NewHyp (tl V1807) (do (shen.incinfs) (unify! V V1801 V2208 (freeze (shen.newhyps Vs V2206 NewHyp V2208 V2209))))) (if (shen.pvar? V1812) (do (shen.bindv V1812 () V2208) (let Result (let NewHyp (tl V1807) (do (shen.incinfs) (unify! V V1801 V2208 (freeze (shen.newhyps Vs V2206 NewHyp V2208 V2209))))) (do (shen.unbindv V1812 V2208) Result))) false)))) (if (shen.pvar? V1811) (let A (shen.newpv V2208) (do (shen.bindv V1811 (cons A ()) V2208) (let Result (let NewHyp (tl V1807) (do (shen.incinfs) (unify! V V1801 V2208 (freeze (shen.newhyps Vs V2206 NewHyp V2208 V2209))))) (do (shen.unbindv V1811 V2208) Result)))) false))) (if (shen.pvar? V1810) (do (shen.bindv V1810 : V2208) (let Result (let V1813 (shen.lazyderef (tl V1809) V2208) (if (cons? V1813) (let A (hd V1813) (let V1814 (shen.lazyderef (tl V1813) V2208) (if (= () V1814) (let NewHyp (tl V1807) (do (shen.incinfs) (unify! V V1801 V2208 (freeze (shen.newhyps Vs V2206 NewHyp V2208 V2209))))) (if (shen.pvar? V1814) (do (shen.bindv V1814 () V2208) (let Result (let NewHyp (tl V1807) (do (shen.incinfs) (unify! V V1801 V2208 (freeze (shen.newhyps Vs V2206 NewHyp V2208 V2209))))) (do (shen.unbindv V1814 V2208) Result))) false)))) (if (shen.pvar? V1813) (let A (shen.newpv V2208) (do (shen.bindv V1813 (cons A ()) V2208) (let Result (let NewHyp (tl V1807) (do (shen.incinfs) (unify! V V1801 V2208 (freeze (shen.newhyps Vs V2206 NewHyp V2208 V2209))))) (do (shen.unbindv V1813 V2208) Result)))) false))) (do (shen.unbindv V1810 V2208) Result))) false))) (if (shen.pvar? V1809) (let A (shen.newpv V2208) (do (shen.bindv V1809 (cons : (cons A ())) V2208) (let Result (let NewHyp (tl V1807) (do (shen.incinfs) (unify! V V1801 V2208 (freeze (shen.newhyps Vs V2206 NewHyp V2208 V2209))))) (do (shen.unbindv V1809 V2208) Result)))) false)))) (if (shen.pvar? V1808) (let V (shen.newpv V2208) (let A (shen.newpv V2208) (do (shen.bindv V1808 (cons V (cons : (cons A ()))) V2208) (let Result (let NewHyp (tl V1807) (do (shen.incinfs) (unify! V V1801 V2208 (freeze (shen.newhyps Vs V2206 NewHyp V2208 V2209))))) (do (shen.unbindv V1808 V2208) Result))))) false))) (if (shen.pvar? V1807) (let V (shen.newpv V2208) (let A (shen.newpv V2208) (let NewHyp (shen.newpv V2208) (do (shen.bindv V1807 (cons (cons V (cons : (cons A ()))) NewHyp) V2208) (let Result (do (shen.incinfs) (unify! V V1801 V2208 (freeze (shen.newhyps Vs V2206 NewHyp V2208 V2209)))) (do (shen.unbindv V1807 V2208) Result)))))) false))))) false)) Case)))
107
107
 
108
- (defun shen.patthyps (V2163 V2164 V2165) (cond ((= () V2163) V2165) ((and (cons? V2163) (and (cons? V2164) (and (cons? (tl V2164)) (and (= --> (hd (tl V2164))) (and (cons? (tl (tl V2164))) (= () (tl (tl (tl V2164))))))))) (adjoin (cons (hd V2163) (cons : (cons (hd V2164) ()))) (shen.patthyps (tl V2163) (hd (tl (tl V2164))) V2165))) (true (shen.f_error shen.patthyps))))
108
+ (defun shen.patthyps (V2212 V2213 V2214) (cond ((= () V2212) V2214) ((and (cons? V2212) (and (cons? V2213) (and (cons? (tl V2213)) (and (= --> (hd (tl V2213))) (and (cons? (tl (tl V2213))) (= () (tl (tl (tl V2213))))))))) (adjoin (cons (hd V2212) (cons : (cons (hd V2213) ()))) (shen.patthyps (tl V2212) (hd (tl (tl V2213))) V2214))) (true (shen.f_error shen.patthyps))))
109
109
 
110
- (defun shen.result-type (V2170 V2171) (cond ((= () V2170) V2171) ((and (cons? V2170) (and (cons? V2171) (and (cons? (tl V2171)) (and (= --> (hd (tl V2171))) (and (cons? (tl (tl V2171))) (= () (tl (tl (tl V2171))))))))) (shen.result-type (tl V2170) (hd (tl (tl V2171))))) (true (shen.f_error shen.result-type))))
110
+ (defun shen.result-type (V2219 V2220) (cond ((and (= () V2219) (and (cons? V2220) (and (= --> (hd V2220)) (and (cons? (tl V2220)) (= () (tl (tl V2220))))))) (hd (tl V2220))) ((= () V2219) V2220) ((and (cons? V2219) (and (cons? V2220) (and (cons? (tl V2220)) (and (= --> (hd (tl V2220))) (and (cons? (tl (tl V2220))) (= () (tl (tl (tl V2220))))))))) (shen.result-type (tl V2219) (hd (tl (tl V2220))))) (true (shen.f_error shen.result-type))))
111
111
 
112
- (defun shen.t*-patterns (V2172 V2173 V2174 V2175 V2176) (let Case (let V1744 (shen.lazyderef V2172 V2175) (if (= () V1744) (do (shen.incinfs) (thaw V2176)) false)) (if (= Case false) (let V1745 (shen.lazyderef V2172 V2175) (if (cons? V1745) (let Pattern (hd V1745) (let Patterns (tl V1745) (let V1746 (shen.lazyderef V2173 V2175) (if (cons? V1746) (let A (hd V1746) (let V1747 (shen.lazyderef (tl V1746) V2175) (if (cons? V1747) (let V1748 (shen.lazyderef (hd V1747) V2175) (if (= --> V1748) (let V1749 (shen.lazyderef (tl V1747) V2175) (if (cons? V1749) (let B (hd V1749) (let V1750 (shen.lazyderef (tl V1749) V2175) (if (= () V1750) (do (shen.incinfs) (shen.t* (cons Pattern (cons : (cons A ()))) V2174 V2175 (freeze (shen.t*-patterns Patterns B V2174 V2175 V2176)))) false))) false)) false)) false))) false)))) false)) Case)))
112
+ (defun shen.t*-patterns (V2221 V2222 V2223 V2224 V2225) (let Case (let V1793 (shen.lazyderef V2221 V2224) (if (= () V1793) (do (shen.incinfs) (thaw V2225)) false)) (if (= Case false) (let V1794 (shen.lazyderef V2221 V2224) (if (cons? V1794) (let Pattern (hd V1794) (let Patterns (tl V1794) (let V1795 (shen.lazyderef V2222 V2224) (if (cons? V1795) (let A (hd V1795) (let V1796 (shen.lazyderef (tl V1795) V2224) (if (cons? V1796) (let V1797 (shen.lazyderef (hd V1796) V2224) (if (= --> V1797) (let V1798 (shen.lazyderef (tl V1796) V2224) (if (cons? V1798) (let B (hd V1798) (let V1799 (shen.lazyderef (tl V1798) V2224) (if (= () V1799) (do (shen.incinfs) (shen.t* (cons Pattern (cons : (cons A ()))) V2223 V2224 (freeze (shen.t*-patterns Patterns B V2223 V2224 V2225)))) false))) false)) false)) false))) false)))) false)) Case)))
113
113
 
114
- (defun shen.t*-action (V2177 V2178 V2179 V2180 V2181) (let Throwcontrol (shen.catchpoint) (shen.cutpoint Throwcontrol (let Case (let V1721 (shen.lazyderef V2177 V2180) (if (cons? V1721) (let V1722 (shen.lazyderef (hd V1721) V2180) (if (= where V1722) (let V1723 (shen.lazyderef (tl V1721) V2180) (if (cons? V1723) (let P (hd V1723) (let V1724 (shen.lazyderef (tl V1723) V2180) (if (cons? V1724) (let Action (hd V1724) (let V1725 (shen.lazyderef (tl V1724) V2180) (if (= () V1725) (do (shen.incinfs) (cut Throwcontrol V2180 (freeze (shen.t* (cons P (cons : (cons boolean ()))) V2179 V2180 (freeze (cut Throwcontrol V2180 (freeze (shen.t*-action Action V2178 (cons (cons P (cons : (cons verified ()))) V2179) V2180 V2181)))))))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1726 (shen.lazyderef V2177 V2180) (if (cons? V1726) (let V1727 (shen.lazyderef (hd V1726) V2180) (if (= shen.choicepoint! V1727) (let V1728 (shen.lazyderef (tl V1726) V2180) (if (cons? V1728) (let V1729 (shen.lazyderef (hd V1728) V2180) (if (cons? V1729) (let V1730 (shen.lazyderef (hd V1729) V2180) (if (cons? V1730) (let V1731 (shen.lazyderef (hd V1730) V2180) (if (= fail-if V1731) (let V1732 (shen.lazyderef (tl V1730) V2180) (if (cons? V1732) (let F (hd V1732) (let V1733 (shen.lazyderef (tl V1732) V2180) (if (= () V1733) (let V1734 (shen.lazyderef (tl V1729) V2180) (if (cons? V1734) (let Action (hd V1734) (let V1735 (shen.lazyderef (tl V1734) V2180) (if (= () V1735) (let V1736 (shen.lazyderef (tl V1728) V2180) (if (= () V1736) (do (shen.incinfs) (cut Throwcontrol V2180 (freeze (shen.t*-action (cons where (cons (cons not (cons (cons F (cons Action ())) ())) (cons Action ()))) V2178 V2179 V2180 V2181)))) false)) false))) false)) false))) false)) false)) false)) false)) false)) false)) false)) (if (= Case false) (let Case (let V1737 (shen.lazyderef V2177 V2180) (if (cons? V1737) (let V1738 (shen.lazyderef (hd V1737) V2180) (if (= shen.choicepoint! V1738) (let V1739 (shen.lazyderef (tl V1737) V2180) (if (cons? V1739) (let Action (hd V1739) (let V1740 (shen.lazyderef (tl V1739) V2180) (if (= () V1740) (do (shen.incinfs) (cut Throwcontrol V2180 (freeze (shen.t*-action (cons where (cons (cons not (cons (cons (cons = (cons Action ())) (cons (cons fail ()) ())) ())) (cons Action ()))) V2178 V2179 V2180 V2181)))) false))) false)) false)) false)) (if (= Case false) (do (shen.incinfs) (shen.t* (cons V2177 (cons : (cons V2178 ()))) V2179 V2180 V2181)) Case)) Case)) Case)))))
114
+ (defun shen.t*-action (V2226 V2227 V2228 V2229 V2230) (let Throwcontrol (shen.catchpoint) (shen.cutpoint Throwcontrol (let Case (let V1770 (shen.lazyderef V2226 V2229) (if (cons? V1770) (let V1771 (shen.lazyderef (hd V1770) V2229) (if (= where V1771) (let V1772 (shen.lazyderef (tl V1770) V2229) (if (cons? V1772) (let P (hd V1772) (let V1773 (shen.lazyderef (tl V1772) V2229) (if (cons? V1773) (let Action (hd V1773) (let V1774 (shen.lazyderef (tl V1773) V2229) (if (= () V1774) (do (shen.incinfs) (cut Throwcontrol V2229 (freeze (shen.t* (cons P (cons : (cons boolean ()))) V2228 V2229 (freeze (cut Throwcontrol V2229 (freeze (shen.t*-action Action V2227 (cons (cons P (cons : (cons verified ()))) V2228) V2229 V2230)))))))) false))) false))) false)) false)) false)) (if (= Case false) (let Case (let V1775 (shen.lazyderef V2226 V2229) (if (cons? V1775) (let V1776 (shen.lazyderef (hd V1775) V2229) (if (= shen.choicepoint! V1776) (let V1777 (shen.lazyderef (tl V1775) V2229) (if (cons? V1777) (let V1778 (shen.lazyderef (hd V1777) V2229) (if (cons? V1778) (let V1779 (shen.lazyderef (hd V1778) V2229) (if (cons? V1779) (let V1780 (shen.lazyderef (hd V1779) V2229) (if (= fail-if V1780) (let V1781 (shen.lazyderef (tl V1779) V2229) (if (cons? V1781) (let F (hd V1781) (let V1782 (shen.lazyderef (tl V1781) V2229) (if (= () V1782) (let V1783 (shen.lazyderef (tl V1778) V2229) (if (cons? V1783) (let Action (hd V1783) (let V1784 (shen.lazyderef (tl V1783) V2229) (if (= () V1784) (let V1785 (shen.lazyderef (tl V1777) V2229) (if (= () V1785) (do (shen.incinfs) (cut Throwcontrol V2229 (freeze (shen.t*-action (cons where (cons (cons not (cons (cons F (cons Action ())) ())) (cons Action ()))) V2227 V2228 V2229 V2230)))) false)) false))) false)) false))) false)) false)) false)) false)) false)) false)) false)) (if (= Case false) (let Case (let V1786 (shen.lazyderef V2226 V2229) (if (cons? V1786) (let V1787 (shen.lazyderef (hd V1786) V2229) (if (= shen.choicepoint! V1787) (let V1788 (shen.lazyderef (tl V1786) V2229) (if (cons? V1788) (let Action (hd V1788) (let V1789 (shen.lazyderef (tl V1788) V2229) (if (= () V1789) (do (shen.incinfs) (cut Throwcontrol V2229 (freeze (shen.t*-action (cons where (cons (cons not (cons (cons (cons = (cons Action ())) (cons (cons fail ()) ())) ())) (cons Action ()))) V2227 V2228 V2229 V2230)))) false))) false)) false)) false)) (if (= Case false) (do (shen.incinfs) (shen.t* (cons V2226 (cons : (cons V2227 ()))) V2228 V2229 V2230)) Case)) Case)) Case)))))
115
115
 
116
- (defun findall (V2182 V2183 V2184 V2185 V2186) (let B (shen.newpv V2185) (let A (shen.newpv V2185) (do (shen.incinfs) (bind A (gensym shen.a) V2185 (freeze (bind B (set (shen.lazyderef A V2185) ()) V2185 (freeze (shen.findallhelp V2182 V2183 V2184 A V2185 V2186)))))))))
116
+ (defun findall (V2231 V2232 V2233 V2234 V2235) (let B (shen.newpv V2234) (let A (shen.newpv V2234) (do (shen.incinfs) (bind A (gensym shen.a) V2234 (freeze (bind B (set (shen.lazyderef A V2234) ()) V2234 (freeze (shen.findallhelp V2231 V2232 V2233 A V2234 V2235)))))))))
117
117
 
118
- (defun shen.findallhelp (V2187 V2188 V2189 V2190 V2191 V2192) (let Case (do (shen.incinfs) (call V2188 V2191 (freeze (shen.remember V2190 V2187 V2191 (freeze (fwhen false V2191 V2192)))))) (if (= Case false) (do (shen.incinfs) (bind V2189 (value (shen.lazyderef V2190 V2191)) V2191 V2192)) Case)))
118
+ (defun shen.findallhelp (V2236 V2237 V2238 V2239 V2240 V2241) (let Case (do (shen.incinfs) (call V2237 V2240 (freeze (shen.remember V2239 V2236 V2240 (freeze (fwhen false V2240 V2241)))))) (if (= Case false) (do (shen.incinfs) (bind V2238 (value (shen.lazyderef V2239 V2240)) V2240 V2241)) Case)))
119
119
 
120
- (defun shen.remember (V2193 V2194 V2195 V2196) (let B (shen.newpv V2195) (do (shen.incinfs) (bind B (set (shen.deref V2193 V2195) (cons (shen.deref V2194 V2195) (value (shen.deref V2193 V2195)))) V2195 V2196))))
120
+ (defun shen.remember (V2242 V2243 V2244 V2245) (let B (shen.newpv V2244) (do (shen.incinfs) (bind B (set (shen.deref V2242 V2244) (cons (shen.deref V2243 V2244) (value (shen.deref V2242 V2244)))) V2244 V2245))))
121
121
 
122
122
 
123
123
 
@@ -36,27 +36,27 @@ port " (shen.app (value *port*) (cn " ported by " (shen.app (value *porters*) "
36
36
 
37
37
  (defun shen.initialise_environment () (shen.multiple-set (cons shen.*call* (cons 0 (cons shen.*infs* (cons 0 (cons shen.*process-counter* (cons 0 (cons shen.*catch* (cons 0 ()))))))))))
38
38
 
39
- (defun shen.multiple-set (V2197) (cond ((= () V2197) ()) ((and (cons? V2197) (cons? (tl V2197))) (do (set (hd V2197) (hd (tl V2197))) (shen.multiple-set (tl (tl V2197))))) (true (shen.f_error shen.multiple-set))))
39
+ (defun shen.multiple-set (V2248) (cond ((= () V2248) ()) ((and (cons? V2248) (cons? (tl V2248))) (do (set (hd V2248) (hd (tl V2248))) (shen.multiple-set (tl (tl V2248))))) (true (shen.f_error shen.multiple-set))))
40
40
 
41
- (defun destroy (V2198) (declare V2198 symbol))
41
+ (defun destroy (V2249) (declare V2249 symbol))
42
42
 
43
43
  (set shen.*history* ())
44
44
 
45
45
  (defun shen.read-evaluate-print () (let Lineread (shen.toplineread) (let History (value shen.*history*) (let NewLineread (shen.retrieve-from-history-if-needed Lineread History) (let NewHistory (shen.update_history NewLineread History) (let Parsed (fst NewLineread) (shen.toplevel Parsed)))))))
46
46
 
47
- (defun shen.retrieve-from-history-if-needed (V2208 V2209) (cond ((and (tuple? V2208) (and (cons? (snd V2208)) (element? (hd (snd V2208)) (cons (shen.space) (cons (shen.newline) ()))))) (shen.retrieve-from-history-if-needed (@p (fst V2208) (tl (snd V2208))) V2209)) ((and (tuple? V2208) (and (cons? (snd V2208)) (and (cons? (tl (snd V2208))) (and (= () (tl (tl (snd V2208)))) (and (cons? V2209) (and (= (hd (snd V2208)) (shen.exclamation)) (= (hd (tl (snd V2208))) (shen.exclamation)))))))) (let PastPrint (shen.prbytes (snd (hd V2209))) (hd V2209))) ((and (tuple? V2208) (and (cons? (snd V2208)) (= (hd (snd V2208)) (shen.exclamation)))) (let Key? (shen.make-key (tl (snd V2208)) V2209) (let Find (head (shen.find-past-inputs Key? V2209)) (let PastPrint (shen.prbytes (snd Find)) Find)))) ((and (tuple? V2208) (and (cons? (snd V2208)) (and (= () (tl (snd V2208))) (= (hd (snd V2208)) (shen.percent))))) (do (shen.print-past-inputs (lambda X true) (reverse V2209) 0) (abort))) ((and (tuple? V2208) (and (cons? (snd V2208)) (= (hd (snd V2208)) (shen.percent)))) (let Key? (shen.make-key (tl (snd V2208)) V2209) (let Pastprint (shen.print-past-inputs Key? (reverse V2209) 0) (abort)))) (true V2208)))
47
+ (defun shen.retrieve-from-history-if-needed (V2259 V2260) (cond ((and (tuple? V2259) (and (cons? (snd V2259)) (element? (hd (snd V2259)) (cons (shen.space) (cons (shen.newline) ()))))) (shen.retrieve-from-history-if-needed (@p (fst V2259) (tl (snd V2259))) V2260)) ((and (tuple? V2259) (and (cons? (snd V2259)) (and (cons? (tl (snd V2259))) (and (= () (tl (tl (snd V2259)))) (and (cons? V2260) (and (= (hd (snd V2259)) (shen.exclamation)) (= (hd (tl (snd V2259))) (shen.exclamation)))))))) (let PastPrint (shen.prbytes (snd (hd V2260))) (hd V2260))) ((and (tuple? V2259) (and (cons? (snd V2259)) (= (hd (snd V2259)) (shen.exclamation)))) (let Key? (shen.make-key (tl (snd V2259)) V2260) (let Find (head (shen.find-past-inputs Key? V2260)) (let PastPrint (shen.prbytes (snd Find)) Find)))) ((and (tuple? V2259) (and (cons? (snd V2259)) (and (= () (tl (snd V2259))) (= (hd (snd V2259)) (shen.percent))))) (do (shen.print-past-inputs (lambda X true) (reverse V2260) 0) (abort))) ((and (tuple? V2259) (and (cons? (snd V2259)) (= (hd (snd V2259)) (shen.percent)))) (let Key? (shen.make-key (tl (snd V2259)) V2260) (let Pastprint (shen.print-past-inputs Key? (reverse V2260) 0) (abort)))) (true V2259)))
48
48
 
49
49
  (defun shen.percent () 37)
50
50
 
51
51
  (defun shen.exclamation () 33)
52
52
 
53
- (defun shen.prbytes (V2210) (do (map (lambda Byte (pr (n->string Byte) (stoutput))) V2210) (nl 1)))
53
+ (defun shen.prbytes (V2261) (do (map (lambda Byte (pr (n->string Byte) (stoutput))) V2261) (nl 1)))
54
54
 
55
- (defun shen.update_history (V2211 V2212) (set shen.*history* (cons V2211 V2212)))
55
+ (defun shen.update_history (V2262 V2263) (set shen.*history* (cons V2262 V2263)))
56
56
 
57
57
  (defun shen.toplineread () (shen.toplineread_loop (read-byte (stinput)) ()))
58
58
 
59
- (defun shen.toplineread_loop (V2214 V2215) (cond ((= V2214 (shen.hat)) (simple-error "line read aborted")) ((element? V2214 (cons (shen.newline) (cons (shen.carriage-return) ()))) (let Line (compile shen.<st_input> V2215 (lambda E shen.nextline)) (let It (shen.record-it V2215) (if (or (= Line shen.nextline) (empty? Line)) (shen.toplineread_loop (read-byte (stinput)) (append V2215 (cons V2214 ()))) (@p Line V2215))))) (true (shen.toplineread_loop (read-byte (stinput)) (append V2215 (cons V2214 ()))))))
59
+ (defun shen.toplineread_loop (V2265 V2266) (cond ((= V2265 (shen.hat)) (simple-error "line read aborted")) ((element? V2265 (cons (shen.newline) (cons (shen.carriage-return) ()))) (let Line (compile (lambda V2246 (shen.<st_input> V2246)) V2266 (lambda E shen.nextline)) (let It (shen.record-it V2266) (if (or (= Line shen.nextline) (empty? Line)) (shen.toplineread_loop (read-byte (stinput)) (append V2266 (cons V2265 ()))) (@p Line V2266))))) (true (shen.toplineread_loop (read-byte (stinput)) (append V2266 (cons V2265 ()))))))
60
60
 
61
61
  (defun shen.hat () 94)
62
62
 
@@ -64,7 +64,7 @@ port " (shen.app (value *port*) (cn " ported by " (shen.app (value *porters*) "
64
64
 
65
65
  (defun shen.carriage-return () 13)
66
66
 
67
- (defun tc (V2220) (cond ((= + V2220) (set shen.*tc* true)) ((= - V2220) (set shen.*tc* false)) (true (simple-error "tc expects a + or -"))))
67
+ (defun tc (V2271) (cond ((= + V2271) (set shen.*tc* true)) ((= - V2271) (set shen.*tc* false)) (true (simple-error "tc expects a + or -"))))
68
68
 
69
69
  (defun shen.prompt () (if (value shen.*tc*) (shen.prhush (cn "
70
70
 
@@ -72,16 +72,16 @@ port " (shen.app (value *port*) (cn " ported by " (shen.app (value *porters*) "
72
72
 
73
73
  (" (shen.app (length (value shen.*history*)) "-) " shen.a)) (stoutput))))
74
74
 
75
- (defun shen.toplevel (V2221) (shen.toplevel_evaluate V2221 (value shen.*tc*)))
75
+ (defun shen.toplevel (V2272) (shen.toplevel_evaluate V2272 (value shen.*tc*)))
76
76
 
77
- (defun shen.find-past-inputs (V2222 V2223) (let F (shen.find V2222 V2223) (if (empty? F) (simple-error "input not found
77
+ (defun shen.find-past-inputs (V2273 V2274) (let F (shen.find V2273 V2274) (if (empty? F) (simple-error "input not found
78
78
  ") F)))
79
79
 
80
- (defun shen.make-key (V2224 V2225) (let Atom (hd (compile shen.<st_input> V2224 (lambda E (if (cons? E) (simple-error (cn "parse error here: " (shen.app E "
80
+ (defun shen.make-key (V2275 V2276) (let Atom (hd (compile (lambda V2247 (shen.<st_input> V2247)) V2275 (lambda E (if (cons? E) (simple-error (cn "parse error here: " (shen.app E "
81
81
  " shen.s))) (simple-error "parse error
82
- "))))) (if (integer? Atom) (lambda X (= X (nth (+ Atom 1) (reverse V2225)))) (lambda X (shen.prefix? V2224 (shen.trim-gubbins (snd X)))))))
82
+ "))))) (if (integer? Atom) (lambda X (= X (nth (+ Atom 1) (reverse V2276)))) (lambda X (shen.prefix? V2275 (shen.trim-gubbins (snd X)))))))
83
83
 
84
- (defun shen.trim-gubbins (V2226) (cond ((and (cons? V2226) (= (hd V2226) (shen.space))) (shen.trim-gubbins (tl V2226))) ((and (cons? V2226) (= (hd V2226) (shen.newline))) (shen.trim-gubbins (tl V2226))) ((and (cons? V2226) (= (hd V2226) (shen.carriage-return))) (shen.trim-gubbins (tl V2226))) ((and (cons? V2226) (= (hd V2226) (shen.tab))) (shen.trim-gubbins (tl V2226))) ((and (cons? V2226) (= (hd V2226) (shen.left-round))) (shen.trim-gubbins (tl V2226))) (true V2226)))
84
+ (defun shen.trim-gubbins (V2277) (cond ((and (cons? V2277) (= (hd V2277) (shen.space))) (shen.trim-gubbins (tl V2277))) ((and (cons? V2277) (= (hd V2277) (shen.newline))) (shen.trim-gubbins (tl V2277))) ((and (cons? V2277) (= (hd V2277) (shen.carriage-return))) (shen.trim-gubbins (tl V2277))) ((and (cons? V2277) (= (hd V2277) (shen.tab))) (shen.trim-gubbins (tl V2277))) ((and (cons? V2277) (= (hd V2277) (shen.left-round))) (shen.trim-gubbins (tl V2277))) (true V2277)))
85
85
 
86
86
  (defun shen.space () 32)
87
87
 
@@ -89,22 +89,22 @@ port " (shen.app (value *port*) (cn " ported by " (shen.app (value *porters*) "
89
89
 
90
90
  (defun shen.left-round () 40)
91
91
 
92
- (defun shen.find (V2233 V2234) (cond ((= () V2234) ()) ((and (cons? V2234) (V2233 (hd V2234))) (cons (hd V2234) (shen.find V2233 (tl V2234)))) ((cons? V2234) (shen.find V2233 (tl V2234))) (true (shen.f_error shen.find))))
92
+ (defun shen.find (V2284 V2285) (cond ((= () V2285) ()) ((and (cons? V2285) (V2284 (hd V2285))) (cons (hd V2285) (shen.find V2284 (tl V2285)))) ((cons? V2285) (shen.find V2284 (tl V2285))) (true (shen.f_error shen.find))))
93
93
 
94
- (defun shen.prefix? (V2246 V2247) (cond ((= () V2246) true) ((and (cons? V2246) (and (cons? V2247) (= (hd V2247) (hd V2246)))) (shen.prefix? (tl V2246) (tl V2247))) (true false)))
94
+ (defun shen.prefix? (V2297 V2298) (cond ((= () V2297) true) ((and (cons? V2297) (and (cons? V2298) (= (hd V2298) (hd V2297)))) (shen.prefix? (tl V2297) (tl V2298))) (true false)))
95
95
 
96
- (defun shen.print-past-inputs (V2256 V2257 V2258) (cond ((= () V2257) _) ((and (cons? V2257) (not (V2256 (hd V2257)))) (shen.print-past-inputs V2256 (tl V2257) (+ V2258 1))) ((and (cons? V2257) (tuple? (hd V2257))) (do (shen.prhush (shen.app V2258 ". " shen.a) (stoutput)) (do (shen.prbytes (snd (hd V2257))) (shen.print-past-inputs V2256 (tl V2257) (+ V2258 1))))) (true (shen.f_error shen.print-past-inputs))))
96
+ (defun shen.print-past-inputs (V2307 V2308 V2309) (cond ((= () V2308) _) ((and (cons? V2308) (not (V2307 (hd V2308)))) (shen.print-past-inputs V2307 (tl V2308) (+ V2309 1))) ((and (cons? V2308) (tuple? (hd V2308))) (do (shen.prhush (shen.app V2309 ". " shen.a) (stoutput)) (do (shen.prbytes (snd (hd V2308))) (shen.print-past-inputs V2307 (tl V2308) (+ V2309 1))))) (true (shen.f_error shen.print-past-inputs))))
97
97
 
98
- (defun shen.toplevel_evaluate (V2259 V2260) (cond ((and (cons? V2259) (and (cons? (tl V2259)) (and (= : (hd (tl V2259))) (and (cons? (tl (tl V2259))) (and (= () (tl (tl (tl V2259)))) (= true V2260)))))) (shen.typecheck-and-evaluate (hd V2259) (hd (tl (tl V2259))))) ((and (cons? V2259) (cons? (tl V2259))) (do (shen.toplevel_evaluate (cons (hd V2259) ()) V2260) (do (nl 1) (shen.toplevel_evaluate (tl V2259) V2260)))) ((and (cons? V2259) (and (= () (tl V2259)) (= true V2260))) (shen.typecheck-and-evaluate (hd V2259) (gensym A))) ((and (cons? V2259) (and (= () (tl V2259)) (= false V2260))) (let Eval (shen.eval-without-macros (hd V2259)) (print Eval))) (true (shen.f_error shen.toplevel_evaluate))))
98
+ (defun shen.toplevel_evaluate (V2310 V2311) (cond ((and (cons? V2310) (and (cons? (tl V2310)) (and (= : (hd (tl V2310))) (and (cons? (tl (tl V2310))) (and (= () (tl (tl (tl V2310)))) (= true V2311)))))) (shen.typecheck-and-evaluate (hd V2310) (hd (tl (tl V2310))))) ((and (cons? V2310) (cons? (tl V2310))) (do (shen.toplevel_evaluate (cons (hd V2310) ()) V2311) (do (nl 1) (shen.toplevel_evaluate (tl V2310) V2311)))) ((and (cons? V2310) (and (= () (tl V2310)) (= true V2311))) (shen.typecheck-and-evaluate (hd V2310) (gensym A))) ((and (cons? V2310) (and (= () (tl V2310)) (= false V2311))) (let Eval (shen.eval-without-macros (hd V2310)) (print Eval))) (true (shen.f_error shen.toplevel_evaluate))))
99
99
 
100
- (defun shen.typecheck-and-evaluate (V2261 V2262) (let Typecheck (shen.typecheck V2261 V2262) (if (= Typecheck false) (simple-error "type error
101
- ") (let Eval (shen.eval-without-macros V2261) (let Type (shen.pretty-type Typecheck) (shen.prhush (shen.app Eval (cn " : " (shen.app Type "" shen.r)) shen.s) (stoutput)))))))
100
+ (defun shen.typecheck-and-evaluate (V2312 V2313) (let Typecheck (shen.typecheck V2312 V2313) (if (= Typecheck false) (simple-error "type error
101
+ ") (let Eval (shen.eval-without-macros V2312) (let Type (shen.pretty-type Typecheck) (shen.prhush (shen.app Eval (cn " : " (shen.app Type "" shen.r)) shen.s) (stoutput)))))))
102
102
 
103
- (defun shen.pretty-type (V2263) (shen.mult_subst (value shen.*alphabet*) (shen.extract-pvars V2263) V2263))
103
+ (defun shen.pretty-type (V2314) (shen.mult_subst (value shen.*alphabet*) (shen.extract-pvars V2314) V2314))
104
104
 
105
- (defun shen.extract-pvars (V2268) (cond ((shen.pvar? V2268) (cons V2268 ())) ((cons? V2268) (union (shen.extract-pvars (hd V2268)) (shen.extract-pvars (tl V2268)))) (true ())))
105
+ (defun shen.extract-pvars (V2319) (cond ((shen.pvar? V2319) (cons V2319 ())) ((cons? V2319) (union (shen.extract-pvars (hd V2319)) (shen.extract-pvars (tl V2319)))) (true ())))
106
106
 
107
- (defun shen.mult_subst (V2273 V2274 V2275) (cond ((= () V2273) V2275) ((= () V2274) V2275) ((and (cons? V2273) (cons? V2274)) (shen.mult_subst (tl V2273) (tl V2274) (subst (hd V2273) (hd V2274) V2275))) (true (shen.f_error shen.mult_subst))))
107
+ (defun shen.mult_subst (V2324 V2325 V2326) (cond ((= () V2324) V2326) ((= () V2325) V2326) ((and (cons? V2324) (cons? V2325)) (shen.mult_subst (tl V2324) (tl V2325) (subst (hd V2324) (hd V2325) V2326))) (true (shen.f_error shen.mult_subst))))
108
108
 
109
109
 
110
110
 
@@ -23,57 +23,57 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
23
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
24
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
25
25
 
26
- (defun shen.f_error (V2276) (do (shen.prhush (cn "partial function " (shen.app V2276 ";
27
- " shen.a)) (stoutput)) (do (if (and (not (shen.tracked? V2276)) (y-or-n? (cn "track " (shen.app V2276 "? " shen.a)))) (shen.track-function (ps V2276)) shen.ok) (simple-error "aborted"))))
26
+ (defun shen.f_error (V2327) (do (shen.prhush (cn "partial function " (shen.app V2327 ";
27
+ " shen.a)) (stoutput)) (do (if (and (not (shen.tracked? V2327)) (y-or-n? (cn "track " (shen.app V2327 "? " shen.a)))) (shen.track-function (ps V2327)) shen.ok) (simple-error "aborted"))))
28
28
 
29
- (defun shen.tracked? (V2277) (element? V2277 (value shen.*tracking*)))
29
+ (defun shen.tracked? (V2328) (element? V2328 (value shen.*tracking*)))
30
30
 
31
- (defun track (V2278) (let Source (ps V2278) (shen.track-function Source)))
31
+ (defun track (V2329) (let Source (ps V2329) (shen.track-function Source)))
32
32
 
33
- (defun shen.track-function (V2279) (cond ((and (cons? V2279) (and (= defun (hd V2279)) (and (cons? (tl V2279)) (and (cons? (tl (tl V2279))) (and (cons? (tl (tl (tl V2279)))) (= () (tl (tl (tl (tl V2279)))))))))) (let KL (cons defun (cons (hd (tl V2279)) (cons (hd (tl (tl V2279))) (cons (shen.insert-tracking-code (hd (tl V2279)) (hd (tl (tl V2279))) (hd (tl (tl (tl V2279))))) ())))) (let Ob (eval-kl KL) (let Tr (set shen.*tracking* (cons Ob (value shen.*tracking*))) Ob)))) (true (shen.f_error shen.track-function))))
33
+ (defun shen.track-function (V2330) (cond ((and (cons? V2330) (and (= defun (hd V2330)) (and (cons? (tl V2330)) (and (cons? (tl (tl V2330))) (and (cons? (tl (tl (tl V2330)))) (= () (tl (tl (tl (tl V2330)))))))))) (let KL (cons defun (cons (hd (tl V2330)) (cons (hd (tl (tl V2330))) (cons (shen.insert-tracking-code (hd (tl V2330)) (hd (tl (tl V2330))) (hd (tl (tl (tl V2330))))) ())))) (let Ob (eval-kl KL) (let Tr (set shen.*tracking* (cons Ob (value shen.*tracking*))) Ob)))) (true (shen.f_error shen.track-function))))
34
34
 
35
- (defun shen.insert-tracking-code (V2280 V2281 V2282) (cons do (cons (cons set (cons shen.*call* (cons (cons + (cons (cons value (cons shen.*call* ())) (cons 1 ()))) ()))) (cons (cons do (cons (cons shen.input-track (cons (cons value (cons shen.*call* ())) (cons V2280 (cons (shen.cons_form V2281) ())))) (cons (cons do (cons (cons shen.terpri-or-read-char ()) (cons (cons let (cons Result (cons V2282 (cons (cons do (cons (cons shen.output-track (cons (cons value (cons shen.*call* ())) (cons V2280 (cons Result ())))) (cons (cons do (cons (cons set (cons shen.*call* (cons (cons - (cons (cons value (cons shen.*call* ())) (cons 1 ()))) ()))) (cons (cons do (cons (cons shen.terpri-or-read-char ()) (cons Result ()))) ()))) ()))) ())))) ()))) ()))) ()))))
35
+ (defun shen.insert-tracking-code (V2331 V2332 V2333) (cons do (cons (cons set (cons shen.*call* (cons (cons + (cons (cons value (cons shen.*call* ())) (cons 1 ()))) ()))) (cons (cons do (cons (cons shen.input-track (cons (cons value (cons shen.*call* ())) (cons V2331 (cons (shen.cons_form V2332) ())))) (cons (cons do (cons (cons shen.terpri-or-read-char ()) (cons (cons let (cons Result (cons V2333 (cons (cons do (cons (cons shen.output-track (cons (cons value (cons shen.*call* ())) (cons V2331 (cons Result ())))) (cons (cons do (cons (cons set (cons shen.*call* (cons (cons - (cons (cons value (cons shen.*call* ())) (cons 1 ()))) ()))) (cons (cons do (cons (cons shen.terpri-or-read-char ()) (cons Result ()))) ()))) ()))) ())))) ()))) ()))) ()))))
36
36
 
37
37
  (set shen.*step* false)
38
38
 
39
- (defun step (V2287) (cond ((= + V2287) (set shen.*step* true)) ((= - V2287) (set shen.*step* false)) (true (simple-error "step expects a + or a -.
39
+ (defun step (V2338) (cond ((= + V2338) (set shen.*step* true)) ((= - V2338) (set shen.*step* false)) (true (simple-error "step expects a + or a -.
40
40
  "))))
41
41
 
42
- (defun spy (V2292) (cond ((= + V2292) (set shen.*spy* true)) ((= - V2292) (set shen.*spy* false)) (true (simple-error "spy expects a + or a -.
42
+ (defun spy (V2343) (cond ((= + V2343) (set shen.*spy* true)) ((= - V2343) (set shen.*spy* false)) (true (simple-error "spy expects a + or a -.
43
43
  "))))
44
44
 
45
45
  (defun shen.terpri-or-read-char () (if (value shen.*step*) (shen.check-byte (read-byte (value *stinput*))) (nl 1)))
46
46
 
47
- (defun shen.check-byte (V2297) (cond ((= V2297 (shen.hat)) (simple-error "aborted")) (true true)))
47
+ (defun shen.check-byte (V2348) (cond ((= V2348 (shen.hat)) (simple-error "aborted")) (true true)))
48
48
 
49
- (defun shen.input-track (V2298 V2299 V2300) (do (shen.prhush (cn "
50
- " (shen.app (shen.spaces V2298) (cn "<" (shen.app V2298 (cn "> Inputs to " (shen.app V2299 (cn "
51
- " (shen.app (shen.spaces V2298) "" shen.a)) shen.a)) shen.a)) shen.a)) (stoutput)) (shen.recursively-print V2300)))
49
+ (defun shen.input-track (V2349 V2350 V2351) (do (shen.prhush (cn "
50
+ " (shen.app (shen.spaces V2349) (cn "<" (shen.app V2349 (cn "> Inputs to " (shen.app V2350 (cn "
51
+ " (shen.app (shen.spaces V2349) "" shen.a)) shen.a)) shen.a)) shen.a)) (stoutput)) (shen.recursively-print V2351)))
52
52
 
53
- (defun shen.recursively-print (V2301) (cond ((= () V2301) (shen.prhush " ==>" (stoutput))) ((cons? V2301) (do (print (hd V2301)) (do (shen.prhush ", " (stoutput)) (shen.recursively-print (tl V2301))))) (true (shen.f_error shen.recursively-print))))
53
+ (defun shen.recursively-print (V2352) (cond ((= () V2352) (shen.prhush " ==>" (stoutput))) ((cons? V2352) (do (print (hd V2352)) (do (shen.prhush ", " (stoutput)) (shen.recursively-print (tl V2352))))) (true (shen.f_error shen.recursively-print))))
54
54
 
55
- (defun shen.spaces (V2302) (cond ((= 0 V2302) "") (true (cn " " (shen.spaces (- V2302 1))))))
55
+ (defun shen.spaces (V2353) (cond ((= 0 V2353) "") (true (cn " " (shen.spaces (- V2353 1))))))
56
56
 
57
- (defun shen.output-track (V2303 V2304 V2305) (shen.prhush (cn "
58
- " (shen.app (shen.spaces V2303) (cn "<" (shen.app V2303 (cn "> Output from " (shen.app V2304 (cn "
59
- " (shen.app (shen.spaces V2303) (cn "==> " (shen.app V2305 "" shen.s)) shen.a)) shen.a)) shen.a)) shen.a)) (stoutput)))
57
+ (defun shen.output-track (V2354 V2355 V2356) (shen.prhush (cn "
58
+ " (shen.app (shen.spaces V2354) (cn "<" (shen.app V2354 (cn "> Output from " (shen.app V2355 (cn "
59
+ " (shen.app (shen.spaces V2354) (cn "==> " (shen.app V2356 "" shen.s)) shen.a)) shen.a)) shen.a)) shen.a)) (stoutput)))
60
60
 
61
- (defun untrack (V2306) (eval (ps V2306)))
61
+ (defun untrack (V2357) (eval (ps V2357)))
62
62
 
63
- (defun profile (V2307) (shen.profile-help (ps V2307)))
63
+ (defun profile (V2358) (shen.profile-help (ps V2358)))
64
64
 
65
- (defun shen.profile-help (V2312) (cond ((and (cons? V2312) (and (= defun (hd V2312)) (and (cons? (tl V2312)) (and (cons? (tl (tl V2312))) (and (cons? (tl (tl (tl V2312)))) (= () (tl (tl (tl (tl V2312)))))))))) (let G (gensym shen.f) (let Profile (cons defun (cons (hd (tl V2312)) (cons (hd (tl (tl V2312))) (cons (shen.profile-func (hd (tl V2312)) (hd (tl (tl V2312))) (cons G (hd (tl (tl V2312))))) ())))) (let Def (cons defun (cons G (cons (hd (tl (tl V2312))) (cons (subst G (hd (tl V2312)) (hd (tl (tl (tl V2312))))) ())))) (let CompileProfile (shen.eval-without-macros Profile) (let CompileG (shen.eval-without-macros Def) (hd (tl V2312)))))))) (true (simple-error "Cannot profile.
65
+ (defun shen.profile-help (V2363) (cond ((and (cons? V2363) (and (= defun (hd V2363)) (and (cons? (tl V2363)) (and (cons? (tl (tl V2363))) (and (cons? (tl (tl (tl V2363)))) (= () (tl (tl (tl (tl V2363)))))))))) (let G (gensym shen.f) (let Profile (cons defun (cons (hd (tl V2363)) (cons (hd (tl (tl V2363))) (cons (shen.profile-func (hd (tl V2363)) (hd (tl (tl V2363))) (cons G (hd (tl (tl V2363))))) ())))) (let Def (cons defun (cons G (cons (hd (tl (tl V2363))) (cons (subst G (hd (tl V2363)) (hd (tl (tl (tl V2363))))) ())))) (let CompileProfile (shen.eval-without-macros Profile) (let CompileG (shen.eval-without-macros Def) (hd (tl V2363)))))))) (true (simple-error "Cannot profile.
66
66
  "))))
67
67
 
68
- (defun unprofile (V2313) (untrack V2313))
68
+ (defun unprofile (V2364) (untrack V2364))
69
69
 
70
- (defun shen.profile-func (V2314 V2315 V2316) (cons let (cons Start (cons (cons get-time (cons run ())) (cons (cons let (cons Result (cons V2316 (cons (cons let (cons Finish (cons (cons - (cons (cons get-time (cons run ())) (cons Start ()))) (cons (cons let (cons Record (cons (cons shen.put-profile (cons V2314 (cons (cons + (cons (cons shen.get-profile (cons V2314 ())) (cons Finish ()))) ()))) (cons Result ())))) ())))) ())))) ())))))
70
+ (defun shen.profile-func (V2365 V2366 V2367) (cons let (cons Start (cons (cons get-time (cons run ())) (cons (cons let (cons Result (cons V2367 (cons (cons let (cons Finish (cons (cons - (cons (cons get-time (cons run ())) (cons Start ()))) (cons (cons let (cons Record (cons (cons shen.put-profile (cons V2365 (cons (cons + (cons (cons shen.get-profile (cons V2365 ())) (cons Finish ()))) ()))) (cons Result ())))) ())))) ())))) ())))))
71
71
 
72
- (defun profile-results (V2317) (let Results (shen.get-profile V2317) (let Initialise (shen.put-profile V2317 0) (@p V2317 Results))))
72
+ (defun profile-results (V2368) (let Results (shen.get-profile V2368) (let Initialise (shen.put-profile V2368 0) (@p V2368 Results))))
73
73
 
74
- (defun shen.get-profile (V2318) (trap-error (get V2318 profile (value *property-vector*)) (lambda E 0)))
74
+ (defun shen.get-profile (V2369) (trap-error (get V2369 profile (value *property-vector*)) (lambda E 0)))
75
75
 
76
- (defun shen.put-profile (V2319 V2320) (put V2319 profile V2320 (value *property-vector*)))
76
+ (defun shen.put-profile (V2370 V2371) (put V2370 profile V2371 (value *property-vector*)))
77
77
 
78
78
 
79
79
 
@@ -23,14 +23,14 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
23
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
24
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
25
25
 
26
- (defun declare (V2321 V2322) (let Record (set shen.*signedfuncs* (cons (cons V2321 V2322) (value shen.*signedfuncs*))) (let Variancy (trap-error (shen.variancy-test V2321 V2322) (lambda E shen.skip)) (let Type (shen.rcons_form (shen.demodulate V2322)) (let F* (concat shen.type-signature-of- V2321) (let Parameters (shen.parameters 1) (let Clause (cons (cons F* (cons X ())) (cons :- (cons (cons (cons unify! (cons X (cons Type ()))) ()) ()))) (let AUM_instruction (shen.aum Clause Parameters) (let Code (shen.aum_to_shen AUM_instruction) (let ShenDef (cons define (cons F* (append Parameters (append (cons ProcessN (cons Continuation ())) (cons -> (cons Code ())))))) (let Eval (shen.eval-without-macros ShenDef) V2321)))))))))))
26
+ (defun declare (V2373 V2374) (let Record (set shen.*signedfuncs* (cons (cons V2373 V2374) (value shen.*signedfuncs*))) (let Variancy (trap-error (shen.variancy-test V2373 V2374) (lambda E shen.skip)) (let Type (shen.rcons_form (shen.demodulate V2374)) (let F* (concat shen.type-signature-of- V2373) (let Parameters (shen.parameters 1) (let Clause (cons (cons F* (cons X ())) (cons :- (cons (cons (cons unify! (cons X (cons Type ()))) ()) ()))) (let AUM_instruction (shen.aum Clause Parameters) (let Code (shen.aum_to_shen AUM_instruction) (let ShenDef (cons define (cons F* (append Parameters (append (cons ProcessN (cons Continuation ())) (cons -> (cons Code ())))))) (let Eval (shen.eval-without-macros ShenDef) V2373)))))))))))
27
27
 
28
- (defun shen.demodulate (V2323) (trap-error (let Demod (shen.walk shen.demod V2323) (if (= Demod V2323) V2323 (shen.demodulate Demod))) (lambda E V2323)))
28
+ (defun shen.demodulate (V2375) (trap-error (let Demod (shen.walk (lambda V2372 (shen.demod V2372)) V2375) (if (= Demod V2375) V2375 (shen.demodulate Demod))) (lambda E V2375)))
29
29
 
30
- (defun shen.variancy-test (V2324 V2325) (let TypeF (shen.typecheck V2324 B) (let Check (if (= symbol TypeF) shen.skip (if (shen.variant? TypeF V2325) shen.skip (shen.prhush (cn "warning: changing the type of " (shen.app V2324 " may create errors
30
+ (defun shen.variancy-test (V2376 V2377) (let TypeF (shen.typecheck V2376 B) (let Check (if (= symbol TypeF) shen.skip (if (shen.variant? TypeF V2377) shen.skip (shen.prhush (cn "warning: changing the type of " (shen.app V2376 " may create errors
31
31
  " shen.a)) (stoutput)))) shen.skip)))
32
32
 
33
- (defun shen.variant? (V2336 V2337) (cond ((= V2337 V2336) true) ((and (cons? V2336) (and (cons? V2337) (= (hd V2337) (hd V2336)))) (shen.variant? (tl V2336) (tl V2337))) ((and (cons? V2336) (and (cons? V2337) (and (shen.pvar? (hd V2336)) (variable? (hd V2337))))) (shen.variant? (subst shen.a (hd V2336) (tl V2336)) (subst shen.a (hd V2337) (tl V2337)))) ((and (cons? V2336) (and (cons? (hd V2336)) (and (cons? V2337) (cons? (hd V2337))))) (shen.variant? (append (hd V2336) (tl V2336)) (append (hd V2337) (tl V2337)))) (true false)))
33
+ (defun shen.variant? (V2388 V2389) (cond ((= V2389 V2388) true) ((and (cons? V2388) (and (cons? V2389) (= (hd V2389) (hd V2388)))) (shen.variant? (tl V2388) (tl V2389))) ((and (cons? V2388) (and (cons? V2389) (and (shen.pvar? (hd V2388)) (variable? (hd V2389))))) (shen.variant? (subst shen.a (hd V2388) (tl V2388)) (subst shen.a (hd V2389) (tl V2389)))) ((and (cons? V2388) (and (cons? (hd V2388)) (and (cons? V2389) (cons? (hd V2389))))) (shen.variant? (append (hd V2388) (tl V2388)) (append (hd V2389) (tl V2389)))) (true false)))
34
34
 
35
35
  (declare absvector? (cons A (cons --> (cons boolean ()))))
36
36
 
@@ -23,59 +23,59 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
23
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
24
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
25
25
 
26
- (defun pr (V2338 V2339) (trap-error (shen.prh V2338 V2339 0) (lambda E V2338)))
26
+ (defun pr (V2390 V2391) (trap-error (shen.prh V2390 V2391 0) (lambda E V2390)))
27
27
 
28
- (defun shen.prh (V2340 V2341 V2342) (shen.prh V2340 V2341 (shen.write-char-and-inc V2340 V2341 V2342)))
28
+ (defun shen.prh (V2392 V2393 V2394) (shen.prh V2392 V2393 (shen.write-char-and-inc V2392 V2393 V2394)))
29
29
 
30
- (defun shen.write-char-and-inc (V2343 V2344 V2345) (do (write-byte (string->n (pos V2343 V2345)) V2344) (+ V2345 1)))
30
+ (defun shen.write-char-and-inc (V2395 V2396 V2397) (do (write-byte (string->n (pos V2395 V2397)) V2396) (+ V2397 1)))
31
31
 
32
- (defun print (V2346) (let String (shen.insert V2346 "~S") (let Print (shen.prhush String (stoutput)) V2346)))
32
+ (defun print (V2398) (let String (shen.insert V2398 "~S") (let Print (shen.prhush String (stoutput)) V2398)))
33
33
 
34
- (defun shen.prhush (V2347 V2348) (if (value *hush*) V2347 (pr V2347 V2348)))
34
+ (defun shen.prhush (V2399 V2400) (if (value *hush*) V2399 (pr V2399 V2400)))
35
35
 
36
- (defun shen.mkstr (V2349 V2350) (cond ((string? V2349) (shen.mkstr-l (shen.proc-nl V2349) V2350)) (true (shen.mkstr-r (cons shen.proc-nl (cons V2349 ())) V2350))))
36
+ (defun shen.mkstr (V2401 V2402) (cond ((string? V2401) (shen.mkstr-l (shen.proc-nl V2401) V2402)) (true (shen.mkstr-r (cons shen.proc-nl (cons V2401 ())) V2402))))
37
37
 
38
- (defun shen.mkstr-l (V2351 V2352) (cond ((= () V2352) V2351) ((cons? V2352) (shen.mkstr-l (shen.insert-l (hd V2352) V2351) (tl V2352))) (true (shen.f_error shen.mkstr-l))))
38
+ (defun shen.mkstr-l (V2403 V2404) (cond ((= () V2404) V2403) ((cons? V2404) (shen.mkstr-l (shen.insert-l (hd V2404) V2403) (tl V2404))) (true (shen.f_error shen.mkstr-l))))
39
39
 
40
- (defun shen.insert-l (V2355 V2356) (cond ((= "" V2356) "") ((and (shen.+string? V2356) (and (= "~" (pos V2356 0)) (and (shen.+string? (tlstr V2356)) (= "A" (pos (tlstr V2356) 0))))) (cons shen.app (cons V2355 (cons (tlstr (tlstr V2356)) (cons shen.a ()))))) ((and (shen.+string? V2356) (and (= "~" (pos V2356 0)) (and (shen.+string? (tlstr V2356)) (= "R" (pos (tlstr V2356) 0))))) (cons shen.app (cons V2355 (cons (tlstr (tlstr V2356)) (cons shen.r ()))))) ((and (shen.+string? V2356) (and (= "~" (pos V2356 0)) (and (shen.+string? (tlstr V2356)) (= "S" (pos (tlstr V2356) 0))))) (cons shen.app (cons V2355 (cons (tlstr (tlstr V2356)) (cons shen.s ()))))) ((shen.+string? V2356) (shen.factor-cn (cons cn (cons (pos V2356 0) (cons (shen.insert-l V2355 (tlstr V2356)) ()))))) ((and (cons? V2356) (and (= cn (hd V2356)) (and (cons? (tl V2356)) (and (cons? (tl (tl V2356))) (= () (tl (tl (tl V2356)))))))) (cons cn (cons (hd (tl V2356)) (cons (shen.insert-l V2355 (hd (tl (tl V2356)))) ())))) ((and (cons? V2356) (and (= shen.app (hd V2356)) (and (cons? (tl V2356)) (and (cons? (tl (tl V2356))) (and (cons? (tl (tl (tl V2356)))) (= () (tl (tl (tl (tl V2356)))))))))) (cons shen.app (cons (hd (tl V2356)) (cons (shen.insert-l V2355 (hd (tl (tl V2356)))) (tl (tl (tl V2356))))))) (true (shen.f_error shen.insert-l))))
40
+ (defun shen.insert-l (V2407 V2408) (cond ((= "" V2408) "") ((and (shen.+string? V2408) (and (= "~" (pos V2408 0)) (and (shen.+string? (tlstr V2408)) (= "A" (pos (tlstr V2408) 0))))) (cons shen.app (cons V2407 (cons (tlstr (tlstr V2408)) (cons shen.a ()))))) ((and (shen.+string? V2408) (and (= "~" (pos V2408 0)) (and (shen.+string? (tlstr V2408)) (= "R" (pos (tlstr V2408) 0))))) (cons shen.app (cons V2407 (cons (tlstr (tlstr V2408)) (cons shen.r ()))))) ((and (shen.+string? V2408) (and (= "~" (pos V2408 0)) (and (shen.+string? (tlstr V2408)) (= "S" (pos (tlstr V2408) 0))))) (cons shen.app (cons V2407 (cons (tlstr (tlstr V2408)) (cons shen.s ()))))) ((shen.+string? V2408) (shen.factor-cn (cons cn (cons (pos V2408 0) (cons (shen.insert-l V2407 (tlstr V2408)) ()))))) ((and (cons? V2408) (and (= cn (hd V2408)) (and (cons? (tl V2408)) (and (cons? (tl (tl V2408))) (= () (tl (tl (tl V2408)))))))) (cons cn (cons (hd (tl V2408)) (cons (shen.insert-l V2407 (hd (tl (tl V2408)))) ())))) ((and (cons? V2408) (and (= shen.app (hd V2408)) (and (cons? (tl V2408)) (and (cons? (tl (tl V2408))) (and (cons? (tl (tl (tl V2408)))) (= () (tl (tl (tl (tl V2408)))))))))) (cons shen.app (cons (hd (tl V2408)) (cons (shen.insert-l V2407 (hd (tl (tl V2408)))) (tl (tl (tl V2408))))))) (true (shen.f_error shen.insert-l))))
41
41
 
42
- (defun shen.factor-cn (V2357) (cond ((and (cons? V2357) (and (= cn (hd V2357)) (and (cons? (tl V2357)) (and (cons? (tl (tl V2357))) (and (cons? (hd (tl (tl V2357)))) (and (= cn (hd (hd (tl (tl V2357))))) (and (cons? (tl (hd (tl (tl V2357))))) (and (cons? (tl (tl (hd (tl (tl V2357)))))) (and (= () (tl (tl (tl (hd (tl (tl V2357))))))) (and (= () (tl (tl (tl V2357)))) (and (string? (hd (tl V2357))) (string? (hd (tl (hd (tl (tl V2357))))))))))))))))) (cons cn (cons (cn (hd (tl V2357)) (hd (tl (hd (tl (tl V2357)))))) (tl (tl (hd (tl (tl V2357)))))))) (true V2357)))
42
+ (defun shen.factor-cn (V2409) (cond ((and (cons? V2409) (and (= cn (hd V2409)) (and (cons? (tl V2409)) (and (cons? (tl (tl V2409))) (and (cons? (hd (tl (tl V2409)))) (and (= cn (hd (hd (tl (tl V2409))))) (and (cons? (tl (hd (tl (tl V2409))))) (and (cons? (tl (tl (hd (tl (tl V2409)))))) (and (= () (tl (tl (tl (hd (tl (tl V2409))))))) (and (= () (tl (tl (tl V2409)))) (and (string? (hd (tl V2409))) (string? (hd (tl (hd (tl (tl V2409))))))))))))))))) (cons cn (cons (cn (hd (tl V2409)) (hd (tl (hd (tl (tl V2409)))))) (tl (tl (hd (tl (tl V2409)))))))) (true V2409)))
43
43
 
44
- (defun shen.proc-nl (V2358) (cond ((= "" V2358) "") ((and (shen.+string? V2358) (and (= "~" (pos V2358 0)) (and (shen.+string? (tlstr V2358)) (= "%" (pos (tlstr V2358) 0))))) (cn (n->string 10) (shen.proc-nl (tlstr (tlstr V2358))))) ((shen.+string? V2358) (cn (pos V2358 0) (shen.proc-nl (tlstr V2358)))) (true (shen.f_error shen.proc-nl))))
44
+ (defun shen.proc-nl (V2410) (cond ((= "" V2410) "") ((and (shen.+string? V2410) (and (= "~" (pos V2410 0)) (and (shen.+string? (tlstr V2410)) (= "%" (pos (tlstr V2410) 0))))) (cn (n->string 10) (shen.proc-nl (tlstr (tlstr V2410))))) ((shen.+string? V2410) (cn (pos V2410 0) (shen.proc-nl (tlstr V2410)))) (true (shen.f_error shen.proc-nl))))
45
45
 
46
- (defun shen.mkstr-r (V2359 V2360) (cond ((= () V2360) V2359) ((cons? V2360) (shen.mkstr-r (cons shen.insert (cons (hd V2360) (cons V2359 ()))) (tl V2360))) (true (shen.f_error shen.mkstr-r))))
46
+ (defun shen.mkstr-r (V2411 V2412) (cond ((= () V2412) V2411) ((cons? V2412) (shen.mkstr-r (cons shen.insert (cons (hd V2412) (cons V2411 ()))) (tl V2412))) (true (shen.f_error shen.mkstr-r))))
47
47
 
48
- (defun shen.insert (V2361 V2362) (shen.insert-h V2361 V2362 ""))
48
+ (defun shen.insert (V2413 V2414) (shen.insert-h V2413 V2414 ""))
49
49
 
50
- (defun shen.insert-h (V2365 V2366 V2367) (cond ((= "" V2366) V2367) ((and (shen.+string? V2366) (and (= "~" (pos V2366 0)) (and (shen.+string? (tlstr V2366)) (= "A" (pos (tlstr V2366) 0))))) (cn V2367 (shen.app V2365 (tlstr (tlstr V2366)) shen.a))) ((and (shen.+string? V2366) (and (= "~" (pos V2366 0)) (and (shen.+string? (tlstr V2366)) (= "R" (pos (tlstr V2366) 0))))) (cn V2367 (shen.app V2365 (tlstr (tlstr V2366)) shen.r))) ((and (shen.+string? V2366) (and (= "~" (pos V2366 0)) (and (shen.+string? (tlstr V2366)) (= "S" (pos (tlstr V2366) 0))))) (cn V2367 (shen.app V2365 (tlstr (tlstr V2366)) shen.s))) ((shen.+string? V2366) (shen.insert-h V2365 (tlstr V2366) (cn V2367 (pos V2366 0)))) (true (shen.f_error shen.insert-h))))
50
+ (defun shen.insert-h (V2417 V2418 V2419) (cond ((= "" V2418) V2419) ((and (shen.+string? V2418) (and (= "~" (pos V2418 0)) (and (shen.+string? (tlstr V2418)) (= "A" (pos (tlstr V2418) 0))))) (cn V2419 (shen.app V2417 (tlstr (tlstr V2418)) shen.a))) ((and (shen.+string? V2418) (and (= "~" (pos V2418 0)) (and (shen.+string? (tlstr V2418)) (= "R" (pos (tlstr V2418) 0))))) (cn V2419 (shen.app V2417 (tlstr (tlstr V2418)) shen.r))) ((and (shen.+string? V2418) (and (= "~" (pos V2418 0)) (and (shen.+string? (tlstr V2418)) (= "S" (pos (tlstr V2418) 0))))) (cn V2419 (shen.app V2417 (tlstr (tlstr V2418)) shen.s))) ((shen.+string? V2418) (shen.insert-h V2417 (tlstr V2418) (cn V2419 (pos V2418 0)))) (true (shen.f_error shen.insert-h))))
51
51
 
52
- (defun shen.app (V2368 V2369 V2370) (cn (shen.arg->str V2368 V2370) V2369))
52
+ (defun shen.app (V2420 V2421 V2422) (cn (shen.arg->str V2420 V2422) V2421))
53
53
 
54
- (defun shen.arg->str (V2376 V2377) (cond ((= V2376 (fail)) "...") ((shen.list? V2376) (shen.list->str V2376 V2377)) ((string? V2376) (shen.str->str V2376 V2377)) ((absvector? V2376) (shen.vector->str V2376 V2377)) (true (shen.atom->str V2376))))
54
+ (defun shen.arg->str (V2428 V2429) (cond ((= V2428 (fail)) "...") ((shen.list? V2428) (shen.list->str V2428 V2429)) ((string? V2428) (shen.str->str V2428 V2429)) ((absvector? V2428) (shen.vector->str V2428 V2429)) (true (shen.atom->str V2428))))
55
55
 
56
- (defun shen.list->str (V2378 V2379) (cond ((= shen.r V2379) (@s "(" (@s (shen.iter-list V2378 shen.r (shen.maxseq)) ")"))) (true (@s "[" (@s (shen.iter-list V2378 V2379 (shen.maxseq)) "]")))))
56
+ (defun shen.list->str (V2430 V2431) (cond ((= shen.r V2431) (@s "(" (@s (shen.iter-list V2430 shen.r (shen.maxseq)) ")"))) (true (@s "[" (@s (shen.iter-list V2430 V2431 (shen.maxseq)) "]")))))
57
57
 
58
58
  (defun shen.maxseq () (value *maximum-print-sequence-size*))
59
59
 
60
- (defun shen.iter-list (V2390 V2391 V2392) (cond ((= () V2390) "") ((= 0 V2392) "... etc") ((and (cons? V2390) (= () (tl V2390))) (shen.arg->str (hd V2390) V2391)) ((cons? V2390) (@s (shen.arg->str (hd V2390) V2391) (@s " " (shen.iter-list (tl V2390) V2391 (- V2392 1))))) (true (@s "|" (@s " " (shen.arg->str V2390 V2391))))))
60
+ (defun shen.iter-list (V2442 V2443 V2444) (cond ((= () V2442) "") ((= 0 V2444) "... etc") ((and (cons? V2442) (= () (tl V2442))) (shen.arg->str (hd V2442) V2443)) ((cons? V2442) (@s (shen.arg->str (hd V2442) V2443) (@s " " (shen.iter-list (tl V2442) V2443 (- V2444 1))))) (true (@s "|" (@s " " (shen.arg->str V2442 V2443))))))
61
61
 
62
- (defun shen.str->str (V2397 V2398) (cond ((= shen.a V2398) V2397) (true (@s (n->string 34) (@s V2397 (n->string 34))))))
62
+ (defun shen.str->str (V2449 V2450) (cond ((= shen.a V2450) V2449) (true (@s (n->string 34) (@s V2449 (n->string 34))))))
63
63
 
64
- (defun shen.vector->str (V2399 V2400) (if (shen.print-vector? V2399) ((<-address V2399 0) V2399) (if (vector? V2399) (@s "<" (@s (shen.iter-vector V2399 1 V2400 (shen.maxseq)) ">")) (@s "<" (@s "<" (@s (shen.iter-vector V2399 0 V2400 (shen.maxseq)) ">>"))))))
64
+ (defun shen.vector->str (V2451 V2452) (if (shen.print-vector? V2451) ((<-address V2451 0) V2451) (if (vector? V2451) (@s "<" (@s (shen.iter-vector V2451 1 V2452 (shen.maxseq)) ">")) (@s "<" (@s "<" (@s (shen.iter-vector V2451 0 V2452 (shen.maxseq)) ">>"))))))
65
65
 
66
- (defun shen.print-vector? (V2401) (let Zero (<-address V2401 0) (if (= Zero shen.tuple) true (if (= Zero shen.pvar) true (if (not (number? Zero)) (shen.fbound? Zero) false)))))
66
+ (defun shen.print-vector? (V2453) (let Zero (<-address V2453 0) (if (= Zero shen.tuple) true (if (= Zero shen.pvar) true (if (not (number? Zero)) (shen.fbound? Zero) false)))))
67
67
 
68
- (defun shen.fbound? (V2402) (trap-error (do (ps V2402) true) (lambda E false)))
68
+ (defun shen.fbound? (V2454) (trap-error (do (ps V2454) true) (lambda E false)))
69
69
 
70
- (defun shen.tuple (V2403) (cn "(@p " (shen.app (<-address V2403 1) (cn " " (shen.app (<-address V2403 2) ")" shen.s)) shen.s)))
70
+ (defun shen.tuple (V2455) (cn "(@p " (shen.app (<-address V2455 1) (cn " " (shen.app (<-address V2455 2) ")" shen.s)) shen.s)))
71
71
 
72
- (defun shen.iter-vector (V2410 V2411 V2412 V2413) (cond ((= 0 V2413) "... etc") (true (let Item (trap-error (<-address V2410 V2411) (lambda E shen.out-of-bounds)) (let Next (trap-error (<-address V2410 (+ V2411 1)) (lambda E shen.out-of-bounds)) (if (= Item shen.out-of-bounds) "" (if (= Next shen.out-of-bounds) (shen.arg->str Item V2412) (@s (shen.arg->str Item V2412) (@s " " (shen.iter-vector V2410 (+ V2411 1) V2412 (- V2413 1)))))))))))
72
+ (defun shen.iter-vector (V2462 V2463 V2464 V2465) (cond ((= 0 V2465) "... etc") (true (let Item (trap-error (<-address V2462 V2463) (lambda E shen.out-of-bounds)) (let Next (trap-error (<-address V2462 (+ V2463 1)) (lambda E shen.out-of-bounds)) (if (= Item shen.out-of-bounds) "" (if (= Next shen.out-of-bounds) (shen.arg->str Item V2464) (@s (shen.arg->str Item V2464) (@s " " (shen.iter-vector V2462 (+ V2463 1) V2464 (- V2465 1)))))))))))
73
73
 
74
- (defun shen.atom->str (V2414) (trap-error (str V2414) (lambda E (shen.funexstring))))
74
+ (defun shen.atom->str (V2466) (trap-error (str V2466) (lambda E (shen.funexstring))))
75
75
 
76
76
  (defun shen.funexstring () (@s "" (@s "f" (@s "u" (@s "n" (@s "e" (@s (shen.arg->str (gensym (intern "x")) shen.a) "")))))))
77
77
 
78
- (defun shen.list? (V2415) (or (empty? V2415) (cons? V2415)))
78
+ (defun shen.list? (V2467) (or (empty? V2467) (cons? V2467)))
79
79
 
80
80
 
81
81
 
@@ -23,65 +23,65 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
23
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
24
  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
25
25
 
26
- (defun shen.yacc (V2416) (cond ((and (cons? V2416) (and (= defcc (hd V2416)) (cons? (tl V2416)))) (shen.yacc->shen (hd (tl V2416)) (tl (tl V2416)))) (true (shen.f_error shen.yacc))))
26
+ (defun shen.yacc (V2470) (cond ((and (cons? V2470) (and (= defcc (hd V2470)) (cons? (tl V2470)))) (shen.yacc->shen (hd (tl V2470)) (tl (tl V2470)))) (true (shen.f_error shen.yacc))))
27
27
 
28
- (defun shen.yacc->shen (V2417 V2418) (let CCRules (shen.split_cc_rules true V2418 ()) (let CCBody (map shen.cc_body CCRules) (let YaccCases (shen.yacc_cases CCBody) (cons define (cons V2417 (cons Stream (cons -> (cons (shen.kill-code YaccCases) ())))))))))
28
+ (defun shen.yacc->shen (V2471 V2472) (let CCRules (shen.split_cc_rules true V2472 ()) (let CCBody (map (lambda V2468 (shen.cc_body V2468)) CCRules) (let YaccCases (shen.yacc_cases CCBody) (cons define (cons V2471 (cons Stream (cons -> (cons (shen.kill-code YaccCases) ())))))))))
29
29
 
30
- (defun shen.kill-code (V2419) (cond ((> (occurrences kill V2419) 0) (cons trap-error (cons V2419 (cons (cons lambda (cons E (cons (cons shen.analyse-kill (cons E ())) ()))) ())))) (true V2419)))
30
+ (defun shen.kill-code (V2473) (cond ((> (occurrences kill V2473) 0) (cons trap-error (cons V2473 (cons (cons lambda (cons E (cons (cons shen.analyse-kill (cons E ())) ()))) ())))) (true V2473)))
31
31
 
32
32
  (defun kill () (simple-error "yacc kill"))
33
33
 
34
- (defun shen.analyse-kill (V2420) (let String (error-to-string V2420) (if (= String "yacc kill") (fail) V2420)))
34
+ (defun shen.analyse-kill (V2474) (let String (error-to-string V2474) (if (= String "yacc kill") (fail) V2474)))
35
35
 
36
- (defun shen.split_cc_rules (V2423 V2424 V2425) (cond ((and (= () V2424) (= () V2425)) ()) ((= () V2424) (cons (shen.split_cc_rule V2423 (reverse V2425) ()) ())) ((and (cons? V2424) (= ; (hd V2424))) (cons (shen.split_cc_rule V2423 (reverse V2425) ()) (shen.split_cc_rules V2423 (tl V2424) ()))) ((cons? V2424) (shen.split_cc_rules V2423 (tl V2424) (cons (hd V2424) V2425))) (true (shen.f_error shen.split_cc_rules))))
36
+ (defun shen.split_cc_rules (V2477 V2478 V2479) (cond ((and (= () V2478) (= () V2479)) ()) ((= () V2478) (cons (shen.split_cc_rule V2477 (reverse V2479) ()) ())) ((and (cons? V2478) (= ; (hd V2478))) (cons (shen.split_cc_rule V2477 (reverse V2479) ()) (shen.split_cc_rules V2477 (tl V2478) ()))) ((cons? V2478) (shen.split_cc_rules V2477 (tl V2478) (cons (hd V2478) V2479))) (true (shen.f_error shen.split_cc_rules))))
37
37
 
38
- (defun shen.split_cc_rule (V2430 V2431 V2432) (cond ((and (cons? V2431) (and (= := (hd V2431)) (and (cons? (tl V2431)) (= () (tl (tl V2431)))))) (cons (reverse V2432) (tl V2431))) ((and (cons? V2431) (and (= := (hd V2431)) (and (cons? (tl V2431)) (and (cons? (tl (tl V2431))) (and (= where (hd (tl (tl V2431)))) (and (cons? (tl (tl (tl V2431)))) (= () (tl (tl (tl (tl V2431))))))))))) (cons (reverse V2432) (cons (cons where (cons (hd (tl (tl (tl V2431)))) (cons (hd (tl V2431)) ()))) ()))) ((= () V2431) (do (shen.semantic-completion-warning V2430 V2432) (shen.split_cc_rule V2430 (cons := (cons (shen.default_semantics (reverse V2432)) ())) V2432))) ((cons? V2431) (shen.split_cc_rule V2430 (tl V2431) (cons (hd V2431) V2432))) (true (shen.f_error shen.split_cc_rule))))
38
+ (defun shen.split_cc_rule (V2484 V2485 V2486) (cond ((and (cons? V2485) (and (= := (hd V2485)) (and (cons? (tl V2485)) (= () (tl (tl V2485)))))) (cons (reverse V2486) (tl V2485))) ((and (cons? V2485) (and (= := (hd V2485)) (and (cons? (tl V2485)) (and (cons? (tl (tl V2485))) (and (= where (hd (tl (tl V2485)))) (and (cons? (tl (tl (tl V2485)))) (= () (tl (tl (tl (tl V2485))))))))))) (cons (reverse V2486) (cons (cons where (cons (hd (tl (tl (tl V2485)))) (cons (hd (tl V2485)) ()))) ()))) ((= () V2485) (do (shen.semantic-completion-warning V2484 V2486) (shen.split_cc_rule V2484 (cons := (cons (shen.default_semantics (reverse V2486)) ())) V2486))) ((cons? V2485) (shen.split_cc_rule V2484 (tl V2485) (cons (hd V2485) V2486))) (true (shen.f_error shen.split_cc_rule))))
39
39
 
40
- (defun shen.semantic-completion-warning (V2441 V2442) (cond ((= true V2441) (do (shen.prhush "warning: " (stoutput)) (do (map (lambda X (shen.prhush (shen.app X " " shen.a) (stoutput))) (reverse V2442)) (shen.prhush "has no semantics.
40
+ (defun shen.semantic-completion-warning (V2495 V2496) (cond ((= true V2495) (do (shen.prhush "warning: " (stoutput)) (do (map (lambda X (shen.prhush (shen.app X " " shen.a) (stoutput))) (reverse V2496)) (shen.prhush "has no semantics.
41
41
  " (stoutput))))) (true shen.skip)))
42
42
 
43
- (defun shen.default_semantics (V2443) (cond ((= () V2443) ()) ((and (cons? V2443) (and (= () (tl V2443)) (shen.grammar_symbol? (hd V2443)))) (hd V2443)) ((and (cons? V2443) (shen.grammar_symbol? (hd V2443))) (cons append (cons (hd V2443) (cons (shen.default_semantics (tl V2443)) ())))) ((cons? V2443) (cons cons (cons (hd V2443) (cons (shen.default_semantics (tl V2443)) ())))) (true (shen.f_error shen.default_semantics))))
43
+ (defun shen.default_semantics (V2497) (cond ((= () V2497) ()) ((and (cons? V2497) (and (= () (tl V2497)) (shen.grammar_symbol? (hd V2497)))) (hd V2497)) ((and (cons? V2497) (shen.grammar_symbol? (hd V2497))) (cons append (cons (hd V2497) (cons (shen.default_semantics (tl V2497)) ())))) ((cons? V2497) (cons cons (cons (hd V2497) (cons (shen.default_semantics (tl V2497)) ())))) (true (shen.f_error shen.default_semantics))))
44
44
 
45
- (defun shen.grammar_symbol? (V2444) (and (symbol? V2444) (let Cs (shen.strip-pathname (explode V2444)) (and (= (hd Cs) "<") (= (hd (reverse Cs)) ">")))))
45
+ (defun shen.grammar_symbol? (V2498) (and (symbol? V2498) (let Cs (shen.strip-pathname (explode V2498)) (and (= (hd Cs) "<") (= (hd (reverse Cs)) ">")))))
46
46
 
47
- (defun shen.yacc_cases (V2445) (cond ((and (cons? V2445) (= () (tl V2445))) (hd V2445)) ((cons? V2445) (let P YaccParse (cons let (cons P (cons (hd V2445) (cons (cons if (cons (cons = (cons P (cons (cons fail ()) ()))) (cons (shen.yacc_cases (tl V2445)) (cons P ())))) ())))))) (true (shen.f_error shen.yacc_cases))))
47
+ (defun shen.yacc_cases (V2499) (cond ((and (cons? V2499) (= () (tl V2499))) (hd V2499)) ((cons? V2499) (let P YaccParse (cons let (cons P (cons (hd V2499) (cons (cons if (cons (cons = (cons P (cons (cons fail ()) ()))) (cons (shen.yacc_cases (tl V2499)) (cons P ())))) ())))))) (true (shen.f_error shen.yacc_cases))))
48
48
 
49
- (defun shen.cc_body (V2446) (cond ((and (cons? V2446) (and (cons? (tl V2446)) (= () (tl (tl V2446))))) (shen.syntax (hd V2446) Stream (hd (tl V2446)))) (true (shen.f_error shen.cc_body))))
49
+ (defun shen.cc_body (V2500) (cond ((and (cons? V2500) (and (cons? (tl V2500)) (= () (tl (tl V2500))))) (shen.syntax (hd V2500) Stream (hd (tl V2500)))) (true (shen.f_error shen.cc_body))))
50
50
 
51
- (defun shen.syntax (V2447 V2448 V2449) (cond ((and (= () V2447) (and (cons? V2449) (and (= where (hd V2449)) (and (cons? (tl V2449)) (and (cons? (tl (tl V2449))) (= () (tl (tl (tl V2449))))))))) (cons if (cons (shen.semantics (hd (tl V2449))) (cons (cons shen.pair (cons (cons hd (cons V2448 ())) (cons (shen.semantics (hd (tl (tl V2449)))) ()))) (cons (cons fail ()) ()))))) ((= () V2447) (cons shen.pair (cons (cons hd (cons V2448 ())) (cons (shen.semantics V2449) ())))) ((cons? V2447) (if (shen.grammar_symbol? (hd V2447)) (shen.recursive_descent V2447 V2448 V2449) (if (variable? (hd V2447)) (shen.variable-match V2447 V2448 V2449) (if (shen.jump_stream? (hd V2447)) (shen.jump_stream V2447 V2448 V2449) (if (shen.terminal? (hd V2447)) (shen.check_stream V2447 V2448 V2449) (if (cons? (hd V2447)) (shen.list-stream (shen.decons (hd V2447)) (tl V2447) V2448 V2449) (simple-error (shen.app (hd V2447) " is not legal syntax
51
+ (defun shen.syntax (V2501 V2502 V2503) (cond ((and (= () V2501) (and (cons? V2503) (and (= where (hd V2503)) (and (cons? (tl V2503)) (and (cons? (tl (tl V2503))) (= () (tl (tl (tl V2503))))))))) (cons if (cons (shen.semantics (hd (tl V2503))) (cons (cons shen.pair (cons (cons hd (cons V2502 ())) (cons (shen.semantics (hd (tl (tl V2503)))) ()))) (cons (cons fail ()) ()))))) ((= () V2501) (cons shen.pair (cons (cons hd (cons V2502 ())) (cons (shen.semantics V2503) ())))) ((cons? V2501) (if (shen.grammar_symbol? (hd V2501)) (shen.recursive_descent V2501 V2502 V2503) (if (variable? (hd V2501)) (shen.variable-match V2501 V2502 V2503) (if (shen.jump_stream? (hd V2501)) (shen.jump_stream V2501 V2502 V2503) (if (shen.terminal? (hd V2501)) (shen.check_stream V2501 V2502 V2503) (if (cons? (hd V2501)) (shen.list-stream (shen.decons (hd V2501)) (tl V2501) V2502 V2503) (simple-error (shen.app (hd V2501) " is not legal syntax
52
52
  " shen.a)))))))) (true (shen.f_error shen.syntax))))
53
53
 
54
- (defun shen.list-stream (V2450 V2451 V2452 V2453) (let Test (cons and (cons (cons cons? (cons (cons hd (cons V2452 ())) ())) (cons (cons cons? (cons (cons hd (cons (cons hd (cons V2452 ())) ())) ())) ()))) (let Placeholder (gensym shen.place) (let RunOn (shen.syntax V2451 (cons shen.pair (cons (cons tl (cons (cons hd (cons V2452 ())) ())) (cons (cons hd (cons (cons tl (cons V2452 ())) ())) ()))) V2453) (let Action (shen.insert-runon RunOn Placeholder (shen.syntax V2450 (cons shen.pair (cons (cons hd (cons (cons hd (cons V2452 ())) ())) (cons (cons hd (cons (cons tl (cons V2452 ())) ())) ()))) Placeholder)) (cons if (cons Test (cons Action (cons (cons fail ()) ())))))))))
54
+ (defun shen.list-stream (V2504 V2505 V2506 V2507) (let Test (cons and (cons (cons cons? (cons (cons hd (cons V2506 ())) ())) (cons (cons cons? (cons (cons hd (cons (cons hd (cons V2506 ())) ())) ())) ()))) (let Placeholder (gensym shen.place) (let RunOn (shen.syntax V2505 (cons shen.pair (cons (cons tl (cons (cons hd (cons V2506 ())) ())) (cons (cons hd (cons (cons tl (cons V2506 ())) ())) ()))) V2507) (let Action (shen.insert-runon RunOn Placeholder (shen.syntax V2504 (cons shen.pair (cons (cons hd (cons (cons hd (cons V2506 ())) ())) (cons (cons hd (cons (cons tl (cons V2506 ())) ())) ()))) Placeholder)) (cons if (cons Test (cons Action (cons (cons fail ()) ())))))))))
55
55
 
56
- (defun shen.decons (V2454) (cond ((and (cons? V2454) (and (= cons (hd V2454)) (and (cons? (tl V2454)) (and (cons? (tl (tl V2454))) (and (= () (hd (tl (tl V2454)))) (= () (tl (tl (tl V2454))))))))) (cons (hd (tl V2454)) ())) ((and (cons? V2454) (and (= cons (hd V2454)) (and (cons? (tl V2454)) (and (cons? (tl (tl V2454))) (= () (tl (tl (tl V2454)))))))) (cons (hd (tl V2454)) (shen.decons (hd (tl (tl V2454)))))) (true V2454)))
56
+ (defun shen.decons (V2508) (cond ((and (cons? V2508) (and (= cons (hd V2508)) (and (cons? (tl V2508)) (and (cons? (tl (tl V2508))) (and (= () (hd (tl (tl V2508)))) (= () (tl (tl (tl V2508))))))))) (cons (hd (tl V2508)) ())) ((and (cons? V2508) (and (= cons (hd V2508)) (and (cons? (tl V2508)) (and (cons? (tl (tl V2508))) (= () (tl (tl (tl V2508)))))))) (cons (hd (tl V2508)) (shen.decons (hd (tl (tl V2508)))))) (true V2508)))
57
57
 
58
- (defun shen.insert-runon (V2466 V2467 V2468) (cond ((and (cons? V2468) (and (= shen.pair (hd V2468)) (and (cons? (tl V2468)) (and (cons? (tl (tl V2468))) (and (= () (tl (tl (tl V2468)))) (= (hd (tl (tl V2468))) V2467)))))) V2466) ((cons? V2468) (map (lambda Z (shen.insert-runon V2466 V2467 Z)) V2468)) (true V2468)))
58
+ (defun shen.insert-runon (V2520 V2521 V2522) (cond ((and (cons? V2522) (and (= shen.pair (hd V2522)) (and (cons? (tl V2522)) (and (cons? (tl (tl V2522))) (and (= () (tl (tl (tl V2522)))) (= (hd (tl (tl V2522))) V2521)))))) V2520) ((cons? V2522) (map (lambda Z (shen.insert-runon V2520 V2521 Z)) V2522)) (true V2522)))
59
59
 
60
- (defun shen.strip-pathname (V2473) (cond ((not (element? "." V2473)) V2473) ((cons? V2473) (shen.strip-pathname (tl V2473))) (true (shen.f_error shen.strip-pathname))))
60
+ (defun shen.strip-pathname (V2527) (cond ((not (element? "." V2527)) V2527) ((cons? V2527) (shen.strip-pathname (tl V2527))) (true (shen.f_error shen.strip-pathname))))
61
61
 
62
- (defun shen.recursive_descent (V2474 V2475 V2476) (cond ((cons? V2474) (let Test (cons (hd V2474) (cons V2475 ())) (let Action (shen.syntax (tl V2474) (concat Parse_ (hd V2474)) V2476) (let Else (cons fail ()) (cons let (cons (concat Parse_ (hd V2474)) (cons Test (cons (cons if (cons (cons not (cons (cons = (cons (cons fail ()) (cons (concat Parse_ (hd V2474)) ()))) ())) (cons Action (cons Else ())))) ())))))))) (true (shen.f_error shen.recursive_descent))))
62
+ (defun shen.recursive_descent (V2528 V2529 V2530) (cond ((cons? V2528) (let Test (cons (hd V2528) (cons V2529 ())) (let Action (shen.syntax (tl V2528) (concat Parse_ (hd V2528)) V2530) (let Else (cons fail ()) (cons let (cons (concat Parse_ (hd V2528)) (cons Test (cons (cons if (cons (cons not (cons (cons = (cons (cons fail ()) (cons (concat Parse_ (hd V2528)) ()))) ())) (cons Action (cons Else ())))) ())))))))) (true (shen.f_error shen.recursive_descent))))
63
63
 
64
- (defun shen.variable-match (V2477 V2478 V2479) (cond ((cons? V2477) (let Test (cons cons? (cons (cons hd (cons V2478 ())) ())) (let Action (cons let (cons (concat Parse_ (hd V2477)) (cons (cons hd (cons (cons hd (cons V2478 ())) ())) (cons (shen.syntax (tl V2477) (cons shen.pair (cons (cons tl (cons (cons hd (cons V2478 ())) ())) (cons (cons shen.hdtl (cons V2478 ())) ()))) V2479) ())))) (let Else (cons fail ()) (cons if (cons Test (cons Action (cons Else ())))))))) (true (shen.f_error shen.variable-match))))
64
+ (defun shen.variable-match (V2531 V2532 V2533) (cond ((cons? V2531) (let Test (cons cons? (cons (cons hd (cons V2532 ())) ())) (let Action (cons let (cons (concat Parse_ (hd V2531)) (cons (cons hd (cons (cons hd (cons V2532 ())) ())) (cons (shen.syntax (tl V2531) (cons shen.pair (cons (cons tl (cons (cons hd (cons V2532 ())) ())) (cons (cons shen.hdtl (cons V2532 ())) ()))) V2533) ())))) (let Else (cons fail ()) (cons if (cons Test (cons Action (cons Else ())))))))) (true (shen.f_error shen.variable-match))))
65
65
 
66
- (defun shen.terminal? (V2488) (cond ((cons? V2488) false) ((variable? V2488) false) (true true)))
66
+ (defun shen.terminal? (V2542) (cond ((cons? V2542) false) ((variable? V2542) false) (true true)))
67
67
 
68
- (defun shen.jump_stream? (V2493) (cond ((= V2493 _) true) (true false)))
68
+ (defun shen.jump_stream? (V2547) (cond ((= V2547 _) true) (true false)))
69
69
 
70
- (defun shen.check_stream (V2494 V2495 V2496) (cond ((cons? V2494) (let Test (cons and (cons (cons cons? (cons (cons hd (cons V2495 ())) ())) (cons (cons = (cons (hd V2494) (cons (cons hd (cons (cons hd (cons V2495 ())) ())) ()))) ()))) (let Action (shen.syntax (tl V2494) (cons shen.pair (cons (cons tl (cons (cons hd (cons V2495 ())) ())) (cons (cons shen.hdtl (cons V2495 ())) ()))) V2496) (let Else (cons fail ()) (cons if (cons Test (cons Action (cons Else ())))))))) (true (shen.f_error shen.check_stream))))
70
+ (defun shen.check_stream (V2548 V2549 V2550) (cond ((cons? V2548) (let Test (cons and (cons (cons cons? (cons (cons hd (cons V2549 ())) ())) (cons (cons = (cons (hd V2548) (cons (cons hd (cons (cons hd (cons V2549 ())) ())) ()))) ()))) (let Action (shen.syntax (tl V2548) (cons shen.pair (cons (cons tl (cons (cons hd (cons V2549 ())) ())) (cons (cons shen.hdtl (cons V2549 ())) ()))) V2550) (let Else (cons fail ()) (cons if (cons Test (cons Action (cons Else ())))))))) (true (shen.f_error shen.check_stream))))
71
71
 
72
- (defun shen.jump_stream (V2497 V2498 V2499) (cond ((cons? V2497) (let Test (cons cons? (cons (cons hd (cons V2498 ())) ())) (let Action (shen.syntax (tl V2497) (cons shen.pair (cons (cons tl (cons (cons hd (cons V2498 ())) ())) (cons (cons shen.hdtl (cons V2498 ())) ()))) V2499) (let Else (cons fail ()) (cons if (cons Test (cons Action (cons Else ())))))))) (true (shen.f_error shen.jump_stream))))
72
+ (defun shen.jump_stream (V2551 V2552 V2553) (cond ((cons? V2551) (let Test (cons cons? (cons (cons hd (cons V2552 ())) ())) (let Action (shen.syntax (tl V2551) (cons shen.pair (cons (cons tl (cons (cons hd (cons V2552 ())) ())) (cons (cons shen.hdtl (cons V2552 ())) ()))) V2553) (let Else (cons fail ()) (cons if (cons Test (cons Action (cons Else ())))))))) (true (shen.f_error shen.jump_stream))))
73
73
 
74
- (defun shen.semantics (V2500) (cond ((= () V2500) ()) ((shen.grammar_symbol? V2500) (cons shen.hdtl (cons (concat Parse_ V2500) ()))) ((variable? V2500) (concat Parse_ V2500)) ((cons? V2500) (map shen.semantics V2500)) (true V2500)))
74
+ (defun shen.semantics (V2554) (cond ((= () V2554) ()) ((shen.grammar_symbol? V2554) (cons shen.hdtl (cons (concat Parse_ V2554) ()))) ((variable? V2554) (concat Parse_ V2554)) ((cons? V2554) (map (lambda V2469 (shen.semantics V2469)) V2554)) (true V2554)))
75
75
 
76
- (defun shen.snd-or-fail (V2507) (cond ((and (cons? V2507) (and (cons? (tl V2507)) (= () (tl (tl V2507))))) (hd (tl V2507))) (true (fail))))
76
+ (defun shen.snd-or-fail (V2561) (cond ((and (cons? V2561) (and (cons? (tl V2561)) (= () (tl (tl V2561))))) (hd (tl V2561))) (true (fail))))
77
77
 
78
- (defun fail () shen.fail!)(defun shen.pair (V2508 V2509) (cons V2508 (cons V2509 ())))
78
+ (defun fail () shen.fail!)(defun shen.pair (V2562 V2563) (cons V2562 (cons V2563 ())))
79
79
 
80
- (defun shen.hdtl (V2510) (hd (tl V2510)))
80
+ (defun shen.hdtl (V2564) (hd (tl V2564)))
81
81
 
82
- (defun shen.<!> (V2517) (cond ((and (cons? V2517) (and (cons? (tl V2517)) (= () (tl (tl V2517))))) (cons () (cons (hd V2517) ()))) (true (fail))))
82
+ (defun shen.<!> (V2571) (cond ((and (cons? V2571) (and (cons? (tl V2571)) (= () (tl (tl V2571))))) (cons () (cons (hd V2571) ()))) (true (fail))))
83
83
 
84
- (defun <e> (V2522) (cond ((and (cons? V2522) (and (cons? (tl V2522)) (= () (tl (tl V2522))))) (cons (hd V2522) (cons () ()))) (true (shen.f_error <e>))))
84
+ (defun <e> (V2576) (cond ((and (cons? V2576) (and (cons? (tl V2576)) (= () (tl (tl V2576))))) (cons (hd V2576) (cons () ()))) (true (shen.f_error <e>))))
85
85
 
86
86
 
87
87