From 8b5dcd2aca1131f54617f2b96ea967664a501372 Mon Sep 17 00:00:00 2001 From: tiancaiamao Date: Wed, 23 Oct 2019 00:17:17 +0800 Subject: [PATCH] *: include the generated go files, update Makefile and README etc --- Makefile | 6 +- README.md | 77 +- ROADMAP | 3 +- cmd/shen-vm/main.go | 99 + cmd/shen/core.go | 7746 ++++++++++++++++++++++++++ cmd/shen/declarations.go | 2050 +++++++ cmd/shen/dict.go | 430 ++ cmd/shen/load.go | 497 ++ cmd/shen/macros.go | 2993 ++++++++++ cmd/shen/main.go | 78 +- cmd/shen/prolog.go | 10803 +++++++++++++++++++++++++++++++++++++ cmd/shen/reader.go | 5339 ++++++++++++++++++ cmd/shen/sequent.go | 3286 +++++++++++ cmd/shen/star.go | 9636 +++++++++++++++++++++++++++++++++ cmd/shen/stub.go | 26 + cmd/shen/sys.go | 3625 +++++++++++++ cmd/shen/toplevel.go | 1642 ++++++ cmd/shen/track.go | 905 ++++ cmd/shen/types.go | 2624 +++++++++ cmd/shen/writer.go | 1697 ++++++ cmd/shen/yacc.go | 2030 +++++++ kl/evaluator.go | 4 +- 22 files changed, 55442 insertions(+), 154 deletions(-) create mode 100644 cmd/shen-vm/main.go create mode 100644 cmd/shen/core.go create mode 100644 cmd/shen/declarations.go create mode 100644 cmd/shen/dict.go create mode 100644 cmd/shen/load.go create mode 100644 cmd/shen/macros.go create mode 100644 cmd/shen/prolog.go create mode 100644 cmd/shen/reader.go create mode 100644 cmd/shen/sequent.go create mode 100644 cmd/shen/star.go create mode 100644 cmd/shen/stub.go create mode 100644 cmd/shen/sys.go create mode 100644 cmd/shen/toplevel.go create mode 100644 cmd/shen/track.go create mode 100644 cmd/shen/types.go create mode 100644 cmd/shen/writer.go create mode 100644 cmd/shen/yacc.go diff --git a/Makefile b/Makefile index 2590032..a3863ee 100644 --- a/Makefile +++ b/Makefile @@ -11,8 +11,12 @@ esc: ${GOPATH}/bin/esc kl: go install github.com/tiancaiamao/shen-go/cmd/kl +codegen/codegen.so: + cd codegen; + go build -buildmode=plugin + shen: - go build -o shen cmd/shen/main.go + go build -o shen github.com/tiancaiamao/shen-go/cmd/shen docker: docker build -t shen-go . diff --git a/README.md b/README.md index f04e8f7..3f04c8f 100644 --- a/README.md +++ b/README.md @@ -36,81 +36,6 @@ cd ShenOSKernel-21.0/tests (load "README.shen") (load "tests.shen") ``` - -## Native Calls - -Native call is implemented through Go plugin. - -First, write a plugin Go file like: - -```Go -package main - -import ( - "github.com/tiancaiamao/shen-go/runtime" -) - -func hello(args ...runtime.Obj) runtime.Obj { - return runtime.MakeString("hello " + runtime.ObjString(args[0])) -} - -func Main() { - runtime.RegistNativeCall("hello", 1, hello) -} -``` - -Compile it to a plugin file: - -``` -go build -o test.so -buildmode=plugin -``` - -Run in shen-go repl: - -``` -(load-plugin "test.so") -(native "hello" "world") -``` - -The `native` keyword tells the compiler to use the correct calling convention, the first argument is the function name, which you regist in the Go plugin file using `runtime.RegistNativeCall`. - -Notice that native call is not curry function, If you want to partial apply them, you have to wrap it: - -``` -(defun hello (Str) (native "hello" Str)) -``` - -## Bootstrap from scratch - -Run shen repl, then - -``` -(load "compiler/bootstrap.shen") -``` - -This would compile all necessary shen files into bytecode. - -Move the `.bc` files to bytecode directory - -``` -mv ShenOSKernel-21.0/sources/*.bc bytecode/ -mv compiler/*.bc bytecode/ -``` - -And try it with - -``` -./shen -boot=. -``` - -If everything is ok, you can embedded those bytecode files into `asset.go` - -``` -make generate -``` - -And make shen again to get the new binary. - ## Learn Shen * [Official website of Shen](http://shenlanguage.org/) * [The Shen OS Kernel Manual](http://shenlanguage.org/learn-shen/index.html) @@ -121,4 +46,4 @@ And make shen again to get the new binary. ## License - Shen, Copyright © 2010-2015 Mark Tarver - [License](http://www.shenlanguage.org/license.pdf). -- shen-go, Copyright © 2017-2018 Arthur Mao under [BSD 3-Clause License](http://opensource.org/licenses/BSD-3-Clause). +- shen-go, Copyright © 2017-2019 Arthur Mao under [BSD 3-Clause License](http://opensource.org/licenses/BSD-3-Clause). diff --git a/ROADMAP b/ROADMAP index 8688107..8a5cb42 100644 --- a/ROADMAP +++ b/ROADMAP @@ -16,4 +16,5 @@ Provide some basic packages - [x] kl to bytecode compiler, writen in shen - [x] Abstract machine, used to execute the generated bytecode, written in Go - [x] Wrap Go packages to be used by shen -- [x] Shen source code from https://github.com/Shen-Language/shen-sources \ No newline at end of file +- [x] Shen source code from https://github.com/Shen-Language/shen-sources +- [x] Compile shen code to golang \ No newline at end of file diff --git a/cmd/shen-vm/main.go b/cmd/shen-vm/main.go new file mode 100644 index 0000000..3d9aa20 --- /dev/null +++ b/cmd/shen-vm/main.go @@ -0,0 +1,99 @@ +package main + +import ( + "flag" + "fmt" + "io" + "net/http" + _ "net/http/pprof" + "os" + "path" + + "github.com/tiancaiamao/shen-go/runtime" +) + +var pprof bool +var boot string +var kl bool + +func init() { + flag.BoolVar(&kl, "kl", false, "run kl") + flag.BoolVar(&pprof, "pprof", false, "enable pprof") + flag.StringVar(&boot, "boot", "", "use bootstrap file for testing") +} + +func main() { + flag.Parse() + + if pprof { + go http.ListenAndServe(":8080", nil) + } + runtime.Boot = boot + runtime.RegistNativeCall("primitive.load-file", 1, loadFile) + + m := runtime.NewVM() + + if kl { + runtime.BootstrapMin() + r := runtime.NewSexpReader(os.Stdin) + for i := 0; ; i++ { + fmt.Printf("%d #> ", i) + sexp, err := r.Read() + if err != nil { + fmt.Println("read error:", err) + break + } + + // var a vm.Assember + // a.FromSexp(sexp) + // code := a.Comiple() + // res := m.Eval(code) + // fmt.Println(kl.ObjString(res)) + + res := m.Eval(sexp) + fmt.Println(runtime.ObjString(res)) + } + } else { + runtime.BootstrapShen() + res := m.Eval(runtime.Cons(runtime.MakeSymbol("shen.shen"), runtime.Nil)) + fmt.Println(runtime.ObjString(res)) + } + return +} + +func loadFile(args ...runtime.Obj) runtime.Obj { + file := runtime.GetString(args[0]) + var filePath string + if _, err := os.Stat(file); err == nil { + filePath = file + } else { + filePath = path.Join(runtime.PackagePath(), file) + if _, err := os.Stat(filePath); err != nil { + return runtime.MakeError(err.Error()) + } + } + + f, err := os.Open(filePath) + if err != nil { + return runtime.MakeError(err.Error()) + } + defer f.Close() + + r := runtime.NewSexpReader(f) + for { + exp, err := r.Read() + if err != nil { + if err != io.EOF { + return runtime.MakeError(err.Error()) + } + break + } + + res := runtime.Eval(exp) + + if runtime.IsError(res) { + return res + } + } + return args[0] +} diff --git a/cmd/shen/core.go b/cmd/shen/core.go new file mode 100644 index 0000000..c04d207 --- /dev/null +++ b/cmd/shen/core.go @@ -0,0 +1,7746 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__shen_4shen_1_6kl Obj // shen.shen->kl +var __defun__shen_4shen_1syntax_1error Obj // shen.shen-syntax-error +var __defun__shen_4_5define_6 Obj // shen. +var __defun__shen_4_5name_6 Obj // shen. +var __defun__shen_4sysfunc_2 Obj // shen.sysfunc? +var __defun__shen_4_5signature_6 Obj // shen. +var __defun__shen_4curry_1type Obj // shen.curry-type +var __defun__shen_4_5signature_1help_6 Obj // shen. +var __defun__shen_4_5rules_6 Obj // shen. +var __defun__shen_4_5rule_6 Obj // shen. +var __defun__shen_4fail__if Obj // shen.fail_if +var __defun__shen_4succeeds_2 Obj // shen.succeeds? +var __defun__shen_4_5patterns_6 Obj // shen. +var __defun__shen_4_5pattern_6 Obj // shen. +var __defun__shen_4constructor_1error Obj // shen.constructor-error +var __defun__shen_4_5simple__pattern_6 Obj // shen. +var __defun__shen_4_5pattern1_6 Obj // shen. +var __defun__shen_4_5pattern2_6 Obj // shen. +var __defun__shen_4_5action_6 Obj // shen. +var __defun__shen_4_5guard_6 Obj // shen. +var __defun__shen_4compile__to__machine__code Obj // shen.compile_to_machine_code +var __defun__shen_4record_1source Obj // shen.record-source +var __defun__shen_4compile__to__lambda_7 Obj // shen.compile_to_lambda+ +var __defun__shen_4update_1symbol_1table Obj // shen.update-symbol-table +var __defun__shen_4free__variable__check Obj // shen.free_variable_check +var __defun__shen_4extract__vars Obj // shen.extract_vars +var __defun__shen_4extract__free__vars Obj // shen.extract_free_vars +var __defun__shen_4free__variable__warnings Obj // shen.free_variable_warnings +var __defun__shen_4list__variables Obj // shen.list_variables +var __defun__shen_4strip_1protect Obj // shen.strip-protect +var __defun__shen_4linearise Obj // shen.linearise +var __defun__shen_4flatten Obj // shen.flatten +var __defun__shen_4linearise__help Obj // shen.linearise_help +var __defun__shen_4linearise__X Obj // shen.linearise_X +var __defun__shen_4aritycheck Obj // shen.aritycheck +var __defun__shen_4aritycheck_1name Obj // shen.aritycheck-name +var __defun__shen_4aritycheck_1action Obj // shen.aritycheck-action +var __defun__shen_4aah Obj // shen.aah +var __defun__shen_4abstract__rule Obj // shen.abstract_rule +var __defun__shen_4abstraction__build Obj // shen.abstraction_build +var __defun__shen_4parameters Obj // shen.parameters +var __defun__shen_4application__build Obj // shen.application_build +var __defun__shen_4compile__to__kl Obj // shen.compile_to_kl +var __defun__shen_4get_1type Obj // shen.get-type +var __defun__shen_4typextable Obj // shen.typextable +var __defun__shen_4assign_1types Obj // shen.assign-types +var __defun__shen_4atom_1type Obj // shen.atom-type +var __defun__shen_4store_1arity Obj // shen.store-arity +var __defun__shen_4reduce Obj // shen.reduce +var __defun__shen_4reduce__help Obj // shen.reduce_help +var __defun__shen_4_7string_2 Obj // shen.+string? +var __defun__shen_4_7vector_2 Obj // shen.+vector? +var __defun__shen_4ebr Obj // shen.ebr +var __defun__shen_4add__test Obj // shen.add_test +var __defun__shen_4cond_1expression Obj // shen.cond-expression +var __defun__shen_4cond_1form Obj // shen.cond-form +var __defun__shen_4encode_1choices Obj // shen.encode-choices +var __defun__shen_4case_1form Obj // shen.case-form +var __defun__shen_4embed_1and Obj // shen.embed-and +var __defun__shen_4err_1condition Obj // shen.err-condition +var __defun__shen_4sys_1error Obj // shen.sys-error + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg292142 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg292142) +return +}, 0)) +__defun__shen_4shen_1_6kl = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1384 := __args[0] +_ = V1384 +V1385 := __args[1] +_ = V1385 +reg292143 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4_5define_6, X) +return +}, 1) +reg292145 := PrimCons(V1384, V1385) +reg292146 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4shen_1syntax_1error, V1384, X) +return +}, 1) +__ctx.TailApply(__defun__compile, reg292143, reg292145, reg292146) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.shen->kl", value: __defun__shen_4shen_1_6kl}) + +__defun__shen_4shen_1syntax_1error = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1392 := __args[0] +_ = V1392 +V1393 := __args[1] +_ = V1393 +reg292149 := PrimIsPair(V1393) +if reg292149 == True { +reg292150 := MakeString("syntax error in ") +reg292151 := MakeString(" here:\n\n ") +reg292152 := MakeNumber(50) +reg292153 := PrimHead(V1393) +reg292154 := __e.Call(__defun__shen_4next_150, reg292152, reg292153) +reg292155 := MakeString("\n") +reg292156 := MakeSymbol("shen.a") +reg292157 := __e.Call(__defun__shen_4app, reg292154, reg292155, reg292156) +reg292158 := PrimStringConcat(reg292151, reg292157) +reg292159 := MakeSymbol("shen.a") +reg292160 := __e.Call(__defun__shen_4app, V1392, reg292158, reg292159) +reg292161 := PrimStringConcat(reg292150, reg292160) +reg292162 := PrimSimpleError(reg292161) +__ctx.Return(reg292162) +return +} else { +reg292163 := MakeString("syntax error in ") +reg292164 := MakeString("\n") +reg292165 := MakeSymbol("shen.a") +reg292166 := __e.Call(__defun__shen_4app, V1392, reg292164, reg292165) +reg292167 := PrimStringConcat(reg292163, reg292166) +reg292168 := PrimSimpleError(reg292167) +__ctx.Return(reg292168) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.shen-syntax-error", value: __defun__shen_4shen_1syntax_1error}) + +__defun__shen_4_5define_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1395 := __args[0] +_ = V1395 +reg292169 := __e.Call(__defun__shen_4_5name_6, V1395) +Parse__shen_4_5name_6 := reg292169 +_ = Parse__shen_4_5name_6 +reg292170 := __e.Call(__defun__fail) +reg292171 := PrimEqual(reg292170, Parse__shen_4_5name_6) +reg292172 := PrimNot(reg292171) +var reg292191 Obj +if reg292172 == True { +reg292173 := __e.Call(__defun__shen_4_5signature_6, Parse__shen_4_5name_6) +Parse__shen_4_5signature_6 := reg292173 +_ = Parse__shen_4_5signature_6 +reg292174 := __e.Call(__defun__fail) +reg292175 := PrimEqual(reg292174, Parse__shen_4_5signature_6) +reg292176 := PrimNot(reg292175) +var reg292189 Obj +if reg292176 == True { +reg292177 := __e.Call(__defun__shen_4_5rules_6, Parse__shen_4_5signature_6) +Parse__shen_4_5rules_6 := reg292177 +_ = Parse__shen_4_5rules_6 +reg292178 := __e.Call(__defun__fail) +reg292179 := PrimEqual(reg292178, Parse__shen_4_5rules_6) +reg292180 := PrimNot(reg292179) +var reg292187 Obj +if reg292180 == True { +reg292181 := PrimHead(Parse__shen_4_5rules_6) +reg292182 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5name_6) +reg292183 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5rules_6) +reg292184 := __e.Call(__defun__shen_4compile__to__machine__code, reg292182, reg292183) +reg292185 := __e.Call(__defun__shen_4pair, reg292181, reg292184) +reg292187 = reg292185 +} else { +reg292186 := __e.Call(__defun__fail) +reg292187 = reg292186 +} +reg292189 = reg292187 +} else { +reg292188 := __e.Call(__defun__fail) +reg292189 = reg292188 +} +reg292191 = reg292189 +} else { +reg292190 := __e.Call(__defun__fail) +reg292191 = reg292190 +} +YaccParse := reg292191 +_ = YaccParse +reg292192 := __e.Call(__defun__fail) +reg292193 := PrimEqual(YaccParse, reg292192) +if reg292193 == True { +reg292194 := __e.Call(__defun__shen_4_5name_6, V1395) +Parse__shen_4_5name_6 := reg292194 +_ = Parse__shen_4_5name_6 +reg292195 := __e.Call(__defun__fail) +reg292196 := PrimEqual(reg292195, Parse__shen_4_5name_6) +reg292197 := PrimNot(reg292196) +if reg292197 == True { +reg292198 := __e.Call(__defun__shen_4_5rules_6, Parse__shen_4_5name_6) +Parse__shen_4_5rules_6 := reg292198 +_ = Parse__shen_4_5rules_6 +reg292199 := __e.Call(__defun__fail) +reg292200 := PrimEqual(reg292199, Parse__shen_4_5rules_6) +reg292201 := PrimNot(reg292200) +if reg292201 == True { +reg292202 := PrimHead(Parse__shen_4_5rules_6) +reg292203 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5name_6) +reg292204 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5rules_6) +reg292205 := __e.Call(__defun__shen_4compile__to__machine__code, reg292203, reg292204) +__ctx.TailApply(__defun__shen_4pair, reg292202, reg292205) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5define_6}) + +__defun__shen_4_5name_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1397 := __args[0] +_ = V1397 +reg292209 := PrimHead(V1397) +reg292210 := PrimIsPair(reg292209) +if reg292210 == True { +reg292211 := PrimHead(V1397) +reg292212 := PrimHead(reg292211) +Parse__X := reg292212 +_ = Parse__X +reg292213 := PrimHead(V1397) +reg292214 := PrimTail(reg292213) +reg292215 := __e.Call(__defun__shen_4hdtl, V1397) +reg292216 := __e.Call(__defun__shen_4pair, reg292214, reg292215) +reg292217 := PrimHead(reg292216) +reg292218 := PrimIsSymbol(Parse__X) +var reg292225 Obj +if reg292218 == True { +reg292219 := __e.Call(__defun__shen_4sysfunc_2, Parse__X) +reg292220 := PrimNot(reg292219) +var reg292223 Obj +if reg292220 == True { +reg292221 := True; +reg292223 = reg292221 +} else { +reg292222 := False; +reg292223 = reg292222 +} +reg292225 = reg292223 +} else { +reg292224 := False; +reg292225 = reg292224 +} +var reg292230 Obj +if reg292225 == True { +reg292230 = Parse__X +} else { +reg292226 := MakeString(" is not a legitimate function name.\n") +reg292227 := MakeSymbol("shen.a") +reg292228 := __e.Call(__defun__shen_4app, Parse__X, reg292226, reg292227) +reg292229 := PrimSimpleError(reg292228) +reg292230 = reg292229 +} +__ctx.TailApply(__defun__shen_4pair, reg292217, reg292230) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5name_6}) + +__defun__shen_4sysfunc_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1399 := __args[0] +_ = V1399 +reg292233 := MakeString("shen") +reg292234 := PrimIntern(reg292233) +reg292235 := MakeSymbol("shen.external-symbols") +reg292236 := MakeSymbol("*property-vector*") +reg292237 := PrimValue(reg292236) +reg292238 := __e.Call(__defun__get, reg292234, reg292235, reg292237) +__ctx.TailApply(__defun__element_2, V1399, reg292238) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.sysfunc?", value: __defun__shen_4sysfunc_2}) + +__defun__shen_4_5signature_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1401 := __args[0] +_ = V1401 +reg292240 := PrimHead(V1401) +reg292241 := PrimIsPair(reg292240) +var reg292250 Obj +if reg292241 == True { +reg292242 := MakeSymbol("{") +reg292243 := PrimHead(V1401) +reg292244 := PrimHead(reg292243) +reg292245 := PrimEqual(reg292242, reg292244) +var reg292248 Obj +if reg292245 == True { +reg292246 := True; +reg292248 = reg292246 +} else { +reg292247 := False; +reg292248 = reg292247 +} +reg292250 = reg292248 +} else { +reg292249 := False; +reg292250 = reg292249 +} +if reg292250 == True { +reg292251 := PrimHead(V1401) +reg292252 := PrimTail(reg292251) +reg292253 := __e.Call(__defun__shen_4hdtl, V1401) +reg292254 := __e.Call(__defun__shen_4pair, reg292252, reg292253) +reg292255 := __e.Call(__defun__shen_4_5signature_1help_6, reg292254) +Parse__shen_4_5signature_1help_6 := reg292255 +_ = Parse__shen_4_5signature_1help_6 +reg292256 := __e.Call(__defun__fail) +reg292257 := PrimEqual(reg292256, Parse__shen_4_5signature_1help_6) +reg292258 := PrimNot(reg292257) +if reg292258 == True { +reg292259 := PrimHead(Parse__shen_4_5signature_1help_6) +reg292260 := PrimIsPair(reg292259) +var reg292269 Obj +if reg292260 == True { +reg292261 := MakeSymbol("}") +reg292262 := PrimHead(Parse__shen_4_5signature_1help_6) +reg292263 := PrimHead(reg292262) +reg292264 := PrimEqual(reg292261, reg292263) +var reg292267 Obj +if reg292264 == True { +reg292265 := True; +reg292267 = reg292265 +} else { +reg292266 := False; +reg292267 = reg292266 +} +reg292269 = reg292267 +} else { +reg292268 := False; +reg292269 = reg292268 +} +if reg292269 == True { +reg292270 := PrimHead(Parse__shen_4_5signature_1help_6) +reg292271 := PrimTail(reg292270) +reg292272 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5signature_1help_6) +reg292273 := __e.Call(__defun__shen_4pair, reg292271, reg292272) +reg292274 := PrimHead(reg292273) +reg292275 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5signature_1help_6) +reg292276 := __e.Call(__defun__shen_4curry_1type, reg292275) +reg292277 := __e.Call(__defun__shen_4demodulate, reg292276) +__ctx.TailApply(__defun__shen_4pair, reg292274, reg292277) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5signature_6}) + +__defun__shen_4curry_1type = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1403 := __args[0] +_ = V1403 +reg292282 := PrimIsPair(V1403) +var reg292326 Obj +if reg292282 == True { +reg292283 := PrimTail(V1403) +reg292284 := PrimIsPair(reg292283) +var reg292321 Obj +if reg292284 == True { +reg292285 := MakeSymbol("-->") +reg292286 := PrimTail(V1403) +reg292287 := PrimHead(reg292286) +reg292288 := PrimEqual(reg292285, reg292287) +var reg292316 Obj +if reg292288 == True { +reg292289 := PrimTail(V1403) +reg292290 := PrimTail(reg292289) +reg292291 := PrimIsPair(reg292290) +var reg292311 Obj +if reg292291 == True { +reg292292 := PrimTail(V1403) +reg292293 := PrimTail(reg292292) +reg292294 := PrimTail(reg292293) +reg292295 := PrimIsPair(reg292294) +var reg292306 Obj +if reg292295 == True { +reg292296 := MakeSymbol("-->") +reg292297 := PrimTail(V1403) +reg292298 := PrimTail(reg292297) +reg292299 := PrimTail(reg292298) +reg292300 := PrimHead(reg292299) +reg292301 := PrimEqual(reg292296, reg292300) +var reg292304 Obj +if reg292301 == True { +reg292302 := True; +reg292304 = reg292302 +} else { +reg292303 := False; +reg292304 = reg292303 +} +reg292306 = reg292304 +} else { +reg292305 := False; +reg292306 = reg292305 +} +var reg292309 Obj +if reg292306 == True { +reg292307 := True; +reg292309 = reg292307 +} else { +reg292308 := False; +reg292309 = reg292308 +} +reg292311 = reg292309 +} else { +reg292310 := False; +reg292311 = reg292310 +} +var reg292314 Obj +if reg292311 == True { +reg292312 := True; +reg292314 = reg292312 +} else { +reg292313 := False; +reg292314 = reg292313 +} +reg292316 = reg292314 +} else { +reg292315 := False; +reg292316 = reg292315 +} +var reg292319 Obj +if reg292316 == True { +reg292317 := True; +reg292319 = reg292317 +} else { +reg292318 := False; +reg292319 = reg292318 +} +reg292321 = reg292319 +} else { +reg292320 := False; +reg292321 = reg292320 +} +var reg292324 Obj +if reg292321 == True { +reg292322 := True; +reg292324 = reg292322 +} else { +reg292323 := False; +reg292324 = reg292323 +} +reg292326 = reg292324 +} else { +reg292325 := False; +reg292326 = reg292325 +} +if reg292326 == True { +reg292327 := PrimHead(V1403) +reg292328 := MakeSymbol("-->") +reg292329 := PrimTail(V1403) +reg292330 := PrimTail(reg292329) +reg292331 := Nil; +reg292332 := PrimCons(reg292330, reg292331) +reg292333 := PrimCons(reg292328, reg292332) +reg292334 := PrimCons(reg292327, reg292333) +__ctx.TailApply(__defun__shen_4curry_1type, reg292334) +return +} else { +reg292336 := PrimIsPair(V1403) +var reg292380 Obj +if reg292336 == True { +reg292337 := PrimTail(V1403) +reg292338 := PrimIsPair(reg292337) +var reg292375 Obj +if reg292338 == True { +reg292339 := MakeSymbol("*") +reg292340 := PrimTail(V1403) +reg292341 := PrimHead(reg292340) +reg292342 := PrimEqual(reg292339, reg292341) +var reg292370 Obj +if reg292342 == True { +reg292343 := PrimTail(V1403) +reg292344 := PrimTail(reg292343) +reg292345 := PrimIsPair(reg292344) +var reg292365 Obj +if reg292345 == True { +reg292346 := PrimTail(V1403) +reg292347 := PrimTail(reg292346) +reg292348 := PrimTail(reg292347) +reg292349 := PrimIsPair(reg292348) +var reg292360 Obj +if reg292349 == True { +reg292350 := MakeSymbol("*") +reg292351 := PrimTail(V1403) +reg292352 := PrimTail(reg292351) +reg292353 := PrimTail(reg292352) +reg292354 := PrimHead(reg292353) +reg292355 := PrimEqual(reg292350, reg292354) +var reg292358 Obj +if reg292355 == True { +reg292356 := True; +reg292358 = reg292356 +} else { +reg292357 := False; +reg292358 = reg292357 +} +reg292360 = reg292358 +} else { +reg292359 := False; +reg292360 = reg292359 +} +var reg292363 Obj +if reg292360 == True { +reg292361 := True; +reg292363 = reg292361 +} else { +reg292362 := False; +reg292363 = reg292362 +} +reg292365 = reg292363 +} else { +reg292364 := False; +reg292365 = reg292364 +} +var reg292368 Obj +if reg292365 == True { +reg292366 := True; +reg292368 = reg292366 +} else { +reg292367 := False; +reg292368 = reg292367 +} +reg292370 = reg292368 +} else { +reg292369 := False; +reg292370 = reg292369 +} +var reg292373 Obj +if reg292370 == True { +reg292371 := True; +reg292373 = reg292371 +} else { +reg292372 := False; +reg292373 = reg292372 +} +reg292375 = reg292373 +} else { +reg292374 := False; +reg292375 = reg292374 +} +var reg292378 Obj +if reg292375 == True { +reg292376 := True; +reg292378 = reg292376 +} else { +reg292377 := False; +reg292378 = reg292377 +} +reg292380 = reg292378 +} else { +reg292379 := False; +reg292380 = reg292379 +} +if reg292380 == True { +reg292381 := PrimHead(V1403) +reg292382 := MakeSymbol("*") +reg292383 := PrimTail(V1403) +reg292384 := PrimTail(reg292383) +reg292385 := Nil; +reg292386 := PrimCons(reg292384, reg292385) +reg292387 := PrimCons(reg292382, reg292386) +reg292388 := PrimCons(reg292381, reg292387) +__ctx.TailApply(__defun__shen_4curry_1type, reg292388) +return +} else { +reg292390 := PrimIsPair(V1403) +if reg292390 == True { +reg292391 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4curry_1type, Z) +return +}, 1) +__ctx.TailApply(__defun__map, reg292391, V1403) +return +} else { +__ctx.Return(V1403) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.curry-type", value: __defun__shen_4curry_1type}) + +__defun__shen_4_5signature_1help_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1405 := __args[0] +_ = V1405 +reg292394 := PrimHead(V1405) +reg292395 := PrimIsPair(reg292394) +var reg292422 Obj +if reg292395 == True { +reg292396 := PrimHead(V1405) +reg292397 := PrimHead(reg292396) +Parse__X := reg292397 +_ = Parse__X +reg292398 := PrimHead(V1405) +reg292399 := PrimTail(reg292398) +reg292400 := __e.Call(__defun__shen_4hdtl, V1405) +reg292401 := __e.Call(__defun__shen_4pair, reg292399, reg292400) +reg292402 := __e.Call(__defun__shen_4_5signature_1help_6, reg292401) +Parse__shen_4_5signature_1help_6 := reg292402 +_ = Parse__shen_4_5signature_1help_6 +reg292403 := __e.Call(__defun__fail) +reg292404 := PrimEqual(reg292403, Parse__shen_4_5signature_1help_6) +reg292405 := PrimNot(reg292404) +var reg292420 Obj +if reg292405 == True { +reg292406 := MakeSymbol("{") +reg292407 := MakeSymbol("}") +reg292408 := Nil; +reg292409 := PrimCons(reg292407, reg292408) +reg292410 := PrimCons(reg292406, reg292409) +reg292411 := __e.Call(__defun__element_2, Parse__X, reg292410) +reg292412 := PrimNot(reg292411) +var reg292418 Obj +if reg292412 == True { +reg292413 := PrimHead(Parse__shen_4_5signature_1help_6) +reg292414 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5signature_1help_6) +reg292415 := PrimCons(Parse__X, reg292414) +reg292416 := __e.Call(__defun__shen_4pair, reg292413, reg292415) +reg292418 = reg292416 +} else { +reg292417 := __e.Call(__defun__fail) +reg292418 = reg292417 +} +reg292420 = reg292418 +} else { +reg292419 := __e.Call(__defun__fail) +reg292420 = reg292419 +} +reg292422 = reg292420 +} else { +reg292421 := __e.Call(__defun__fail) +reg292422 = reg292421 +} +YaccParse := reg292422 +_ = YaccParse +reg292423 := __e.Call(__defun__fail) +reg292424 := PrimEqual(YaccParse, reg292423) +if reg292424 == True { +reg292425 := __e.Call(__defun___5e_6, V1405) +Parse___5e_6 := reg292425 +_ = Parse___5e_6 +reg292426 := __e.Call(__defun__fail) +reg292427 := PrimEqual(reg292426, Parse___5e_6) +reg292428 := PrimNot(reg292427) +if reg292428 == True { +reg292429 := PrimHead(Parse___5e_6) +reg292430 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg292429, reg292430) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5signature_1help_6}) + +__defun__shen_4_5rules_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1407 := __args[0] +_ = V1407 +reg292433 := __e.Call(__defun__shen_4_5rule_6, V1407) +Parse__shen_4_5rule_6 := reg292433 +_ = Parse__shen_4_5rule_6 +reg292434 := __e.Call(__defun__fail) +reg292435 := PrimEqual(reg292434, Parse__shen_4_5rule_6) +reg292436 := PrimNot(reg292435) +var reg292450 Obj +if reg292436 == True { +reg292437 := __e.Call(__defun__shen_4_5rules_6, Parse__shen_4_5rule_6) +Parse__shen_4_5rules_6 := reg292437 +_ = Parse__shen_4_5rules_6 +reg292438 := __e.Call(__defun__fail) +reg292439 := PrimEqual(reg292438, Parse__shen_4_5rules_6) +reg292440 := PrimNot(reg292439) +var reg292448 Obj +if reg292440 == True { +reg292441 := PrimHead(Parse__shen_4_5rules_6) +reg292442 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5rule_6) +reg292443 := __e.Call(__defun__shen_4linearise, reg292442) +reg292444 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5rules_6) +reg292445 := PrimCons(reg292443, reg292444) +reg292446 := __e.Call(__defun__shen_4pair, reg292441, reg292445) +reg292448 = reg292446 +} else { +reg292447 := __e.Call(__defun__fail) +reg292448 = reg292447 +} +reg292450 = reg292448 +} else { +reg292449 := __e.Call(__defun__fail) +reg292450 = reg292449 +} +YaccParse := reg292450 +_ = YaccParse +reg292451 := __e.Call(__defun__fail) +reg292452 := PrimEqual(YaccParse, reg292451) +if reg292452 == True { +reg292453 := __e.Call(__defun__shen_4_5rule_6, V1407) +Parse__shen_4_5rule_6 := reg292453 +_ = Parse__shen_4_5rule_6 +reg292454 := __e.Call(__defun__fail) +reg292455 := PrimEqual(reg292454, Parse__shen_4_5rule_6) +reg292456 := PrimNot(reg292455) +if reg292456 == True { +reg292457 := PrimHead(Parse__shen_4_5rule_6) +reg292458 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5rule_6) +reg292459 := __e.Call(__defun__shen_4linearise, reg292458) +reg292460 := Nil; +reg292461 := PrimCons(reg292459, reg292460) +__ctx.TailApply(__defun__shen_4pair, reg292457, reg292461) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5rules_6}) + +__defun__shen_4_5rule_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1409 := __args[0] +_ = V1409 +reg292464 := __e.Call(__defun__shen_4_5patterns_6, V1409) +Parse__shen_4_5patterns_6 := reg292464 +_ = Parse__shen_4_5patterns_6 +reg292465 := __e.Call(__defun__fail) +reg292466 := PrimEqual(reg292465, Parse__shen_4_5patterns_6) +reg292467 := PrimNot(reg292466) +var reg292528 Obj +if reg292467 == True { +reg292468 := PrimHead(Parse__shen_4_5patterns_6) +reg292469 := PrimIsPair(reg292468) +var reg292478 Obj +if reg292469 == True { +reg292470 := MakeSymbol("->") +reg292471 := PrimHead(Parse__shen_4_5patterns_6) +reg292472 := PrimHead(reg292471) +reg292473 := PrimEqual(reg292470, reg292472) +var reg292476 Obj +if reg292473 == True { +reg292474 := True; +reg292476 = reg292474 +} else { +reg292475 := False; +reg292476 = reg292475 +} +reg292478 = reg292476 +} else { +reg292477 := False; +reg292478 = reg292477 +} +var reg292526 Obj +if reg292478 == True { +reg292479 := PrimHead(Parse__shen_4_5patterns_6) +reg292480 := PrimTail(reg292479) +reg292481 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5patterns_6) +reg292482 := __e.Call(__defun__shen_4pair, reg292480, reg292481) +reg292483 := __e.Call(__defun__shen_4_5action_6, reg292482) +Parse__shen_4_5action_6 := reg292483 +_ = Parse__shen_4_5action_6 +reg292484 := __e.Call(__defun__fail) +reg292485 := PrimEqual(reg292484, Parse__shen_4_5action_6) +reg292486 := PrimNot(reg292485) +var reg292524 Obj +if reg292486 == True { +reg292487 := PrimHead(Parse__shen_4_5action_6) +reg292488 := PrimIsPair(reg292487) +var reg292497 Obj +if reg292488 == True { +reg292489 := MakeSymbol("where") +reg292490 := PrimHead(Parse__shen_4_5action_6) +reg292491 := PrimHead(reg292490) +reg292492 := PrimEqual(reg292489, reg292491) +var reg292495 Obj +if reg292492 == True { +reg292493 := True; +reg292495 = reg292493 +} else { +reg292494 := False; +reg292495 = reg292494 +} +reg292497 = reg292495 +} else { +reg292496 := False; +reg292497 = reg292496 +} +var reg292522 Obj +if reg292497 == True { +reg292498 := PrimHead(Parse__shen_4_5action_6) +reg292499 := PrimTail(reg292498) +reg292500 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5action_6) +reg292501 := __e.Call(__defun__shen_4pair, reg292499, reg292500) +reg292502 := __e.Call(__defun__shen_4_5guard_6, reg292501) +Parse__shen_4_5guard_6 := reg292502 +_ = Parse__shen_4_5guard_6 +reg292503 := __e.Call(__defun__fail) +reg292504 := PrimEqual(reg292503, Parse__shen_4_5guard_6) +reg292505 := PrimNot(reg292504) +var reg292520 Obj +if reg292505 == True { +reg292506 := PrimHead(Parse__shen_4_5guard_6) +reg292507 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5patterns_6) +reg292508 := MakeSymbol("where") +reg292509 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5guard_6) +reg292510 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5action_6) +reg292511 := Nil; +reg292512 := PrimCons(reg292510, reg292511) +reg292513 := PrimCons(reg292509, reg292512) +reg292514 := PrimCons(reg292508, reg292513) +reg292515 := Nil; +reg292516 := PrimCons(reg292514, reg292515) +reg292517 := PrimCons(reg292507, reg292516) +reg292518 := __e.Call(__defun__shen_4pair, reg292506, reg292517) +reg292520 = reg292518 +} else { +reg292519 := __e.Call(__defun__fail) +reg292520 = reg292519 +} +reg292522 = reg292520 +} else { +reg292521 := __e.Call(__defun__fail) +reg292522 = reg292521 +} +reg292524 = reg292522 +} else { +reg292523 := __e.Call(__defun__fail) +reg292524 = reg292523 +} +reg292526 = reg292524 +} else { +reg292525 := __e.Call(__defun__fail) +reg292526 = reg292525 +} +reg292528 = reg292526 +} else { +reg292527 := __e.Call(__defun__fail) +reg292528 = reg292527 +} +YaccParse := reg292528 +_ = YaccParse +reg292529 := __e.Call(__defun__fail) +reg292530 := PrimEqual(YaccParse, reg292529) +if reg292530 == True { +reg292531 := __e.Call(__defun__shen_4_5patterns_6, V1409) +Parse__shen_4_5patterns_6 := reg292531 +_ = Parse__shen_4_5patterns_6 +reg292532 := __e.Call(__defun__fail) +reg292533 := PrimEqual(reg292532, Parse__shen_4_5patterns_6) +reg292534 := PrimNot(reg292533) +var reg292566 Obj +if reg292534 == True { +reg292535 := PrimHead(Parse__shen_4_5patterns_6) +reg292536 := PrimIsPair(reg292535) +var reg292545 Obj +if reg292536 == True { +reg292537 := MakeSymbol("->") +reg292538 := PrimHead(Parse__shen_4_5patterns_6) +reg292539 := PrimHead(reg292538) +reg292540 := PrimEqual(reg292537, reg292539) +var reg292543 Obj +if reg292540 == True { +reg292541 := True; +reg292543 = reg292541 +} else { +reg292542 := False; +reg292543 = reg292542 +} +reg292545 = reg292543 +} else { +reg292544 := False; +reg292545 = reg292544 +} +var reg292564 Obj +if reg292545 == True { +reg292546 := PrimHead(Parse__shen_4_5patterns_6) +reg292547 := PrimTail(reg292546) +reg292548 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5patterns_6) +reg292549 := __e.Call(__defun__shen_4pair, reg292547, reg292548) +reg292550 := __e.Call(__defun__shen_4_5action_6, reg292549) +Parse__shen_4_5action_6 := reg292550 +_ = Parse__shen_4_5action_6 +reg292551 := __e.Call(__defun__fail) +reg292552 := PrimEqual(reg292551, Parse__shen_4_5action_6) +reg292553 := PrimNot(reg292552) +var reg292562 Obj +if reg292553 == True { +reg292554 := PrimHead(Parse__shen_4_5action_6) +reg292555 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5patterns_6) +reg292556 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5action_6) +reg292557 := Nil; +reg292558 := PrimCons(reg292556, reg292557) +reg292559 := PrimCons(reg292555, reg292558) +reg292560 := __e.Call(__defun__shen_4pair, reg292554, reg292559) +reg292562 = reg292560 +} else { +reg292561 := __e.Call(__defun__fail) +reg292562 = reg292561 +} +reg292564 = reg292562 +} else { +reg292563 := __e.Call(__defun__fail) +reg292564 = reg292563 +} +reg292566 = reg292564 +} else { +reg292565 := __e.Call(__defun__fail) +reg292566 = reg292565 +} +YaccParse := reg292566 +_ = YaccParse +reg292567 := __e.Call(__defun__fail) +reg292568 := PrimEqual(YaccParse, reg292567) +if reg292568 == True { +reg292569 := __e.Call(__defun__shen_4_5patterns_6, V1409) +Parse__shen_4_5patterns_6 := reg292569 +_ = Parse__shen_4_5patterns_6 +reg292570 := __e.Call(__defun__fail) +reg292571 := PrimEqual(reg292570, Parse__shen_4_5patterns_6) +reg292572 := PrimNot(reg292571) +var reg292637 Obj +if reg292572 == True { +reg292573 := PrimHead(Parse__shen_4_5patterns_6) +reg292574 := PrimIsPair(reg292573) +var reg292583 Obj +if reg292574 == True { +reg292575 := MakeSymbol("<-") +reg292576 := PrimHead(Parse__shen_4_5patterns_6) +reg292577 := PrimHead(reg292576) +reg292578 := PrimEqual(reg292575, reg292577) +var reg292581 Obj +if reg292578 == True { +reg292579 := True; +reg292581 = reg292579 +} else { +reg292580 := False; +reg292581 = reg292580 +} +reg292583 = reg292581 +} else { +reg292582 := False; +reg292583 = reg292582 +} +var reg292635 Obj +if reg292583 == True { +reg292584 := PrimHead(Parse__shen_4_5patterns_6) +reg292585 := PrimTail(reg292584) +reg292586 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5patterns_6) +reg292587 := __e.Call(__defun__shen_4pair, reg292585, reg292586) +reg292588 := __e.Call(__defun__shen_4_5action_6, reg292587) +Parse__shen_4_5action_6 := reg292588 +_ = Parse__shen_4_5action_6 +reg292589 := __e.Call(__defun__fail) +reg292590 := PrimEqual(reg292589, Parse__shen_4_5action_6) +reg292591 := PrimNot(reg292590) +var reg292633 Obj +if reg292591 == True { +reg292592 := PrimHead(Parse__shen_4_5action_6) +reg292593 := PrimIsPair(reg292592) +var reg292602 Obj +if reg292593 == True { +reg292594 := MakeSymbol("where") +reg292595 := PrimHead(Parse__shen_4_5action_6) +reg292596 := PrimHead(reg292595) +reg292597 := PrimEqual(reg292594, reg292596) +var reg292600 Obj +if reg292597 == True { +reg292598 := True; +reg292600 = reg292598 +} else { +reg292599 := False; +reg292600 = reg292599 +} +reg292602 = reg292600 +} else { +reg292601 := False; +reg292602 = reg292601 +} +var reg292631 Obj +if reg292602 == True { +reg292603 := PrimHead(Parse__shen_4_5action_6) +reg292604 := PrimTail(reg292603) +reg292605 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5action_6) +reg292606 := __e.Call(__defun__shen_4pair, reg292604, reg292605) +reg292607 := __e.Call(__defun__shen_4_5guard_6, reg292606) +Parse__shen_4_5guard_6 := reg292607 +_ = Parse__shen_4_5guard_6 +reg292608 := __e.Call(__defun__fail) +reg292609 := PrimEqual(reg292608, Parse__shen_4_5guard_6) +reg292610 := PrimNot(reg292609) +var reg292629 Obj +if reg292610 == True { +reg292611 := PrimHead(Parse__shen_4_5guard_6) +reg292612 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5patterns_6) +reg292613 := MakeSymbol("where") +reg292614 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5guard_6) +reg292615 := MakeSymbol("shen.choicepoint!") +reg292616 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5action_6) +reg292617 := Nil; +reg292618 := PrimCons(reg292616, reg292617) +reg292619 := PrimCons(reg292615, reg292618) +reg292620 := Nil; +reg292621 := PrimCons(reg292619, reg292620) +reg292622 := PrimCons(reg292614, reg292621) +reg292623 := PrimCons(reg292613, reg292622) +reg292624 := Nil; +reg292625 := PrimCons(reg292623, reg292624) +reg292626 := PrimCons(reg292612, reg292625) +reg292627 := __e.Call(__defun__shen_4pair, reg292611, reg292626) +reg292629 = reg292627 +} else { +reg292628 := __e.Call(__defun__fail) +reg292629 = reg292628 +} +reg292631 = reg292629 +} else { +reg292630 := __e.Call(__defun__fail) +reg292631 = reg292630 +} +reg292633 = reg292631 +} else { +reg292632 := __e.Call(__defun__fail) +reg292633 = reg292632 +} +reg292635 = reg292633 +} else { +reg292634 := __e.Call(__defun__fail) +reg292635 = reg292634 +} +reg292637 = reg292635 +} else { +reg292636 := __e.Call(__defun__fail) +reg292637 = reg292636 +} +YaccParse := reg292637 +_ = YaccParse +reg292638 := __e.Call(__defun__fail) +reg292639 := PrimEqual(YaccParse, reg292638) +if reg292639 == True { +reg292640 := __e.Call(__defun__shen_4_5patterns_6, V1409) +Parse__shen_4_5patterns_6 := reg292640 +_ = Parse__shen_4_5patterns_6 +reg292641 := __e.Call(__defun__fail) +reg292642 := PrimEqual(reg292641, Parse__shen_4_5patterns_6) +reg292643 := PrimNot(reg292642) +if reg292643 == True { +reg292644 := PrimHead(Parse__shen_4_5patterns_6) +reg292645 := PrimIsPair(reg292644) +var reg292654 Obj +if reg292645 == True { +reg292646 := MakeSymbol("<-") +reg292647 := PrimHead(Parse__shen_4_5patterns_6) +reg292648 := PrimHead(reg292647) +reg292649 := PrimEqual(reg292646, reg292648) +var reg292652 Obj +if reg292649 == True { +reg292650 := True; +reg292652 = reg292650 +} else { +reg292651 := False; +reg292652 = reg292651 +} +reg292654 = reg292652 +} else { +reg292653 := False; +reg292654 = reg292653 +} +if reg292654 == True { +reg292655 := PrimHead(Parse__shen_4_5patterns_6) +reg292656 := PrimTail(reg292655) +reg292657 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5patterns_6) +reg292658 := __e.Call(__defun__shen_4pair, reg292656, reg292657) +reg292659 := __e.Call(__defun__shen_4_5action_6, reg292658) +Parse__shen_4_5action_6 := reg292659 +_ = Parse__shen_4_5action_6 +reg292660 := __e.Call(__defun__fail) +reg292661 := PrimEqual(reg292660, Parse__shen_4_5action_6) +reg292662 := PrimNot(reg292661) +if reg292662 == True { +reg292663 := PrimHead(Parse__shen_4_5action_6) +reg292664 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5patterns_6) +reg292665 := MakeSymbol("shen.choicepoint!") +reg292666 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5action_6) +reg292667 := Nil; +reg292668 := PrimCons(reg292666, reg292667) +reg292669 := PrimCons(reg292665, reg292668) +reg292670 := Nil; +reg292671 := PrimCons(reg292669, reg292670) +reg292672 := PrimCons(reg292664, reg292671) +__ctx.TailApply(__defun__shen_4pair, reg292663, reg292672) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5rule_6}) + +__defun__shen_4fail__if = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1412 := __args[0] +_ = V1412 +V1413 := __args[1] +_ = V1413 +reg292677 := __e.Call(V1412, V1413) +if reg292677 == True { +__ctx.TailApply(__defun__fail) +return +} else { +__ctx.Return(V1413) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.fail_if", value: __defun__shen_4fail__if}) + +__defun__shen_4succeeds_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1419 := __args[0] +_ = V1419 +reg292679 := __e.Call(__defun__fail) +reg292680 := PrimEqual(V1419, reg292679) +if reg292680 == True { +reg292681 := False; +__ctx.Return(reg292681) +return +} else { +reg292682 := True; +__ctx.Return(reg292682) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.succeeds?", value: __defun__shen_4succeeds_2}) + +__defun__shen_4_5patterns_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1421 := __args[0] +_ = V1421 +reg292683 := __e.Call(__defun__shen_4_5pattern_6, V1421) +Parse__shen_4_5pattern_6 := reg292683 +_ = Parse__shen_4_5pattern_6 +reg292684 := __e.Call(__defun__fail) +reg292685 := PrimEqual(reg292684, Parse__shen_4_5pattern_6) +reg292686 := PrimNot(reg292685) +var reg292699 Obj +if reg292686 == True { +reg292687 := __e.Call(__defun__shen_4_5patterns_6, Parse__shen_4_5pattern_6) +Parse__shen_4_5patterns_6 := reg292687 +_ = Parse__shen_4_5patterns_6 +reg292688 := __e.Call(__defun__fail) +reg292689 := PrimEqual(reg292688, Parse__shen_4_5patterns_6) +reg292690 := PrimNot(reg292689) +var reg292697 Obj +if reg292690 == True { +reg292691 := PrimHead(Parse__shen_4_5patterns_6) +reg292692 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5pattern_6) +reg292693 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5patterns_6) +reg292694 := PrimCons(reg292692, reg292693) +reg292695 := __e.Call(__defun__shen_4pair, reg292691, reg292694) +reg292697 = reg292695 +} else { +reg292696 := __e.Call(__defun__fail) +reg292697 = reg292696 +} +reg292699 = reg292697 +} else { +reg292698 := __e.Call(__defun__fail) +reg292699 = reg292698 +} +YaccParse := reg292699 +_ = YaccParse +reg292700 := __e.Call(__defun__fail) +reg292701 := PrimEqual(YaccParse, reg292700) +if reg292701 == True { +reg292702 := __e.Call(__defun___5e_6, V1421) +Parse___5e_6 := reg292702 +_ = Parse___5e_6 +reg292703 := __e.Call(__defun__fail) +reg292704 := PrimEqual(reg292703, Parse___5e_6) +reg292705 := PrimNot(reg292704) +if reg292705 == True { +reg292706 := PrimHead(Parse___5e_6) +reg292707 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg292706, reg292707) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5patterns_6}) + +__defun__shen_4_5pattern_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1428 := __args[0] +_ = V1428 +reg292710 := PrimHead(V1428) +reg292711 := PrimIsPair(reg292710) +var reg292719 Obj +if reg292711 == True { +reg292712 := PrimHead(V1428) +reg292713 := PrimHead(reg292712) +reg292714 := PrimIsPair(reg292713) +var reg292717 Obj +if reg292714 == True { +reg292715 := True; +reg292717 = reg292715 +} else { +reg292716 := False; +reg292717 = reg292716 +} +reg292719 = reg292717 +} else { +reg292718 := False; +reg292719 = reg292718 +} +var reg292784 Obj +if reg292719 == True { +reg292720 := PrimHead(V1428) +reg292721 := PrimHead(reg292720) +reg292722 := PrimTail(V1428) +reg292723 := PrimHead(reg292722) +reg292724 := __e.Call(__defun__shen_4pair, reg292721, reg292723) +reg292725 := PrimHead(reg292724) +reg292726 := PrimIsPair(reg292725) +var reg292740 Obj +if reg292726 == True { +reg292727 := MakeSymbol("@p") +reg292728 := PrimHead(V1428) +reg292729 := PrimHead(reg292728) +reg292730 := PrimTail(V1428) +reg292731 := PrimHead(reg292730) +reg292732 := __e.Call(__defun__shen_4pair, reg292729, reg292731) +reg292733 := PrimHead(reg292732) +reg292734 := PrimHead(reg292733) +reg292735 := PrimEqual(reg292727, reg292734) +var reg292738 Obj +if reg292735 == True { +reg292736 := True; +reg292738 = reg292736 +} else { +reg292737 := False; +reg292738 = reg292737 +} +reg292740 = reg292738 +} else { +reg292739 := False; +reg292740 = reg292739 +} +var reg292782 Obj +if reg292740 == True { +reg292741 := PrimHead(V1428) +reg292742 := PrimHead(reg292741) +reg292743 := PrimTail(V1428) +reg292744 := PrimHead(reg292743) +reg292745 := __e.Call(__defun__shen_4pair, reg292742, reg292744) +reg292746 := PrimHead(reg292745) +reg292747 := PrimTail(reg292746) +reg292748 := PrimHead(V1428) +reg292749 := PrimHead(reg292748) +reg292750 := PrimTail(V1428) +reg292751 := PrimHead(reg292750) +reg292752 := __e.Call(__defun__shen_4pair, reg292749, reg292751) +reg292753 := __e.Call(__defun__shen_4hdtl, reg292752) +reg292754 := __e.Call(__defun__shen_4pair, reg292747, reg292753) +reg292755 := __e.Call(__defun__shen_4_5pattern1_6, reg292754) +Parse__shen_4_5pattern1_6 := reg292755 +_ = Parse__shen_4_5pattern1_6 +reg292756 := __e.Call(__defun__fail) +reg292757 := PrimEqual(reg292756, Parse__shen_4_5pattern1_6) +reg292758 := PrimNot(reg292757) +var reg292780 Obj +if reg292758 == True { +reg292759 := __e.Call(__defun__shen_4_5pattern2_6, Parse__shen_4_5pattern1_6) +Parse__shen_4_5pattern2_6 := reg292759 +_ = Parse__shen_4_5pattern2_6 +reg292760 := __e.Call(__defun__fail) +reg292761 := PrimEqual(reg292760, Parse__shen_4_5pattern2_6) +reg292762 := PrimNot(reg292761) +var reg292778 Obj +if reg292762 == True { +reg292763 := PrimHead(V1428) +reg292764 := PrimTail(reg292763) +reg292765 := PrimTail(V1428) +reg292766 := PrimHead(reg292765) +reg292767 := __e.Call(__defun__shen_4pair, reg292764, reg292766) +reg292768 := PrimHead(reg292767) +reg292769 := MakeSymbol("@p") +reg292770 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5pattern1_6) +reg292771 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5pattern2_6) +reg292772 := Nil; +reg292773 := PrimCons(reg292771, reg292772) +reg292774 := PrimCons(reg292770, reg292773) +reg292775 := PrimCons(reg292769, reg292774) +reg292776 := __e.Call(__defun__shen_4pair, reg292768, reg292775) +reg292778 = reg292776 +} else { +reg292777 := __e.Call(__defun__fail) +reg292778 = reg292777 +} +reg292780 = reg292778 +} else { +reg292779 := __e.Call(__defun__fail) +reg292780 = reg292779 +} +reg292782 = reg292780 +} else { +reg292781 := __e.Call(__defun__fail) +reg292782 = reg292781 +} +reg292784 = reg292782 +} else { +reg292783 := __e.Call(__defun__fail) +reg292784 = reg292783 +} +YaccParse := reg292784 +_ = YaccParse +reg292785 := __e.Call(__defun__fail) +reg292786 := PrimEqual(YaccParse, reg292785) +if reg292786 == True { +reg292787 := PrimHead(V1428) +reg292788 := PrimIsPair(reg292787) +var reg292796 Obj +if reg292788 == True { +reg292789 := PrimHead(V1428) +reg292790 := PrimHead(reg292789) +reg292791 := PrimIsPair(reg292790) +var reg292794 Obj +if reg292791 == True { +reg292792 := True; +reg292794 = reg292792 +} else { +reg292793 := False; +reg292794 = reg292793 +} +reg292796 = reg292794 +} else { +reg292795 := False; +reg292796 = reg292795 +} +var reg292861 Obj +if reg292796 == True { +reg292797 := PrimHead(V1428) +reg292798 := PrimHead(reg292797) +reg292799 := PrimTail(V1428) +reg292800 := PrimHead(reg292799) +reg292801 := __e.Call(__defun__shen_4pair, reg292798, reg292800) +reg292802 := PrimHead(reg292801) +reg292803 := PrimIsPair(reg292802) +var reg292817 Obj +if reg292803 == True { +reg292804 := MakeSymbol("cons") +reg292805 := PrimHead(V1428) +reg292806 := PrimHead(reg292805) +reg292807 := PrimTail(V1428) +reg292808 := PrimHead(reg292807) +reg292809 := __e.Call(__defun__shen_4pair, reg292806, reg292808) +reg292810 := PrimHead(reg292809) +reg292811 := PrimHead(reg292810) +reg292812 := PrimEqual(reg292804, reg292811) +var reg292815 Obj +if reg292812 == True { +reg292813 := True; +reg292815 = reg292813 +} else { +reg292814 := False; +reg292815 = reg292814 +} +reg292817 = reg292815 +} else { +reg292816 := False; +reg292817 = reg292816 +} +var reg292859 Obj +if reg292817 == True { +reg292818 := PrimHead(V1428) +reg292819 := PrimHead(reg292818) +reg292820 := PrimTail(V1428) +reg292821 := PrimHead(reg292820) +reg292822 := __e.Call(__defun__shen_4pair, reg292819, reg292821) +reg292823 := PrimHead(reg292822) +reg292824 := PrimTail(reg292823) +reg292825 := PrimHead(V1428) +reg292826 := PrimHead(reg292825) +reg292827 := PrimTail(V1428) +reg292828 := PrimHead(reg292827) +reg292829 := __e.Call(__defun__shen_4pair, reg292826, reg292828) +reg292830 := __e.Call(__defun__shen_4hdtl, reg292829) +reg292831 := __e.Call(__defun__shen_4pair, reg292824, reg292830) +reg292832 := __e.Call(__defun__shen_4_5pattern1_6, reg292831) +Parse__shen_4_5pattern1_6 := reg292832 +_ = Parse__shen_4_5pattern1_6 +reg292833 := __e.Call(__defun__fail) +reg292834 := PrimEqual(reg292833, Parse__shen_4_5pattern1_6) +reg292835 := PrimNot(reg292834) +var reg292857 Obj +if reg292835 == True { +reg292836 := __e.Call(__defun__shen_4_5pattern2_6, Parse__shen_4_5pattern1_6) +Parse__shen_4_5pattern2_6 := reg292836 +_ = Parse__shen_4_5pattern2_6 +reg292837 := __e.Call(__defun__fail) +reg292838 := PrimEqual(reg292837, Parse__shen_4_5pattern2_6) +reg292839 := PrimNot(reg292838) +var reg292855 Obj +if reg292839 == True { +reg292840 := PrimHead(V1428) +reg292841 := PrimTail(reg292840) +reg292842 := PrimTail(V1428) +reg292843 := PrimHead(reg292842) +reg292844 := __e.Call(__defun__shen_4pair, reg292841, reg292843) +reg292845 := PrimHead(reg292844) +reg292846 := MakeSymbol("cons") +reg292847 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5pattern1_6) +reg292848 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5pattern2_6) +reg292849 := Nil; +reg292850 := PrimCons(reg292848, reg292849) +reg292851 := PrimCons(reg292847, reg292850) +reg292852 := PrimCons(reg292846, reg292851) +reg292853 := __e.Call(__defun__shen_4pair, reg292845, reg292852) +reg292855 = reg292853 +} else { +reg292854 := __e.Call(__defun__fail) +reg292855 = reg292854 +} +reg292857 = reg292855 +} else { +reg292856 := __e.Call(__defun__fail) +reg292857 = reg292856 +} +reg292859 = reg292857 +} else { +reg292858 := __e.Call(__defun__fail) +reg292859 = reg292858 +} +reg292861 = reg292859 +} else { +reg292860 := __e.Call(__defun__fail) +reg292861 = reg292860 +} +YaccParse := reg292861 +_ = YaccParse +reg292862 := __e.Call(__defun__fail) +reg292863 := PrimEqual(YaccParse, reg292862) +if reg292863 == True { +reg292864 := PrimHead(V1428) +reg292865 := PrimIsPair(reg292864) +var reg292873 Obj +if reg292865 == True { +reg292866 := PrimHead(V1428) +reg292867 := PrimHead(reg292866) +reg292868 := PrimIsPair(reg292867) +var reg292871 Obj +if reg292868 == True { +reg292869 := True; +reg292871 = reg292869 +} else { +reg292870 := False; +reg292871 = reg292870 +} +reg292873 = reg292871 +} else { +reg292872 := False; +reg292873 = reg292872 +} +var reg292938 Obj +if reg292873 == True { +reg292874 := PrimHead(V1428) +reg292875 := PrimHead(reg292874) +reg292876 := PrimTail(V1428) +reg292877 := PrimHead(reg292876) +reg292878 := __e.Call(__defun__shen_4pair, reg292875, reg292877) +reg292879 := PrimHead(reg292878) +reg292880 := PrimIsPair(reg292879) +var reg292894 Obj +if reg292880 == True { +reg292881 := MakeSymbol("@v") +reg292882 := PrimHead(V1428) +reg292883 := PrimHead(reg292882) +reg292884 := PrimTail(V1428) +reg292885 := PrimHead(reg292884) +reg292886 := __e.Call(__defun__shen_4pair, reg292883, reg292885) +reg292887 := PrimHead(reg292886) +reg292888 := PrimHead(reg292887) +reg292889 := PrimEqual(reg292881, reg292888) +var reg292892 Obj +if reg292889 == True { +reg292890 := True; +reg292892 = reg292890 +} else { +reg292891 := False; +reg292892 = reg292891 +} +reg292894 = reg292892 +} else { +reg292893 := False; +reg292894 = reg292893 +} +var reg292936 Obj +if reg292894 == True { +reg292895 := PrimHead(V1428) +reg292896 := PrimHead(reg292895) +reg292897 := PrimTail(V1428) +reg292898 := PrimHead(reg292897) +reg292899 := __e.Call(__defun__shen_4pair, reg292896, reg292898) +reg292900 := PrimHead(reg292899) +reg292901 := PrimTail(reg292900) +reg292902 := PrimHead(V1428) +reg292903 := PrimHead(reg292902) +reg292904 := PrimTail(V1428) +reg292905 := PrimHead(reg292904) +reg292906 := __e.Call(__defun__shen_4pair, reg292903, reg292905) +reg292907 := __e.Call(__defun__shen_4hdtl, reg292906) +reg292908 := __e.Call(__defun__shen_4pair, reg292901, reg292907) +reg292909 := __e.Call(__defun__shen_4_5pattern1_6, reg292908) +Parse__shen_4_5pattern1_6 := reg292909 +_ = Parse__shen_4_5pattern1_6 +reg292910 := __e.Call(__defun__fail) +reg292911 := PrimEqual(reg292910, Parse__shen_4_5pattern1_6) +reg292912 := PrimNot(reg292911) +var reg292934 Obj +if reg292912 == True { +reg292913 := __e.Call(__defun__shen_4_5pattern2_6, Parse__shen_4_5pattern1_6) +Parse__shen_4_5pattern2_6 := reg292913 +_ = Parse__shen_4_5pattern2_6 +reg292914 := __e.Call(__defun__fail) +reg292915 := PrimEqual(reg292914, Parse__shen_4_5pattern2_6) +reg292916 := PrimNot(reg292915) +var reg292932 Obj +if reg292916 == True { +reg292917 := PrimHead(V1428) +reg292918 := PrimTail(reg292917) +reg292919 := PrimTail(V1428) +reg292920 := PrimHead(reg292919) +reg292921 := __e.Call(__defun__shen_4pair, reg292918, reg292920) +reg292922 := PrimHead(reg292921) +reg292923 := MakeSymbol("@v") +reg292924 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5pattern1_6) +reg292925 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5pattern2_6) +reg292926 := Nil; +reg292927 := PrimCons(reg292925, reg292926) +reg292928 := PrimCons(reg292924, reg292927) +reg292929 := PrimCons(reg292923, reg292928) +reg292930 := __e.Call(__defun__shen_4pair, reg292922, reg292929) +reg292932 = reg292930 +} else { +reg292931 := __e.Call(__defun__fail) +reg292932 = reg292931 +} +reg292934 = reg292932 +} else { +reg292933 := __e.Call(__defun__fail) +reg292934 = reg292933 +} +reg292936 = reg292934 +} else { +reg292935 := __e.Call(__defun__fail) +reg292936 = reg292935 +} +reg292938 = reg292936 +} else { +reg292937 := __e.Call(__defun__fail) +reg292938 = reg292937 +} +YaccParse := reg292938 +_ = YaccParse +reg292939 := __e.Call(__defun__fail) +reg292940 := PrimEqual(YaccParse, reg292939) +if reg292940 == True { +reg292941 := PrimHead(V1428) +reg292942 := PrimIsPair(reg292941) +var reg292950 Obj +if reg292942 == True { +reg292943 := PrimHead(V1428) +reg292944 := PrimHead(reg292943) +reg292945 := PrimIsPair(reg292944) +var reg292948 Obj +if reg292945 == True { +reg292946 := True; +reg292948 = reg292946 +} else { +reg292947 := False; +reg292948 = reg292947 +} +reg292950 = reg292948 +} else { +reg292949 := False; +reg292950 = reg292949 +} +var reg293015 Obj +if reg292950 == True { +reg292951 := PrimHead(V1428) +reg292952 := PrimHead(reg292951) +reg292953 := PrimTail(V1428) +reg292954 := PrimHead(reg292953) +reg292955 := __e.Call(__defun__shen_4pair, reg292952, reg292954) +reg292956 := PrimHead(reg292955) +reg292957 := PrimIsPair(reg292956) +var reg292971 Obj +if reg292957 == True { +reg292958 := MakeSymbol("@s") +reg292959 := PrimHead(V1428) +reg292960 := PrimHead(reg292959) +reg292961 := PrimTail(V1428) +reg292962 := PrimHead(reg292961) +reg292963 := __e.Call(__defun__shen_4pair, reg292960, reg292962) +reg292964 := PrimHead(reg292963) +reg292965 := PrimHead(reg292964) +reg292966 := PrimEqual(reg292958, reg292965) +var reg292969 Obj +if reg292966 == True { +reg292967 := True; +reg292969 = reg292967 +} else { +reg292968 := False; +reg292969 = reg292968 +} +reg292971 = reg292969 +} else { +reg292970 := False; +reg292971 = reg292970 +} +var reg293013 Obj +if reg292971 == True { +reg292972 := PrimHead(V1428) +reg292973 := PrimHead(reg292972) +reg292974 := PrimTail(V1428) +reg292975 := PrimHead(reg292974) +reg292976 := __e.Call(__defun__shen_4pair, reg292973, reg292975) +reg292977 := PrimHead(reg292976) +reg292978 := PrimTail(reg292977) +reg292979 := PrimHead(V1428) +reg292980 := PrimHead(reg292979) +reg292981 := PrimTail(V1428) +reg292982 := PrimHead(reg292981) +reg292983 := __e.Call(__defun__shen_4pair, reg292980, reg292982) +reg292984 := __e.Call(__defun__shen_4hdtl, reg292983) +reg292985 := __e.Call(__defun__shen_4pair, reg292978, reg292984) +reg292986 := __e.Call(__defun__shen_4_5pattern1_6, reg292985) +Parse__shen_4_5pattern1_6 := reg292986 +_ = Parse__shen_4_5pattern1_6 +reg292987 := __e.Call(__defun__fail) +reg292988 := PrimEqual(reg292987, Parse__shen_4_5pattern1_6) +reg292989 := PrimNot(reg292988) +var reg293011 Obj +if reg292989 == True { +reg292990 := __e.Call(__defun__shen_4_5pattern2_6, Parse__shen_4_5pattern1_6) +Parse__shen_4_5pattern2_6 := reg292990 +_ = Parse__shen_4_5pattern2_6 +reg292991 := __e.Call(__defun__fail) +reg292992 := PrimEqual(reg292991, Parse__shen_4_5pattern2_6) +reg292993 := PrimNot(reg292992) +var reg293009 Obj +if reg292993 == True { +reg292994 := PrimHead(V1428) +reg292995 := PrimTail(reg292994) +reg292996 := PrimTail(V1428) +reg292997 := PrimHead(reg292996) +reg292998 := __e.Call(__defun__shen_4pair, reg292995, reg292997) +reg292999 := PrimHead(reg292998) +reg293000 := MakeSymbol("@s") +reg293001 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5pattern1_6) +reg293002 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5pattern2_6) +reg293003 := Nil; +reg293004 := PrimCons(reg293002, reg293003) +reg293005 := PrimCons(reg293001, reg293004) +reg293006 := PrimCons(reg293000, reg293005) +reg293007 := __e.Call(__defun__shen_4pair, reg292999, reg293006) +reg293009 = reg293007 +} else { +reg293008 := __e.Call(__defun__fail) +reg293009 = reg293008 +} +reg293011 = reg293009 +} else { +reg293010 := __e.Call(__defun__fail) +reg293011 = reg293010 +} +reg293013 = reg293011 +} else { +reg293012 := __e.Call(__defun__fail) +reg293013 = reg293012 +} +reg293015 = reg293013 +} else { +reg293014 := __e.Call(__defun__fail) +reg293015 = reg293014 +} +YaccParse := reg293015 +_ = YaccParse +reg293016 := __e.Call(__defun__fail) +reg293017 := PrimEqual(YaccParse, reg293016) +if reg293017 == True { +reg293018 := PrimHead(V1428) +reg293019 := PrimIsPair(reg293018) +var reg293027 Obj +if reg293019 == True { +reg293020 := PrimHead(V1428) +reg293021 := PrimHead(reg293020) +reg293022 := PrimIsPair(reg293021) +var reg293025 Obj +if reg293022 == True { +reg293023 := True; +reg293025 = reg293023 +} else { +reg293024 := False; +reg293025 = reg293024 +} +reg293027 = reg293025 +} else { +reg293026 := False; +reg293027 = reg293026 +} +var reg293105 Obj +if reg293027 == True { +reg293028 := PrimHead(V1428) +reg293029 := PrimHead(reg293028) +reg293030 := PrimTail(V1428) +reg293031 := PrimHead(reg293030) +reg293032 := __e.Call(__defun__shen_4pair, reg293029, reg293031) +reg293033 := PrimHead(reg293032) +reg293034 := PrimIsPair(reg293033) +var reg293048 Obj +if reg293034 == True { +reg293035 := MakeSymbol("vector") +reg293036 := PrimHead(V1428) +reg293037 := PrimHead(reg293036) +reg293038 := PrimTail(V1428) +reg293039 := PrimHead(reg293038) +reg293040 := __e.Call(__defun__shen_4pair, reg293037, reg293039) +reg293041 := PrimHead(reg293040) +reg293042 := PrimHead(reg293041) +reg293043 := PrimEqual(reg293035, reg293042) +var reg293046 Obj +if reg293043 == True { +reg293044 := True; +reg293046 = reg293044 +} else { +reg293045 := False; +reg293046 = reg293045 +} +reg293048 = reg293046 +} else { +reg293047 := False; +reg293048 = reg293047 +} +var reg293103 Obj +if reg293048 == True { +reg293049 := PrimHead(V1428) +reg293050 := PrimHead(reg293049) +reg293051 := PrimTail(V1428) +reg293052 := PrimHead(reg293051) +reg293053 := __e.Call(__defun__shen_4pair, reg293050, reg293052) +reg293054 := PrimHead(reg293053) +reg293055 := PrimTail(reg293054) +reg293056 := PrimHead(V1428) +reg293057 := PrimHead(reg293056) +reg293058 := PrimTail(V1428) +reg293059 := PrimHead(reg293058) +reg293060 := __e.Call(__defun__shen_4pair, reg293057, reg293059) +reg293061 := __e.Call(__defun__shen_4hdtl, reg293060) +reg293062 := __e.Call(__defun__shen_4pair, reg293055, reg293061) +reg293063 := PrimHead(reg293062) +reg293064 := PrimIsPair(reg293063) +var reg293087 Obj +if reg293064 == True { +reg293065 := MakeNumber(0) +reg293066 := PrimHead(V1428) +reg293067 := PrimHead(reg293066) +reg293068 := PrimTail(V1428) +reg293069 := PrimHead(reg293068) +reg293070 := __e.Call(__defun__shen_4pair, reg293067, reg293069) +reg293071 := PrimHead(reg293070) +reg293072 := PrimTail(reg293071) +reg293073 := PrimHead(V1428) +reg293074 := PrimHead(reg293073) +reg293075 := PrimTail(V1428) +reg293076 := PrimHead(reg293075) +reg293077 := __e.Call(__defun__shen_4pair, reg293074, reg293076) +reg293078 := __e.Call(__defun__shen_4hdtl, reg293077) +reg293079 := __e.Call(__defun__shen_4pair, reg293072, reg293078) +reg293080 := PrimHead(reg293079) +reg293081 := PrimHead(reg293080) +reg293082 := PrimEqual(reg293065, reg293081) +var reg293085 Obj +if reg293082 == True { +reg293083 := True; +reg293085 = reg293083 +} else { +reg293084 := False; +reg293085 = reg293084 +} +reg293087 = reg293085 +} else { +reg293086 := False; +reg293087 = reg293086 +} +var reg293101 Obj +if reg293087 == True { +reg293088 := PrimHead(V1428) +reg293089 := PrimTail(reg293088) +reg293090 := PrimTail(V1428) +reg293091 := PrimHead(reg293090) +reg293092 := __e.Call(__defun__shen_4pair, reg293089, reg293091) +reg293093 := PrimHead(reg293092) +reg293094 := MakeSymbol("vector") +reg293095 := MakeNumber(0) +reg293096 := Nil; +reg293097 := PrimCons(reg293095, reg293096) +reg293098 := PrimCons(reg293094, reg293097) +reg293099 := __e.Call(__defun__shen_4pair, reg293093, reg293098) +reg293101 = reg293099 +} else { +reg293100 := __e.Call(__defun__fail) +reg293101 = reg293100 +} +reg293103 = reg293101 +} else { +reg293102 := __e.Call(__defun__fail) +reg293103 = reg293102 +} +reg293105 = reg293103 +} else { +reg293104 := __e.Call(__defun__fail) +reg293105 = reg293104 +} +YaccParse := reg293105 +_ = YaccParse +reg293106 := __e.Call(__defun__fail) +reg293107 := PrimEqual(YaccParse, reg293106) +if reg293107 == True { +reg293108 := PrimHead(V1428) +reg293109 := PrimIsPair(reg293108) +var reg293123 Obj +if reg293109 == True { +reg293110 := PrimHead(V1428) +reg293111 := PrimHead(reg293110) +Parse__X := reg293111 +_ = Parse__X +reg293112 := PrimIsPair(Parse__X) +var reg293121 Obj +if reg293112 == True { +reg293113 := PrimHead(V1428) +reg293114 := PrimTail(reg293113) +reg293115 := __e.Call(__defun__shen_4hdtl, V1428) +reg293116 := __e.Call(__defun__shen_4pair, reg293114, reg293115) +reg293117 := PrimHead(reg293116) +reg293118 := __e.Call(__defun__shen_4constructor_1error, Parse__X) +reg293119 := __e.Call(__defun__shen_4pair, reg293117, reg293118) +reg293121 = reg293119 +} else { +reg293120 := __e.Call(__defun__fail) +reg293121 = reg293120 +} +reg293123 = reg293121 +} else { +reg293122 := __e.Call(__defun__fail) +reg293123 = reg293122 +} +YaccParse := reg293123 +_ = YaccParse +reg293124 := __e.Call(__defun__fail) +reg293125 := PrimEqual(YaccParse, reg293124) +if reg293125 == True { +reg293126 := __e.Call(__defun__shen_4_5simple__pattern_6, V1428) +Parse__shen_4_5simple__pattern_6 := reg293126 +_ = Parse__shen_4_5simple__pattern_6 +reg293127 := __e.Call(__defun__fail) +reg293128 := PrimEqual(reg293127, Parse__shen_4_5simple__pattern_6) +reg293129 := PrimNot(reg293128) +if reg293129 == True { +reg293130 := PrimHead(Parse__shen_4_5simple__pattern_6) +reg293131 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5simple__pattern_6) +__ctx.TailApply(__defun__shen_4pair, reg293130, reg293131) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5pattern_6}) + +__defun__shen_4constructor_1error = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1430 := __args[0] +_ = V1430 +reg293134 := MakeString(" is not a legitimate constructor\n") +reg293135 := MakeSymbol("shen.a") +reg293136 := __e.Call(__defun__shen_4app, V1430, reg293134, reg293135) +reg293137 := PrimSimpleError(reg293136) +__ctx.Return(reg293137) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.constructor-error", value: __defun__shen_4constructor_1error}) + +__defun__shen_4_5simple__pattern_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1432 := __args[0] +_ = V1432 +reg293138 := PrimHead(V1432) +reg293139 := PrimIsPair(reg293138) +var reg293155 Obj +if reg293139 == True { +reg293140 := PrimHead(V1432) +reg293141 := PrimHead(reg293140) +Parse__X := reg293141 +_ = Parse__X +reg293142 := MakeSymbol("_") +reg293143 := PrimEqual(Parse__X, reg293142) +var reg293153 Obj +if reg293143 == True { +reg293144 := PrimHead(V1432) +reg293145 := PrimTail(reg293144) +reg293146 := __e.Call(__defun__shen_4hdtl, V1432) +reg293147 := __e.Call(__defun__shen_4pair, reg293145, reg293146) +reg293148 := PrimHead(reg293147) +reg293149 := MakeSymbol("Parse_Y") +reg293150 := __e.Call(__defun__gensym, reg293149) +reg293151 := __e.Call(__defun__shen_4pair, reg293148, reg293150) +reg293153 = reg293151 +} else { +reg293152 := __e.Call(__defun__fail) +reg293153 = reg293152 +} +reg293155 = reg293153 +} else { +reg293154 := __e.Call(__defun__fail) +reg293155 = reg293154 +} +YaccParse := reg293155 +_ = YaccParse +reg293156 := __e.Call(__defun__fail) +reg293157 := PrimEqual(YaccParse, reg293156) +if reg293157 == True { +reg293158 := PrimHead(V1432) +reg293159 := PrimIsPair(reg293158) +if reg293159 == True { +reg293160 := PrimHead(V1432) +reg293161 := PrimHead(reg293160) +Parse__X := reg293161 +_ = Parse__X +reg293162 := MakeSymbol("->") +reg293163 := MakeSymbol("<-") +reg293164 := Nil; +reg293165 := PrimCons(reg293163, reg293164) +reg293166 := PrimCons(reg293162, reg293165) +reg293167 := __e.Call(__defun__element_2, Parse__X, reg293166) +reg293168 := PrimNot(reg293167) +if reg293168 == True { +reg293169 := PrimHead(V1432) +reg293170 := PrimTail(reg293169) +reg293171 := __e.Call(__defun__shen_4hdtl, V1432) +reg293172 := __e.Call(__defun__shen_4pair, reg293170, reg293171) +reg293173 := PrimHead(reg293172) +__ctx.TailApply(__defun__shen_4pair, reg293173, Parse__X) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5simple__pattern_6}) + +__defun__shen_4_5pattern1_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1434 := __args[0] +_ = V1434 +reg293177 := __e.Call(__defun__shen_4_5pattern_6, V1434) +Parse__shen_4_5pattern_6 := reg293177 +_ = Parse__shen_4_5pattern_6 +reg293178 := __e.Call(__defun__fail) +reg293179 := PrimEqual(reg293178, Parse__shen_4_5pattern_6) +reg293180 := PrimNot(reg293179) +if reg293180 == True { +reg293181 := PrimHead(Parse__shen_4_5pattern_6) +reg293182 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5pattern_6) +__ctx.TailApply(__defun__shen_4pair, reg293181, reg293182) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5pattern1_6}) + +__defun__shen_4_5pattern2_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1436 := __args[0] +_ = V1436 +reg293185 := __e.Call(__defun__shen_4_5pattern_6, V1436) +Parse__shen_4_5pattern_6 := reg293185 +_ = Parse__shen_4_5pattern_6 +reg293186 := __e.Call(__defun__fail) +reg293187 := PrimEqual(reg293186, Parse__shen_4_5pattern_6) +reg293188 := PrimNot(reg293187) +if reg293188 == True { +reg293189 := PrimHead(Parse__shen_4_5pattern_6) +reg293190 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5pattern_6) +__ctx.TailApply(__defun__shen_4pair, reg293189, reg293190) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5pattern2_6}) + +__defun__shen_4_5action_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1438 := __args[0] +_ = V1438 +reg293193 := PrimHead(V1438) +reg293194 := PrimIsPair(reg293193) +if reg293194 == True { +reg293195 := PrimHead(V1438) +reg293196 := PrimHead(reg293195) +Parse__X := reg293196 +_ = Parse__X +reg293197 := PrimHead(V1438) +reg293198 := PrimTail(reg293197) +reg293199 := __e.Call(__defun__shen_4hdtl, V1438) +reg293200 := __e.Call(__defun__shen_4pair, reg293198, reg293199) +reg293201 := PrimHead(reg293200) +__ctx.TailApply(__defun__shen_4pair, reg293201, Parse__X) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5action_6}) + +__defun__shen_4_5guard_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1440 := __args[0] +_ = V1440 +reg293204 := PrimHead(V1440) +reg293205 := PrimIsPair(reg293204) +if reg293205 == True { +reg293206 := PrimHead(V1440) +reg293207 := PrimHead(reg293206) +Parse__X := reg293207 +_ = Parse__X +reg293208 := PrimHead(V1440) +reg293209 := PrimTail(reg293208) +reg293210 := __e.Call(__defun__shen_4hdtl, V1440) +reg293211 := __e.Call(__defun__shen_4pair, reg293209, reg293210) +reg293212 := PrimHead(reg293211) +__ctx.TailApply(__defun__shen_4pair, reg293212, Parse__X) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5guard_6}) + +__defun__shen_4compile__to__machine__code = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1443 := __args[0] +_ = V1443 +V1444 := __args[1] +_ = V1444 +reg293215 := __e.Call(__defun__shen_4compile__to__lambda_7, V1443, V1444) +Lambda_7 := reg293215 +_ = Lambda_7 +reg293216 := __e.Call(__defun__shen_4compile__to__kl, V1443, Lambda_7) +KL := reg293216 +_ = KL +reg293217 := __e.Call(__defun__shen_4record_1source, V1443, KL) +Record := reg293217 +_ = Record +__ctx.Return(KL) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.compile_to_machine_code", value: __defun__shen_4compile__to__machine__code}) + +__defun__shen_4record_1source = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1449 := __args[0] +_ = V1449 +V1450 := __args[1] +_ = V1450 +reg293218 := MakeSymbol("shen.*installing-kl*") +reg293219 := PrimValue(reg293218) +if reg293219 == True { +reg293220 := MakeSymbol("shen.skip") +__ctx.Return(reg293220) +return +} else { +reg293221 := MakeSymbol("shen.source") +reg293222 := MakeSymbol("*property-vector*") +reg293223 := PrimValue(reg293222) +__ctx.TailApply(__defun__put, V1449, reg293221, V1450, reg293223) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.record-source", value: __defun__shen_4record_1source}) + +__defun__shen_4compile__to__lambda_7 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1453 := __args[0] +_ = V1453 +V1454 := __args[1] +_ = V1454 +reg293225 := __e.Call(__defun__shen_4aritycheck, V1453, V1454) +Arity := reg293225 +_ = Arity +reg293226 := __e.Call(__defun__shen_4update_1symbol_1table, V1453, Arity) +UpDateSymbolTable := reg293226 +_ = UpDateSymbolTable +reg293227 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Rule := __args[0] +_ = Rule +__ctx.TailApply(__defun__shen_4free__variable__check, V1453, Rule) +return +}, 1) +reg293229 := __e.Call(__defun__shen_4for_1each, reg293227, V1454) +Free := reg293229 +_ = Free +reg293230 := __e.Call(__defun__shen_4parameters, Arity) +Variables := reg293230 +_ = Variables +reg293231 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4strip_1protect, X) +return +}, 1) +reg293233 := __e.Call(__defun__map, reg293231, V1454) +Strip := reg293233 +_ = Strip +reg293234 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4abstract__rule, X) +return +}, 1) +reg293236 := __e.Call(__defun__map, reg293234, Strip) +Abstractions := reg293236 +_ = Abstractions +reg293237 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4application__build, Variables, X) +return +}, 1) +reg293239 := __e.Call(__defun__map, reg293237, Abstractions) +Applications := reg293239 +_ = Applications +reg293240 := Nil; +reg293241 := PrimCons(Applications, reg293240) +reg293242 := PrimCons(Variables, reg293241) +__ctx.Return(reg293242) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.compile_to_lambda+", value: __defun__shen_4compile__to__lambda_7}) + +__defun__shen_4update_1symbol_1table = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1457 := __args[0] +_ = V1457 +V1458 := __args[1] +_ = V1458 +reg293243 := MakeNumber(0) +reg293244 := PrimEqual(reg293243, V1458) +if reg293244 == True { +reg293245 := MakeSymbol("shen.skip") +__ctx.Return(reg293245) +return +} else { +reg293246 := MakeSymbol("shen.lambda-form") +reg293247 := __e.Call(__defun__shen_4lambda_1form, V1457, V1458) +reg293248 := PrimEvalKL(__e, reg293247) +reg293249 := MakeSymbol("*property-vector*") +reg293250 := PrimValue(reg293249) +__ctx.TailApply(__defun__put, V1457, reg293246, reg293248, reg293250) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.update-symbol-table", value: __defun__shen_4update_1symbol_1table}) + +__defun__shen_4free__variable__check = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1461 := __args[0] +_ = V1461 +V1462 := __args[1] +_ = V1462 +reg293252 := PrimIsPair(V1462) +var reg293268 Obj +if reg293252 == True { +reg293253 := PrimTail(V1462) +reg293254 := PrimIsPair(reg293253) +var reg293263 Obj +if reg293254 == True { +reg293255 := Nil; +reg293256 := PrimTail(V1462) +reg293257 := PrimTail(reg293256) +reg293258 := PrimEqual(reg293255, reg293257) +var reg293261 Obj +if reg293258 == True { +reg293259 := True; +reg293261 = reg293259 +} else { +reg293260 := False; +reg293261 = reg293260 +} +reg293263 = reg293261 +} else { +reg293262 := False; +reg293263 = reg293262 +} +var reg293266 Obj +if reg293263 == True { +reg293264 := True; +reg293266 = reg293264 +} else { +reg293265 := False; +reg293266 = reg293265 +} +reg293268 = reg293266 +} else { +reg293267 := False; +reg293268 = reg293267 +} +if reg293268 == True { +reg293269 := PrimHead(V1462) +reg293270 := __e.Call(__defun__shen_4extract__vars, reg293269) +Bound := reg293270 +_ = Bound +reg293271 := PrimTail(V1462) +reg293272 := PrimHead(reg293271) +reg293273 := __e.Call(__defun__shen_4extract__free__vars, Bound, reg293272) +Free := reg293273 +_ = Free +__ctx.TailApply(__defun__shen_4free__variable__warnings, V1461, Free) +return +} else { +reg293275 := MakeSymbol("shen.free_variable_check") +__ctx.TailApply(__defun__shen_4f__error, reg293275) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.free_variable_check", value: __defun__shen_4free__variable__check}) + +__defun__shen_4extract__vars = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1464 := __args[0] +_ = V1464 +reg293277 := PrimIsVariable(V1464) +if reg293277 == True { +reg293278 := Nil; +reg293279 := PrimCons(V1464, reg293278) +__ctx.Return(reg293279) +return +} else { +reg293280 := PrimIsPair(V1464) +if reg293280 == True { +reg293281 := PrimHead(V1464) +reg293282 := __e.Call(__defun__shen_4extract__vars, reg293281) +reg293283 := PrimTail(V1464) +reg293284 := __e.Call(__defun__shen_4extract__vars, reg293283) +__ctx.TailApply(__defun__union, reg293282, reg293284) +return +} else { +reg293286 := Nil; +__ctx.Return(reg293286) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.extract_vars", value: __defun__shen_4extract__vars}) + +__defun__shen_4extract__free__vars = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1476 := __args[0] +_ = V1476 +V1477 := __args[1] +_ = V1477 +reg293287 := PrimIsPair(V1477) +var reg293311 Obj +if reg293287 == True { +reg293288 := PrimTail(V1477) +reg293289 := PrimIsPair(reg293288) +var reg293306 Obj +if reg293289 == True { +reg293290 := Nil; +reg293291 := PrimTail(V1477) +reg293292 := PrimTail(reg293291) +reg293293 := PrimEqual(reg293290, reg293292) +var reg293301 Obj +if reg293293 == True { +reg293294 := PrimHead(V1477) +reg293295 := MakeSymbol("protect") +reg293296 := PrimEqual(reg293294, reg293295) +var reg293299 Obj +if reg293296 == True { +reg293297 := True; +reg293299 = reg293297 +} else { +reg293298 := False; +reg293299 = reg293298 +} +reg293301 = reg293299 +} else { +reg293300 := False; +reg293301 = reg293300 +} +var reg293304 Obj +if reg293301 == True { +reg293302 := True; +reg293304 = reg293302 +} else { +reg293303 := False; +reg293304 = reg293303 +} +reg293306 = reg293304 +} else { +reg293305 := False; +reg293306 = reg293305 +} +var reg293309 Obj +if reg293306 == True { +reg293307 := True; +reg293309 = reg293307 +} else { +reg293308 := False; +reg293309 = reg293308 +} +reg293311 = reg293309 +} else { +reg293310 := False; +reg293311 = reg293310 +} +if reg293311 == True { +reg293312 := Nil; +__ctx.Return(reg293312) +return +} else { +reg293313 := PrimIsVariable(V1477) +var reg293320 Obj +if reg293313 == True { +reg293314 := __e.Call(__defun__element_2, V1477, V1476) +reg293315 := PrimNot(reg293314) +var reg293318 Obj +if reg293315 == True { +reg293316 := True; +reg293318 = reg293316 +} else { +reg293317 := False; +reg293318 = reg293317 +} +reg293320 = reg293318 +} else { +reg293319 := False; +reg293320 = reg293319 +} +if reg293320 == True { +reg293321 := Nil; +reg293322 := PrimCons(V1477, reg293321) +__ctx.Return(reg293322) +return +} else { +reg293323 := PrimIsPair(V1477) +var reg293356 Obj +if reg293323 == True { +reg293324 := MakeSymbol("lambda") +reg293325 := PrimHead(V1477) +reg293326 := PrimEqual(reg293324, reg293325) +var reg293351 Obj +if reg293326 == True { +reg293327 := PrimTail(V1477) +reg293328 := PrimIsPair(reg293327) +var reg293346 Obj +if reg293328 == True { +reg293329 := PrimTail(V1477) +reg293330 := PrimTail(reg293329) +reg293331 := PrimIsPair(reg293330) +var reg293341 Obj +if reg293331 == True { +reg293332 := Nil; +reg293333 := PrimTail(V1477) +reg293334 := PrimTail(reg293333) +reg293335 := PrimTail(reg293334) +reg293336 := PrimEqual(reg293332, reg293335) +var reg293339 Obj +if reg293336 == True { +reg293337 := True; +reg293339 = reg293337 +} else { +reg293338 := False; +reg293339 = reg293338 +} +reg293341 = reg293339 +} else { +reg293340 := False; +reg293341 = reg293340 +} +var reg293344 Obj +if reg293341 == True { +reg293342 := True; +reg293344 = reg293342 +} else { +reg293343 := False; +reg293344 = reg293343 +} +reg293346 = reg293344 +} else { +reg293345 := False; +reg293346 = reg293345 +} +var reg293349 Obj +if reg293346 == True { +reg293347 := True; +reg293349 = reg293347 +} else { +reg293348 := False; +reg293349 = reg293348 +} +reg293351 = reg293349 +} else { +reg293350 := False; +reg293351 = reg293350 +} +var reg293354 Obj +if reg293351 == True { +reg293352 := True; +reg293354 = reg293352 +} else { +reg293353 := False; +reg293354 = reg293353 +} +reg293356 = reg293354 +} else { +reg293355 := False; +reg293356 = reg293355 +} +if reg293356 == True { +reg293357 := PrimTail(V1477) +reg293358 := PrimHead(reg293357) +reg293359 := PrimCons(reg293358, V1476) +reg293360 := PrimTail(V1477) +reg293361 := PrimTail(reg293360) +reg293362 := PrimHead(reg293361) +__ctx.TailApply(__defun__shen_4extract__free__vars, reg293359, reg293362) +return +} else { +reg293364 := PrimIsPair(V1477) +var reg293407 Obj +if reg293364 == True { +reg293365 := MakeSymbol("let") +reg293366 := PrimHead(V1477) +reg293367 := PrimEqual(reg293365, reg293366) +var reg293402 Obj +if reg293367 == True { +reg293368 := PrimTail(V1477) +reg293369 := PrimIsPair(reg293368) +var reg293397 Obj +if reg293369 == True { +reg293370 := PrimTail(V1477) +reg293371 := PrimTail(reg293370) +reg293372 := PrimIsPair(reg293371) +var reg293392 Obj +if reg293372 == True { +reg293373 := PrimTail(V1477) +reg293374 := PrimTail(reg293373) +reg293375 := PrimTail(reg293374) +reg293376 := PrimIsPair(reg293375) +var reg293387 Obj +if reg293376 == True { +reg293377 := Nil; +reg293378 := PrimTail(V1477) +reg293379 := PrimTail(reg293378) +reg293380 := PrimTail(reg293379) +reg293381 := PrimTail(reg293380) +reg293382 := PrimEqual(reg293377, reg293381) +var reg293385 Obj +if reg293382 == True { +reg293383 := True; +reg293385 = reg293383 +} else { +reg293384 := False; +reg293385 = reg293384 +} +reg293387 = reg293385 +} else { +reg293386 := False; +reg293387 = reg293386 +} +var reg293390 Obj +if reg293387 == True { +reg293388 := True; +reg293390 = reg293388 +} else { +reg293389 := False; +reg293390 = reg293389 +} +reg293392 = reg293390 +} else { +reg293391 := False; +reg293392 = reg293391 +} +var reg293395 Obj +if reg293392 == True { +reg293393 := True; +reg293395 = reg293393 +} else { +reg293394 := False; +reg293395 = reg293394 +} +reg293397 = reg293395 +} else { +reg293396 := False; +reg293397 = reg293396 +} +var reg293400 Obj +if reg293397 == True { +reg293398 := True; +reg293400 = reg293398 +} else { +reg293399 := False; +reg293400 = reg293399 +} +reg293402 = reg293400 +} else { +reg293401 := False; +reg293402 = reg293401 +} +var reg293405 Obj +if reg293402 == True { +reg293403 := True; +reg293405 = reg293403 +} else { +reg293404 := False; +reg293405 = reg293404 +} +reg293407 = reg293405 +} else { +reg293406 := False; +reg293407 = reg293406 +} +if reg293407 == True { +reg293408 := PrimTail(V1477) +reg293409 := PrimTail(reg293408) +reg293410 := PrimHead(reg293409) +reg293411 := __e.Call(__defun__shen_4extract__free__vars, V1476, reg293410) +reg293412 := PrimTail(V1477) +reg293413 := PrimHead(reg293412) +reg293414 := PrimCons(reg293413, V1476) +reg293415 := PrimTail(V1477) +reg293416 := PrimTail(reg293415) +reg293417 := PrimTail(reg293416) +reg293418 := PrimHead(reg293417) +reg293419 := __e.Call(__defun__shen_4extract__free__vars, reg293414, reg293418) +__ctx.TailApply(__defun__union, reg293411, reg293419) +return +} else { +reg293421 := PrimIsPair(V1477) +if reg293421 == True { +reg293422 := PrimHead(V1477) +reg293423 := __e.Call(__defun__shen_4extract__free__vars, V1476, reg293422) +reg293424 := PrimTail(V1477) +reg293425 := __e.Call(__defun__shen_4extract__free__vars, V1476, reg293424) +__ctx.TailApply(__defun__union, reg293423, reg293425) +return +} else { +reg293427 := Nil; +__ctx.Return(reg293427) +return +} +} +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.extract_free_vars", value: __defun__shen_4extract__free__vars}) + +__defun__shen_4free__variable__warnings = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1482 := __args[0] +_ = V1482 +V1483 := __args[1] +_ = V1483 +reg293428 := Nil; +reg293429 := PrimEqual(reg293428, V1483) +if reg293429 == True { +reg293430 := MakeSymbol("_") +__ctx.Return(reg293430) +return +} else { +reg293431 := MakeString("error: the following variables are free in ") +reg293432 := MakeString(": ") +reg293433 := __e.Call(__defun__shen_4list__variables, V1483) +reg293434 := MakeString("") +reg293435 := MakeSymbol("shen.a") +reg293436 := __e.Call(__defun__shen_4app, reg293433, reg293434, reg293435) +reg293437 := PrimStringConcat(reg293432, reg293436) +reg293438 := MakeSymbol("shen.a") +reg293439 := __e.Call(__defun__shen_4app, V1482, reg293437, reg293438) +reg293440 := PrimStringConcat(reg293431, reg293439) +reg293441 := PrimSimpleError(reg293440) +__ctx.Return(reg293441) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.free_variable_warnings", value: __defun__shen_4free__variable__warnings}) + +__defun__shen_4list__variables = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1485 := __args[0] +_ = V1485 +reg293442 := PrimIsPair(V1485) +var reg293450 Obj +if reg293442 == True { +reg293443 := Nil; +reg293444 := PrimTail(V1485) +reg293445 := PrimEqual(reg293443, reg293444) +var reg293448 Obj +if reg293445 == True { +reg293446 := True; +reg293448 = reg293446 +} else { +reg293447 := False; +reg293448 = reg293447 +} +reg293450 = reg293448 +} else { +reg293449 := False; +reg293450 = reg293449 +} +if reg293450 == True { +reg293451 := PrimHead(V1485) +reg293452 := PrimStr(reg293451) +reg293453 := MakeString(".") +reg293454 := PrimStringConcat(reg293452, reg293453) +__ctx.Return(reg293454) +return +} else { +reg293455 := PrimIsPair(V1485) +if reg293455 == True { +reg293456 := PrimHead(V1485) +reg293457 := PrimStr(reg293456) +reg293458 := MakeString(", ") +reg293459 := PrimTail(V1485) +reg293460 := __e.Call(__defun__shen_4list__variables, reg293459) +reg293461 := PrimStringConcat(reg293458, reg293460) +reg293462 := PrimStringConcat(reg293457, reg293461) +__ctx.Return(reg293462) +return +} else { +reg293463 := MakeSymbol("shen.list_variables") +__ctx.TailApply(__defun__shen_4f__error, reg293463) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.list_variables", value: __defun__shen_4list__variables}) + +__defun__shen_4strip_1protect = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1487 := __args[0] +_ = V1487 +reg293465 := PrimIsPair(V1487) +var reg293489 Obj +if reg293465 == True { +reg293466 := PrimTail(V1487) +reg293467 := PrimIsPair(reg293466) +var reg293484 Obj +if reg293467 == True { +reg293468 := Nil; +reg293469 := PrimTail(V1487) +reg293470 := PrimTail(reg293469) +reg293471 := PrimEqual(reg293468, reg293470) +var reg293479 Obj +if reg293471 == True { +reg293472 := PrimHead(V1487) +reg293473 := MakeSymbol("protect") +reg293474 := PrimEqual(reg293472, reg293473) +var reg293477 Obj +if reg293474 == True { +reg293475 := True; +reg293477 = reg293475 +} else { +reg293476 := False; +reg293477 = reg293476 +} +reg293479 = reg293477 +} else { +reg293478 := False; +reg293479 = reg293478 +} +var reg293482 Obj +if reg293479 == True { +reg293480 := True; +reg293482 = reg293480 +} else { +reg293481 := False; +reg293482 = reg293481 +} +reg293484 = reg293482 +} else { +reg293483 := False; +reg293484 = reg293483 +} +var reg293487 Obj +if reg293484 == True { +reg293485 := True; +reg293487 = reg293485 +} else { +reg293486 := False; +reg293487 = reg293486 +} +reg293489 = reg293487 +} else { +reg293488 := False; +reg293489 = reg293488 +} +if reg293489 == True { +reg293490 := PrimTail(V1487) +reg293491 := PrimHead(reg293490) +__ctx.TailApply(__defun__shen_4strip_1protect, reg293491) +return +} else { +reg293493 := PrimIsPair(V1487) +if reg293493 == True { +reg293494 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4strip_1protect, Z) +return +}, 1) +__ctx.TailApply(__defun__map, reg293494, V1487) +return +} else { +__ctx.Return(V1487) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.strip-protect", value: __defun__shen_4strip_1protect}) + +__defun__shen_4linearise = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1489 := __args[0] +_ = V1489 +reg293497 := PrimIsPair(V1489) +var reg293513 Obj +if reg293497 == True { +reg293498 := PrimTail(V1489) +reg293499 := PrimIsPair(reg293498) +var reg293508 Obj +if reg293499 == True { +reg293500 := Nil; +reg293501 := PrimTail(V1489) +reg293502 := PrimTail(reg293501) +reg293503 := PrimEqual(reg293500, reg293502) +var reg293506 Obj +if reg293503 == True { +reg293504 := True; +reg293506 = reg293504 +} else { +reg293505 := False; +reg293506 = reg293505 +} +reg293508 = reg293506 +} else { +reg293507 := False; +reg293508 = reg293507 +} +var reg293511 Obj +if reg293508 == True { +reg293509 := True; +reg293511 = reg293509 +} else { +reg293510 := False; +reg293511 = reg293510 +} +reg293513 = reg293511 +} else { +reg293512 := False; +reg293513 = reg293512 +} +if reg293513 == True { +reg293514 := PrimHead(V1489) +reg293515 := __e.Call(__defun__shen_4flatten, reg293514) +reg293516 := PrimHead(V1489) +reg293517 := PrimTail(V1489) +reg293518 := PrimHead(reg293517) +__ctx.TailApply(__defun__shen_4linearise__help, reg293515, reg293516, reg293518) +return +} else { +reg293520 := MakeSymbol("shen.linearise") +__ctx.TailApply(__defun__shen_4f__error, reg293520) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.linearise", value: __defun__shen_4linearise}) + +__defun__shen_4flatten = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1491 := __args[0] +_ = V1491 +reg293522 := Nil; +reg293523 := PrimEqual(reg293522, V1491) +if reg293523 == True { +reg293524 := Nil; +__ctx.Return(reg293524) +return +} else { +reg293525 := PrimIsPair(V1491) +if reg293525 == True { +reg293526 := PrimHead(V1491) +reg293527 := __e.Call(__defun__shen_4flatten, reg293526) +reg293528 := PrimTail(V1491) +reg293529 := __e.Call(__defun__shen_4flatten, reg293528) +__ctx.TailApply(__defun__append, reg293527, reg293529) +return +} else { +reg293531 := Nil; +reg293532 := PrimCons(V1491, reg293531) +__ctx.Return(reg293532) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.flatten", value: __defun__shen_4flatten}) + +__defun__shen_4linearise__help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1495 := __args[0] +_ = V1495 +V1496 := __args[1] +_ = V1496 +V1497 := __args[2] +_ = V1497 +reg293533 := Nil; +reg293534 := PrimEqual(reg293533, V1495) +if reg293534 == True { +reg293535 := Nil; +reg293536 := PrimCons(V1497, reg293535) +reg293537 := PrimCons(V1496, reg293536) +__ctx.Return(reg293537) +return +} else { +reg293538 := PrimIsPair(V1495) +if reg293538 == True { +reg293539 := PrimHead(V1495) +reg293540 := PrimIsVariable(reg293539) +var reg293548 Obj +if reg293540 == True { +reg293541 := PrimHead(V1495) +reg293542 := PrimTail(V1495) +reg293543 := __e.Call(__defun__element_2, reg293541, reg293542) +var reg293546 Obj +if reg293543 == True { +reg293544 := True; +reg293546 = reg293544 +} else { +reg293545 := False; +reg293546 = reg293545 +} +reg293548 = reg293546 +} else { +reg293547 := False; +reg293548 = reg293547 +} +if reg293548 == True { +reg293549 := PrimHead(V1495) +reg293550 := __e.Call(__defun__gensym, reg293549) +Var := reg293550 +_ = Var +reg293551 := MakeSymbol("where") +reg293552 := MakeSymbol("=") +reg293553 := PrimHead(V1495) +reg293554 := Nil; +reg293555 := PrimCons(Var, reg293554) +reg293556 := PrimCons(reg293553, reg293555) +reg293557 := PrimCons(reg293552, reg293556) +reg293558 := Nil; +reg293559 := PrimCons(V1497, reg293558) +reg293560 := PrimCons(reg293557, reg293559) +reg293561 := PrimCons(reg293551, reg293560) +NewAction := reg293561 +_ = NewAction +reg293562 := PrimHead(V1495) +reg293563 := __e.Call(__defun__shen_4linearise__X, reg293562, Var, V1496) +NewPatts := reg293563 +_ = NewPatts +reg293564 := PrimTail(V1495) +__ctx.TailApply(__defun__shen_4linearise__help, reg293564, NewPatts, NewAction) +return +} else { +reg293566 := PrimTail(V1495) +__ctx.TailApply(__defun__shen_4linearise__help, reg293566, V1496, V1497) +return +} +} else { +reg293568 := MakeSymbol("shen.linearise_help") +__ctx.TailApply(__defun__shen_4f__error, reg293568) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.linearise_help", value: __defun__shen_4linearise__help}) + +__defun__shen_4linearise__X = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1510 := __args[0] +_ = V1510 +V1511 := __args[1] +_ = V1511 +V1512 := __args[2] +_ = V1512 +reg293570 := PrimEqual(V1512, V1510) +if reg293570 == True { +__ctx.Return(V1511) +return +} else { +reg293571 := PrimIsPair(V1512) +if reg293571 == True { +reg293572 := PrimHead(V1512) +reg293573 := __e.Call(__defun__shen_4linearise__X, V1510, V1511, reg293572) +L := reg293573 +_ = L +reg293574 := PrimHead(V1512) +reg293575 := PrimEqual(L, reg293574) +if reg293575 == True { +reg293576 := PrimHead(V1512) +reg293577 := PrimTail(V1512) +reg293578 := __e.Call(__defun__shen_4linearise__X, V1510, V1511, reg293577) +reg293579 := PrimCons(reg293576, reg293578) +__ctx.Return(reg293579) +return +} else { +reg293580 := PrimTail(V1512) +reg293581 := PrimCons(L, reg293580) +__ctx.Return(reg293581) +return +} +} else { +__ctx.Return(V1512) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.linearise_X", value: __defun__shen_4linearise__X}) + +__defun__shen_4aritycheck = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1515 := __args[0] +_ = V1515 +V1516 := __args[1] +_ = V1516 +reg293582 := PrimIsPair(V1516) +var reg293615 Obj +if reg293582 == True { +reg293583 := PrimHead(V1516) +reg293584 := PrimIsPair(reg293583) +var reg293610 Obj +if reg293584 == True { +reg293585 := PrimHead(V1516) +reg293586 := PrimTail(reg293585) +reg293587 := PrimIsPair(reg293586) +var reg293605 Obj +if reg293587 == True { +reg293588 := Nil; +reg293589 := PrimHead(V1516) +reg293590 := PrimTail(reg293589) +reg293591 := PrimTail(reg293590) +reg293592 := PrimEqual(reg293588, reg293591) +var reg293600 Obj +if reg293592 == True { +reg293593 := Nil; +reg293594 := PrimTail(V1516) +reg293595 := PrimEqual(reg293593, reg293594) +var reg293598 Obj +if reg293595 == True { +reg293596 := True; +reg293598 = reg293596 +} else { +reg293597 := False; +reg293598 = reg293597 +} +reg293600 = reg293598 +} else { +reg293599 := False; +reg293600 = reg293599 +} +var reg293603 Obj +if reg293600 == True { +reg293601 := True; +reg293603 = reg293601 +} else { +reg293602 := False; +reg293603 = reg293602 +} +reg293605 = reg293603 +} else { +reg293604 := False; +reg293605 = reg293604 +} +var reg293608 Obj +if reg293605 == True { +reg293606 := True; +reg293608 = reg293606 +} else { +reg293607 := False; +reg293608 = reg293607 +} +reg293610 = reg293608 +} else { +reg293609 := False; +reg293610 = reg293609 +} +var reg293613 Obj +if reg293610 == True { +reg293611 := True; +reg293613 = reg293611 +} else { +reg293612 := False; +reg293613 = reg293612 +} +reg293615 = reg293613 +} else { +reg293614 := False; +reg293615 = reg293614 +} +if reg293615 == True { +reg293616 := PrimHead(V1516) +reg293617 := PrimTail(reg293616) +reg293618 := PrimHead(reg293617) +reg293619 := __e.Call(__defun__shen_4aritycheck_1action, reg293618) +_ = reg293619 +reg293620 := __e.Call(__defun__arity, V1515) +reg293621 := PrimHead(V1516) +reg293622 := PrimHead(reg293621) +reg293623 := __e.Call(__defun__length, reg293622) +__ctx.TailApply(__defun__shen_4aritycheck_1name, V1515, reg293620, reg293623) +return +} else { +reg293625 := PrimIsPair(V1516) +var reg293685 Obj +if reg293625 == True { +reg293626 := PrimHead(V1516) +reg293627 := PrimIsPair(reg293626) +var reg293680 Obj +if reg293627 == True { +reg293628 := PrimHead(V1516) +reg293629 := PrimTail(reg293628) +reg293630 := PrimIsPair(reg293629) +var reg293675 Obj +if reg293630 == True { +reg293631 := Nil; +reg293632 := PrimHead(V1516) +reg293633 := PrimTail(reg293632) +reg293634 := PrimTail(reg293633) +reg293635 := PrimEqual(reg293631, reg293634) +var reg293670 Obj +if reg293635 == True { +reg293636 := PrimTail(V1516) +reg293637 := PrimIsPair(reg293636) +var reg293665 Obj +if reg293637 == True { +reg293638 := PrimTail(V1516) +reg293639 := PrimHead(reg293638) +reg293640 := PrimIsPair(reg293639) +var reg293660 Obj +if reg293640 == True { +reg293641 := PrimTail(V1516) +reg293642 := PrimHead(reg293641) +reg293643 := PrimTail(reg293642) +reg293644 := PrimIsPair(reg293643) +var reg293655 Obj +if reg293644 == True { +reg293645 := Nil; +reg293646 := PrimTail(V1516) +reg293647 := PrimHead(reg293646) +reg293648 := PrimTail(reg293647) +reg293649 := PrimTail(reg293648) +reg293650 := PrimEqual(reg293645, reg293649) +var reg293653 Obj +if reg293650 == True { +reg293651 := True; +reg293653 = reg293651 +} else { +reg293652 := False; +reg293653 = reg293652 +} +reg293655 = reg293653 +} else { +reg293654 := False; +reg293655 = reg293654 +} +var reg293658 Obj +if reg293655 == True { +reg293656 := True; +reg293658 = reg293656 +} else { +reg293657 := False; +reg293658 = reg293657 +} +reg293660 = reg293658 +} else { +reg293659 := False; +reg293660 = reg293659 +} +var reg293663 Obj +if reg293660 == True { +reg293661 := True; +reg293663 = reg293661 +} else { +reg293662 := False; +reg293663 = reg293662 +} +reg293665 = reg293663 +} else { +reg293664 := False; +reg293665 = reg293664 +} +var reg293668 Obj +if reg293665 == True { +reg293666 := True; +reg293668 = reg293666 +} else { +reg293667 := False; +reg293668 = reg293667 +} +reg293670 = reg293668 +} else { +reg293669 := False; +reg293670 = reg293669 +} +var reg293673 Obj +if reg293670 == True { +reg293671 := True; +reg293673 = reg293671 +} else { +reg293672 := False; +reg293673 = reg293672 +} +reg293675 = reg293673 +} else { +reg293674 := False; +reg293675 = reg293674 +} +var reg293678 Obj +if reg293675 == True { +reg293676 := True; +reg293678 = reg293676 +} else { +reg293677 := False; +reg293678 = reg293677 +} +reg293680 = reg293678 +} else { +reg293679 := False; +reg293680 = reg293679 +} +var reg293683 Obj +if reg293680 == True { +reg293681 := True; +reg293683 = reg293681 +} else { +reg293682 := False; +reg293683 = reg293682 +} +reg293685 = reg293683 +} else { +reg293684 := False; +reg293685 = reg293684 +} +if reg293685 == True { +reg293686 := PrimHead(V1516) +reg293687 := PrimHead(reg293686) +reg293688 := __e.Call(__defun__length, reg293687) +reg293689 := PrimTail(V1516) +reg293690 := PrimHead(reg293689) +reg293691 := PrimHead(reg293690) +reg293692 := __e.Call(__defun__length, reg293691) +reg293693 := PrimEqual(reg293688, reg293692) +if reg293693 == True { +reg293694 := PrimHead(V1516) +reg293695 := PrimTail(reg293694) +reg293696 := PrimHead(reg293695) +reg293697 := __e.Call(__defun__shen_4aritycheck_1action, reg293696) +_ = reg293697 +reg293698 := PrimTail(V1516) +__ctx.TailApply(__defun__shen_4aritycheck, V1515, reg293698) +return +} else { +reg293700 := MakeString("arity error in ") +reg293701 := MakeString("\n") +reg293702 := MakeSymbol("shen.a") +reg293703 := __e.Call(__defun__shen_4app, V1515, reg293701, reg293702) +reg293704 := PrimStringConcat(reg293700, reg293703) +reg293705 := PrimSimpleError(reg293704) +__ctx.Return(reg293705) +return +} +} else { +reg293706 := MakeSymbol("shen.aritycheck") +__ctx.TailApply(__defun__shen_4f__error, reg293706) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.aritycheck", value: __defun__shen_4aritycheck}) + +__defun__shen_4aritycheck_1name = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1529 := __args[0] +_ = V1529 +V1530 := __args[1] +_ = V1530 +V1531 := __args[2] +_ = V1531 +reg293708 := MakeNumber(-1) +reg293709 := PrimEqual(reg293708, V1530) +if reg293709 == True { +__ctx.Return(V1531) +return +} else { +reg293710 := PrimEqual(V1531, V1530) +if reg293710 == True { +__ctx.Return(V1531) +return +} else { +reg293711 := MakeString("\nwarning: changing the arity of ") +reg293712 := MakeString(" can cause errors.\n") +reg293713 := MakeSymbol("shen.a") +reg293714 := __e.Call(__defun__shen_4app, V1529, reg293712, reg293713) +reg293715 := PrimStringConcat(reg293711, reg293714) +reg293716 := __e.Call(__defun__stoutput) +reg293717 := __e.Call(__defun__shen_4prhush, reg293715, reg293716) +_ = reg293717 +__ctx.Return(V1531) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.aritycheck-name", value: __defun__shen_4aritycheck_1name}) + +__defun__shen_4aritycheck_1action = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1537 := __args[0] +_ = V1537 +reg293718 := PrimIsPair(V1537) +if reg293718 == True { +reg293719 := PrimHead(V1537) +reg293720 := PrimTail(V1537) +reg293721 := __e.Call(__defun__shen_4aah, reg293719, reg293720) +_ = reg293721 +reg293722 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Y := __args[0] +_ = Y +__ctx.TailApply(__defun__shen_4aritycheck_1action, Y) +return +}, 1) +__ctx.TailApply(__defun__shen_4for_1each, reg293722, V1537) +return +} else { +reg293725 := MakeSymbol("shen.skip") +__ctx.Return(reg293725) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.aritycheck-action", value: __defun__shen_4aritycheck_1action}) + +__defun__shen_4aah = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1540 := __args[0] +_ = V1540 +V1541 := __args[1] +_ = V1541 +reg293726 := __e.Call(__defun__arity, V1540) +Arity := reg293726 +_ = Arity +reg293727 := __e.Call(__defun__length, V1541) +Len := reg293727 +_ = Len +reg293728 := MakeNumber(-1) +reg293729 := PrimGreatThan(Arity, reg293728) +var reg293735 Obj +if reg293729 == True { +reg293730 := PrimGreatThan(Len, Arity) +var reg293733 Obj +if reg293730 == True { +reg293731 := True; +reg293733 = reg293731 +} else { +reg293732 := False; +reg293733 = reg293732 +} +reg293735 = reg293733 +} else { +reg293734 := False; +reg293735 = reg293734 +} +if reg293735 == True { +reg293736 := MakeString("warning: ") +reg293737 := MakeString(" might not like ") +reg293738 := MakeString(" argument") +reg293739 := MakeNumber(1) +reg293740 := PrimGreatThan(Len, reg293739) +var reg293743 Obj +if reg293740 == True { +reg293741 := MakeString("s") +reg293743 = reg293741 +} else { +reg293742 := MakeString("") +reg293743 = reg293742 +} +reg293744 := MakeString(".\n") +reg293745 := MakeSymbol("shen.a") +reg293746 := __e.Call(__defun__shen_4app, reg293743, reg293744, reg293745) +reg293747 := PrimStringConcat(reg293738, reg293746) +reg293748 := MakeSymbol("shen.a") +reg293749 := __e.Call(__defun__shen_4app, Len, reg293747, reg293748) +reg293750 := PrimStringConcat(reg293737, reg293749) +reg293751 := MakeSymbol("shen.a") +reg293752 := __e.Call(__defun__shen_4app, V1540, reg293750, reg293751) +reg293753 := PrimStringConcat(reg293736, reg293752) +reg293754 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__shen_4prhush, reg293753, reg293754) +return +} else { +reg293756 := MakeSymbol("shen.skip") +__ctx.Return(reg293756) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.aah", value: __defun__shen_4aah}) + +__defun__shen_4abstract__rule = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1543 := __args[0] +_ = V1543 +reg293757 := PrimIsPair(V1543) +var reg293773 Obj +if reg293757 == True { +reg293758 := PrimTail(V1543) +reg293759 := PrimIsPair(reg293758) +var reg293768 Obj +if reg293759 == True { +reg293760 := Nil; +reg293761 := PrimTail(V1543) +reg293762 := PrimTail(reg293761) +reg293763 := PrimEqual(reg293760, reg293762) +var reg293766 Obj +if reg293763 == True { +reg293764 := True; +reg293766 = reg293764 +} else { +reg293765 := False; +reg293766 = reg293765 +} +reg293768 = reg293766 +} else { +reg293767 := False; +reg293768 = reg293767 +} +var reg293771 Obj +if reg293768 == True { +reg293769 := True; +reg293771 = reg293769 +} else { +reg293770 := False; +reg293771 = reg293770 +} +reg293773 = reg293771 +} else { +reg293772 := False; +reg293773 = reg293772 +} +if reg293773 == True { +reg293774 := PrimHead(V1543) +reg293775 := PrimTail(V1543) +reg293776 := PrimHead(reg293775) +__ctx.TailApply(__defun__shen_4abstraction__build, reg293774, reg293776) +return +} else { +reg293778 := MakeSymbol("shen.abstract_rule") +__ctx.TailApply(__defun__shen_4f__error, reg293778) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.abstract_rule", value: __defun__shen_4abstract__rule}) + +__defun__shen_4abstraction__build = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1546 := __args[0] +_ = V1546 +V1547 := __args[1] +_ = V1547 +reg293780 := Nil; +reg293781 := PrimEqual(reg293780, V1546) +if reg293781 == True { +__ctx.Return(V1547) +return +} else { +reg293782 := PrimIsPair(V1546) +if reg293782 == True { +reg293783 := MakeSymbol("/.") +reg293784 := PrimHead(V1546) +reg293785 := PrimTail(V1546) +reg293786 := __e.Call(__defun__shen_4abstraction__build, reg293785, V1547) +reg293787 := Nil; +reg293788 := PrimCons(reg293786, reg293787) +reg293789 := PrimCons(reg293784, reg293788) +reg293790 := PrimCons(reg293783, reg293789) +__ctx.Return(reg293790) +return +} else { +reg293791 := MakeSymbol("shen.abstraction_build") +__ctx.TailApply(__defun__shen_4f__error, reg293791) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.abstraction_build", value: __defun__shen_4abstraction__build}) + +__defun__shen_4parameters = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1549 := __args[0] +_ = V1549 +reg293793 := MakeNumber(0) +reg293794 := PrimEqual(reg293793, V1549) +if reg293794 == True { +reg293795 := Nil; +__ctx.Return(reg293795) +return +} else { +reg293796 := MakeSymbol("V") +reg293797 := __e.Call(__defun__gensym, reg293796) +reg293798 := MakeNumber(1) +reg293799 := PrimNumberSubtract(V1549, reg293798) +reg293800 := __e.Call(__defun__shen_4parameters, reg293799) +reg293801 := PrimCons(reg293797, reg293800) +__ctx.Return(reg293801) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.parameters", value: __defun__shen_4parameters}) + +__defun__shen_4application__build = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1552 := __args[0] +_ = V1552 +V1553 := __args[1] +_ = V1553 +reg293802 := Nil; +reg293803 := PrimEqual(reg293802, V1552) +if reg293803 == True { +__ctx.Return(V1553) +return +} else { +reg293804 := PrimIsPair(V1552) +if reg293804 == True { +reg293805 := PrimTail(V1552) +reg293806 := PrimHead(V1552) +reg293807 := Nil; +reg293808 := PrimCons(reg293806, reg293807) +reg293809 := PrimCons(V1553, reg293808) +__ctx.TailApply(__defun__shen_4application__build, reg293805, reg293809) +return +} else { +reg293811 := MakeSymbol("shen.application_build") +__ctx.TailApply(__defun__shen_4f__error, reg293811) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.application_build", value: __defun__shen_4application__build}) + +__defun__shen_4compile__to__kl = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1556 := __args[0] +_ = V1556 +V1557 := __args[1] +_ = V1557 +reg293813 := PrimIsPair(V1557) +var reg293829 Obj +if reg293813 == True { +reg293814 := PrimTail(V1557) +reg293815 := PrimIsPair(reg293814) +var reg293824 Obj +if reg293815 == True { +reg293816 := Nil; +reg293817 := PrimTail(V1557) +reg293818 := PrimTail(reg293817) +reg293819 := PrimEqual(reg293816, reg293818) +var reg293822 Obj +if reg293819 == True { +reg293820 := True; +reg293822 = reg293820 +} else { +reg293821 := False; +reg293822 = reg293821 +} +reg293824 = reg293822 +} else { +reg293823 := False; +reg293824 = reg293823 +} +var reg293827 Obj +if reg293824 == True { +reg293825 := True; +reg293827 = reg293825 +} else { +reg293826 := False; +reg293827 = reg293826 +} +reg293829 = reg293827 +} else { +reg293828 := False; +reg293829 = reg293828 +} +if reg293829 == True { +reg293830 := PrimHead(V1557) +reg293831 := __e.Call(__defun__length, reg293830) +reg293832 := __e.Call(__defun__shen_4store_1arity, V1556, reg293831) +Arity := reg293832 +_ = Arity +reg293833 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4reduce, X) +return +}, 1) +reg293835 := PrimTail(V1557) +reg293836 := PrimHead(reg293835) +reg293837 := __e.Call(__defun__map, reg293833, reg293836) +Reduce := reg293837 +_ = Reduce +reg293838 := PrimHead(V1557) +reg293839 := __e.Call(__defun__shen_4cond_1expression, V1556, reg293838, Reduce) +CondExpression := reg293839 +_ = CondExpression +reg293840 := MakeSymbol("shen.*optimise*") +reg293841 := PrimValue(reg293840) +var reg293846 Obj +if reg293841 == True { +reg293842 := __e.Call(__defun__shen_4get_1type, V1556) +reg293843 := PrimHead(V1557) +reg293844 := __e.Call(__defun__shen_4typextable, reg293842, reg293843) +reg293846 = reg293844 +} else { +reg293845 := MakeSymbol("shen.skip") +reg293846 = reg293845 +} +TypeTable := reg293846 +_ = TypeTable +reg293847 := MakeSymbol("shen.*optimise*") +reg293848 := PrimValue(reg293847) +var reg293851 Obj +if reg293848 == True { +reg293849 := PrimHead(V1557) +reg293850 := __e.Call(__defun__shen_4assign_1types, reg293849, TypeTable, CondExpression) +reg293851 = reg293850 +} else { +reg293851 = CondExpression +} +TypedCondExpression := reg293851 +_ = TypedCondExpression +reg293852 := MakeSymbol("defun") +reg293853 := PrimHead(V1557) +reg293854 := Nil; +reg293855 := PrimCons(TypedCondExpression, reg293854) +reg293856 := PrimCons(reg293853, reg293855) +reg293857 := PrimCons(V1556, reg293856) +reg293858 := PrimCons(reg293852, reg293857) +__ctx.Return(reg293858) +return +} else { +reg293859 := MakeSymbol("shen.compile_to_kl") +__ctx.TailApply(__defun__shen_4f__error, reg293859) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.compile_to_kl", value: __defun__shen_4compile__to__kl}) + +__defun__shen_4get_1type = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1563 := __args[0] +_ = V1563 +reg293861 := PrimIsPair(V1563) +if reg293861 == True { +reg293862 := MakeSymbol("shen.skip") +__ctx.Return(reg293862) +return +} else { +reg293863 := MakeSymbol("shen.*signedfuncs*") +reg293864 := PrimValue(reg293863) +reg293865 := __e.Call(__defun__assoc, V1563, reg293864) +FType := reg293865 +_ = FType +reg293866 := __e.Call(__defun__empty_2, FType) +if reg293866 == True { +reg293867 := MakeSymbol("shen.skip") +__ctx.Return(reg293867) +return +} else { +reg293868 := PrimTail(FType) +__ctx.Return(reg293868) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.get-type", value: __defun__shen_4get_1type}) + +__defun__shen_4typextable = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1574 := __args[0] +_ = V1574 +V1575 := __args[1] +_ = V1575 +reg293869 := PrimIsPair(V1574) +var reg293909 Obj +if reg293869 == True { +reg293870 := PrimTail(V1574) +reg293871 := PrimIsPair(reg293870) +var reg293904 Obj +if reg293871 == True { +reg293872 := MakeSymbol("-->") +reg293873 := PrimTail(V1574) +reg293874 := PrimHead(reg293873) +reg293875 := PrimEqual(reg293872, reg293874) +var reg293899 Obj +if reg293875 == True { +reg293876 := PrimTail(V1574) +reg293877 := PrimTail(reg293876) +reg293878 := PrimIsPair(reg293877) +var reg293894 Obj +if reg293878 == True { +reg293879 := Nil; +reg293880 := PrimTail(V1574) +reg293881 := PrimTail(reg293880) +reg293882 := PrimTail(reg293881) +reg293883 := PrimEqual(reg293879, reg293882) +var reg293889 Obj +if reg293883 == True { +reg293884 := PrimIsPair(V1575) +var reg293887 Obj +if reg293884 == True { +reg293885 := True; +reg293887 = reg293885 +} else { +reg293886 := False; +reg293887 = reg293886 +} +reg293889 = reg293887 +} else { +reg293888 := False; +reg293889 = reg293888 +} +var reg293892 Obj +if reg293889 == True { +reg293890 := True; +reg293892 = reg293890 +} else { +reg293891 := False; +reg293892 = reg293891 +} +reg293894 = reg293892 +} else { +reg293893 := False; +reg293894 = reg293893 +} +var reg293897 Obj +if reg293894 == True { +reg293895 := True; +reg293897 = reg293895 +} else { +reg293896 := False; +reg293897 = reg293896 +} +reg293899 = reg293897 +} else { +reg293898 := False; +reg293899 = reg293898 +} +var reg293902 Obj +if reg293899 == True { +reg293900 := True; +reg293902 = reg293900 +} else { +reg293901 := False; +reg293902 = reg293901 +} +reg293904 = reg293902 +} else { +reg293903 := False; +reg293904 = reg293903 +} +var reg293907 Obj +if reg293904 == True { +reg293905 := True; +reg293907 = reg293905 +} else { +reg293906 := False; +reg293907 = reg293906 +} +reg293909 = reg293907 +} else { +reg293908 := False; +reg293909 = reg293908 +} +if reg293909 == True { +reg293910 := PrimHead(V1574) +reg293911 := PrimIsVariable(reg293910) +if reg293911 == True { +reg293912 := PrimTail(V1574) +reg293913 := PrimTail(reg293912) +reg293914 := PrimHead(reg293913) +reg293915 := PrimTail(V1575) +__ctx.TailApply(__defun__shen_4typextable, reg293914, reg293915) +return +} else { +reg293917 := PrimHead(V1575) +reg293918 := PrimHead(V1574) +reg293919 := PrimCons(reg293917, reg293918) +reg293920 := PrimTail(V1574) +reg293921 := PrimTail(reg293920) +reg293922 := PrimHead(reg293921) +reg293923 := PrimTail(V1575) +reg293924 := __e.Call(__defun__shen_4typextable, reg293922, reg293923) +reg293925 := PrimCons(reg293919, reg293924) +__ctx.Return(reg293925) +return +} +} else { +reg293926 := Nil; +__ctx.Return(reg293926) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.typextable", value: __defun__shen_4typextable}) + +__defun__shen_4assign_1types = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1579 := __args[0] +_ = V1579 +V1580 := __args[1] +_ = V1580 +V1581 := __args[2] +_ = V1581 +reg293927 := PrimIsPair(V1581) +var reg293970 Obj +if reg293927 == True { +reg293928 := MakeSymbol("let") +reg293929 := PrimHead(V1581) +reg293930 := PrimEqual(reg293928, reg293929) +var reg293965 Obj +if reg293930 == True { +reg293931 := PrimTail(V1581) +reg293932 := PrimIsPair(reg293931) +var reg293960 Obj +if reg293932 == True { +reg293933 := PrimTail(V1581) +reg293934 := PrimTail(reg293933) +reg293935 := PrimIsPair(reg293934) +var reg293955 Obj +if reg293935 == True { +reg293936 := PrimTail(V1581) +reg293937 := PrimTail(reg293936) +reg293938 := PrimTail(reg293937) +reg293939 := PrimIsPair(reg293938) +var reg293950 Obj +if reg293939 == True { +reg293940 := Nil; +reg293941 := PrimTail(V1581) +reg293942 := PrimTail(reg293941) +reg293943 := PrimTail(reg293942) +reg293944 := PrimTail(reg293943) +reg293945 := PrimEqual(reg293940, reg293944) +var reg293948 Obj +if reg293945 == True { +reg293946 := True; +reg293948 = reg293946 +} else { +reg293947 := False; +reg293948 = reg293947 +} +reg293950 = reg293948 +} else { +reg293949 := False; +reg293950 = reg293949 +} +var reg293953 Obj +if reg293950 == True { +reg293951 := True; +reg293953 = reg293951 +} else { +reg293952 := False; +reg293953 = reg293952 +} +reg293955 = reg293953 +} else { +reg293954 := False; +reg293955 = reg293954 +} +var reg293958 Obj +if reg293955 == True { +reg293956 := True; +reg293958 = reg293956 +} else { +reg293957 := False; +reg293958 = reg293957 +} +reg293960 = reg293958 +} else { +reg293959 := False; +reg293960 = reg293959 +} +var reg293963 Obj +if reg293960 == True { +reg293961 := True; +reg293963 = reg293961 +} else { +reg293962 := False; +reg293963 = reg293962 +} +reg293965 = reg293963 +} else { +reg293964 := False; +reg293965 = reg293964 +} +var reg293968 Obj +if reg293965 == True { +reg293966 := True; +reg293968 = reg293966 +} else { +reg293967 := False; +reg293968 = reg293967 +} +reg293970 = reg293968 +} else { +reg293969 := False; +reg293970 = reg293969 +} +if reg293970 == True { +reg293971 := MakeSymbol("let") +reg293972 := PrimTail(V1581) +reg293973 := PrimHead(reg293972) +reg293974 := PrimTail(V1581) +reg293975 := PrimTail(reg293974) +reg293976 := PrimHead(reg293975) +reg293977 := __e.Call(__defun__shen_4assign_1types, V1579, V1580, reg293976) +reg293978 := PrimTail(V1581) +reg293979 := PrimHead(reg293978) +reg293980 := PrimCons(reg293979, V1579) +reg293981 := PrimTail(V1581) +reg293982 := PrimTail(reg293981) +reg293983 := PrimTail(reg293982) +reg293984 := PrimHead(reg293983) +reg293985 := __e.Call(__defun__shen_4assign_1types, reg293980, V1580, reg293984) +reg293986 := Nil; +reg293987 := PrimCons(reg293985, reg293986) +reg293988 := PrimCons(reg293977, reg293987) +reg293989 := PrimCons(reg293973, reg293988) +reg293990 := PrimCons(reg293971, reg293989) +__ctx.Return(reg293990) +return +} else { +reg293991 := PrimIsPair(V1581) +var reg294024 Obj +if reg293991 == True { +reg293992 := MakeSymbol("lambda") +reg293993 := PrimHead(V1581) +reg293994 := PrimEqual(reg293992, reg293993) +var reg294019 Obj +if reg293994 == True { +reg293995 := PrimTail(V1581) +reg293996 := PrimIsPair(reg293995) +var reg294014 Obj +if reg293996 == True { +reg293997 := PrimTail(V1581) +reg293998 := PrimTail(reg293997) +reg293999 := PrimIsPair(reg293998) +var reg294009 Obj +if reg293999 == True { +reg294000 := Nil; +reg294001 := PrimTail(V1581) +reg294002 := PrimTail(reg294001) +reg294003 := PrimTail(reg294002) +reg294004 := PrimEqual(reg294000, reg294003) +var reg294007 Obj +if reg294004 == True { +reg294005 := True; +reg294007 = reg294005 +} else { +reg294006 := False; +reg294007 = reg294006 +} +reg294009 = reg294007 +} else { +reg294008 := False; +reg294009 = reg294008 +} +var reg294012 Obj +if reg294009 == True { +reg294010 := True; +reg294012 = reg294010 +} else { +reg294011 := False; +reg294012 = reg294011 +} +reg294014 = reg294012 +} else { +reg294013 := False; +reg294014 = reg294013 +} +var reg294017 Obj +if reg294014 == True { +reg294015 := True; +reg294017 = reg294015 +} else { +reg294016 := False; +reg294017 = reg294016 +} +reg294019 = reg294017 +} else { +reg294018 := False; +reg294019 = reg294018 +} +var reg294022 Obj +if reg294019 == True { +reg294020 := True; +reg294022 = reg294020 +} else { +reg294021 := False; +reg294022 = reg294021 +} +reg294024 = reg294022 +} else { +reg294023 := False; +reg294024 = reg294023 +} +if reg294024 == True { +reg294025 := MakeSymbol("lambda") +reg294026 := PrimTail(V1581) +reg294027 := PrimHead(reg294026) +reg294028 := PrimTail(V1581) +reg294029 := PrimHead(reg294028) +reg294030 := PrimCons(reg294029, V1579) +reg294031 := PrimTail(V1581) +reg294032 := PrimTail(reg294031) +reg294033 := PrimHead(reg294032) +reg294034 := __e.Call(__defun__shen_4assign_1types, reg294030, V1580, reg294033) +reg294035 := Nil; +reg294036 := PrimCons(reg294034, reg294035) +reg294037 := PrimCons(reg294027, reg294036) +reg294038 := PrimCons(reg294025, reg294037) +__ctx.Return(reg294038) +return +} else { +reg294039 := PrimIsPair(V1581) +var reg294047 Obj +if reg294039 == True { +reg294040 := MakeSymbol("cond") +reg294041 := PrimHead(V1581) +reg294042 := PrimEqual(reg294040, reg294041) +var reg294045 Obj +if reg294042 == True { +reg294043 := True; +reg294045 = reg294043 +} else { +reg294044 := False; +reg294045 = reg294044 +} +reg294047 = reg294045 +} else { +reg294046 := False; +reg294047 = reg294046 +} +if reg294047 == True { +reg294048 := MakeSymbol("cond") +reg294049 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Y := __args[0] +_ = Y +reg294050 := PrimHead(Y) +reg294051 := __e.Call(__defun__shen_4assign_1types, V1579, V1580, reg294050) +reg294052 := PrimTail(Y) +reg294053 := PrimHead(reg294052) +reg294054 := __e.Call(__defun__shen_4assign_1types, V1579, V1580, reg294053) +reg294055 := Nil; +reg294056 := PrimCons(reg294054, reg294055) +reg294057 := PrimCons(reg294051, reg294056) +__ctx.Return(reg294057) +return +}, 1) +reg294058 := PrimTail(V1581) +reg294059 := __e.Call(__defun__map, reg294049, reg294058) +reg294060 := PrimCons(reg294048, reg294059) +__ctx.Return(reg294060) +return +} else { +reg294061 := PrimIsPair(V1581) +if reg294061 == True { +reg294062 := PrimHead(V1581) +reg294063 := __e.Call(__defun__shen_4get_1type, reg294062) +reg294064 := PrimTail(V1581) +reg294065 := __e.Call(__defun__shen_4typextable, reg294063, reg294064) +NewTable := reg294065 +_ = NewTable +reg294066 := PrimHead(V1581) +reg294067 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Y := __args[0] +_ = Y +reg294068 := __e.Call(__defun__append, V1580, NewTable) +__ctx.TailApply(__defun__shen_4assign_1types, V1579, reg294068, Y) +return +}, 1) +reg294070 := PrimTail(V1581) +reg294071 := __e.Call(__defun__map, reg294067, reg294070) +reg294072 := PrimCons(reg294066, reg294071) +__ctx.Return(reg294072) +return +} else { +reg294073 := __e.Call(__defun__assoc, V1581, V1580) +AtomType := reg294073 +_ = AtomType +reg294074 := PrimIsPair(AtomType) +if reg294074 == True { +reg294075 := MakeSymbol("type") +reg294076 := PrimTail(AtomType) +reg294077 := Nil; +reg294078 := PrimCons(reg294076, reg294077) +reg294079 := PrimCons(V1581, reg294078) +reg294080 := PrimCons(reg294075, reg294079) +__ctx.Return(reg294080) +return +} else { +reg294081 := __e.Call(__defun__element_2, V1581, V1579) +if reg294081 == True { +__ctx.Return(V1581) +return +} else { +__ctx.TailApply(__defun__shen_4atom_1type, V1581) +return +} +} +} +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.assign-types", value: __defun__shen_4assign_1types}) + +__defun__shen_4atom_1type = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1583 := __args[0] +_ = V1583 +reg294083 := PrimIsString(V1583) +if reg294083 == True { +reg294084 := MakeSymbol("type") +reg294085 := MakeSymbol("string") +reg294086 := Nil; +reg294087 := PrimCons(reg294085, reg294086) +reg294088 := PrimCons(V1583, reg294087) +reg294089 := PrimCons(reg294084, reg294088) +__ctx.Return(reg294089) +return +} else { +reg294090 := PrimIsNumber(V1583) +if reg294090 == True { +reg294091 := MakeSymbol("type") +reg294092 := MakeSymbol("number") +reg294093 := Nil; +reg294094 := PrimCons(reg294092, reg294093) +reg294095 := PrimCons(V1583, reg294094) +reg294096 := PrimCons(reg294091, reg294095) +__ctx.Return(reg294096) +return +} else { +reg294097 := __e.Call(__defun__boolean_2, V1583) +if reg294097 == True { +reg294098 := MakeSymbol("type") +reg294099 := MakeSymbol("boolean") +reg294100 := Nil; +reg294101 := PrimCons(reg294099, reg294100) +reg294102 := PrimCons(V1583, reg294101) +reg294103 := PrimCons(reg294098, reg294102) +__ctx.Return(reg294103) +return +} else { +reg294104 := PrimIsSymbol(V1583) +if reg294104 == True { +reg294105 := MakeSymbol("type") +reg294106 := MakeSymbol("symbol") +reg294107 := Nil; +reg294108 := PrimCons(reg294106, reg294107) +reg294109 := PrimCons(V1583, reg294108) +reg294110 := PrimCons(reg294105, reg294109) +__ctx.Return(reg294110) +return +} else { +__ctx.Return(V1583) +return +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.atom-type", value: __defun__shen_4atom_1type}) + +__defun__shen_4store_1arity = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1588 := __args[0] +_ = V1588 +V1589 := __args[1] +_ = V1589 +reg294111 := MakeSymbol("shen.*installing-kl*") +reg294112 := PrimValue(reg294111) +if reg294112 == True { +reg294113 := MakeSymbol("shen.skip") +__ctx.Return(reg294113) +return +} else { +reg294114 := MakeSymbol("arity") +reg294115 := MakeSymbol("*property-vector*") +reg294116 := PrimValue(reg294115) +__ctx.TailApply(__defun__put, V1588, reg294114, V1589, reg294116) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.store-arity", value: __defun__shen_4store_1arity}) + +__defun__shen_4reduce = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1591 := __args[0] +_ = V1591 +reg294118 := MakeSymbol("shen.*teststack*") +reg294119 := Nil; +reg294120 := PrimSet(reg294118, reg294119) +_ = reg294120 +reg294121 := __e.Call(__defun__shen_4reduce__help, V1591) +Result := reg294121 +_ = Result +reg294122 := MakeSymbol(":") +reg294123 := MakeSymbol("shen.tests") +reg294124 := MakeSymbol("shen.*teststack*") +reg294125 := PrimValue(reg294124) +reg294126 := __e.Call(__defun__reverse, reg294125) +reg294127 := PrimCons(reg294123, reg294126) +reg294128 := PrimCons(reg294122, reg294127) +reg294129 := Nil; +reg294130 := PrimCons(Result, reg294129) +reg294131 := PrimCons(reg294128, reg294130) +__ctx.Return(reg294131) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.reduce", value: __defun__shen_4reduce}) + +__defun__shen_4reduce__help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1593 := __args[0] +_ = V1593 +reg294132 := PrimIsPair(V1593) +var reg294246 Obj +if reg294132 == True { +reg294133 := PrimHead(V1593) +reg294134 := PrimIsPair(reg294133) +var reg294241 Obj +if reg294134 == True { +reg294135 := MakeSymbol("/.") +reg294136 := PrimHead(V1593) +reg294137 := PrimHead(reg294136) +reg294138 := PrimEqual(reg294135, reg294137) +var reg294236 Obj +if reg294138 == True { +reg294139 := PrimHead(V1593) +reg294140 := PrimTail(reg294139) +reg294141 := PrimIsPair(reg294140) +var reg294231 Obj +if reg294141 == True { +reg294142 := PrimHead(V1593) +reg294143 := PrimTail(reg294142) +reg294144 := PrimHead(reg294143) +reg294145 := PrimIsPair(reg294144) +var reg294226 Obj +if reg294145 == True { +reg294146 := MakeSymbol("cons") +reg294147 := PrimHead(V1593) +reg294148 := PrimTail(reg294147) +reg294149 := PrimHead(reg294148) +reg294150 := PrimHead(reg294149) +reg294151 := PrimEqual(reg294146, reg294150) +var reg294221 Obj +if reg294151 == True { +reg294152 := PrimHead(V1593) +reg294153 := PrimTail(reg294152) +reg294154 := PrimHead(reg294153) +reg294155 := PrimTail(reg294154) +reg294156 := PrimIsPair(reg294155) +var reg294216 Obj +if reg294156 == True { +reg294157 := PrimHead(V1593) +reg294158 := PrimTail(reg294157) +reg294159 := PrimHead(reg294158) +reg294160 := PrimTail(reg294159) +reg294161 := PrimTail(reg294160) +reg294162 := PrimIsPair(reg294161) +var reg294211 Obj +if reg294162 == True { +reg294163 := Nil; +reg294164 := PrimHead(V1593) +reg294165 := PrimTail(reg294164) +reg294166 := PrimHead(reg294165) +reg294167 := PrimTail(reg294166) +reg294168 := PrimTail(reg294167) +reg294169 := PrimTail(reg294168) +reg294170 := PrimEqual(reg294163, reg294169) +var reg294206 Obj +if reg294170 == True { +reg294171 := PrimHead(V1593) +reg294172 := PrimTail(reg294171) +reg294173 := PrimTail(reg294172) +reg294174 := PrimIsPair(reg294173) +var reg294201 Obj +if reg294174 == True { +reg294175 := Nil; +reg294176 := PrimHead(V1593) +reg294177 := PrimTail(reg294176) +reg294178 := PrimTail(reg294177) +reg294179 := PrimTail(reg294178) +reg294180 := PrimEqual(reg294175, reg294179) +var reg294196 Obj +if reg294180 == True { +reg294181 := PrimTail(V1593) +reg294182 := PrimIsPair(reg294181) +var reg294191 Obj +if reg294182 == True { +reg294183 := Nil; +reg294184 := PrimTail(V1593) +reg294185 := PrimTail(reg294184) +reg294186 := PrimEqual(reg294183, reg294185) +var reg294189 Obj +if reg294186 == True { +reg294187 := True; +reg294189 = reg294187 +} else { +reg294188 := False; +reg294189 = reg294188 +} +reg294191 = reg294189 +} else { +reg294190 := False; +reg294191 = reg294190 +} +var reg294194 Obj +if reg294191 == True { +reg294192 := True; +reg294194 = reg294192 +} else { +reg294193 := False; +reg294194 = reg294193 +} +reg294196 = reg294194 +} else { +reg294195 := False; +reg294196 = reg294195 +} +var reg294199 Obj +if reg294196 == True { +reg294197 := True; +reg294199 = reg294197 +} else { +reg294198 := False; +reg294199 = reg294198 +} +reg294201 = reg294199 +} else { +reg294200 := False; +reg294201 = reg294200 +} +var reg294204 Obj +if reg294201 == True { +reg294202 := True; +reg294204 = reg294202 +} else { +reg294203 := False; +reg294204 = reg294203 +} +reg294206 = reg294204 +} else { +reg294205 := False; +reg294206 = reg294205 +} +var reg294209 Obj +if reg294206 == True { +reg294207 := True; +reg294209 = reg294207 +} else { +reg294208 := False; +reg294209 = reg294208 +} +reg294211 = reg294209 +} else { +reg294210 := False; +reg294211 = reg294210 +} +var reg294214 Obj +if reg294211 == True { +reg294212 := True; +reg294214 = reg294212 +} else { +reg294213 := False; +reg294214 = reg294213 +} +reg294216 = reg294214 +} else { +reg294215 := False; +reg294216 = reg294215 +} +var reg294219 Obj +if reg294216 == True { +reg294217 := True; +reg294219 = reg294217 +} else { +reg294218 := False; +reg294219 = reg294218 +} +reg294221 = reg294219 +} else { +reg294220 := False; +reg294221 = reg294220 +} +var reg294224 Obj +if reg294221 == True { +reg294222 := True; +reg294224 = reg294222 +} else { +reg294223 := False; +reg294224 = reg294223 +} +reg294226 = reg294224 +} else { +reg294225 := False; +reg294226 = reg294225 +} +var reg294229 Obj +if reg294226 == True { +reg294227 := True; +reg294229 = reg294227 +} else { +reg294228 := False; +reg294229 = reg294228 +} +reg294231 = reg294229 +} else { +reg294230 := False; +reg294231 = reg294230 +} +var reg294234 Obj +if reg294231 == True { +reg294232 := True; +reg294234 = reg294232 +} else { +reg294233 := False; +reg294234 = reg294233 +} +reg294236 = reg294234 +} else { +reg294235 := False; +reg294236 = reg294235 +} +var reg294239 Obj +if reg294236 == True { +reg294237 := True; +reg294239 = reg294237 +} else { +reg294238 := False; +reg294239 = reg294238 +} +reg294241 = reg294239 +} else { +reg294240 := False; +reg294241 = reg294240 +} +var reg294244 Obj +if reg294241 == True { +reg294242 := True; +reg294244 = reg294242 +} else { +reg294243 := False; +reg294244 = reg294243 +} +reg294246 = reg294244 +} else { +reg294245 := False; +reg294246 = reg294245 +} +if reg294246 == True { +reg294247 := MakeSymbol("cons?") +reg294248 := PrimTail(V1593) +reg294249 := PrimCons(reg294247, reg294248) +reg294250 := __e.Call(__defun__shen_4add__test, reg294249) +_ = reg294250 +reg294251 := MakeSymbol("/.") +reg294252 := PrimHead(V1593) +reg294253 := PrimTail(reg294252) +reg294254 := PrimHead(reg294253) +reg294255 := PrimTail(reg294254) +reg294256 := PrimHead(reg294255) +reg294257 := MakeSymbol("/.") +reg294258 := PrimHead(V1593) +reg294259 := PrimTail(reg294258) +reg294260 := PrimHead(reg294259) +reg294261 := PrimTail(reg294260) +reg294262 := PrimTail(reg294261) +reg294263 := PrimHead(reg294262) +reg294264 := PrimTail(V1593) +reg294265 := PrimHead(reg294264) +reg294266 := PrimHead(V1593) +reg294267 := PrimTail(reg294266) +reg294268 := PrimHead(reg294267) +reg294269 := PrimHead(V1593) +reg294270 := PrimTail(reg294269) +reg294271 := PrimTail(reg294270) +reg294272 := PrimHead(reg294271) +reg294273 := __e.Call(__defun__shen_4ebr, reg294265, reg294268, reg294272) +reg294274 := Nil; +reg294275 := PrimCons(reg294273, reg294274) +reg294276 := PrimCons(reg294263, reg294275) +reg294277 := PrimCons(reg294257, reg294276) +reg294278 := Nil; +reg294279 := PrimCons(reg294277, reg294278) +reg294280 := PrimCons(reg294256, reg294279) +reg294281 := PrimCons(reg294251, reg294280) +Abstraction := reg294281 +_ = Abstraction +reg294282 := MakeSymbol("hd") +reg294283 := PrimTail(V1593) +reg294284 := PrimCons(reg294282, reg294283) +reg294285 := Nil; +reg294286 := PrimCons(reg294284, reg294285) +reg294287 := PrimCons(Abstraction, reg294286) +reg294288 := MakeSymbol("tl") +reg294289 := PrimTail(V1593) +reg294290 := PrimCons(reg294288, reg294289) +reg294291 := Nil; +reg294292 := PrimCons(reg294290, reg294291) +reg294293 := PrimCons(reg294287, reg294292) +Application := reg294293 +_ = Application +__ctx.TailApply(__defun__shen_4reduce__help, Application) +return +} else { +reg294295 := PrimIsPair(V1593) +var reg294409 Obj +if reg294295 == True { +reg294296 := PrimHead(V1593) +reg294297 := PrimIsPair(reg294296) +var reg294404 Obj +if reg294297 == True { +reg294298 := MakeSymbol("/.") +reg294299 := PrimHead(V1593) +reg294300 := PrimHead(reg294299) +reg294301 := PrimEqual(reg294298, reg294300) +var reg294399 Obj +if reg294301 == True { +reg294302 := PrimHead(V1593) +reg294303 := PrimTail(reg294302) +reg294304 := PrimIsPair(reg294303) +var reg294394 Obj +if reg294304 == True { +reg294305 := PrimHead(V1593) +reg294306 := PrimTail(reg294305) +reg294307 := PrimHead(reg294306) +reg294308 := PrimIsPair(reg294307) +var reg294389 Obj +if reg294308 == True { +reg294309 := MakeSymbol("@p") +reg294310 := PrimHead(V1593) +reg294311 := PrimTail(reg294310) +reg294312 := PrimHead(reg294311) +reg294313 := PrimHead(reg294312) +reg294314 := PrimEqual(reg294309, reg294313) +var reg294384 Obj +if reg294314 == True { +reg294315 := PrimHead(V1593) +reg294316 := PrimTail(reg294315) +reg294317 := PrimHead(reg294316) +reg294318 := PrimTail(reg294317) +reg294319 := PrimIsPair(reg294318) +var reg294379 Obj +if reg294319 == True { +reg294320 := PrimHead(V1593) +reg294321 := PrimTail(reg294320) +reg294322 := PrimHead(reg294321) +reg294323 := PrimTail(reg294322) +reg294324 := PrimTail(reg294323) +reg294325 := PrimIsPair(reg294324) +var reg294374 Obj +if reg294325 == True { +reg294326 := Nil; +reg294327 := PrimHead(V1593) +reg294328 := PrimTail(reg294327) +reg294329 := PrimHead(reg294328) +reg294330 := PrimTail(reg294329) +reg294331 := PrimTail(reg294330) +reg294332 := PrimTail(reg294331) +reg294333 := PrimEqual(reg294326, reg294332) +var reg294369 Obj +if reg294333 == True { +reg294334 := PrimHead(V1593) +reg294335 := PrimTail(reg294334) +reg294336 := PrimTail(reg294335) +reg294337 := PrimIsPair(reg294336) +var reg294364 Obj +if reg294337 == True { +reg294338 := Nil; +reg294339 := PrimHead(V1593) +reg294340 := PrimTail(reg294339) +reg294341 := PrimTail(reg294340) +reg294342 := PrimTail(reg294341) +reg294343 := PrimEqual(reg294338, reg294342) +var reg294359 Obj +if reg294343 == True { +reg294344 := PrimTail(V1593) +reg294345 := PrimIsPair(reg294344) +var reg294354 Obj +if reg294345 == True { +reg294346 := Nil; +reg294347 := PrimTail(V1593) +reg294348 := PrimTail(reg294347) +reg294349 := PrimEqual(reg294346, reg294348) +var reg294352 Obj +if reg294349 == True { +reg294350 := True; +reg294352 = reg294350 +} else { +reg294351 := False; +reg294352 = reg294351 +} +reg294354 = reg294352 +} else { +reg294353 := False; +reg294354 = reg294353 +} +var reg294357 Obj +if reg294354 == True { +reg294355 := True; +reg294357 = reg294355 +} else { +reg294356 := False; +reg294357 = reg294356 +} +reg294359 = reg294357 +} else { +reg294358 := False; +reg294359 = reg294358 +} +var reg294362 Obj +if reg294359 == True { +reg294360 := True; +reg294362 = reg294360 +} else { +reg294361 := False; +reg294362 = reg294361 +} +reg294364 = reg294362 +} else { +reg294363 := False; +reg294364 = reg294363 +} +var reg294367 Obj +if reg294364 == True { +reg294365 := True; +reg294367 = reg294365 +} else { +reg294366 := False; +reg294367 = reg294366 +} +reg294369 = reg294367 +} else { +reg294368 := False; +reg294369 = reg294368 +} +var reg294372 Obj +if reg294369 == True { +reg294370 := True; +reg294372 = reg294370 +} else { +reg294371 := False; +reg294372 = reg294371 +} +reg294374 = reg294372 +} else { +reg294373 := False; +reg294374 = reg294373 +} +var reg294377 Obj +if reg294374 == True { +reg294375 := True; +reg294377 = reg294375 +} else { +reg294376 := False; +reg294377 = reg294376 +} +reg294379 = reg294377 +} else { +reg294378 := False; +reg294379 = reg294378 +} +var reg294382 Obj +if reg294379 == True { +reg294380 := True; +reg294382 = reg294380 +} else { +reg294381 := False; +reg294382 = reg294381 +} +reg294384 = reg294382 +} else { +reg294383 := False; +reg294384 = reg294383 +} +var reg294387 Obj +if reg294384 == True { +reg294385 := True; +reg294387 = reg294385 +} else { +reg294386 := False; +reg294387 = reg294386 +} +reg294389 = reg294387 +} else { +reg294388 := False; +reg294389 = reg294388 +} +var reg294392 Obj +if reg294389 == True { +reg294390 := True; +reg294392 = reg294390 +} else { +reg294391 := False; +reg294392 = reg294391 +} +reg294394 = reg294392 +} else { +reg294393 := False; +reg294394 = reg294393 +} +var reg294397 Obj +if reg294394 == True { +reg294395 := True; +reg294397 = reg294395 +} else { +reg294396 := False; +reg294397 = reg294396 +} +reg294399 = reg294397 +} else { +reg294398 := False; +reg294399 = reg294398 +} +var reg294402 Obj +if reg294399 == True { +reg294400 := True; +reg294402 = reg294400 +} else { +reg294401 := False; +reg294402 = reg294401 +} +reg294404 = reg294402 +} else { +reg294403 := False; +reg294404 = reg294403 +} +var reg294407 Obj +if reg294404 == True { +reg294405 := True; +reg294407 = reg294405 +} else { +reg294406 := False; +reg294407 = reg294406 +} +reg294409 = reg294407 +} else { +reg294408 := False; +reg294409 = reg294408 +} +if reg294409 == True { +reg294410 := MakeSymbol("tuple?") +reg294411 := PrimTail(V1593) +reg294412 := PrimCons(reg294410, reg294411) +reg294413 := __e.Call(__defun__shen_4add__test, reg294412) +_ = reg294413 +reg294414 := MakeSymbol("/.") +reg294415 := PrimHead(V1593) +reg294416 := PrimTail(reg294415) +reg294417 := PrimHead(reg294416) +reg294418 := PrimTail(reg294417) +reg294419 := PrimHead(reg294418) +reg294420 := MakeSymbol("/.") +reg294421 := PrimHead(V1593) +reg294422 := PrimTail(reg294421) +reg294423 := PrimHead(reg294422) +reg294424 := PrimTail(reg294423) +reg294425 := PrimTail(reg294424) +reg294426 := PrimHead(reg294425) +reg294427 := PrimTail(V1593) +reg294428 := PrimHead(reg294427) +reg294429 := PrimHead(V1593) +reg294430 := PrimTail(reg294429) +reg294431 := PrimHead(reg294430) +reg294432 := PrimHead(V1593) +reg294433 := PrimTail(reg294432) +reg294434 := PrimTail(reg294433) +reg294435 := PrimHead(reg294434) +reg294436 := __e.Call(__defun__shen_4ebr, reg294428, reg294431, reg294435) +reg294437 := Nil; +reg294438 := PrimCons(reg294436, reg294437) +reg294439 := PrimCons(reg294426, reg294438) +reg294440 := PrimCons(reg294420, reg294439) +reg294441 := Nil; +reg294442 := PrimCons(reg294440, reg294441) +reg294443 := PrimCons(reg294419, reg294442) +reg294444 := PrimCons(reg294414, reg294443) +Abstraction := reg294444 +_ = Abstraction +reg294445 := MakeSymbol("fst") +reg294446 := PrimTail(V1593) +reg294447 := PrimCons(reg294445, reg294446) +reg294448 := Nil; +reg294449 := PrimCons(reg294447, reg294448) +reg294450 := PrimCons(Abstraction, reg294449) +reg294451 := MakeSymbol("snd") +reg294452 := PrimTail(V1593) +reg294453 := PrimCons(reg294451, reg294452) +reg294454 := Nil; +reg294455 := PrimCons(reg294453, reg294454) +reg294456 := PrimCons(reg294450, reg294455) +Application := reg294456 +_ = Application +__ctx.TailApply(__defun__shen_4reduce__help, Application) +return +} else { +reg294458 := PrimIsPair(V1593) +var reg294572 Obj +if reg294458 == True { +reg294459 := PrimHead(V1593) +reg294460 := PrimIsPair(reg294459) +var reg294567 Obj +if reg294460 == True { +reg294461 := MakeSymbol("/.") +reg294462 := PrimHead(V1593) +reg294463 := PrimHead(reg294462) +reg294464 := PrimEqual(reg294461, reg294463) +var reg294562 Obj +if reg294464 == True { +reg294465 := PrimHead(V1593) +reg294466 := PrimTail(reg294465) +reg294467 := PrimIsPair(reg294466) +var reg294557 Obj +if reg294467 == True { +reg294468 := PrimHead(V1593) +reg294469 := PrimTail(reg294468) +reg294470 := PrimHead(reg294469) +reg294471 := PrimIsPair(reg294470) +var reg294552 Obj +if reg294471 == True { +reg294472 := MakeSymbol("@v") +reg294473 := PrimHead(V1593) +reg294474 := PrimTail(reg294473) +reg294475 := PrimHead(reg294474) +reg294476 := PrimHead(reg294475) +reg294477 := PrimEqual(reg294472, reg294476) +var reg294547 Obj +if reg294477 == True { +reg294478 := PrimHead(V1593) +reg294479 := PrimTail(reg294478) +reg294480 := PrimHead(reg294479) +reg294481 := PrimTail(reg294480) +reg294482 := PrimIsPair(reg294481) +var reg294542 Obj +if reg294482 == True { +reg294483 := PrimHead(V1593) +reg294484 := PrimTail(reg294483) +reg294485 := PrimHead(reg294484) +reg294486 := PrimTail(reg294485) +reg294487 := PrimTail(reg294486) +reg294488 := PrimIsPair(reg294487) +var reg294537 Obj +if reg294488 == True { +reg294489 := Nil; +reg294490 := PrimHead(V1593) +reg294491 := PrimTail(reg294490) +reg294492 := PrimHead(reg294491) +reg294493 := PrimTail(reg294492) +reg294494 := PrimTail(reg294493) +reg294495 := PrimTail(reg294494) +reg294496 := PrimEqual(reg294489, reg294495) +var reg294532 Obj +if reg294496 == True { +reg294497 := PrimHead(V1593) +reg294498 := PrimTail(reg294497) +reg294499 := PrimTail(reg294498) +reg294500 := PrimIsPair(reg294499) +var reg294527 Obj +if reg294500 == True { +reg294501 := Nil; +reg294502 := PrimHead(V1593) +reg294503 := PrimTail(reg294502) +reg294504 := PrimTail(reg294503) +reg294505 := PrimTail(reg294504) +reg294506 := PrimEqual(reg294501, reg294505) +var reg294522 Obj +if reg294506 == True { +reg294507 := PrimTail(V1593) +reg294508 := PrimIsPair(reg294507) +var reg294517 Obj +if reg294508 == True { +reg294509 := Nil; +reg294510 := PrimTail(V1593) +reg294511 := PrimTail(reg294510) +reg294512 := PrimEqual(reg294509, reg294511) +var reg294515 Obj +if reg294512 == True { +reg294513 := True; +reg294515 = reg294513 +} else { +reg294514 := False; +reg294515 = reg294514 +} +reg294517 = reg294515 +} else { +reg294516 := False; +reg294517 = reg294516 +} +var reg294520 Obj +if reg294517 == True { +reg294518 := True; +reg294520 = reg294518 +} else { +reg294519 := False; +reg294520 = reg294519 +} +reg294522 = reg294520 +} else { +reg294521 := False; +reg294522 = reg294521 +} +var reg294525 Obj +if reg294522 == True { +reg294523 := True; +reg294525 = reg294523 +} else { +reg294524 := False; +reg294525 = reg294524 +} +reg294527 = reg294525 +} else { +reg294526 := False; +reg294527 = reg294526 +} +var reg294530 Obj +if reg294527 == True { +reg294528 := True; +reg294530 = reg294528 +} else { +reg294529 := False; +reg294530 = reg294529 +} +reg294532 = reg294530 +} else { +reg294531 := False; +reg294532 = reg294531 +} +var reg294535 Obj +if reg294532 == True { +reg294533 := True; +reg294535 = reg294533 +} else { +reg294534 := False; +reg294535 = reg294534 +} +reg294537 = reg294535 +} else { +reg294536 := False; +reg294537 = reg294536 +} +var reg294540 Obj +if reg294537 == True { +reg294538 := True; +reg294540 = reg294538 +} else { +reg294539 := False; +reg294540 = reg294539 +} +reg294542 = reg294540 +} else { +reg294541 := False; +reg294542 = reg294541 +} +var reg294545 Obj +if reg294542 == True { +reg294543 := True; +reg294545 = reg294543 +} else { +reg294544 := False; +reg294545 = reg294544 +} +reg294547 = reg294545 +} else { +reg294546 := False; +reg294547 = reg294546 +} +var reg294550 Obj +if reg294547 == True { +reg294548 := True; +reg294550 = reg294548 +} else { +reg294549 := False; +reg294550 = reg294549 +} +reg294552 = reg294550 +} else { +reg294551 := False; +reg294552 = reg294551 +} +var reg294555 Obj +if reg294552 == True { +reg294553 := True; +reg294555 = reg294553 +} else { +reg294554 := False; +reg294555 = reg294554 +} +reg294557 = reg294555 +} else { +reg294556 := False; +reg294557 = reg294556 +} +var reg294560 Obj +if reg294557 == True { +reg294558 := True; +reg294560 = reg294558 +} else { +reg294559 := False; +reg294560 = reg294559 +} +reg294562 = reg294560 +} else { +reg294561 := False; +reg294562 = reg294561 +} +var reg294565 Obj +if reg294562 == True { +reg294563 := True; +reg294565 = reg294563 +} else { +reg294564 := False; +reg294565 = reg294564 +} +reg294567 = reg294565 +} else { +reg294566 := False; +reg294567 = reg294566 +} +var reg294570 Obj +if reg294567 == True { +reg294568 := True; +reg294570 = reg294568 +} else { +reg294569 := False; +reg294570 = reg294569 +} +reg294572 = reg294570 +} else { +reg294571 := False; +reg294572 = reg294571 +} +if reg294572 == True { +reg294573 := MakeSymbol("shen.+vector?") +reg294574 := PrimTail(V1593) +reg294575 := PrimCons(reg294573, reg294574) +reg294576 := __e.Call(__defun__shen_4add__test, reg294575) +_ = reg294576 +reg294577 := MakeSymbol("/.") +reg294578 := PrimHead(V1593) +reg294579 := PrimTail(reg294578) +reg294580 := PrimHead(reg294579) +reg294581 := PrimTail(reg294580) +reg294582 := PrimHead(reg294581) +reg294583 := MakeSymbol("/.") +reg294584 := PrimHead(V1593) +reg294585 := PrimTail(reg294584) +reg294586 := PrimHead(reg294585) +reg294587 := PrimTail(reg294586) +reg294588 := PrimTail(reg294587) +reg294589 := PrimHead(reg294588) +reg294590 := PrimTail(V1593) +reg294591 := PrimHead(reg294590) +reg294592 := PrimHead(V1593) +reg294593 := PrimTail(reg294592) +reg294594 := PrimHead(reg294593) +reg294595 := PrimHead(V1593) +reg294596 := PrimTail(reg294595) +reg294597 := PrimTail(reg294596) +reg294598 := PrimHead(reg294597) +reg294599 := __e.Call(__defun__shen_4ebr, reg294591, reg294594, reg294598) +reg294600 := Nil; +reg294601 := PrimCons(reg294599, reg294600) +reg294602 := PrimCons(reg294589, reg294601) +reg294603 := PrimCons(reg294583, reg294602) +reg294604 := Nil; +reg294605 := PrimCons(reg294603, reg294604) +reg294606 := PrimCons(reg294582, reg294605) +reg294607 := PrimCons(reg294577, reg294606) +Abstraction := reg294607 +_ = Abstraction +reg294608 := MakeSymbol("hdv") +reg294609 := PrimTail(V1593) +reg294610 := PrimCons(reg294608, reg294609) +reg294611 := Nil; +reg294612 := PrimCons(reg294610, reg294611) +reg294613 := PrimCons(Abstraction, reg294612) +reg294614 := MakeSymbol("tlv") +reg294615 := PrimTail(V1593) +reg294616 := PrimCons(reg294614, reg294615) +reg294617 := Nil; +reg294618 := PrimCons(reg294616, reg294617) +reg294619 := PrimCons(reg294613, reg294618) +Application := reg294619 +_ = Application +__ctx.TailApply(__defun__shen_4reduce__help, Application) +return +} else { +reg294621 := PrimIsPair(V1593) +var reg294735 Obj +if reg294621 == True { +reg294622 := PrimHead(V1593) +reg294623 := PrimIsPair(reg294622) +var reg294730 Obj +if reg294623 == True { +reg294624 := MakeSymbol("/.") +reg294625 := PrimHead(V1593) +reg294626 := PrimHead(reg294625) +reg294627 := PrimEqual(reg294624, reg294626) +var reg294725 Obj +if reg294627 == True { +reg294628 := PrimHead(V1593) +reg294629 := PrimTail(reg294628) +reg294630 := PrimIsPair(reg294629) +var reg294720 Obj +if reg294630 == True { +reg294631 := PrimHead(V1593) +reg294632 := PrimTail(reg294631) +reg294633 := PrimHead(reg294632) +reg294634 := PrimIsPair(reg294633) +var reg294715 Obj +if reg294634 == True { +reg294635 := MakeSymbol("@s") +reg294636 := PrimHead(V1593) +reg294637 := PrimTail(reg294636) +reg294638 := PrimHead(reg294637) +reg294639 := PrimHead(reg294638) +reg294640 := PrimEqual(reg294635, reg294639) +var reg294710 Obj +if reg294640 == True { +reg294641 := PrimHead(V1593) +reg294642 := PrimTail(reg294641) +reg294643 := PrimHead(reg294642) +reg294644 := PrimTail(reg294643) +reg294645 := PrimIsPair(reg294644) +var reg294705 Obj +if reg294645 == True { +reg294646 := PrimHead(V1593) +reg294647 := PrimTail(reg294646) +reg294648 := PrimHead(reg294647) +reg294649 := PrimTail(reg294648) +reg294650 := PrimTail(reg294649) +reg294651 := PrimIsPair(reg294650) +var reg294700 Obj +if reg294651 == True { +reg294652 := Nil; +reg294653 := PrimHead(V1593) +reg294654 := PrimTail(reg294653) +reg294655 := PrimHead(reg294654) +reg294656 := PrimTail(reg294655) +reg294657 := PrimTail(reg294656) +reg294658 := PrimTail(reg294657) +reg294659 := PrimEqual(reg294652, reg294658) +var reg294695 Obj +if reg294659 == True { +reg294660 := PrimHead(V1593) +reg294661 := PrimTail(reg294660) +reg294662 := PrimTail(reg294661) +reg294663 := PrimIsPair(reg294662) +var reg294690 Obj +if reg294663 == True { +reg294664 := Nil; +reg294665 := PrimHead(V1593) +reg294666 := PrimTail(reg294665) +reg294667 := PrimTail(reg294666) +reg294668 := PrimTail(reg294667) +reg294669 := PrimEqual(reg294664, reg294668) +var reg294685 Obj +if reg294669 == True { +reg294670 := PrimTail(V1593) +reg294671 := PrimIsPair(reg294670) +var reg294680 Obj +if reg294671 == True { +reg294672 := Nil; +reg294673 := PrimTail(V1593) +reg294674 := PrimTail(reg294673) +reg294675 := PrimEqual(reg294672, reg294674) +var reg294678 Obj +if reg294675 == True { +reg294676 := True; +reg294678 = reg294676 +} else { +reg294677 := False; +reg294678 = reg294677 +} +reg294680 = reg294678 +} else { +reg294679 := False; +reg294680 = reg294679 +} +var reg294683 Obj +if reg294680 == True { +reg294681 := True; +reg294683 = reg294681 +} else { +reg294682 := False; +reg294683 = reg294682 +} +reg294685 = reg294683 +} else { +reg294684 := False; +reg294685 = reg294684 +} +var reg294688 Obj +if reg294685 == True { +reg294686 := True; +reg294688 = reg294686 +} else { +reg294687 := False; +reg294688 = reg294687 +} +reg294690 = reg294688 +} else { +reg294689 := False; +reg294690 = reg294689 +} +var reg294693 Obj +if reg294690 == True { +reg294691 := True; +reg294693 = reg294691 +} else { +reg294692 := False; +reg294693 = reg294692 +} +reg294695 = reg294693 +} else { +reg294694 := False; +reg294695 = reg294694 +} +var reg294698 Obj +if reg294695 == True { +reg294696 := True; +reg294698 = reg294696 +} else { +reg294697 := False; +reg294698 = reg294697 +} +reg294700 = reg294698 +} else { +reg294699 := False; +reg294700 = reg294699 +} +var reg294703 Obj +if reg294700 == True { +reg294701 := True; +reg294703 = reg294701 +} else { +reg294702 := False; +reg294703 = reg294702 +} +reg294705 = reg294703 +} else { +reg294704 := False; +reg294705 = reg294704 +} +var reg294708 Obj +if reg294705 == True { +reg294706 := True; +reg294708 = reg294706 +} else { +reg294707 := False; +reg294708 = reg294707 +} +reg294710 = reg294708 +} else { +reg294709 := False; +reg294710 = reg294709 +} +var reg294713 Obj +if reg294710 == True { +reg294711 := True; +reg294713 = reg294711 +} else { +reg294712 := False; +reg294713 = reg294712 +} +reg294715 = reg294713 +} else { +reg294714 := False; +reg294715 = reg294714 +} +var reg294718 Obj +if reg294715 == True { +reg294716 := True; +reg294718 = reg294716 +} else { +reg294717 := False; +reg294718 = reg294717 +} +reg294720 = reg294718 +} else { +reg294719 := False; +reg294720 = reg294719 +} +var reg294723 Obj +if reg294720 == True { +reg294721 := True; +reg294723 = reg294721 +} else { +reg294722 := False; +reg294723 = reg294722 +} +reg294725 = reg294723 +} else { +reg294724 := False; +reg294725 = reg294724 +} +var reg294728 Obj +if reg294725 == True { +reg294726 := True; +reg294728 = reg294726 +} else { +reg294727 := False; +reg294728 = reg294727 +} +reg294730 = reg294728 +} else { +reg294729 := False; +reg294730 = reg294729 +} +var reg294733 Obj +if reg294730 == True { +reg294731 := True; +reg294733 = reg294731 +} else { +reg294732 := False; +reg294733 = reg294732 +} +reg294735 = reg294733 +} else { +reg294734 := False; +reg294735 = reg294734 +} +if reg294735 == True { +reg294736 := MakeSymbol("shen.+string?") +reg294737 := PrimTail(V1593) +reg294738 := PrimCons(reg294736, reg294737) +reg294739 := __e.Call(__defun__shen_4add__test, reg294738) +_ = reg294739 +reg294740 := MakeSymbol("/.") +reg294741 := PrimHead(V1593) +reg294742 := PrimTail(reg294741) +reg294743 := PrimHead(reg294742) +reg294744 := PrimTail(reg294743) +reg294745 := PrimHead(reg294744) +reg294746 := MakeSymbol("/.") +reg294747 := PrimHead(V1593) +reg294748 := PrimTail(reg294747) +reg294749 := PrimHead(reg294748) +reg294750 := PrimTail(reg294749) +reg294751 := PrimTail(reg294750) +reg294752 := PrimHead(reg294751) +reg294753 := PrimTail(V1593) +reg294754 := PrimHead(reg294753) +reg294755 := PrimHead(V1593) +reg294756 := PrimTail(reg294755) +reg294757 := PrimHead(reg294756) +reg294758 := PrimHead(V1593) +reg294759 := PrimTail(reg294758) +reg294760 := PrimTail(reg294759) +reg294761 := PrimHead(reg294760) +reg294762 := __e.Call(__defun__shen_4ebr, reg294754, reg294757, reg294761) +reg294763 := Nil; +reg294764 := PrimCons(reg294762, reg294763) +reg294765 := PrimCons(reg294752, reg294764) +reg294766 := PrimCons(reg294746, reg294765) +reg294767 := Nil; +reg294768 := PrimCons(reg294766, reg294767) +reg294769 := PrimCons(reg294745, reg294768) +reg294770 := PrimCons(reg294740, reg294769) +Abstraction := reg294770 +_ = Abstraction +reg294771 := MakeSymbol("pos") +reg294772 := PrimTail(V1593) +reg294773 := PrimHead(reg294772) +reg294774 := MakeNumber(0) +reg294775 := Nil; +reg294776 := PrimCons(reg294774, reg294775) +reg294777 := PrimCons(reg294773, reg294776) +reg294778 := PrimCons(reg294771, reg294777) +reg294779 := Nil; +reg294780 := PrimCons(reg294778, reg294779) +reg294781 := PrimCons(Abstraction, reg294780) +reg294782 := MakeSymbol("tlstr") +reg294783 := PrimTail(V1593) +reg294784 := PrimCons(reg294782, reg294783) +reg294785 := Nil; +reg294786 := PrimCons(reg294784, reg294785) +reg294787 := PrimCons(reg294781, reg294786) +Application := reg294787 +_ = Application +__ctx.TailApply(__defun__shen_4reduce__help, Application) +return +} else { +reg294789 := PrimIsPair(V1593) +var reg294859 Obj +if reg294789 == True { +reg294790 := PrimHead(V1593) +reg294791 := PrimIsPair(reg294790) +var reg294854 Obj +if reg294791 == True { +reg294792 := MakeSymbol("/.") +reg294793 := PrimHead(V1593) +reg294794 := PrimHead(reg294793) +reg294795 := PrimEqual(reg294792, reg294794) +var reg294849 Obj +if reg294795 == True { +reg294796 := PrimHead(V1593) +reg294797 := PrimTail(reg294796) +reg294798 := PrimIsPair(reg294797) +var reg294844 Obj +if reg294798 == True { +reg294799 := PrimHead(V1593) +reg294800 := PrimTail(reg294799) +reg294801 := PrimTail(reg294800) +reg294802 := PrimIsPair(reg294801) +var reg294839 Obj +if reg294802 == True { +reg294803 := Nil; +reg294804 := PrimHead(V1593) +reg294805 := PrimTail(reg294804) +reg294806 := PrimTail(reg294805) +reg294807 := PrimTail(reg294806) +reg294808 := PrimEqual(reg294803, reg294807) +var reg294834 Obj +if reg294808 == True { +reg294809 := PrimTail(V1593) +reg294810 := PrimIsPair(reg294809) +var reg294829 Obj +if reg294810 == True { +reg294811 := Nil; +reg294812 := PrimTail(V1593) +reg294813 := PrimTail(reg294812) +reg294814 := PrimEqual(reg294811, reg294813) +var reg294824 Obj +if reg294814 == True { +reg294815 := PrimHead(V1593) +reg294816 := PrimTail(reg294815) +reg294817 := PrimHead(reg294816) +reg294818 := PrimIsVariable(reg294817) +reg294819 := PrimNot(reg294818) +var reg294822 Obj +if reg294819 == True { +reg294820 := True; +reg294822 = reg294820 +} else { +reg294821 := False; +reg294822 = reg294821 +} +reg294824 = reg294822 +} else { +reg294823 := False; +reg294824 = reg294823 +} +var reg294827 Obj +if reg294824 == True { +reg294825 := True; +reg294827 = reg294825 +} else { +reg294826 := False; +reg294827 = reg294826 +} +reg294829 = reg294827 +} else { +reg294828 := False; +reg294829 = reg294828 +} +var reg294832 Obj +if reg294829 == True { +reg294830 := True; +reg294832 = reg294830 +} else { +reg294831 := False; +reg294832 = reg294831 +} +reg294834 = reg294832 +} else { +reg294833 := False; +reg294834 = reg294833 +} +var reg294837 Obj +if reg294834 == True { +reg294835 := True; +reg294837 = reg294835 +} else { +reg294836 := False; +reg294837 = reg294836 +} +reg294839 = reg294837 +} else { +reg294838 := False; +reg294839 = reg294838 +} +var reg294842 Obj +if reg294839 == True { +reg294840 := True; +reg294842 = reg294840 +} else { +reg294841 := False; +reg294842 = reg294841 +} +reg294844 = reg294842 +} else { +reg294843 := False; +reg294844 = reg294843 +} +var reg294847 Obj +if reg294844 == True { +reg294845 := True; +reg294847 = reg294845 +} else { +reg294846 := False; +reg294847 = reg294846 +} +reg294849 = reg294847 +} else { +reg294848 := False; +reg294849 = reg294848 +} +var reg294852 Obj +if reg294849 == True { +reg294850 := True; +reg294852 = reg294850 +} else { +reg294851 := False; +reg294852 = reg294851 +} +reg294854 = reg294852 +} else { +reg294853 := False; +reg294854 = reg294853 +} +var reg294857 Obj +if reg294854 == True { +reg294855 := True; +reg294857 = reg294855 +} else { +reg294856 := False; +reg294857 = reg294856 +} +reg294859 = reg294857 +} else { +reg294858 := False; +reg294859 = reg294858 +} +if reg294859 == True { +reg294860 := MakeSymbol("=") +reg294861 := PrimHead(V1593) +reg294862 := PrimTail(reg294861) +reg294863 := PrimHead(reg294862) +reg294864 := PrimTail(V1593) +reg294865 := PrimCons(reg294863, reg294864) +reg294866 := PrimCons(reg294860, reg294865) +reg294867 := __e.Call(__defun__shen_4add__test, reg294866) +_ = reg294867 +reg294868 := PrimHead(V1593) +reg294869 := PrimTail(reg294868) +reg294870 := PrimTail(reg294869) +reg294871 := PrimHead(reg294870) +__ctx.TailApply(__defun__shen_4reduce__help, reg294871) +return +} else { +reg294873 := PrimIsPair(V1593) +var reg294933 Obj +if reg294873 == True { +reg294874 := PrimHead(V1593) +reg294875 := PrimIsPair(reg294874) +var reg294928 Obj +if reg294875 == True { +reg294876 := MakeSymbol("/.") +reg294877 := PrimHead(V1593) +reg294878 := PrimHead(reg294877) +reg294879 := PrimEqual(reg294876, reg294878) +var reg294923 Obj +if reg294879 == True { +reg294880 := PrimHead(V1593) +reg294881 := PrimTail(reg294880) +reg294882 := PrimIsPair(reg294881) +var reg294918 Obj +if reg294882 == True { +reg294883 := PrimHead(V1593) +reg294884 := PrimTail(reg294883) +reg294885 := PrimTail(reg294884) +reg294886 := PrimIsPair(reg294885) +var reg294913 Obj +if reg294886 == True { +reg294887 := Nil; +reg294888 := PrimHead(V1593) +reg294889 := PrimTail(reg294888) +reg294890 := PrimTail(reg294889) +reg294891 := PrimTail(reg294890) +reg294892 := PrimEqual(reg294887, reg294891) +var reg294908 Obj +if reg294892 == True { +reg294893 := PrimTail(V1593) +reg294894 := PrimIsPair(reg294893) +var reg294903 Obj +if reg294894 == True { +reg294895 := Nil; +reg294896 := PrimTail(V1593) +reg294897 := PrimTail(reg294896) +reg294898 := PrimEqual(reg294895, reg294897) +var reg294901 Obj +if reg294898 == True { +reg294899 := True; +reg294901 = reg294899 +} else { +reg294900 := False; +reg294901 = reg294900 +} +reg294903 = reg294901 +} else { +reg294902 := False; +reg294903 = reg294902 +} +var reg294906 Obj +if reg294903 == True { +reg294904 := True; +reg294906 = reg294904 +} else { +reg294905 := False; +reg294906 = reg294905 +} +reg294908 = reg294906 +} else { +reg294907 := False; +reg294908 = reg294907 +} +var reg294911 Obj +if reg294908 == True { +reg294909 := True; +reg294911 = reg294909 +} else { +reg294910 := False; +reg294911 = reg294910 +} +reg294913 = reg294911 +} else { +reg294912 := False; +reg294913 = reg294912 +} +var reg294916 Obj +if reg294913 == True { +reg294914 := True; +reg294916 = reg294914 +} else { +reg294915 := False; +reg294916 = reg294915 +} +reg294918 = reg294916 +} else { +reg294917 := False; +reg294918 = reg294917 +} +var reg294921 Obj +if reg294918 == True { +reg294919 := True; +reg294921 = reg294919 +} else { +reg294920 := False; +reg294921 = reg294920 +} +reg294923 = reg294921 +} else { +reg294922 := False; +reg294923 = reg294922 +} +var reg294926 Obj +if reg294923 == True { +reg294924 := True; +reg294926 = reg294924 +} else { +reg294925 := False; +reg294926 = reg294925 +} +reg294928 = reg294926 +} else { +reg294927 := False; +reg294928 = reg294927 +} +var reg294931 Obj +if reg294928 == True { +reg294929 := True; +reg294931 = reg294929 +} else { +reg294930 := False; +reg294931 = reg294930 +} +reg294933 = reg294931 +} else { +reg294932 := False; +reg294933 = reg294932 +} +if reg294933 == True { +reg294934 := PrimTail(V1593) +reg294935 := PrimHead(reg294934) +reg294936 := PrimHead(V1593) +reg294937 := PrimTail(reg294936) +reg294938 := PrimHead(reg294937) +reg294939 := PrimHead(V1593) +reg294940 := PrimTail(reg294939) +reg294941 := PrimTail(reg294940) +reg294942 := PrimHead(reg294941) +reg294943 := __e.Call(__defun__shen_4ebr, reg294935, reg294938, reg294942) +__ctx.TailApply(__defun__shen_4reduce__help, reg294943) +return +} else { +reg294945 := PrimIsPair(V1593) +var reg294978 Obj +if reg294945 == True { +reg294946 := MakeSymbol("where") +reg294947 := PrimHead(V1593) +reg294948 := PrimEqual(reg294946, reg294947) +var reg294973 Obj +if reg294948 == True { +reg294949 := PrimTail(V1593) +reg294950 := PrimIsPair(reg294949) +var reg294968 Obj +if reg294950 == True { +reg294951 := PrimTail(V1593) +reg294952 := PrimTail(reg294951) +reg294953 := PrimIsPair(reg294952) +var reg294963 Obj +if reg294953 == True { +reg294954 := Nil; +reg294955 := PrimTail(V1593) +reg294956 := PrimTail(reg294955) +reg294957 := PrimTail(reg294956) +reg294958 := PrimEqual(reg294954, reg294957) +var reg294961 Obj +if reg294958 == True { +reg294959 := True; +reg294961 = reg294959 +} else { +reg294960 := False; +reg294961 = reg294960 +} +reg294963 = reg294961 +} else { +reg294962 := False; +reg294963 = reg294962 +} +var reg294966 Obj +if reg294963 == True { +reg294964 := True; +reg294966 = reg294964 +} else { +reg294965 := False; +reg294966 = reg294965 +} +reg294968 = reg294966 +} else { +reg294967 := False; +reg294968 = reg294967 +} +var reg294971 Obj +if reg294968 == True { +reg294969 := True; +reg294971 = reg294969 +} else { +reg294970 := False; +reg294971 = reg294970 +} +reg294973 = reg294971 +} else { +reg294972 := False; +reg294973 = reg294972 +} +var reg294976 Obj +if reg294973 == True { +reg294974 := True; +reg294976 = reg294974 +} else { +reg294975 := False; +reg294976 = reg294975 +} +reg294978 = reg294976 +} else { +reg294977 := False; +reg294978 = reg294977 +} +if reg294978 == True { +reg294979 := PrimTail(V1593) +reg294980 := PrimHead(reg294979) +reg294981 := __e.Call(__defun__shen_4add__test, reg294980) +_ = reg294981 +reg294982 := PrimTail(V1593) +reg294983 := PrimTail(reg294982) +reg294984 := PrimHead(reg294983) +__ctx.TailApply(__defun__shen_4reduce__help, reg294984) +return +} else { +reg294986 := PrimIsPair(V1593) +var reg295002 Obj +if reg294986 == True { +reg294987 := PrimTail(V1593) +reg294988 := PrimIsPair(reg294987) +var reg294997 Obj +if reg294988 == True { +reg294989 := Nil; +reg294990 := PrimTail(V1593) +reg294991 := PrimTail(reg294990) +reg294992 := PrimEqual(reg294989, reg294991) +var reg294995 Obj +if reg294992 == True { +reg294993 := True; +reg294995 = reg294993 +} else { +reg294994 := False; +reg294995 = reg294994 +} +reg294997 = reg294995 +} else { +reg294996 := False; +reg294997 = reg294996 +} +var reg295000 Obj +if reg294997 == True { +reg294998 := True; +reg295000 = reg294998 +} else { +reg294999 := False; +reg295000 = reg294999 +} +reg295002 = reg295000 +} else { +reg295001 := False; +reg295002 = reg295001 +} +if reg295002 == True { +reg295003 := PrimHead(V1593) +reg295004 := __e.Call(__defun__shen_4reduce__help, reg295003) +Z := reg295004 +_ = Z +reg295005 := PrimHead(V1593) +reg295006 := PrimEqual(reg295005, Z) +if reg295006 == True { +__ctx.Return(V1593) +return +} else { +reg295007 := PrimTail(V1593) +reg295008 := PrimCons(Z, reg295007) +__ctx.TailApply(__defun__shen_4reduce__help, reg295008) +return +} +} else { +__ctx.Return(V1593) +return +} +} +} +} +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.reduce_help", value: __defun__shen_4reduce__help}) + +__defun__shen_4_7string_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1595 := __args[0] +_ = V1595 +reg295010 := MakeString("") +reg295011 := PrimEqual(reg295010, V1595) +if reg295011 == True { +reg295012 := False; +__ctx.Return(reg295012) +return +} else { +reg295013 := PrimIsString(V1595) +__ctx.Return(reg295013) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.+string?", value: __defun__shen_4_7string_2}) + +__defun__shen_4_7vector_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1597 := __args[0] +_ = V1597 +reg295014 := PrimIsVector(V1597) +if reg295014 == True { +reg295015 := MakeNumber(0) +reg295016 := PrimVectorGet(V1597, reg295015) +reg295017 := MakeNumber(0) +reg295018 := PrimGreatThan(reg295016, reg295017) +if reg295018 == True { +reg295019 := True; +__ctx.Return(reg295019) +return +} else { +reg295020 := False; +__ctx.Return(reg295020) +return +} +} else { +reg295021 := False; +__ctx.Return(reg295021) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.+vector?", value: __defun__shen_4_7vector_2}) + +__defun__shen_4ebr = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1611 := __args[0] +_ = V1611 +V1612 := __args[1] +_ = V1612 +V1613 := __args[2] +_ = V1613 +reg295022 := PrimEqual(V1613, V1612) +if reg295022 == True { +__ctx.Return(V1611) +return +} else { +reg295023 := PrimIsPair(V1613) +var reg295066 Obj +if reg295023 == True { +reg295024 := MakeSymbol("/.") +reg295025 := PrimHead(V1613) +reg295026 := PrimEqual(reg295024, reg295025) +var reg295061 Obj +if reg295026 == True { +reg295027 := PrimTail(V1613) +reg295028 := PrimIsPair(reg295027) +var reg295056 Obj +if reg295028 == True { +reg295029 := PrimTail(V1613) +reg295030 := PrimTail(reg295029) +reg295031 := PrimIsPair(reg295030) +var reg295051 Obj +if reg295031 == True { +reg295032 := Nil; +reg295033 := PrimTail(V1613) +reg295034 := PrimTail(reg295033) +reg295035 := PrimTail(reg295034) +reg295036 := PrimEqual(reg295032, reg295035) +var reg295046 Obj +if reg295036 == True { +reg295037 := PrimTail(V1613) +reg295038 := PrimHead(reg295037) +reg295039 := __e.Call(__defun__occurrences, V1612, reg295038) +reg295040 := MakeNumber(0) +reg295041 := PrimGreatThan(reg295039, reg295040) +var reg295044 Obj +if reg295041 == True { +reg295042 := True; +reg295044 = reg295042 +} else { +reg295043 := False; +reg295044 = reg295043 +} +reg295046 = reg295044 +} else { +reg295045 := False; +reg295046 = reg295045 +} +var reg295049 Obj +if reg295046 == True { +reg295047 := True; +reg295049 = reg295047 +} else { +reg295048 := False; +reg295049 = reg295048 +} +reg295051 = reg295049 +} else { +reg295050 := False; +reg295051 = reg295050 +} +var reg295054 Obj +if reg295051 == True { +reg295052 := True; +reg295054 = reg295052 +} else { +reg295053 := False; +reg295054 = reg295053 +} +reg295056 = reg295054 +} else { +reg295055 := False; +reg295056 = reg295055 +} +var reg295059 Obj +if reg295056 == True { +reg295057 := True; +reg295059 = reg295057 +} else { +reg295058 := False; +reg295059 = reg295058 +} +reg295061 = reg295059 +} else { +reg295060 := False; +reg295061 = reg295060 +} +var reg295064 Obj +if reg295061 == True { +reg295062 := True; +reg295064 = reg295062 +} else { +reg295063 := False; +reg295064 = reg295063 +} +reg295066 = reg295064 +} else { +reg295065 := False; +reg295066 = reg295065 +} +if reg295066 == True { +__ctx.Return(V1613) +return +} else { +reg295067 := PrimIsPair(V1613) +var reg295110 Obj +if reg295067 == True { +reg295068 := MakeSymbol("lambda") +reg295069 := PrimHead(V1613) +reg295070 := PrimEqual(reg295068, reg295069) +var reg295105 Obj +if reg295070 == True { +reg295071 := PrimTail(V1613) +reg295072 := PrimIsPair(reg295071) +var reg295100 Obj +if reg295072 == True { +reg295073 := PrimTail(V1613) +reg295074 := PrimTail(reg295073) +reg295075 := PrimIsPair(reg295074) +var reg295095 Obj +if reg295075 == True { +reg295076 := Nil; +reg295077 := PrimTail(V1613) +reg295078 := PrimTail(reg295077) +reg295079 := PrimTail(reg295078) +reg295080 := PrimEqual(reg295076, reg295079) +var reg295090 Obj +if reg295080 == True { +reg295081 := PrimTail(V1613) +reg295082 := PrimHead(reg295081) +reg295083 := __e.Call(__defun__occurrences, V1612, reg295082) +reg295084 := MakeNumber(0) +reg295085 := PrimGreatThan(reg295083, reg295084) +var reg295088 Obj +if reg295085 == True { +reg295086 := True; +reg295088 = reg295086 +} else { +reg295087 := False; +reg295088 = reg295087 +} +reg295090 = reg295088 +} else { +reg295089 := False; +reg295090 = reg295089 +} +var reg295093 Obj +if reg295090 == True { +reg295091 := True; +reg295093 = reg295091 +} else { +reg295092 := False; +reg295093 = reg295092 +} +reg295095 = reg295093 +} else { +reg295094 := False; +reg295095 = reg295094 +} +var reg295098 Obj +if reg295095 == True { +reg295096 := True; +reg295098 = reg295096 +} else { +reg295097 := False; +reg295098 = reg295097 +} +reg295100 = reg295098 +} else { +reg295099 := False; +reg295100 = reg295099 +} +var reg295103 Obj +if reg295100 == True { +reg295101 := True; +reg295103 = reg295101 +} else { +reg295102 := False; +reg295103 = reg295102 +} +reg295105 = reg295103 +} else { +reg295104 := False; +reg295105 = reg295104 +} +var reg295108 Obj +if reg295105 == True { +reg295106 := True; +reg295108 = reg295106 +} else { +reg295107 := False; +reg295108 = reg295107 +} +reg295110 = reg295108 +} else { +reg295109 := False; +reg295110 = reg295109 +} +if reg295110 == True { +__ctx.Return(V1613) +return +} else { +reg295111 := PrimIsPair(V1613) +var reg295162 Obj +if reg295111 == True { +reg295112 := MakeSymbol("let") +reg295113 := PrimHead(V1613) +reg295114 := PrimEqual(reg295112, reg295113) +var reg295157 Obj +if reg295114 == True { +reg295115 := PrimTail(V1613) +reg295116 := PrimIsPair(reg295115) +var reg295152 Obj +if reg295116 == True { +reg295117 := PrimTail(V1613) +reg295118 := PrimTail(reg295117) +reg295119 := PrimIsPair(reg295118) +var reg295147 Obj +if reg295119 == True { +reg295120 := PrimTail(V1613) +reg295121 := PrimTail(reg295120) +reg295122 := PrimTail(reg295121) +reg295123 := PrimIsPair(reg295122) +var reg295142 Obj +if reg295123 == True { +reg295124 := Nil; +reg295125 := PrimTail(V1613) +reg295126 := PrimTail(reg295125) +reg295127 := PrimTail(reg295126) +reg295128 := PrimTail(reg295127) +reg295129 := PrimEqual(reg295124, reg295128) +var reg295137 Obj +if reg295129 == True { +reg295130 := PrimTail(V1613) +reg295131 := PrimHead(reg295130) +reg295132 := PrimEqual(reg295131, V1612) +var reg295135 Obj +if reg295132 == True { +reg295133 := True; +reg295135 = reg295133 +} else { +reg295134 := False; +reg295135 = reg295134 +} +reg295137 = reg295135 +} else { +reg295136 := False; +reg295137 = reg295136 +} +var reg295140 Obj +if reg295137 == True { +reg295138 := True; +reg295140 = reg295138 +} else { +reg295139 := False; +reg295140 = reg295139 +} +reg295142 = reg295140 +} else { +reg295141 := False; +reg295142 = reg295141 +} +var reg295145 Obj +if reg295142 == True { +reg295143 := True; +reg295145 = reg295143 +} else { +reg295144 := False; +reg295145 = reg295144 +} +reg295147 = reg295145 +} else { +reg295146 := False; +reg295147 = reg295146 +} +var reg295150 Obj +if reg295147 == True { +reg295148 := True; +reg295150 = reg295148 +} else { +reg295149 := False; +reg295150 = reg295149 +} +reg295152 = reg295150 +} else { +reg295151 := False; +reg295152 = reg295151 +} +var reg295155 Obj +if reg295152 == True { +reg295153 := True; +reg295155 = reg295153 +} else { +reg295154 := False; +reg295155 = reg295154 +} +reg295157 = reg295155 +} else { +reg295156 := False; +reg295157 = reg295156 +} +var reg295160 Obj +if reg295157 == True { +reg295158 := True; +reg295160 = reg295158 +} else { +reg295159 := False; +reg295160 = reg295159 +} +reg295162 = reg295160 +} else { +reg295161 := False; +reg295162 = reg295161 +} +if reg295162 == True { +reg295163 := MakeSymbol("let") +reg295164 := PrimTail(V1613) +reg295165 := PrimHead(reg295164) +reg295166 := PrimTail(V1613) +reg295167 := PrimHead(reg295166) +reg295168 := PrimTail(V1613) +reg295169 := PrimTail(reg295168) +reg295170 := PrimHead(reg295169) +reg295171 := __e.Call(__defun__shen_4ebr, V1611, reg295167, reg295170) +reg295172 := PrimTail(V1613) +reg295173 := PrimTail(reg295172) +reg295174 := PrimTail(reg295173) +reg295175 := PrimCons(reg295171, reg295174) +reg295176 := PrimCons(reg295165, reg295175) +reg295177 := PrimCons(reg295163, reg295176) +__ctx.Return(reg295177) +return +} else { +reg295178 := PrimIsPair(V1613) +if reg295178 == True { +reg295179 := PrimHead(V1613) +reg295180 := __e.Call(__defun__shen_4ebr, V1611, V1612, reg295179) +reg295181 := PrimTail(V1613) +reg295182 := __e.Call(__defun__shen_4ebr, V1611, V1612, reg295181) +reg295183 := PrimCons(reg295180, reg295182) +__ctx.Return(reg295183) +return +} else { +__ctx.Return(V1613) +return +} +} +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.ebr", value: __defun__shen_4ebr}) + +__defun__shen_4add__test = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1615 := __args[0] +_ = V1615 +reg295184 := MakeSymbol("shen.*teststack*") +reg295185 := MakeSymbol("shen.*teststack*") +reg295186 := PrimValue(reg295185) +reg295187 := PrimCons(V1615, reg295186) +reg295188 := PrimSet(reg295184, reg295187) +__ctx.Return(reg295188) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.add_test", value: __defun__shen_4add__test}) + +__defun__shen_4cond_1expression = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1619 := __args[0] +_ = V1619 +V1620 := __args[1] +_ = V1620 +V1621 := __args[2] +_ = V1621 +reg295189 := __e.Call(__defun__shen_4err_1condition, V1619) +Err := reg295189 +_ = Err +reg295190 := __e.Call(__defun__shen_4case_1form, V1621, Err) +Cases := reg295190 +_ = Cases +reg295191 := __e.Call(__defun__shen_4encode_1choices, Cases, V1619) +EncodeChoices := reg295191 +_ = EncodeChoices +__ctx.TailApply(__defun__shen_4cond_1form, EncodeChoices) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.cond-expression", value: __defun__shen_4cond_1expression}) + +__defun__shen_4cond_1form = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1625 := __args[0] +_ = V1625 +reg295193 := PrimIsPair(V1625) +var reg295227 Obj +if reg295193 == True { +reg295194 := PrimHead(V1625) +reg295195 := PrimIsPair(reg295194) +var reg295222 Obj +if reg295195 == True { +reg295196 := True; +reg295197 := PrimHead(V1625) +reg295198 := PrimHead(reg295197) +reg295199 := PrimEqual(reg295196, reg295198) +var reg295217 Obj +if reg295199 == True { +reg295200 := PrimHead(V1625) +reg295201 := PrimTail(reg295200) +reg295202 := PrimIsPair(reg295201) +var reg295212 Obj +if reg295202 == True { +reg295203 := Nil; +reg295204 := PrimHead(V1625) +reg295205 := PrimTail(reg295204) +reg295206 := PrimTail(reg295205) +reg295207 := PrimEqual(reg295203, reg295206) +var reg295210 Obj +if reg295207 == True { +reg295208 := True; +reg295210 = reg295208 +} else { +reg295209 := False; +reg295210 = reg295209 +} +reg295212 = reg295210 +} else { +reg295211 := False; +reg295212 = reg295211 +} +var reg295215 Obj +if reg295212 == True { +reg295213 := True; +reg295215 = reg295213 +} else { +reg295214 := False; +reg295215 = reg295214 +} +reg295217 = reg295215 +} else { +reg295216 := False; +reg295217 = reg295216 +} +var reg295220 Obj +if reg295217 == True { +reg295218 := True; +reg295220 = reg295218 +} else { +reg295219 := False; +reg295220 = reg295219 +} +reg295222 = reg295220 +} else { +reg295221 := False; +reg295222 = reg295221 +} +var reg295225 Obj +if reg295222 == True { +reg295223 := True; +reg295225 = reg295223 +} else { +reg295224 := False; +reg295225 = reg295224 +} +reg295227 = reg295225 +} else { +reg295226 := False; +reg295227 = reg295226 +} +if reg295227 == True { +reg295228 := PrimHead(V1625) +reg295229 := PrimTail(reg295228) +reg295230 := PrimHead(reg295229) +__ctx.Return(reg295230) +return +} else { +reg295231 := MakeSymbol("cond") +reg295232 := PrimCons(reg295231, V1625) +__ctx.Return(reg295232) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.cond-form", value: __defun__shen_4cond_1form}) + +__defun__shen_4encode_1choices = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1630 := __args[0] +_ = V1630 +V1631 := __args[1] +_ = V1631 +reg295233 := Nil; +reg295234 := PrimEqual(reg295233, V1630) +if reg295234 == True { +reg295235 := Nil; +__ctx.Return(reg295235) +return +} else { +reg295236 := PrimIsPair(V1630) +var reg295320 Obj +if reg295236 == True { +reg295237 := PrimHead(V1630) +reg295238 := PrimIsPair(reg295237) +var reg295315 Obj +if reg295238 == True { +reg295239 := True; +reg295240 := PrimHead(V1630) +reg295241 := PrimHead(reg295240) +reg295242 := PrimEqual(reg295239, reg295241) +var reg295310 Obj +if reg295242 == True { +reg295243 := PrimHead(V1630) +reg295244 := PrimTail(reg295243) +reg295245 := PrimIsPair(reg295244) +var reg295305 Obj +if reg295245 == True { +reg295246 := PrimHead(V1630) +reg295247 := PrimTail(reg295246) +reg295248 := PrimHead(reg295247) +reg295249 := PrimIsPair(reg295248) +var reg295300 Obj +if reg295249 == True { +reg295250 := MakeSymbol("shen.choicepoint!") +reg295251 := PrimHead(V1630) +reg295252 := PrimTail(reg295251) +reg295253 := PrimHead(reg295252) +reg295254 := PrimHead(reg295253) +reg295255 := PrimEqual(reg295250, reg295254) +var reg295295 Obj +if reg295255 == True { +reg295256 := PrimHead(V1630) +reg295257 := PrimTail(reg295256) +reg295258 := PrimHead(reg295257) +reg295259 := PrimTail(reg295258) +reg295260 := PrimIsPair(reg295259) +var reg295290 Obj +if reg295260 == True { +reg295261 := Nil; +reg295262 := PrimHead(V1630) +reg295263 := PrimTail(reg295262) +reg295264 := PrimHead(reg295263) +reg295265 := PrimTail(reg295264) +reg295266 := PrimTail(reg295265) +reg295267 := PrimEqual(reg295261, reg295266) +var reg295285 Obj +if reg295267 == True { +reg295268 := Nil; +reg295269 := PrimHead(V1630) +reg295270 := PrimTail(reg295269) +reg295271 := PrimTail(reg295270) +reg295272 := PrimEqual(reg295268, reg295271) +var reg295280 Obj +if reg295272 == True { +reg295273 := Nil; +reg295274 := PrimTail(V1630) +reg295275 := PrimEqual(reg295273, reg295274) +var reg295278 Obj +if reg295275 == True { +reg295276 := True; +reg295278 = reg295276 +} else { +reg295277 := False; +reg295278 = reg295277 +} +reg295280 = reg295278 +} else { +reg295279 := False; +reg295280 = reg295279 +} +var reg295283 Obj +if reg295280 == True { +reg295281 := True; +reg295283 = reg295281 +} else { +reg295282 := False; +reg295283 = reg295282 +} +reg295285 = reg295283 +} else { +reg295284 := False; +reg295285 = reg295284 +} +var reg295288 Obj +if reg295285 == True { +reg295286 := True; +reg295288 = reg295286 +} else { +reg295287 := False; +reg295288 = reg295287 +} +reg295290 = reg295288 +} else { +reg295289 := False; +reg295290 = reg295289 +} +var reg295293 Obj +if reg295290 == True { +reg295291 := True; +reg295293 = reg295291 +} else { +reg295292 := False; +reg295293 = reg295292 +} +reg295295 = reg295293 +} else { +reg295294 := False; +reg295295 = reg295294 +} +var reg295298 Obj +if reg295295 == True { +reg295296 := True; +reg295298 = reg295296 +} else { +reg295297 := False; +reg295298 = reg295297 +} +reg295300 = reg295298 +} else { +reg295299 := False; +reg295300 = reg295299 +} +var reg295303 Obj +if reg295300 == True { +reg295301 := True; +reg295303 = reg295301 +} else { +reg295302 := False; +reg295303 = reg295302 +} +reg295305 = reg295303 +} else { +reg295304 := False; +reg295305 = reg295304 +} +var reg295308 Obj +if reg295305 == True { +reg295306 := True; +reg295308 = reg295306 +} else { +reg295307 := False; +reg295308 = reg295307 +} +reg295310 = reg295308 +} else { +reg295309 := False; +reg295310 = reg295309 +} +var reg295313 Obj +if reg295310 == True { +reg295311 := True; +reg295313 = reg295311 +} else { +reg295312 := False; +reg295313 = reg295312 +} +reg295315 = reg295313 +} else { +reg295314 := False; +reg295315 = reg295314 +} +var reg295318 Obj +if reg295315 == True { +reg295316 := True; +reg295318 = reg295316 +} else { +reg295317 := False; +reg295318 = reg295317 +} +reg295320 = reg295318 +} else { +reg295319 := False; +reg295320 = reg295319 +} +if reg295320 == True { +reg295321 := True; +reg295322 := MakeSymbol("let") +reg295323 := MakeSymbol("Result") +reg295324 := PrimHead(V1630) +reg295325 := PrimTail(reg295324) +reg295326 := PrimHead(reg295325) +reg295327 := PrimTail(reg295326) +reg295328 := PrimHead(reg295327) +reg295329 := MakeSymbol("if") +reg295330 := MakeSymbol("=") +reg295331 := MakeSymbol("Result") +reg295332 := MakeSymbol("fail") +reg295333 := Nil; +reg295334 := PrimCons(reg295332, reg295333) +reg295335 := Nil; +reg295336 := PrimCons(reg295334, reg295335) +reg295337 := PrimCons(reg295331, reg295336) +reg295338 := PrimCons(reg295330, reg295337) +reg295339 := MakeSymbol("shen.*installing-kl*") +reg295340 := PrimValue(reg295339) +var reg295349 Obj +if reg295340 == True { +reg295341 := MakeSymbol("shen.sys-error") +reg295342 := Nil; +reg295343 := PrimCons(V1631, reg295342) +reg295344 := PrimCons(reg295341, reg295343) +reg295349 = reg295344 +} else { +reg295345 := MakeSymbol("shen.f_error") +reg295346 := Nil; +reg295347 := PrimCons(V1631, reg295346) +reg295348 := PrimCons(reg295345, reg295347) +reg295349 = reg295348 +} +reg295350 := MakeSymbol("Result") +reg295351 := Nil; +reg295352 := PrimCons(reg295350, reg295351) +reg295353 := PrimCons(reg295349, reg295352) +reg295354 := PrimCons(reg295338, reg295353) +reg295355 := PrimCons(reg295329, reg295354) +reg295356 := Nil; +reg295357 := PrimCons(reg295355, reg295356) +reg295358 := PrimCons(reg295328, reg295357) +reg295359 := PrimCons(reg295323, reg295358) +reg295360 := PrimCons(reg295322, reg295359) +reg295361 := Nil; +reg295362 := PrimCons(reg295360, reg295361) +reg295363 := PrimCons(reg295321, reg295362) +reg295364 := Nil; +reg295365 := PrimCons(reg295363, reg295364) +__ctx.Return(reg295365) +return +} else { +reg295366 := PrimIsPair(V1630) +var reg295442 Obj +if reg295366 == True { +reg295367 := PrimHead(V1630) +reg295368 := PrimIsPair(reg295367) +var reg295437 Obj +if reg295368 == True { +reg295369 := True; +reg295370 := PrimHead(V1630) +reg295371 := PrimHead(reg295370) +reg295372 := PrimEqual(reg295369, reg295371) +var reg295432 Obj +if reg295372 == True { +reg295373 := PrimHead(V1630) +reg295374 := PrimTail(reg295373) +reg295375 := PrimIsPair(reg295374) +var reg295427 Obj +if reg295375 == True { +reg295376 := PrimHead(V1630) +reg295377 := PrimTail(reg295376) +reg295378 := PrimHead(reg295377) +reg295379 := PrimIsPair(reg295378) +var reg295422 Obj +if reg295379 == True { +reg295380 := MakeSymbol("shen.choicepoint!") +reg295381 := PrimHead(V1630) +reg295382 := PrimTail(reg295381) +reg295383 := PrimHead(reg295382) +reg295384 := PrimHead(reg295383) +reg295385 := PrimEqual(reg295380, reg295384) +var reg295417 Obj +if reg295385 == True { +reg295386 := PrimHead(V1630) +reg295387 := PrimTail(reg295386) +reg295388 := PrimHead(reg295387) +reg295389 := PrimTail(reg295388) +reg295390 := PrimIsPair(reg295389) +var reg295412 Obj +if reg295390 == True { +reg295391 := Nil; +reg295392 := PrimHead(V1630) +reg295393 := PrimTail(reg295392) +reg295394 := PrimHead(reg295393) +reg295395 := PrimTail(reg295394) +reg295396 := PrimTail(reg295395) +reg295397 := PrimEqual(reg295391, reg295396) +var reg295407 Obj +if reg295397 == True { +reg295398 := Nil; +reg295399 := PrimHead(V1630) +reg295400 := PrimTail(reg295399) +reg295401 := PrimTail(reg295400) +reg295402 := PrimEqual(reg295398, reg295401) +var reg295405 Obj +if reg295402 == True { +reg295403 := True; +reg295405 = reg295403 +} else { +reg295404 := False; +reg295405 = reg295404 +} +reg295407 = reg295405 +} else { +reg295406 := False; +reg295407 = reg295406 +} +var reg295410 Obj +if reg295407 == True { +reg295408 := True; +reg295410 = reg295408 +} else { +reg295409 := False; +reg295410 = reg295409 +} +reg295412 = reg295410 +} else { +reg295411 := False; +reg295412 = reg295411 +} +var reg295415 Obj +if reg295412 == True { +reg295413 := True; +reg295415 = reg295413 +} else { +reg295414 := False; +reg295415 = reg295414 +} +reg295417 = reg295415 +} else { +reg295416 := False; +reg295417 = reg295416 +} +var reg295420 Obj +if reg295417 == True { +reg295418 := True; +reg295420 = reg295418 +} else { +reg295419 := False; +reg295420 = reg295419 +} +reg295422 = reg295420 +} else { +reg295421 := False; +reg295422 = reg295421 +} +var reg295425 Obj +if reg295422 == True { +reg295423 := True; +reg295425 = reg295423 +} else { +reg295424 := False; +reg295425 = reg295424 +} +reg295427 = reg295425 +} else { +reg295426 := False; +reg295427 = reg295426 +} +var reg295430 Obj +if reg295427 == True { +reg295428 := True; +reg295430 = reg295428 +} else { +reg295429 := False; +reg295430 = reg295429 +} +reg295432 = reg295430 +} else { +reg295431 := False; +reg295432 = reg295431 +} +var reg295435 Obj +if reg295432 == True { +reg295433 := True; +reg295435 = reg295433 +} else { +reg295434 := False; +reg295435 = reg295434 +} +reg295437 = reg295435 +} else { +reg295436 := False; +reg295437 = reg295436 +} +var reg295440 Obj +if reg295437 == True { +reg295438 := True; +reg295440 = reg295438 +} else { +reg295439 := False; +reg295440 = reg295439 +} +reg295442 = reg295440 +} else { +reg295441 := False; +reg295442 = reg295441 +} +if reg295442 == True { +reg295443 := True; +reg295444 := MakeSymbol("let") +reg295445 := MakeSymbol("Result") +reg295446 := PrimHead(V1630) +reg295447 := PrimTail(reg295446) +reg295448 := PrimHead(reg295447) +reg295449 := PrimTail(reg295448) +reg295450 := PrimHead(reg295449) +reg295451 := MakeSymbol("if") +reg295452 := MakeSymbol("=") +reg295453 := MakeSymbol("Result") +reg295454 := MakeSymbol("fail") +reg295455 := Nil; +reg295456 := PrimCons(reg295454, reg295455) +reg295457 := Nil; +reg295458 := PrimCons(reg295456, reg295457) +reg295459 := PrimCons(reg295453, reg295458) +reg295460 := PrimCons(reg295452, reg295459) +reg295461 := PrimTail(V1630) +reg295462 := __e.Call(__defun__shen_4encode_1choices, reg295461, V1631) +reg295463 := __e.Call(__defun__shen_4cond_1form, reg295462) +reg295464 := MakeSymbol("Result") +reg295465 := Nil; +reg295466 := PrimCons(reg295464, reg295465) +reg295467 := PrimCons(reg295463, reg295466) +reg295468 := PrimCons(reg295460, reg295467) +reg295469 := PrimCons(reg295451, reg295468) +reg295470 := Nil; +reg295471 := PrimCons(reg295469, reg295470) +reg295472 := PrimCons(reg295450, reg295471) +reg295473 := PrimCons(reg295445, reg295472) +reg295474 := PrimCons(reg295444, reg295473) +reg295475 := Nil; +reg295476 := PrimCons(reg295474, reg295475) +reg295477 := PrimCons(reg295443, reg295476) +reg295478 := Nil; +reg295479 := PrimCons(reg295477, reg295478) +__ctx.Return(reg295479) +return +} else { +reg295480 := PrimIsPair(V1630) +var reg295547 Obj +if reg295480 == True { +reg295481 := PrimHead(V1630) +reg295482 := PrimIsPair(reg295481) +var reg295542 Obj +if reg295482 == True { +reg295483 := PrimHead(V1630) +reg295484 := PrimTail(reg295483) +reg295485 := PrimIsPair(reg295484) +var reg295537 Obj +if reg295485 == True { +reg295486 := PrimHead(V1630) +reg295487 := PrimTail(reg295486) +reg295488 := PrimHead(reg295487) +reg295489 := PrimIsPair(reg295488) +var reg295532 Obj +if reg295489 == True { +reg295490 := MakeSymbol("shen.choicepoint!") +reg295491 := PrimHead(V1630) +reg295492 := PrimTail(reg295491) +reg295493 := PrimHead(reg295492) +reg295494 := PrimHead(reg295493) +reg295495 := PrimEqual(reg295490, reg295494) +var reg295527 Obj +if reg295495 == True { +reg295496 := PrimHead(V1630) +reg295497 := PrimTail(reg295496) +reg295498 := PrimHead(reg295497) +reg295499 := PrimTail(reg295498) +reg295500 := PrimIsPair(reg295499) +var reg295522 Obj +if reg295500 == True { +reg295501 := Nil; +reg295502 := PrimHead(V1630) +reg295503 := PrimTail(reg295502) +reg295504 := PrimHead(reg295503) +reg295505 := PrimTail(reg295504) +reg295506 := PrimTail(reg295505) +reg295507 := PrimEqual(reg295501, reg295506) +var reg295517 Obj +if reg295507 == True { +reg295508 := Nil; +reg295509 := PrimHead(V1630) +reg295510 := PrimTail(reg295509) +reg295511 := PrimTail(reg295510) +reg295512 := PrimEqual(reg295508, reg295511) +var reg295515 Obj +if reg295512 == True { +reg295513 := True; +reg295515 = reg295513 +} else { +reg295514 := False; +reg295515 = reg295514 +} +reg295517 = reg295515 +} else { +reg295516 := False; +reg295517 = reg295516 +} +var reg295520 Obj +if reg295517 == True { +reg295518 := True; +reg295520 = reg295518 +} else { +reg295519 := False; +reg295520 = reg295519 +} +reg295522 = reg295520 +} else { +reg295521 := False; +reg295522 = reg295521 +} +var reg295525 Obj +if reg295522 == True { +reg295523 := True; +reg295525 = reg295523 +} else { +reg295524 := False; +reg295525 = reg295524 +} +reg295527 = reg295525 +} else { +reg295526 := False; +reg295527 = reg295526 +} +var reg295530 Obj +if reg295527 == True { +reg295528 := True; +reg295530 = reg295528 +} else { +reg295529 := False; +reg295530 = reg295529 +} +reg295532 = reg295530 +} else { +reg295531 := False; +reg295532 = reg295531 +} +var reg295535 Obj +if reg295532 == True { +reg295533 := True; +reg295535 = reg295533 +} else { +reg295534 := False; +reg295535 = reg295534 +} +reg295537 = reg295535 +} else { +reg295536 := False; +reg295537 = reg295536 +} +var reg295540 Obj +if reg295537 == True { +reg295538 := True; +reg295540 = reg295538 +} else { +reg295539 := False; +reg295540 = reg295539 +} +reg295542 = reg295540 +} else { +reg295541 := False; +reg295542 = reg295541 +} +var reg295545 Obj +if reg295542 == True { +reg295543 := True; +reg295545 = reg295543 +} else { +reg295544 := False; +reg295545 = reg295544 +} +reg295547 = reg295545 +} else { +reg295546 := False; +reg295547 = reg295546 +} +if reg295547 == True { +reg295548 := True; +reg295549 := MakeSymbol("let") +reg295550 := MakeSymbol("Freeze") +reg295551 := MakeSymbol("freeze") +reg295552 := PrimTail(V1630) +reg295553 := __e.Call(__defun__shen_4encode_1choices, reg295552, V1631) +reg295554 := __e.Call(__defun__shen_4cond_1form, reg295553) +reg295555 := Nil; +reg295556 := PrimCons(reg295554, reg295555) +reg295557 := PrimCons(reg295551, reg295556) +reg295558 := MakeSymbol("if") +reg295559 := PrimHead(V1630) +reg295560 := PrimHead(reg295559) +reg295561 := MakeSymbol("let") +reg295562 := MakeSymbol("Result") +reg295563 := PrimHead(V1630) +reg295564 := PrimTail(reg295563) +reg295565 := PrimHead(reg295564) +reg295566 := PrimTail(reg295565) +reg295567 := PrimHead(reg295566) +reg295568 := MakeSymbol("if") +reg295569 := MakeSymbol("=") +reg295570 := MakeSymbol("Result") +reg295571 := MakeSymbol("fail") +reg295572 := Nil; +reg295573 := PrimCons(reg295571, reg295572) +reg295574 := Nil; +reg295575 := PrimCons(reg295573, reg295574) +reg295576 := PrimCons(reg295570, reg295575) +reg295577 := PrimCons(reg295569, reg295576) +reg295578 := MakeSymbol("thaw") +reg295579 := MakeSymbol("Freeze") +reg295580 := Nil; +reg295581 := PrimCons(reg295579, reg295580) +reg295582 := PrimCons(reg295578, reg295581) +reg295583 := MakeSymbol("Result") +reg295584 := Nil; +reg295585 := PrimCons(reg295583, reg295584) +reg295586 := PrimCons(reg295582, reg295585) +reg295587 := PrimCons(reg295577, reg295586) +reg295588 := PrimCons(reg295568, reg295587) +reg295589 := Nil; +reg295590 := PrimCons(reg295588, reg295589) +reg295591 := PrimCons(reg295567, reg295590) +reg295592 := PrimCons(reg295562, reg295591) +reg295593 := PrimCons(reg295561, reg295592) +reg295594 := MakeSymbol("thaw") +reg295595 := MakeSymbol("Freeze") +reg295596 := Nil; +reg295597 := PrimCons(reg295595, reg295596) +reg295598 := PrimCons(reg295594, reg295597) +reg295599 := Nil; +reg295600 := PrimCons(reg295598, reg295599) +reg295601 := PrimCons(reg295593, reg295600) +reg295602 := PrimCons(reg295560, reg295601) +reg295603 := PrimCons(reg295558, reg295602) +reg295604 := Nil; +reg295605 := PrimCons(reg295603, reg295604) +reg295606 := PrimCons(reg295557, reg295605) +reg295607 := PrimCons(reg295550, reg295606) +reg295608 := PrimCons(reg295549, reg295607) +reg295609 := Nil; +reg295610 := PrimCons(reg295608, reg295609) +reg295611 := PrimCons(reg295548, reg295610) +reg295612 := Nil; +reg295613 := PrimCons(reg295611, reg295612) +__ctx.Return(reg295613) +return +} else { +reg295614 := PrimIsPair(V1630) +var reg295639 Obj +if reg295614 == True { +reg295615 := PrimHead(V1630) +reg295616 := PrimIsPair(reg295615) +var reg295634 Obj +if reg295616 == True { +reg295617 := PrimHead(V1630) +reg295618 := PrimTail(reg295617) +reg295619 := PrimIsPair(reg295618) +var reg295629 Obj +if reg295619 == True { +reg295620 := Nil; +reg295621 := PrimHead(V1630) +reg295622 := PrimTail(reg295621) +reg295623 := PrimTail(reg295622) +reg295624 := PrimEqual(reg295620, reg295623) +var reg295627 Obj +if reg295624 == True { +reg295625 := True; +reg295627 = reg295625 +} else { +reg295626 := False; +reg295627 = reg295626 +} +reg295629 = reg295627 +} else { +reg295628 := False; +reg295629 = reg295628 +} +var reg295632 Obj +if reg295629 == True { +reg295630 := True; +reg295632 = reg295630 +} else { +reg295631 := False; +reg295632 = reg295631 +} +reg295634 = reg295632 +} else { +reg295633 := False; +reg295634 = reg295633 +} +var reg295637 Obj +if reg295634 == True { +reg295635 := True; +reg295637 = reg295635 +} else { +reg295636 := False; +reg295637 = reg295636 +} +reg295639 = reg295637 +} else { +reg295638 := False; +reg295639 = reg295638 +} +if reg295639 == True { +reg295640 := PrimHead(V1630) +reg295641 := PrimTail(V1630) +reg295642 := __e.Call(__defun__shen_4encode_1choices, reg295641, V1631) +reg295643 := PrimCons(reg295640, reg295642) +__ctx.Return(reg295643) +return +} else { +reg295644 := MakeSymbol("shen.encode-choices") +__ctx.TailApply(__defun__shen_4f__error, reg295644) +return +} +} +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.encode-choices", value: __defun__shen_4encode_1choices}) + +__defun__shen_4case_1form = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1638 := __args[0] +_ = V1638 +V1639 := __args[1] +_ = V1639 +reg295646 := Nil; +reg295647 := PrimEqual(reg295646, V1638) +if reg295647 == True { +reg295648 := Nil; +reg295649 := PrimCons(V1639, reg295648) +__ctx.Return(reg295649) +return +} else { +reg295650 := PrimIsPair(V1638) +var reg295766 Obj +if reg295650 == True { +reg295651 := PrimHead(V1638) +reg295652 := PrimIsPair(reg295651) +var reg295761 Obj +if reg295652 == True { +reg295653 := PrimHead(V1638) +reg295654 := PrimHead(reg295653) +reg295655 := PrimIsPair(reg295654) +var reg295756 Obj +if reg295655 == True { +reg295656 := MakeSymbol(":") +reg295657 := PrimHead(V1638) +reg295658 := PrimHead(reg295657) +reg295659 := PrimHead(reg295658) +reg295660 := PrimEqual(reg295656, reg295659) +var reg295751 Obj +if reg295660 == True { +reg295661 := PrimHead(V1638) +reg295662 := PrimHead(reg295661) +reg295663 := PrimTail(reg295662) +reg295664 := PrimIsPair(reg295663) +var reg295746 Obj +if reg295664 == True { +reg295665 := MakeSymbol("shen.tests") +reg295666 := PrimHead(V1638) +reg295667 := PrimHead(reg295666) +reg295668 := PrimTail(reg295667) +reg295669 := PrimHead(reg295668) +reg295670 := PrimEqual(reg295665, reg295669) +var reg295741 Obj +if reg295670 == True { +reg295671 := Nil; +reg295672 := PrimHead(V1638) +reg295673 := PrimHead(reg295672) +reg295674 := PrimTail(reg295673) +reg295675 := PrimTail(reg295674) +reg295676 := PrimEqual(reg295671, reg295675) +var reg295736 Obj +if reg295676 == True { +reg295677 := PrimHead(V1638) +reg295678 := PrimTail(reg295677) +reg295679 := PrimIsPair(reg295678) +var reg295731 Obj +if reg295679 == True { +reg295680 := PrimHead(V1638) +reg295681 := PrimTail(reg295680) +reg295682 := PrimHead(reg295681) +reg295683 := PrimIsPair(reg295682) +var reg295726 Obj +if reg295683 == True { +reg295684 := MakeSymbol("shen.choicepoint!") +reg295685 := PrimHead(V1638) +reg295686 := PrimTail(reg295685) +reg295687 := PrimHead(reg295686) +reg295688 := PrimHead(reg295687) +reg295689 := PrimEqual(reg295684, reg295688) +var reg295721 Obj +if reg295689 == True { +reg295690 := PrimHead(V1638) +reg295691 := PrimTail(reg295690) +reg295692 := PrimHead(reg295691) +reg295693 := PrimTail(reg295692) +reg295694 := PrimIsPair(reg295693) +var reg295716 Obj +if reg295694 == True { +reg295695 := Nil; +reg295696 := PrimHead(V1638) +reg295697 := PrimTail(reg295696) +reg295698 := PrimHead(reg295697) +reg295699 := PrimTail(reg295698) +reg295700 := PrimTail(reg295699) +reg295701 := PrimEqual(reg295695, reg295700) +var reg295711 Obj +if reg295701 == True { +reg295702 := Nil; +reg295703 := PrimHead(V1638) +reg295704 := PrimTail(reg295703) +reg295705 := PrimTail(reg295704) +reg295706 := PrimEqual(reg295702, reg295705) +var reg295709 Obj +if reg295706 == True { +reg295707 := True; +reg295709 = reg295707 +} else { +reg295708 := False; +reg295709 = reg295708 +} +reg295711 = reg295709 +} else { +reg295710 := False; +reg295711 = reg295710 +} +var reg295714 Obj +if reg295711 == True { +reg295712 := True; +reg295714 = reg295712 +} else { +reg295713 := False; +reg295714 = reg295713 +} +reg295716 = reg295714 +} else { +reg295715 := False; +reg295716 = reg295715 +} +var reg295719 Obj +if reg295716 == True { +reg295717 := True; +reg295719 = reg295717 +} else { +reg295718 := False; +reg295719 = reg295718 +} +reg295721 = reg295719 +} else { +reg295720 := False; +reg295721 = reg295720 +} +var reg295724 Obj +if reg295721 == True { +reg295722 := True; +reg295724 = reg295722 +} else { +reg295723 := False; +reg295724 = reg295723 +} +reg295726 = reg295724 +} else { +reg295725 := False; +reg295726 = reg295725 +} +var reg295729 Obj +if reg295726 == True { +reg295727 := True; +reg295729 = reg295727 +} else { +reg295728 := False; +reg295729 = reg295728 +} +reg295731 = reg295729 +} else { +reg295730 := False; +reg295731 = reg295730 +} +var reg295734 Obj +if reg295731 == True { +reg295732 := True; +reg295734 = reg295732 +} else { +reg295733 := False; +reg295734 = reg295733 +} +reg295736 = reg295734 +} else { +reg295735 := False; +reg295736 = reg295735 +} +var reg295739 Obj +if reg295736 == True { +reg295737 := True; +reg295739 = reg295737 +} else { +reg295738 := False; +reg295739 = reg295738 +} +reg295741 = reg295739 +} else { +reg295740 := False; +reg295741 = reg295740 +} +var reg295744 Obj +if reg295741 == True { +reg295742 := True; +reg295744 = reg295742 +} else { +reg295743 := False; +reg295744 = reg295743 +} +reg295746 = reg295744 +} else { +reg295745 := False; +reg295746 = reg295745 +} +var reg295749 Obj +if reg295746 == True { +reg295747 := True; +reg295749 = reg295747 +} else { +reg295748 := False; +reg295749 = reg295748 +} +reg295751 = reg295749 +} else { +reg295750 := False; +reg295751 = reg295750 +} +var reg295754 Obj +if reg295751 == True { +reg295752 := True; +reg295754 = reg295752 +} else { +reg295753 := False; +reg295754 = reg295753 +} +reg295756 = reg295754 +} else { +reg295755 := False; +reg295756 = reg295755 +} +var reg295759 Obj +if reg295756 == True { +reg295757 := True; +reg295759 = reg295757 +} else { +reg295758 := False; +reg295759 = reg295758 +} +reg295761 = reg295759 +} else { +reg295760 := False; +reg295761 = reg295760 +} +var reg295764 Obj +if reg295761 == True { +reg295762 := True; +reg295764 = reg295762 +} else { +reg295763 := False; +reg295764 = reg295763 +} +reg295766 = reg295764 +} else { +reg295765 := False; +reg295766 = reg295765 +} +if reg295766 == True { +reg295767 := True; +reg295768 := PrimHead(V1638) +reg295769 := PrimTail(reg295768) +reg295770 := PrimCons(reg295767, reg295769) +reg295771 := PrimTail(V1638) +reg295772 := __e.Call(__defun__shen_4case_1form, reg295771, V1639) +reg295773 := PrimCons(reg295770, reg295772) +__ctx.Return(reg295773) +return +} else { +reg295774 := PrimIsPair(V1638) +var reg295848 Obj +if reg295774 == True { +reg295775 := PrimHead(V1638) +reg295776 := PrimIsPair(reg295775) +var reg295843 Obj +if reg295776 == True { +reg295777 := PrimHead(V1638) +reg295778 := PrimHead(reg295777) +reg295779 := PrimIsPair(reg295778) +var reg295838 Obj +if reg295779 == True { +reg295780 := MakeSymbol(":") +reg295781 := PrimHead(V1638) +reg295782 := PrimHead(reg295781) +reg295783 := PrimHead(reg295782) +reg295784 := PrimEqual(reg295780, reg295783) +var reg295833 Obj +if reg295784 == True { +reg295785 := PrimHead(V1638) +reg295786 := PrimHead(reg295785) +reg295787 := PrimTail(reg295786) +reg295788 := PrimIsPair(reg295787) +var reg295828 Obj +if reg295788 == True { +reg295789 := MakeSymbol("shen.tests") +reg295790 := PrimHead(V1638) +reg295791 := PrimHead(reg295790) +reg295792 := PrimTail(reg295791) +reg295793 := PrimHead(reg295792) +reg295794 := PrimEqual(reg295789, reg295793) +var reg295823 Obj +if reg295794 == True { +reg295795 := Nil; +reg295796 := PrimHead(V1638) +reg295797 := PrimHead(reg295796) +reg295798 := PrimTail(reg295797) +reg295799 := PrimTail(reg295798) +reg295800 := PrimEqual(reg295795, reg295799) +var reg295818 Obj +if reg295800 == True { +reg295801 := PrimHead(V1638) +reg295802 := PrimTail(reg295801) +reg295803 := PrimIsPair(reg295802) +var reg295813 Obj +if reg295803 == True { +reg295804 := Nil; +reg295805 := PrimHead(V1638) +reg295806 := PrimTail(reg295805) +reg295807 := PrimTail(reg295806) +reg295808 := PrimEqual(reg295804, reg295807) +var reg295811 Obj +if reg295808 == True { +reg295809 := True; +reg295811 = reg295809 +} else { +reg295810 := False; +reg295811 = reg295810 +} +reg295813 = reg295811 +} else { +reg295812 := False; +reg295813 = reg295812 +} +var reg295816 Obj +if reg295813 == True { +reg295814 := True; +reg295816 = reg295814 +} else { +reg295815 := False; +reg295816 = reg295815 +} +reg295818 = reg295816 +} else { +reg295817 := False; +reg295818 = reg295817 +} +var reg295821 Obj +if reg295818 == True { +reg295819 := True; +reg295821 = reg295819 +} else { +reg295820 := False; +reg295821 = reg295820 +} +reg295823 = reg295821 +} else { +reg295822 := False; +reg295823 = reg295822 +} +var reg295826 Obj +if reg295823 == True { +reg295824 := True; +reg295826 = reg295824 +} else { +reg295825 := False; +reg295826 = reg295825 +} +reg295828 = reg295826 +} else { +reg295827 := False; +reg295828 = reg295827 +} +var reg295831 Obj +if reg295828 == True { +reg295829 := True; +reg295831 = reg295829 +} else { +reg295830 := False; +reg295831 = reg295830 +} +reg295833 = reg295831 +} else { +reg295832 := False; +reg295833 = reg295832 +} +var reg295836 Obj +if reg295833 == True { +reg295834 := True; +reg295836 = reg295834 +} else { +reg295835 := False; +reg295836 = reg295835 +} +reg295838 = reg295836 +} else { +reg295837 := False; +reg295838 = reg295837 +} +var reg295841 Obj +if reg295838 == True { +reg295839 := True; +reg295841 = reg295839 +} else { +reg295840 := False; +reg295841 = reg295840 +} +reg295843 = reg295841 +} else { +reg295842 := False; +reg295843 = reg295842 +} +var reg295846 Obj +if reg295843 == True { +reg295844 := True; +reg295846 = reg295844 +} else { +reg295845 := False; +reg295846 = reg295845 +} +reg295848 = reg295846 +} else { +reg295847 := False; +reg295848 = reg295847 +} +if reg295848 == True { +reg295849 := True; +reg295850 := PrimHead(V1638) +reg295851 := PrimTail(reg295850) +reg295852 := PrimCons(reg295849, reg295851) +reg295853 := Nil; +reg295854 := PrimCons(reg295852, reg295853) +__ctx.Return(reg295854) +return +} else { +reg295855 := PrimIsPair(V1638) +var reg295918 Obj +if reg295855 == True { +reg295856 := PrimHead(V1638) +reg295857 := PrimIsPair(reg295856) +var reg295913 Obj +if reg295857 == True { +reg295858 := PrimHead(V1638) +reg295859 := PrimHead(reg295858) +reg295860 := PrimIsPair(reg295859) +var reg295908 Obj +if reg295860 == True { +reg295861 := MakeSymbol(":") +reg295862 := PrimHead(V1638) +reg295863 := PrimHead(reg295862) +reg295864 := PrimHead(reg295863) +reg295865 := PrimEqual(reg295861, reg295864) +var reg295903 Obj +if reg295865 == True { +reg295866 := PrimHead(V1638) +reg295867 := PrimHead(reg295866) +reg295868 := PrimTail(reg295867) +reg295869 := PrimIsPair(reg295868) +var reg295898 Obj +if reg295869 == True { +reg295870 := MakeSymbol("shen.tests") +reg295871 := PrimHead(V1638) +reg295872 := PrimHead(reg295871) +reg295873 := PrimTail(reg295872) +reg295874 := PrimHead(reg295873) +reg295875 := PrimEqual(reg295870, reg295874) +var reg295893 Obj +if reg295875 == True { +reg295876 := PrimHead(V1638) +reg295877 := PrimTail(reg295876) +reg295878 := PrimIsPair(reg295877) +var reg295888 Obj +if reg295878 == True { +reg295879 := Nil; +reg295880 := PrimHead(V1638) +reg295881 := PrimTail(reg295880) +reg295882 := PrimTail(reg295881) +reg295883 := PrimEqual(reg295879, reg295882) +var reg295886 Obj +if reg295883 == True { +reg295884 := True; +reg295886 = reg295884 +} else { +reg295885 := False; +reg295886 = reg295885 +} +reg295888 = reg295886 +} else { +reg295887 := False; +reg295888 = reg295887 +} +var reg295891 Obj +if reg295888 == True { +reg295889 := True; +reg295891 = reg295889 +} else { +reg295890 := False; +reg295891 = reg295890 +} +reg295893 = reg295891 +} else { +reg295892 := False; +reg295893 = reg295892 +} +var reg295896 Obj +if reg295893 == True { +reg295894 := True; +reg295896 = reg295894 +} else { +reg295895 := False; +reg295896 = reg295895 +} +reg295898 = reg295896 +} else { +reg295897 := False; +reg295898 = reg295897 +} +var reg295901 Obj +if reg295898 == True { +reg295899 := True; +reg295901 = reg295899 +} else { +reg295900 := False; +reg295901 = reg295900 +} +reg295903 = reg295901 +} else { +reg295902 := False; +reg295903 = reg295902 +} +var reg295906 Obj +if reg295903 == True { +reg295904 := True; +reg295906 = reg295904 +} else { +reg295905 := False; +reg295906 = reg295905 +} +reg295908 = reg295906 +} else { +reg295907 := False; +reg295908 = reg295907 +} +var reg295911 Obj +if reg295908 == True { +reg295909 := True; +reg295911 = reg295909 +} else { +reg295910 := False; +reg295911 = reg295910 +} +reg295913 = reg295911 +} else { +reg295912 := False; +reg295913 = reg295912 +} +var reg295916 Obj +if reg295913 == True { +reg295914 := True; +reg295916 = reg295914 +} else { +reg295915 := False; +reg295916 = reg295915 +} +reg295918 = reg295916 +} else { +reg295917 := False; +reg295918 = reg295917 +} +if reg295918 == True { +reg295919 := PrimHead(V1638) +reg295920 := PrimHead(reg295919) +reg295921 := PrimTail(reg295920) +reg295922 := PrimTail(reg295921) +reg295923 := __e.Call(__defun__shen_4embed_1and, reg295922) +reg295924 := PrimHead(V1638) +reg295925 := PrimTail(reg295924) +reg295926 := PrimCons(reg295923, reg295925) +reg295927 := PrimTail(V1638) +reg295928 := __e.Call(__defun__shen_4case_1form, reg295927, V1639) +reg295929 := PrimCons(reg295926, reg295928) +__ctx.Return(reg295929) +return +} else { +reg295930 := MakeSymbol("shen.case-form") +__ctx.TailApply(__defun__shen_4f__error, reg295930) +return +} +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.case-form", value: __defun__shen_4case_1form}) + +__defun__shen_4embed_1and = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1641 := __args[0] +_ = V1641 +reg295932 := PrimIsPair(V1641) +var reg295940 Obj +if reg295932 == True { +reg295933 := Nil; +reg295934 := PrimTail(V1641) +reg295935 := PrimEqual(reg295933, reg295934) +var reg295938 Obj +if reg295935 == True { +reg295936 := True; +reg295938 = reg295936 +} else { +reg295937 := False; +reg295938 = reg295937 +} +reg295940 = reg295938 +} else { +reg295939 := False; +reg295940 = reg295939 +} +if reg295940 == True { +reg295941 := PrimHead(V1641) +__ctx.Return(reg295941) +return +} else { +reg295942 := PrimIsPair(V1641) +if reg295942 == True { +reg295943 := MakeSymbol("and") +reg295944 := PrimHead(V1641) +reg295945 := PrimTail(V1641) +reg295946 := __e.Call(__defun__shen_4embed_1and, reg295945) +reg295947 := Nil; +reg295948 := PrimCons(reg295946, reg295947) +reg295949 := PrimCons(reg295944, reg295948) +reg295950 := PrimCons(reg295943, reg295949) +__ctx.Return(reg295950) +return +} else { +reg295951 := MakeSymbol("shen.embed-and") +__ctx.TailApply(__defun__shen_4f__error, reg295951) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.embed-and", value: __defun__shen_4embed_1and}) + +__defun__shen_4err_1condition = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1643 := __args[0] +_ = V1643 +reg295953 := True; +reg295954 := MakeSymbol("shen.f_error") +reg295955 := Nil; +reg295956 := PrimCons(V1643, reg295955) +reg295957 := PrimCons(reg295954, reg295956) +reg295958 := Nil; +reg295959 := PrimCons(reg295957, reg295958) +reg295960 := PrimCons(reg295953, reg295959) +__ctx.Return(reg295960) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.err-condition", value: __defun__shen_4err_1condition}) + +__defun__shen_4sys_1error = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1645 := __args[0] +_ = V1645 +reg295961 := MakeString("system function ") +reg295962 := MakeString(": unexpected argument\n") +reg295963 := MakeSymbol("shen.a") +reg295964 := __e.Call(__defun__shen_4app, V1645, reg295962, reg295963) +reg295965 := PrimStringConcat(reg295961, reg295964) +reg295966 := PrimSimpleError(reg295965) +__ctx.Return(reg295966) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.sys-error", value: __defun__shen_4sys_1error}) + +} diff --git a/cmd/shen/declarations.go b/cmd/shen/declarations.go new file mode 100644 index 0000000..0b324c7 --- /dev/null +++ b/cmd/shen/declarations.go @@ -0,0 +1,2050 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__shen_4initialise__arity__table Obj // shen.initialise_arity_table +var __defun__arity Obj // arity +var __defun__systemf Obj // systemf +var __defun__adjoin Obj // adjoin +var __defun__shen_4lambda_1form_1entry Obj // shen.lambda-form-entry +var __defun__shen_4lambda_1form Obj // shen.lambda-form +var __defun__shen_4add_1end Obj // shen.add-end +var __defun__shen_4set_1lambda_1form_1entry Obj // shen.set-lambda-form-entry +var __defun__specialise Obj // specialise +var __defun__unspecialise Obj // unspecialise + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310184 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg310184) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310185 := MakeSymbol("shen.*installing-kl*") +reg310186 := False; +reg310187 := PrimSet(reg310185, reg310186) +__ctx.Return(reg310187) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310188 := MakeSymbol("shen.*history*") +reg310189 := Nil; +reg310190 := PrimSet(reg310188, reg310189) +__ctx.Return(reg310190) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310191 := MakeSymbol("shen.*tc*") +reg310192 := False; +reg310193 := PrimSet(reg310191, reg310192) +__ctx.Return(reg310193) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310194 := MakeSymbol("*property-vector*") +reg310195 := MakeNumber(20000) +reg310196 := __e.Call(__defun__shen_4dict, reg310195) +reg310197 := PrimSet(reg310194, reg310196) +__ctx.Return(reg310197) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310198 := MakeSymbol("shen.*process-counter*") +reg310199 := MakeNumber(0) +reg310200 := PrimSet(reg310198, reg310199) +__ctx.Return(reg310200) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310201 := MakeSymbol("shen.*varcounter*") +reg310202 := MakeNumber(10000) +reg310203 := __e.Call(__defun__vector, reg310202) +reg310204 := PrimSet(reg310201, reg310203) +__ctx.Return(reg310204) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310205 := MakeSymbol("shen.*prologvectors*") +reg310206 := MakeNumber(10000) +reg310207 := __e.Call(__defun__vector, reg310206) +reg310208 := PrimSet(reg310205, reg310207) +__ctx.Return(reg310208) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310209 := MakeSymbol("shen.*demodulation-function*") +reg310210 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.Return(X) +return +}, 1) +reg310211 := PrimSet(reg310209, reg310210) +__ctx.Return(reg310211) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310212 := MakeSymbol("shen.*macroreg*") +reg310213 := MakeSymbol("shen.timer-macro") +reg310214 := MakeSymbol("shen.cases-macro") +reg310215 := MakeSymbol("shen.abs-macro") +reg310216 := MakeSymbol("shen.put/get-macro") +reg310217 := MakeSymbol("shen.compile-macro") +reg310218 := MakeSymbol("shen.datatype-macro") +reg310219 := MakeSymbol("shen.let-macro") +reg310220 := MakeSymbol("shen.assoc-macro") +reg310221 := MakeSymbol("shen.make-string-macro") +reg310222 := MakeSymbol("shen.output-macro") +reg310223 := MakeSymbol("shen.input-macro") +reg310224 := MakeSymbol("shen.error-macro") +reg310225 := MakeSymbol("shen.prolog-macro") +reg310226 := MakeSymbol("shen.synonyms-macro") +reg310227 := MakeSymbol("shen.nl-macro") +reg310228 := MakeSymbol("shen.@s-macro") +reg310229 := MakeSymbol("shen.defprolog-macro") +reg310230 := MakeSymbol("shen.function-macro") +reg310231 := Nil; +reg310232 := PrimCons(reg310230, reg310231) +reg310233 := PrimCons(reg310229, reg310232) +reg310234 := PrimCons(reg310228, reg310233) +reg310235 := PrimCons(reg310227, reg310234) +reg310236 := PrimCons(reg310226, reg310235) +reg310237 := PrimCons(reg310225, reg310236) +reg310238 := PrimCons(reg310224, reg310237) +reg310239 := PrimCons(reg310223, reg310238) +reg310240 := PrimCons(reg310222, reg310239) +reg310241 := PrimCons(reg310221, reg310240) +reg310242 := PrimCons(reg310220, reg310241) +reg310243 := PrimCons(reg310219, reg310242) +reg310244 := PrimCons(reg310218, reg310243) +reg310245 := PrimCons(reg310217, reg310244) +reg310246 := PrimCons(reg310216, reg310245) +reg310247 := PrimCons(reg310215, reg310246) +reg310248 := PrimCons(reg310214, reg310247) +reg310249 := PrimCons(reg310213, reg310248) +reg310250 := PrimSet(reg310212, reg310249) +__ctx.Return(reg310250) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310251 := MakeSymbol("*macros*") +reg310252 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4timer_1macro, X) +return +}, 1) +reg310254 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4cases_1macro, X) +return +}, 1) +reg310256 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4abs_1macro, X) +return +}, 1) +reg310258 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4put_cget_1macro, X) +return +}, 1) +reg310260 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4compile_1macro, X) +return +}, 1) +reg310262 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4datatype_1macro, X) +return +}, 1) +reg310264 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4let_1macro, X) +return +}, 1) +reg310266 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4assoc_1macro, X) +return +}, 1) +reg310268 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4make_1string_1macro, X) +return +}, 1) +reg310270 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4output_1macro, X) +return +}, 1) +reg310272 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4input_1macro, X) +return +}, 1) +reg310274 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4error_1macro, X) +return +}, 1) +reg310276 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4prolog_1macro, X) +return +}, 1) +reg310278 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4synonyms_1macro, X) +return +}, 1) +reg310280 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4nl_1macro, X) +return +}, 1) +reg310282 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4_8s_1macro, X) +return +}, 1) +reg310284 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4defprolog_1macro, X) +return +}, 1) +reg310286 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4function_1macro, X) +return +}, 1) +reg310288 := Nil; +reg310289 := PrimCons(reg310286, reg310288) +reg310290 := PrimCons(reg310284, reg310289) +reg310291 := PrimCons(reg310282, reg310290) +reg310292 := PrimCons(reg310280, reg310291) +reg310293 := PrimCons(reg310278, reg310292) +reg310294 := PrimCons(reg310276, reg310293) +reg310295 := PrimCons(reg310274, reg310294) +reg310296 := PrimCons(reg310272, reg310295) +reg310297 := PrimCons(reg310270, reg310296) +reg310298 := PrimCons(reg310268, reg310297) +reg310299 := PrimCons(reg310266, reg310298) +reg310300 := PrimCons(reg310264, reg310299) +reg310301 := PrimCons(reg310262, reg310300) +reg310302 := PrimCons(reg310260, reg310301) +reg310303 := PrimCons(reg310258, reg310302) +reg310304 := PrimCons(reg310256, reg310303) +reg310305 := PrimCons(reg310254, reg310304) +reg310306 := PrimCons(reg310252, reg310305) +reg310307 := PrimSet(reg310251, reg310306) +__ctx.Return(reg310307) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310308 := MakeSymbol("shen.*gensym*") +reg310309 := MakeNumber(0) +reg310310 := PrimSet(reg310308, reg310309) +__ctx.Return(reg310310) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310311 := MakeSymbol("shen.*tracking*") +reg310312 := Nil; +reg310313 := PrimSet(reg310311, reg310312) +__ctx.Return(reg310313) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310314 := MakeSymbol("shen.*alphabet*") +reg310315 := MakeSymbol("A") +reg310316 := MakeSymbol("B") +reg310317 := MakeSymbol("C") +reg310318 := MakeSymbol("D") +reg310319 := MakeSymbol("E") +reg310320 := MakeSymbol("F") +reg310321 := MakeSymbol("G") +reg310322 := MakeSymbol("H") +reg310323 := MakeSymbol("I") +reg310324 := MakeSymbol("J") +reg310325 := MakeSymbol("K") +reg310326 := MakeSymbol("L") +reg310327 := MakeSymbol("M") +reg310328 := MakeSymbol("N") +reg310329 := MakeSymbol("O") +reg310330 := MakeSymbol("P") +reg310331 := MakeSymbol("Q") +reg310332 := MakeSymbol("R") +reg310333 := MakeSymbol("S") +reg310334 := MakeSymbol("T") +reg310335 := MakeSymbol("U") +reg310336 := MakeSymbol("V") +reg310337 := MakeSymbol("W") +reg310338 := MakeSymbol("X") +reg310339 := MakeSymbol("Y") +reg310340 := MakeSymbol("Z") +reg310341 := Nil; +reg310342 := PrimCons(reg310340, reg310341) +reg310343 := PrimCons(reg310339, reg310342) +reg310344 := PrimCons(reg310338, reg310343) +reg310345 := PrimCons(reg310337, reg310344) +reg310346 := PrimCons(reg310336, reg310345) +reg310347 := PrimCons(reg310335, reg310346) +reg310348 := PrimCons(reg310334, reg310347) +reg310349 := PrimCons(reg310333, reg310348) +reg310350 := PrimCons(reg310332, reg310349) +reg310351 := PrimCons(reg310331, reg310350) +reg310352 := PrimCons(reg310330, reg310351) +reg310353 := PrimCons(reg310329, reg310352) +reg310354 := PrimCons(reg310328, reg310353) +reg310355 := PrimCons(reg310327, reg310354) +reg310356 := PrimCons(reg310326, reg310355) +reg310357 := PrimCons(reg310325, reg310356) +reg310358 := PrimCons(reg310324, reg310357) +reg310359 := PrimCons(reg310323, reg310358) +reg310360 := PrimCons(reg310322, reg310359) +reg310361 := PrimCons(reg310321, reg310360) +reg310362 := PrimCons(reg310320, reg310361) +reg310363 := PrimCons(reg310319, reg310362) +reg310364 := PrimCons(reg310318, reg310363) +reg310365 := PrimCons(reg310317, reg310364) +reg310366 := PrimCons(reg310316, reg310365) +reg310367 := PrimCons(reg310315, reg310366) +reg310368 := PrimSet(reg310314, reg310367) +__ctx.Return(reg310368) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310369 := MakeSymbol("shen.*special*") +reg310370 := MakeSymbol("@p") +reg310371 := MakeSymbol("@s") +reg310372 := MakeSymbol("@v") +reg310373 := MakeSymbol("cons") +reg310374 := MakeSymbol("lambda") +reg310375 := MakeSymbol("let") +reg310376 := MakeSymbol("where") +reg310377 := MakeSymbol("set") +reg310378 := MakeSymbol("open") +reg310379 := Nil; +reg310380 := PrimCons(reg310378, reg310379) +reg310381 := PrimCons(reg310377, reg310380) +reg310382 := PrimCons(reg310376, reg310381) +reg310383 := PrimCons(reg310375, reg310382) +reg310384 := PrimCons(reg310374, reg310383) +reg310385 := PrimCons(reg310373, reg310384) +reg310386 := PrimCons(reg310372, reg310385) +reg310387 := PrimCons(reg310371, reg310386) +reg310388 := PrimCons(reg310370, reg310387) +reg310389 := PrimSet(reg310369, reg310388) +__ctx.Return(reg310389) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310390 := MakeSymbol("shen.*extraspecial*") +reg310391 := MakeSymbol("define") +reg310392 := MakeSymbol("shen.process-datatype") +reg310393 := MakeSymbol("input+") +reg310394 := MakeSymbol("defcc") +reg310395 := MakeSymbol("shen.read+") +reg310396 := MakeSymbol("defmacro") +reg310397 := Nil; +reg310398 := PrimCons(reg310396, reg310397) +reg310399 := PrimCons(reg310395, reg310398) +reg310400 := PrimCons(reg310394, reg310399) +reg310401 := PrimCons(reg310393, reg310400) +reg310402 := PrimCons(reg310392, reg310401) +reg310403 := PrimCons(reg310391, reg310402) +reg310404 := PrimSet(reg310390, reg310403) +__ctx.Return(reg310404) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310405 := MakeSymbol("shen.*spy*") +reg310406 := False; +reg310407 := PrimSet(reg310405, reg310406) +__ctx.Return(reg310407) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310408 := MakeSymbol("shen.*datatypes*") +reg310409 := Nil; +reg310410 := PrimSet(reg310408, reg310409) +__ctx.Return(reg310410) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310411 := MakeSymbol("shen.*alldatatypes*") +reg310412 := Nil; +reg310413 := PrimSet(reg310411, reg310412) +__ctx.Return(reg310413) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310414 := MakeSymbol("shen.*shen-type-theory-enabled?*") +reg310415 := True; +reg310416 := PrimSet(reg310414, reg310415) +__ctx.Return(reg310416) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310417 := MakeSymbol("shen.*synonyms*") +reg310418 := Nil; +reg310419 := PrimSet(reg310417, reg310418) +__ctx.Return(reg310419) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310420 := MakeSymbol("shen.*system*") +reg310421 := Nil; +reg310422 := PrimSet(reg310420, reg310421) +__ctx.Return(reg310422) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310423 := MakeSymbol("shen.*signedfuncs*") +reg310424 := Nil; +reg310425 := PrimSet(reg310423, reg310424) +__ctx.Return(reg310425) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310426 := MakeSymbol("shen.*maxcomplexity*") +reg310427 := MakeNumber(128) +reg310428 := PrimSet(reg310426, reg310427) +__ctx.Return(reg310428) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310429 := MakeSymbol("shen.*occurs*") +reg310430 := True; +reg310431 := PrimSet(reg310429, reg310430) +__ctx.Return(reg310431) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310432 := MakeSymbol("shen.*maxinferences*") +reg310433 := MakeNumber(1000000) +reg310434 := PrimSet(reg310432, reg310433) +__ctx.Return(reg310434) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310435 := MakeSymbol("*maximum-print-sequence-size*") +reg310436 := MakeNumber(20) +reg310437 := PrimSet(reg310435, reg310436) +__ctx.Return(reg310437) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310438 := MakeSymbol("shen.*catch*") +reg310439 := MakeNumber(0) +reg310440 := PrimSet(reg310438, reg310439) +__ctx.Return(reg310440) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310441 := MakeSymbol("shen.*call*") +reg310442 := MakeNumber(0) +reg310443 := PrimSet(reg310441, reg310442) +__ctx.Return(reg310443) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310444 := MakeSymbol("shen.*infs*") +reg310445 := MakeNumber(0) +reg310446 := PrimSet(reg310444, reg310445) +__ctx.Return(reg310446) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310447 := MakeSymbol("*hush*") +reg310448 := False; +reg310449 := PrimSet(reg310447, reg310448) +__ctx.Return(reg310449) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310450 := MakeSymbol("shen.*optimise*") +reg310451 := False; +reg310452 := PrimSet(reg310450, reg310451) +__ctx.Return(reg310452) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310453 := MakeSymbol("*version*") +reg310454 := MakeString("Shen 21") +reg310455 := PrimSet(reg310453, reg310454) +__ctx.Return(reg310455) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310456 := MakeSymbol("*home-directory*") +reg310457 := __e.Call(__defun__bound_2, reg310456) +reg310458 := PrimNot(reg310457) +if reg310458 == True { +reg310459 := MakeSymbol("*home-directory*") +reg310460 := MakeString("") +reg310461 := PrimSet(reg310459, reg310460) +__ctx.Return(reg310461) +return +} else { +reg310462 := MakeSymbol("shen.skip") +__ctx.Return(reg310462) +return +} +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310463 := MakeSymbol("*sterror*") +reg310464 := __e.Call(__defun__bound_2, reg310463) +reg310465 := PrimNot(reg310464) +if reg310465 == True { +reg310466 := MakeSymbol("*sterror*") +reg310467 := MakeSymbol("*stoutput*") +reg310468 := PrimValue(reg310467) +reg310469 := PrimSet(reg310466, reg310468) +__ctx.Return(reg310469) +return +} else { +reg310470 := MakeSymbol("shen.skip") +__ctx.Return(reg310470) +return +} +}, 0)) +__defun__shen_4initialise__arity__table = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1647 := __args[0] +_ = V1647 +reg310471 := Nil; +reg310472 := PrimEqual(reg310471, V1647) +if reg310472 == True { +reg310473 := Nil; +__ctx.Return(reg310473) +return +} else { +reg310474 := PrimIsPair(V1647) +var reg310481 Obj +if reg310474 == True { +reg310475 := PrimTail(V1647) +reg310476 := PrimIsPair(reg310475) +var reg310479 Obj +if reg310476 == True { +reg310477 := True; +reg310479 = reg310477 +} else { +reg310478 := False; +reg310479 = reg310478 +} +reg310481 = reg310479 +} else { +reg310480 := False; +reg310481 = reg310480 +} +if reg310481 == True { +reg310482 := PrimHead(V1647) +reg310483 := MakeSymbol("arity") +reg310484 := PrimTail(V1647) +reg310485 := PrimHead(reg310484) +reg310486 := MakeSymbol("*property-vector*") +reg310487 := PrimValue(reg310486) +reg310488 := __e.Call(__defun__put, reg310482, reg310483, reg310485, reg310487) +DecArity := reg310488 +_ = DecArity +reg310489 := PrimTail(V1647) +reg310490 := PrimTail(reg310489) +__ctx.TailApply(__defun__shen_4initialise__arity__table, reg310490) +return +} else { +reg310492 := MakeSymbol("shen.initialise_arity_table") +__ctx.TailApply(__defun__shen_4f__error, reg310492) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.initialise_arity_table", value: __defun__shen_4initialise__arity__table}) + +__defun__arity = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1649 := __args[0] +_ = V1649 +reg310494 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310495 := MakeSymbol("arity") +reg310496 := MakeSymbol("*property-vector*") +reg310497 := PrimValue(reg310496) +__ctx.TailApply(__defun__get, V1649, reg310495, reg310497) +return +}, 0) +reg310499 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg310500 := MakeNumber(-1) +__ctx.Return(reg310500) +return +}, 1) +reg310501 := __e.Try(reg310494).Catch(reg310499) +__ctx.Return(reg310501) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "arity", value: __defun__arity}) + +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg310502 := MakeSymbol("abort") +reg310503 := MakeNumber(0) +reg310504 := MakeSymbol("absvector?") +reg310505 := MakeNumber(1) +reg310506 := MakeSymbol("absvector") +reg310507 := MakeNumber(1) +reg310508 := MakeSymbol("adjoin") +reg310509 := MakeNumber(2) +reg310510 := MakeSymbol("and") +reg310511 := MakeNumber(2) +reg310512 := MakeSymbol("append") +reg310513 := MakeNumber(2) +reg310514 := MakeSymbol("arity") +reg310515 := MakeNumber(1) +reg310516 := MakeSymbol("assoc") +reg310517 := MakeNumber(2) +reg310518 := MakeSymbol("boolean?") +reg310519 := MakeNumber(1) +reg310520 := MakeSymbol("bound?") +reg310521 := MakeNumber(1) +reg310522 := MakeSymbol("cd") +reg310523 := MakeNumber(1) +reg310524 := MakeSymbol("close") +reg310525 := MakeNumber(1) +reg310526 := MakeSymbol("compile") +reg310527 := MakeNumber(3) +reg310528 := MakeSymbol("concat") +reg310529 := MakeNumber(2) +reg310530 := MakeSymbol("cons") +reg310531 := MakeNumber(2) +reg310532 := MakeSymbol("cons?") +reg310533 := MakeNumber(1) +reg310534 := MakeSymbol("cn") +reg310535 := MakeNumber(2) +reg310536 := MakeSymbol("declare") +reg310537 := MakeNumber(2) +reg310538 := MakeSymbol("destroy") +reg310539 := MakeNumber(1) +reg310540 := MakeSymbol("difference") +reg310541 := MakeNumber(2) +reg310542 := MakeSymbol("do") +reg310543 := MakeNumber(2) +reg310544 := MakeSymbol("element?") +reg310545 := MakeNumber(2) +reg310546 := MakeSymbol("empty?") +reg310547 := MakeNumber(1) +reg310548 := MakeSymbol("enable-type-theory") +reg310549 := MakeNumber(1) +reg310550 := MakeSymbol("error-to-string") +reg310551 := MakeNumber(1) +reg310552 := MakeSymbol("shen.interror") +reg310553 := MakeNumber(2) +reg310554 := MakeSymbol("eval") +reg310555 := MakeNumber(1) +reg310556 := MakeSymbol("eval-kl") +reg310557 := MakeNumber(1) +reg310558 := MakeSymbol("explode") +reg310559 := MakeNumber(1) +reg310560 := MakeSymbol("external") +reg310561 := MakeNumber(1) +reg310562 := MakeSymbol("fail-if") +reg310563 := MakeNumber(2) +reg310564 := MakeSymbol("fail") +reg310565 := MakeNumber(0) +reg310566 := MakeSymbol("fix") +reg310567 := MakeNumber(2) +reg310568 := MakeSymbol("findall") +reg310569 := MakeNumber(5) +reg310570 := MakeSymbol("freeze") +reg310571 := MakeNumber(1) +reg310572 := MakeSymbol("fst") +reg310573 := MakeNumber(1) +reg310574 := MakeSymbol("gensym") +reg310575 := MakeNumber(1) +reg310576 := MakeSymbol("get") +reg310577 := MakeNumber(3) +reg310578 := MakeSymbol("get-time") +reg310579 := MakeNumber(1) +reg310580 := MakeSymbol("address->") +reg310581 := MakeNumber(3) +reg310582 := MakeSymbol("<-address") +reg310583 := MakeNumber(2) +reg310584 := MakeSymbol("<-vector") +reg310585 := MakeNumber(2) +reg310586 := MakeSymbol(">") +reg310587 := MakeNumber(2) +reg310588 := MakeSymbol(">=") +reg310589 := MakeNumber(2) +reg310590 := MakeSymbol("=") +reg310591 := MakeNumber(2) +reg310592 := MakeSymbol("hash") +reg310593 := MakeNumber(2) +reg310594 := MakeSymbol("hd") +reg310595 := MakeNumber(1) +reg310596 := MakeSymbol("hdv") +reg310597 := MakeNumber(1) +reg310598 := MakeSymbol("hdstr") +reg310599 := MakeNumber(1) +reg310600 := MakeSymbol("head") +reg310601 := MakeNumber(1) +reg310602 := MakeSymbol("if") +reg310603 := MakeNumber(3) +reg310604 := MakeSymbol("integer?") +reg310605 := MakeNumber(1) +reg310606 := MakeSymbol("intern") +reg310607 := MakeNumber(1) +reg310608 := MakeSymbol("identical") +reg310609 := MakeNumber(4) +reg310610 := MakeSymbol("inferences") +reg310611 := MakeNumber(0) +reg310612 := MakeSymbol("input") +reg310613 := MakeNumber(1) +reg310614 := MakeSymbol("input+") +reg310615 := MakeNumber(2) +reg310616 := MakeSymbol("implementation") +reg310617 := MakeNumber(0) +reg310618 := MakeSymbol("intersection") +reg310619 := MakeNumber(2) +reg310620 := MakeSymbol("internal") +reg310621 := MakeNumber(1) +reg310622 := MakeSymbol("it") +reg310623 := MakeNumber(0) +reg310624 := MakeSymbol("kill") +reg310625 := MakeNumber(0) +reg310626 := MakeSymbol("language") +reg310627 := MakeNumber(0) +reg310628 := MakeSymbol("length") +reg310629 := MakeNumber(1) +reg310630 := MakeSymbol("limit") +reg310631 := MakeNumber(1) +reg310632 := MakeSymbol("lineread") +reg310633 := MakeNumber(1) +reg310634 := MakeSymbol("load") +reg310635 := MakeNumber(1) +reg310636 := MakeSymbol("<") +reg310637 := MakeNumber(2) +reg310638 := MakeSymbol("<=") +reg310639 := MakeNumber(2) +reg310640 := MakeSymbol("vector") +reg310641 := MakeNumber(1) +reg310642 := MakeSymbol("macroexpand") +reg310643 := MakeNumber(1) +reg310644 := MakeSymbol("map") +reg310645 := MakeNumber(2) +reg310646 := MakeSymbol("mapcan") +reg310647 := MakeNumber(2) +reg310648 := MakeSymbol("maxinferences") +reg310649 := MakeNumber(1) +reg310650 := MakeSymbol("nl") +reg310651 := MakeNumber(1) +reg310652 := MakeSymbol("not") +reg310653 := MakeNumber(1) +reg310654 := MakeSymbol("nth") +reg310655 := MakeNumber(2) +reg310656 := MakeSymbol("n->string") +reg310657 := MakeNumber(1) +reg310658 := MakeSymbol("number?") +reg310659 := MakeNumber(1) +reg310660 := MakeSymbol("occurs-check") +reg310661 := MakeNumber(1) +reg310662 := MakeSymbol("occurrences") +reg310663 := MakeNumber(2) +reg310664 := MakeSymbol("occurs-check") +reg310665 := MakeNumber(1) +reg310666 := MakeSymbol("open") +reg310667 := MakeNumber(2) +reg310668 := MakeSymbol("optimise") +reg310669 := MakeNumber(1) +reg310670 := MakeSymbol("or") +reg310671 := MakeNumber(2) +reg310672 := MakeSymbol("os") +reg310673 := MakeNumber(0) +reg310674 := MakeSymbol("package") +reg310675 := MakeNumber(3) +reg310676 := MakeSymbol("package?") +reg310677 := MakeNumber(1) +reg310678 := MakeSymbol("port") +reg310679 := MakeNumber(0) +reg310680 := MakeSymbol("porters") +reg310681 := MakeNumber(0) +reg310682 := MakeSymbol("pos") +reg310683 := MakeNumber(2) +reg310684 := MakeSymbol("print") +reg310685 := MakeNumber(1) +reg310686 := MakeSymbol("profile") +reg310687 := MakeNumber(1) +reg310688 := MakeSymbol("profile-results") +reg310689 := MakeNumber(1) +reg310690 := MakeSymbol("pr") +reg310691 := MakeNumber(2) +reg310692 := MakeSymbol("ps") +reg310693 := MakeNumber(1) +reg310694 := MakeSymbol("preclude") +reg310695 := MakeNumber(1) +reg310696 := MakeSymbol("preclude-all-but") +reg310697 := MakeNumber(1) +reg310698 := MakeSymbol("protect") +reg310699 := MakeNumber(1) +reg310700 := MakeSymbol("address->") +reg310701 := MakeNumber(3) +reg310702 := MakeSymbol("put") +reg310703 := MakeNumber(4) +reg310704 := MakeSymbol("shen.reassemble") +reg310705 := MakeNumber(2) +reg310706 := MakeSymbol("read-file-as-string") +reg310707 := MakeNumber(1) +reg310708 := MakeSymbol("read-file") +reg310709 := MakeNumber(1) +reg310710 := MakeSymbol("read-file-as-bytelist") +reg310711 := MakeNumber(1) +reg310712 := MakeSymbol("read") +reg310713 := MakeNumber(1) +reg310714 := MakeSymbol("read-byte") +reg310715 := MakeNumber(1) +reg310716 := MakeSymbol("read-from-string") +reg310717 := MakeNumber(1) +reg310718 := MakeSymbol("receive") +reg310719 := MakeNumber(1) +reg310720 := MakeSymbol("release") +reg310721 := MakeNumber(0) +reg310722 := MakeSymbol("remove") +reg310723 := MakeNumber(2) +reg310724 := MakeSymbol("shen.require") +reg310725 := MakeNumber(3) +reg310726 := MakeSymbol("reverse") +reg310727 := MakeNumber(1) +reg310728 := MakeSymbol("set") +reg310729 := MakeNumber(2) +reg310730 := MakeSymbol("simple-error") +reg310731 := MakeNumber(1) +reg310732 := MakeSymbol("snd") +reg310733 := MakeNumber(1) +reg310734 := MakeSymbol("specialise") +reg310735 := MakeNumber(1) +reg310736 := MakeSymbol("spy") +reg310737 := MakeNumber(1) +reg310738 := MakeSymbol("step") +reg310739 := MakeNumber(1) +reg310740 := MakeSymbol("stinput") +reg310741 := MakeNumber(0) +reg310742 := MakeSymbol("stoutput") +reg310743 := MakeNumber(0) +reg310744 := MakeSymbol("sterror") +reg310745 := MakeNumber(0) +reg310746 := MakeSymbol("string->n") +reg310747 := MakeNumber(1) +reg310748 := MakeSymbol("string->symbol") +reg310749 := MakeNumber(1) +reg310750 := MakeSymbol("string?") +reg310751 := MakeNumber(1) +reg310752 := MakeSymbol("str") +reg310753 := MakeNumber(1) +reg310754 := MakeSymbol("subst") +reg310755 := MakeNumber(3) +reg310756 := MakeSymbol("sum") +reg310757 := MakeNumber(1) +reg310758 := MakeSymbol("symbol?") +reg310759 := MakeNumber(1) +reg310760 := MakeSymbol("systemf") +reg310761 := MakeNumber(1) +reg310762 := MakeSymbol("tail") +reg310763 := MakeNumber(1) +reg310764 := MakeSymbol("tl") +reg310765 := MakeNumber(1) +reg310766 := MakeSymbol("tc") +reg310767 := MakeNumber(1) +reg310768 := MakeSymbol("tc?") +reg310769 := MakeNumber(0) +reg310770 := MakeSymbol("thaw") +reg310771 := MakeNumber(1) +reg310772 := MakeSymbol("tlstr") +reg310773 := MakeNumber(1) +reg310774 := MakeSymbol("track") +reg310775 := MakeNumber(1) +reg310776 := MakeSymbol("trap-error") +reg310777 := MakeNumber(2) +reg310778 := MakeSymbol("tuple?") +reg310779 := MakeNumber(1) +reg310780 := MakeSymbol("type") +reg310781 := MakeNumber(2) +reg310782 := MakeSymbol("return") +reg310783 := MakeNumber(3) +reg310784 := MakeSymbol("undefmacro") +reg310785 := MakeNumber(1) +reg310786 := MakeSymbol("unput") +reg310787 := MakeNumber(3) +reg310788 := MakeSymbol("unprofile") +reg310789 := MakeNumber(1) +reg310790 := MakeSymbol("unify") +reg310791 := MakeNumber(4) +reg310792 := MakeSymbol("unify!") +reg310793 := MakeNumber(4) +reg310794 := MakeSymbol("union") +reg310795 := MakeNumber(2) +reg310796 := MakeSymbol("untrack") +reg310797 := MakeNumber(1) +reg310798 := MakeSymbol("unspecialise") +reg310799 := MakeNumber(1) +reg310800 := MakeSymbol("undefmacro") +reg310801 := MakeNumber(1) +reg310802 := MakeSymbol("vector") +reg310803 := MakeNumber(1) +reg310804 := MakeSymbol("vector?") +reg310805 := MakeNumber(1) +reg310806 := MakeSymbol("vector->") +reg310807 := MakeNumber(3) +reg310808 := MakeSymbol("value") +reg310809 := MakeNumber(1) +reg310810 := MakeSymbol("variable?") +reg310811 := MakeNumber(1) +reg310812 := MakeSymbol("version") +reg310813 := MakeNumber(0) +reg310814 := MakeSymbol("write-byte") +reg310815 := MakeNumber(2) +reg310816 := MakeSymbol("write-to-file") +reg310817 := MakeNumber(2) +reg310818 := MakeSymbol("y-or-n?") +reg310819 := MakeNumber(1) +reg310820 := MakeSymbol("+") +reg310821 := MakeNumber(2) +reg310822 := MakeSymbol("*") +reg310823 := MakeNumber(2) +reg310824 := MakeSymbol("/") +reg310825 := MakeNumber(2) +reg310826 := MakeSymbol("-") +reg310827 := MakeNumber(2) +reg310828 := MakeSymbol("==") +reg310829 := MakeNumber(2) +reg310830 := MakeSymbol("") +reg310831 := MakeNumber(1) +reg310832 := MakeSymbol("") +reg310833 := MakeNumber(1) +reg310834 := MakeSymbol("@p") +reg310835 := MakeNumber(2) +reg310836 := MakeSymbol("@v") +reg310837 := MakeNumber(2) +reg310838 := MakeSymbol("@s") +reg310839 := MakeNumber(2) +reg310840 := MakeSymbol("preclude") +reg310841 := MakeNumber(1) +reg310842 := MakeSymbol("include") +reg310843 := MakeNumber(1) +reg310844 := MakeSymbol("preclude-all-but") +reg310845 := MakeNumber(1) +reg310846 := MakeSymbol("include-all-but") +reg310847 := MakeNumber(1) +reg310848 := Nil; +reg310849 := PrimCons(reg310847, reg310848) +reg310850 := PrimCons(reg310846, reg310849) +reg310851 := PrimCons(reg310845, reg310850) +reg310852 := PrimCons(reg310844, reg310851) +reg310853 := PrimCons(reg310843, reg310852) +reg310854 := PrimCons(reg310842, reg310853) +reg310855 := PrimCons(reg310841, reg310854) +reg310856 := PrimCons(reg310840, reg310855) +reg310857 := PrimCons(reg310839, reg310856) +reg310858 := PrimCons(reg310838, reg310857) +reg310859 := PrimCons(reg310837, reg310858) +reg310860 := PrimCons(reg310836, reg310859) +reg310861 := PrimCons(reg310835, reg310860) +reg310862 := PrimCons(reg310834, reg310861) +reg310863 := PrimCons(reg310833, reg310862) +reg310864 := PrimCons(reg310832, reg310863) +reg310865 := PrimCons(reg310831, reg310864) +reg310866 := PrimCons(reg310830, reg310865) +reg310867 := PrimCons(reg310829, reg310866) +reg310868 := PrimCons(reg310828, reg310867) +reg310869 := PrimCons(reg310827, reg310868) +reg310870 := PrimCons(reg310826, reg310869) +reg310871 := PrimCons(reg310825, reg310870) +reg310872 := PrimCons(reg310824, reg310871) +reg310873 := PrimCons(reg310823, reg310872) +reg310874 := PrimCons(reg310822, reg310873) +reg310875 := PrimCons(reg310821, reg310874) +reg310876 := PrimCons(reg310820, reg310875) +reg310877 := PrimCons(reg310819, reg310876) +reg310878 := PrimCons(reg310818, reg310877) +reg310879 := PrimCons(reg310817, reg310878) +reg310880 := PrimCons(reg310816, reg310879) +reg310881 := PrimCons(reg310815, reg310880) +reg310882 := PrimCons(reg310814, reg310881) +reg310883 := PrimCons(reg310813, reg310882) +reg310884 := PrimCons(reg310812, reg310883) +reg310885 := PrimCons(reg310811, reg310884) +reg310886 := PrimCons(reg310810, reg310885) +reg310887 := PrimCons(reg310809, reg310886) +reg310888 := PrimCons(reg310808, reg310887) +reg310889 := PrimCons(reg310807, reg310888) +reg310890 := PrimCons(reg310806, reg310889) +reg310891 := PrimCons(reg310805, reg310890) +reg310892 := PrimCons(reg310804, reg310891) +reg310893 := PrimCons(reg310803, reg310892) +reg310894 := PrimCons(reg310802, reg310893) +reg310895 := PrimCons(reg310801, reg310894) +reg310896 := PrimCons(reg310800, reg310895) +reg310897 := PrimCons(reg310799, reg310896) +reg310898 := PrimCons(reg310798, reg310897) +reg310899 := PrimCons(reg310797, reg310898) +reg310900 := PrimCons(reg310796, reg310899) +reg310901 := PrimCons(reg310795, reg310900) +reg310902 := PrimCons(reg310794, reg310901) +reg310903 := PrimCons(reg310793, reg310902) +reg310904 := PrimCons(reg310792, reg310903) +reg310905 := PrimCons(reg310791, reg310904) +reg310906 := PrimCons(reg310790, reg310905) +reg310907 := PrimCons(reg310789, reg310906) +reg310908 := PrimCons(reg310788, reg310907) +reg310909 := PrimCons(reg310787, reg310908) +reg310910 := PrimCons(reg310786, reg310909) +reg310911 := PrimCons(reg310785, reg310910) +reg310912 := PrimCons(reg310784, reg310911) +reg310913 := PrimCons(reg310783, reg310912) +reg310914 := PrimCons(reg310782, reg310913) +reg310915 := PrimCons(reg310781, reg310914) +reg310916 := PrimCons(reg310780, reg310915) +reg310917 := PrimCons(reg310779, reg310916) +reg310918 := PrimCons(reg310778, reg310917) +reg310919 := PrimCons(reg310777, reg310918) +reg310920 := PrimCons(reg310776, reg310919) +reg310921 := PrimCons(reg310775, reg310920) +reg310922 := PrimCons(reg310774, reg310921) +reg310923 := PrimCons(reg310773, reg310922) +reg310924 := PrimCons(reg310772, reg310923) +reg310925 := PrimCons(reg310771, reg310924) +reg310926 := PrimCons(reg310770, reg310925) +reg310927 := PrimCons(reg310769, reg310926) +reg310928 := PrimCons(reg310768, reg310927) +reg310929 := PrimCons(reg310767, reg310928) +reg310930 := PrimCons(reg310766, reg310929) +reg310931 := PrimCons(reg310765, reg310930) +reg310932 := PrimCons(reg310764, reg310931) +reg310933 := PrimCons(reg310763, reg310932) +reg310934 := PrimCons(reg310762, reg310933) +reg310935 := PrimCons(reg310761, reg310934) +reg310936 := PrimCons(reg310760, reg310935) +reg310937 := PrimCons(reg310759, reg310936) +reg310938 := PrimCons(reg310758, reg310937) +reg310939 := PrimCons(reg310757, reg310938) +reg310940 := PrimCons(reg310756, reg310939) +reg310941 := PrimCons(reg310755, reg310940) +reg310942 := PrimCons(reg310754, reg310941) +reg310943 := PrimCons(reg310753, reg310942) +reg310944 := PrimCons(reg310752, reg310943) +reg310945 := PrimCons(reg310751, reg310944) +reg310946 := PrimCons(reg310750, reg310945) +reg310947 := PrimCons(reg310749, reg310946) +reg310948 := PrimCons(reg310748, reg310947) +reg310949 := PrimCons(reg310747, reg310948) +reg310950 := PrimCons(reg310746, reg310949) +reg310951 := PrimCons(reg310745, reg310950) +reg310952 := PrimCons(reg310744, reg310951) +reg310953 := PrimCons(reg310743, reg310952) +reg310954 := PrimCons(reg310742, reg310953) +reg310955 := PrimCons(reg310741, reg310954) +reg310956 := PrimCons(reg310740, reg310955) +reg310957 := PrimCons(reg310739, reg310956) +reg310958 := PrimCons(reg310738, reg310957) +reg310959 := PrimCons(reg310737, reg310958) +reg310960 := PrimCons(reg310736, reg310959) +reg310961 := PrimCons(reg310735, reg310960) +reg310962 := PrimCons(reg310734, reg310961) +reg310963 := PrimCons(reg310733, reg310962) +reg310964 := PrimCons(reg310732, reg310963) +reg310965 := PrimCons(reg310731, reg310964) +reg310966 := PrimCons(reg310730, reg310965) +reg310967 := PrimCons(reg310729, reg310966) +reg310968 := PrimCons(reg310728, reg310967) +reg310969 := PrimCons(reg310727, reg310968) +reg310970 := PrimCons(reg310726, reg310969) +reg310971 := PrimCons(reg310725, reg310970) +reg310972 := PrimCons(reg310724, reg310971) +reg310973 := PrimCons(reg310723, reg310972) +reg310974 := PrimCons(reg310722, reg310973) +reg310975 := PrimCons(reg310721, reg310974) +reg310976 := PrimCons(reg310720, reg310975) +reg310977 := PrimCons(reg310719, reg310976) +reg310978 := PrimCons(reg310718, reg310977) +reg310979 := PrimCons(reg310717, reg310978) +reg310980 := PrimCons(reg310716, reg310979) +reg310981 := PrimCons(reg310715, reg310980) +reg310982 := PrimCons(reg310714, reg310981) +reg310983 := PrimCons(reg310713, reg310982) +reg310984 := PrimCons(reg310712, reg310983) +reg310985 := PrimCons(reg310711, reg310984) +reg310986 := PrimCons(reg310710, reg310985) +reg310987 := PrimCons(reg310709, reg310986) +reg310988 := PrimCons(reg310708, reg310987) +reg310989 := PrimCons(reg310707, reg310988) +reg310990 := PrimCons(reg310706, reg310989) +reg310991 := PrimCons(reg310705, reg310990) +reg310992 := PrimCons(reg310704, reg310991) +reg310993 := PrimCons(reg310703, reg310992) +reg310994 := PrimCons(reg310702, reg310993) +reg310995 := PrimCons(reg310701, reg310994) +reg310996 := PrimCons(reg310700, reg310995) +reg310997 := PrimCons(reg310699, reg310996) +reg310998 := PrimCons(reg310698, reg310997) +reg310999 := PrimCons(reg310697, reg310998) +reg311000 := PrimCons(reg310696, reg310999) +reg311001 := PrimCons(reg310695, reg311000) +reg311002 := PrimCons(reg310694, reg311001) +reg311003 := PrimCons(reg310693, reg311002) +reg311004 := PrimCons(reg310692, reg311003) +reg311005 := PrimCons(reg310691, reg311004) +reg311006 := PrimCons(reg310690, reg311005) +reg311007 := PrimCons(reg310689, reg311006) +reg311008 := PrimCons(reg310688, reg311007) +reg311009 := PrimCons(reg310687, reg311008) +reg311010 := PrimCons(reg310686, reg311009) +reg311011 := PrimCons(reg310685, reg311010) +reg311012 := PrimCons(reg310684, reg311011) +reg311013 := PrimCons(reg310683, reg311012) +reg311014 := PrimCons(reg310682, reg311013) +reg311015 := PrimCons(reg310681, reg311014) +reg311016 := PrimCons(reg310680, reg311015) +reg311017 := PrimCons(reg310679, reg311016) +reg311018 := PrimCons(reg310678, reg311017) +reg311019 := PrimCons(reg310677, reg311018) +reg311020 := PrimCons(reg310676, reg311019) +reg311021 := PrimCons(reg310675, reg311020) +reg311022 := PrimCons(reg310674, reg311021) +reg311023 := PrimCons(reg310673, reg311022) +reg311024 := PrimCons(reg310672, reg311023) +reg311025 := PrimCons(reg310671, reg311024) +reg311026 := PrimCons(reg310670, reg311025) +reg311027 := PrimCons(reg310669, reg311026) +reg311028 := PrimCons(reg310668, reg311027) +reg311029 := PrimCons(reg310667, reg311028) +reg311030 := PrimCons(reg310666, reg311029) +reg311031 := PrimCons(reg310665, reg311030) +reg311032 := PrimCons(reg310664, reg311031) +reg311033 := PrimCons(reg310663, reg311032) +reg311034 := PrimCons(reg310662, reg311033) +reg311035 := PrimCons(reg310661, reg311034) +reg311036 := PrimCons(reg310660, reg311035) +reg311037 := PrimCons(reg310659, reg311036) +reg311038 := PrimCons(reg310658, reg311037) +reg311039 := PrimCons(reg310657, reg311038) +reg311040 := PrimCons(reg310656, reg311039) +reg311041 := PrimCons(reg310655, reg311040) +reg311042 := PrimCons(reg310654, reg311041) +reg311043 := PrimCons(reg310653, reg311042) +reg311044 := PrimCons(reg310652, reg311043) +reg311045 := PrimCons(reg310651, reg311044) +reg311046 := PrimCons(reg310650, reg311045) +reg311047 := PrimCons(reg310649, reg311046) +reg311048 := PrimCons(reg310648, reg311047) +reg311049 := PrimCons(reg310647, reg311048) +reg311050 := PrimCons(reg310646, reg311049) +reg311051 := PrimCons(reg310645, reg311050) +reg311052 := PrimCons(reg310644, reg311051) +reg311053 := PrimCons(reg310643, reg311052) +reg311054 := PrimCons(reg310642, reg311053) +reg311055 := PrimCons(reg310641, reg311054) +reg311056 := PrimCons(reg310640, reg311055) +reg311057 := PrimCons(reg310639, reg311056) +reg311058 := PrimCons(reg310638, reg311057) +reg311059 := PrimCons(reg310637, reg311058) +reg311060 := PrimCons(reg310636, reg311059) +reg311061 := PrimCons(reg310635, reg311060) +reg311062 := PrimCons(reg310634, reg311061) +reg311063 := PrimCons(reg310633, reg311062) +reg311064 := PrimCons(reg310632, reg311063) +reg311065 := PrimCons(reg310631, reg311064) +reg311066 := PrimCons(reg310630, reg311065) +reg311067 := PrimCons(reg310629, reg311066) +reg311068 := PrimCons(reg310628, reg311067) +reg311069 := PrimCons(reg310627, reg311068) +reg311070 := PrimCons(reg310626, reg311069) +reg311071 := PrimCons(reg310625, reg311070) +reg311072 := PrimCons(reg310624, reg311071) +reg311073 := PrimCons(reg310623, reg311072) +reg311074 := PrimCons(reg310622, reg311073) +reg311075 := PrimCons(reg310621, reg311074) +reg311076 := PrimCons(reg310620, reg311075) +reg311077 := PrimCons(reg310619, reg311076) +reg311078 := PrimCons(reg310618, reg311077) +reg311079 := PrimCons(reg310617, reg311078) +reg311080 := PrimCons(reg310616, reg311079) +reg311081 := PrimCons(reg310615, reg311080) +reg311082 := PrimCons(reg310614, reg311081) +reg311083 := PrimCons(reg310613, reg311082) +reg311084 := PrimCons(reg310612, reg311083) +reg311085 := PrimCons(reg310611, reg311084) +reg311086 := PrimCons(reg310610, reg311085) +reg311087 := PrimCons(reg310609, reg311086) +reg311088 := PrimCons(reg310608, reg311087) +reg311089 := PrimCons(reg310607, reg311088) +reg311090 := PrimCons(reg310606, reg311089) +reg311091 := PrimCons(reg310605, reg311090) +reg311092 := PrimCons(reg310604, reg311091) +reg311093 := PrimCons(reg310603, reg311092) +reg311094 := PrimCons(reg310602, reg311093) +reg311095 := PrimCons(reg310601, reg311094) +reg311096 := PrimCons(reg310600, reg311095) +reg311097 := PrimCons(reg310599, reg311096) +reg311098 := PrimCons(reg310598, reg311097) +reg311099 := PrimCons(reg310597, reg311098) +reg311100 := PrimCons(reg310596, reg311099) +reg311101 := PrimCons(reg310595, reg311100) +reg311102 := PrimCons(reg310594, reg311101) +reg311103 := PrimCons(reg310593, reg311102) +reg311104 := PrimCons(reg310592, reg311103) +reg311105 := PrimCons(reg310591, reg311104) +reg311106 := PrimCons(reg310590, reg311105) +reg311107 := PrimCons(reg310589, reg311106) +reg311108 := PrimCons(reg310588, reg311107) +reg311109 := PrimCons(reg310587, reg311108) +reg311110 := PrimCons(reg310586, reg311109) +reg311111 := PrimCons(reg310585, reg311110) +reg311112 := PrimCons(reg310584, reg311111) +reg311113 := PrimCons(reg310583, reg311112) +reg311114 := PrimCons(reg310582, reg311113) +reg311115 := PrimCons(reg310581, reg311114) +reg311116 := PrimCons(reg310580, reg311115) +reg311117 := PrimCons(reg310579, reg311116) +reg311118 := PrimCons(reg310578, reg311117) +reg311119 := PrimCons(reg310577, reg311118) +reg311120 := PrimCons(reg310576, reg311119) +reg311121 := PrimCons(reg310575, reg311120) +reg311122 := PrimCons(reg310574, reg311121) +reg311123 := PrimCons(reg310573, reg311122) +reg311124 := PrimCons(reg310572, reg311123) +reg311125 := PrimCons(reg310571, reg311124) +reg311126 := PrimCons(reg310570, reg311125) +reg311127 := PrimCons(reg310569, reg311126) +reg311128 := PrimCons(reg310568, reg311127) +reg311129 := PrimCons(reg310567, reg311128) +reg311130 := PrimCons(reg310566, reg311129) +reg311131 := PrimCons(reg310565, reg311130) +reg311132 := PrimCons(reg310564, reg311131) +reg311133 := PrimCons(reg310563, reg311132) +reg311134 := PrimCons(reg310562, reg311133) +reg311135 := PrimCons(reg310561, reg311134) +reg311136 := PrimCons(reg310560, reg311135) +reg311137 := PrimCons(reg310559, reg311136) +reg311138 := PrimCons(reg310558, reg311137) +reg311139 := PrimCons(reg310557, reg311138) +reg311140 := PrimCons(reg310556, reg311139) +reg311141 := PrimCons(reg310555, reg311140) +reg311142 := PrimCons(reg310554, reg311141) +reg311143 := PrimCons(reg310553, reg311142) +reg311144 := PrimCons(reg310552, reg311143) +reg311145 := PrimCons(reg310551, reg311144) +reg311146 := PrimCons(reg310550, reg311145) +reg311147 := PrimCons(reg310549, reg311146) +reg311148 := PrimCons(reg310548, reg311147) +reg311149 := PrimCons(reg310547, reg311148) +reg311150 := PrimCons(reg310546, reg311149) +reg311151 := PrimCons(reg310545, reg311150) +reg311152 := PrimCons(reg310544, reg311151) +reg311153 := PrimCons(reg310543, reg311152) +reg311154 := PrimCons(reg310542, reg311153) +reg311155 := PrimCons(reg310541, reg311154) +reg311156 := PrimCons(reg310540, reg311155) +reg311157 := PrimCons(reg310539, reg311156) +reg311158 := PrimCons(reg310538, reg311157) +reg311159 := PrimCons(reg310537, reg311158) +reg311160 := PrimCons(reg310536, reg311159) +reg311161 := PrimCons(reg310535, reg311160) +reg311162 := PrimCons(reg310534, reg311161) +reg311163 := PrimCons(reg310533, reg311162) +reg311164 := PrimCons(reg310532, reg311163) +reg311165 := PrimCons(reg310531, reg311164) +reg311166 := PrimCons(reg310530, reg311165) +reg311167 := PrimCons(reg310529, reg311166) +reg311168 := PrimCons(reg310528, reg311167) +reg311169 := PrimCons(reg310527, reg311168) +reg311170 := PrimCons(reg310526, reg311169) +reg311171 := PrimCons(reg310525, reg311170) +reg311172 := PrimCons(reg310524, reg311171) +reg311173 := PrimCons(reg310523, reg311172) +reg311174 := PrimCons(reg310522, reg311173) +reg311175 := PrimCons(reg310521, reg311174) +reg311176 := PrimCons(reg310520, reg311175) +reg311177 := PrimCons(reg310519, reg311176) +reg311178 := PrimCons(reg310518, reg311177) +reg311179 := PrimCons(reg310517, reg311178) +reg311180 := PrimCons(reg310516, reg311179) +reg311181 := PrimCons(reg310515, reg311180) +reg311182 := PrimCons(reg310514, reg311181) +reg311183 := PrimCons(reg310513, reg311182) +reg311184 := PrimCons(reg310512, reg311183) +reg311185 := PrimCons(reg310511, reg311184) +reg311186 := PrimCons(reg310510, reg311185) +reg311187 := PrimCons(reg310509, reg311186) +reg311188 := PrimCons(reg310508, reg311187) +reg311189 := PrimCons(reg310507, reg311188) +reg311190 := PrimCons(reg310506, reg311189) +reg311191 := PrimCons(reg310505, reg311190) +reg311192 := PrimCons(reg310504, reg311191) +reg311193 := PrimCons(reg310503, reg311192) +reg311194 := PrimCons(reg310502, reg311193) +__ctx.TailApply(__defun__shen_4initialise__arity__table, reg311194) +return +}, 0)) +__defun__systemf = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1651 := __args[0] +_ = V1651 +reg311196 := MakeString("shen") +reg311197 := PrimIntern(reg311196) +Shen := reg311197 +_ = Shen +reg311198 := MakeSymbol("shen.external-symbols") +reg311199 := MakeSymbol("*property-vector*") +reg311200 := PrimValue(reg311199) +reg311201 := __e.Call(__defun__get, Shen, reg311198, reg311200) +External := reg311201 +_ = External +reg311202 := MakeSymbol("shen.external-symbols") +reg311203 := __e.Call(__defun__adjoin, V1651, External) +reg311204 := MakeSymbol("*property-vector*") +reg311205 := PrimValue(reg311204) +reg311206 := __e.Call(__defun__put, Shen, reg311202, reg311203, reg311205) +Place := reg311206 +_ = Place +__ctx.Return(V1651) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "systemf", value: __defun__systemf}) + +__defun__adjoin = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1654 := __args[0] +_ = V1654 +V1655 := __args[1] +_ = V1655 +reg311207 := __e.Call(__defun__element_2, V1654, V1655) +if reg311207 == True { +__ctx.Return(V1655) +return +} else { +reg311208 := PrimCons(V1654, V1655) +__ctx.Return(reg311208) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "adjoin", value: __defun__adjoin}) + +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg311209 := MakeString("shen") +reg311210 := PrimIntern(reg311209) +reg311211 := MakeSymbol("shen.external-symbols") +reg311212 := MakeSymbol("!") +reg311213 := MakeSymbol("}") +reg311214 := MakeSymbol("{") +reg311215 := MakeSymbol("-->") +reg311216 := MakeSymbol("<--") +reg311217 := MakeSymbol("&&") +reg311218 := MakeSymbol(":") +reg311219 := MakeSymbol(";") +reg311220 := MakeSymbol(":-") +reg311221 := MakeSymbol(":=") +reg311222 := MakeSymbol("_") +reg311223 := MakeSymbol(",") +reg311224 := MakeSymbol("*language*") +reg311225 := MakeSymbol("*implementation*") +reg311226 := MakeSymbol("*stinput*") +reg311227 := MakeSymbol("*stoutput*") +reg311228 := MakeSymbol("*sterror*") +reg311229 := MakeSymbol("*home-directory*") +reg311230 := MakeSymbol("*version*") +reg311231 := MakeSymbol("*maximum-print-sequence-size*") +reg311232 := MakeSymbol("*macros*") +reg311233 := MakeSymbol("*os*") +reg311234 := MakeSymbol("*release*") +reg311235 := MakeSymbol("*property-vector*") +reg311236 := MakeSymbol("*port*") +reg311237 := MakeSymbol("*porters*") +reg311238 := MakeSymbol("*hush*") +reg311239 := MakeSymbol("@v") +reg311240 := MakeSymbol("@p") +reg311241 := MakeSymbol("@s") +reg311242 := MakeSymbol("<-") +reg311243 := MakeSymbol("->") +reg311244 := MakeSymbol("") +reg311245 := MakeSymbol("") +reg311246 := MakeSymbol("==") +reg311247 := MakeSymbol("=") +reg311248 := MakeSymbol(">=") +reg311249 := MakeSymbol(">") +reg311250 := MakeSymbol("/.") +reg311251 := MakeSymbol("=!") +reg311252 := MakeSymbol("$") +reg311253 := MakeSymbol("-") +reg311254 := MakeSymbol("/") +reg311255 := MakeSymbol("*") +reg311256 := MakeSymbol("+") +reg311257 := MakeSymbol("<=") +reg311258 := MakeSymbol("<") +reg311259 := MakeSymbol(">>") +reg311260 := MakeNumber(0) +reg311261 := __e.Call(__defun__vector, reg311260) +reg311262 := MakeSymbol("y-or-n?") +reg311263 := MakeSymbol("write-to-file") +reg311264 := MakeSymbol("write-byte") +reg311265 := MakeSymbol("where") +reg311266 := MakeSymbol("when") +reg311267 := MakeSymbol("warn") +reg311268 := MakeSymbol("version") +reg311269 := MakeSymbol("verified") +reg311270 := MakeSymbol("variable?") +reg311271 := MakeSymbol("value") +reg311272 := MakeSymbol("vector->") +reg311273 := MakeSymbol("<-vector") +reg311274 := MakeSymbol("vector") +reg311275 := MakeSymbol("vector?") +reg311276 := MakeSymbol("unspecialise") +reg311277 := MakeSymbol("untrack") +reg311278 := MakeSymbol("unit") +reg311279 := MakeSymbol("shen.unix") +reg311280 := MakeSymbol("union") +reg311281 := MakeSymbol("unify") +reg311282 := MakeSymbol("unify!") +reg311283 := MakeSymbol("unput") +reg311284 := MakeSymbol("unprofile") +reg311285 := MakeSymbol("undefmacro") +reg311286 := MakeSymbol("return") +reg311287 := MakeSymbol("type") +reg311288 := MakeSymbol("tuple?") +reg311289 := True; +reg311290 := MakeSymbol("trap-error") +reg311291 := MakeSymbol("track") +reg311292 := MakeSymbol("time") +reg311293 := MakeSymbol("thaw") +reg311294 := MakeSymbol("tc?") +reg311295 := MakeSymbol("tc") +reg311296 := MakeSymbol("tl") +reg311297 := MakeSymbol("tlstr") +reg311298 := MakeSymbol("tlv") +reg311299 := MakeSymbol("tail") +reg311300 := MakeSymbol("systemf") +reg311301 := MakeSymbol("synonyms") +reg311302 := MakeSymbol("symbol") +reg311303 := MakeSymbol("symbol?") +reg311304 := MakeSymbol("string->symbol") +reg311305 := MakeSymbol("sum") +reg311306 := MakeSymbol("subst") +reg311307 := MakeSymbol("string?") +reg311308 := MakeSymbol("string->n") +reg311309 := MakeSymbol("stream") +reg311310 := MakeSymbol("string") +reg311311 := MakeSymbol("stinput") +reg311312 := MakeSymbol("sterror") +reg311313 := MakeSymbol("stoutput") +reg311314 := MakeSymbol("step") +reg311315 := MakeSymbol("spy") +reg311316 := MakeSymbol("specialise") +reg311317 := MakeSymbol("snd") +reg311318 := MakeSymbol("simple-error") +reg311319 := MakeSymbol("set") +reg311320 := MakeSymbol("save") +reg311321 := MakeSymbol("str") +reg311322 := MakeSymbol("run") +reg311323 := MakeSymbol("reverse") +reg311324 := MakeSymbol("remove") +reg311325 := MakeSymbol("release") +reg311326 := MakeSymbol("read") +reg311327 := MakeSymbol("receive") +reg311328 := MakeSymbol("read-file") +reg311329 := MakeSymbol("read-file-as-bytelist") +reg311330 := MakeSymbol("read-file-as-string") +reg311331 := MakeSymbol("read-byte") +reg311332 := MakeSymbol("read-from-string") +reg311333 := MakeSymbol("package?") +reg311334 := MakeSymbol("put") +reg311335 := MakeSymbol("preclude") +reg311336 := MakeSymbol("preclude-all-but") +reg311337 := MakeSymbol("ps") +reg311338 := MakeSymbol("prolog?") +reg311339 := MakeSymbol("protect") +reg311340 := MakeSymbol("profile-results") +reg311341 := MakeSymbol("profile") +reg311342 := MakeSymbol("print") +reg311343 := MakeSymbol("pr") +reg311344 := MakeSymbol("pos") +reg311345 := MakeSymbol("porters") +reg311346 := MakeSymbol("port") +reg311347 := MakeSymbol("package") +reg311348 := MakeSymbol("output") +reg311349 := MakeSymbol("out") +reg311350 := MakeSymbol("os") +reg311351 := MakeSymbol("or") +reg311352 := MakeSymbol("optimise") +reg311353 := MakeSymbol("open") +reg311354 := MakeSymbol("occurrences") +reg311355 := MakeSymbol("occurs-check") +reg311356 := MakeSymbol("n->string") +reg311357 := MakeSymbol("number?") +reg311358 := MakeSymbol("number") +reg311359 := MakeSymbol("null") +reg311360 := MakeSymbol("nth") +reg311361 := MakeSymbol("not") +reg311362 := MakeSymbol("nl") +reg311363 := MakeSymbol("mode") +reg311364 := MakeSymbol("macroexpand") +reg311365 := MakeSymbol("maxinferences") +reg311366 := MakeSymbol("mapcan") +reg311367 := MakeSymbol("map") +reg311368 := MakeSymbol("make-string") +reg311369 := MakeSymbol("load") +reg311370 := MakeSymbol("loaded") +reg311371 := MakeSymbol("list") +reg311372 := MakeSymbol("lineread") +reg311373 := MakeSymbol("limit") +reg311374 := MakeSymbol("length") +reg311375 := MakeSymbol("let") +reg311376 := MakeSymbol("lazy") +reg311377 := MakeSymbol("lambda") +reg311378 := MakeSymbol("language") +reg311379 := MakeSymbol("kill") +reg311380 := MakeSymbol("is") +reg311381 := MakeSymbol("intersection") +reg311382 := MakeSymbol("inferences") +reg311383 := MakeSymbol("intern") +reg311384 := MakeSymbol("integer?") +reg311385 := MakeSymbol("input") +reg311386 := MakeSymbol("input+") +reg311387 := MakeSymbol("include") +reg311388 := MakeSymbol("include-all-but") +reg311389 := MakeSymbol("it") +reg311390 := MakeSymbol("in") +reg311391 := MakeSymbol("internal") +reg311392 := MakeSymbol("implementation") +reg311393 := MakeSymbol("if") +reg311394 := MakeSymbol("identical") +reg311395 := MakeSymbol("head") +reg311396 := MakeSymbol("hd") +reg311397 := MakeSymbol("hdv") +reg311398 := MakeSymbol("hdstr") +reg311399 := MakeSymbol("hash") +reg311400 := MakeSymbol("get") +reg311401 := MakeSymbol("get-time") +reg311402 := MakeSymbol("gensym") +reg311403 := MakeSymbol("function") +reg311404 := MakeSymbol("fst") +reg311405 := MakeSymbol("freeze") +reg311406 := MakeSymbol("fix") +reg311407 := MakeSymbol("file") +reg311408 := MakeSymbol("fail") +reg311409 := MakeSymbol("fail-if") +reg311410 := MakeSymbol("fwhen") +reg311411 := MakeSymbol("findall") +reg311412 := False; +reg311413 := MakeSymbol("enable-type-theory") +reg311414 := MakeSymbol("explode") +reg311415 := MakeSymbol("external") +reg311416 := MakeSymbol("exception") +reg311417 := MakeSymbol("eval-kl") +reg311418 := MakeSymbol("eval") +reg311419 := MakeSymbol("error-to-string") +reg311420 := MakeSymbol("error") +reg311421 := MakeSymbol("empty?") +reg311422 := MakeSymbol("element?") +reg311423 := MakeSymbol("do") +reg311424 := MakeSymbol("difference") +reg311425 := MakeSymbol("destroy") +reg311426 := MakeSymbol("defun") +reg311427 := MakeSymbol("define") +reg311428 := MakeSymbol("defmacro") +reg311429 := MakeSymbol("defcc") +reg311430 := MakeSymbol("defprolog") +reg311431 := MakeSymbol("declare") +reg311432 := MakeSymbol("datatype") +reg311433 := MakeSymbol("cut") +reg311434 := MakeSymbol("cn") +reg311435 := MakeSymbol("cons?") +reg311436 := MakeSymbol("cons") +reg311437 := MakeSymbol("cond") +reg311438 := MakeSymbol("concat") +reg311439 := MakeSymbol("compile") +reg311440 := MakeSymbol("cd") +reg311441 := MakeSymbol("cases") +reg311442 := MakeSymbol("call") +reg311443 := MakeSymbol("close") +reg311444 := MakeSymbol("bind") +reg311445 := MakeSymbol("bound?") +reg311446 := MakeSymbol("boolean?") +reg311447 := MakeSymbol("boolean") +reg311448 := MakeSymbol("bar!") +reg311449 := MakeSymbol("assoc") +reg311450 := MakeSymbol("arity") +reg311451 := MakeSymbol("abort") +reg311452 := MakeSymbol("append") +reg311453 := MakeSymbol("and") +reg311454 := MakeSymbol("adjoin") +reg311455 := MakeSymbol("<-address") +reg311456 := MakeSymbol("address->") +reg311457 := MakeSymbol("absvector?") +reg311458 := MakeSymbol("absvector") +reg311459 := Nil; +reg311460 := PrimCons(reg311458, reg311459) +reg311461 := PrimCons(reg311457, reg311460) +reg311462 := PrimCons(reg311456, reg311461) +reg311463 := PrimCons(reg311455, reg311462) +reg311464 := PrimCons(reg311454, reg311463) +reg311465 := PrimCons(reg311453, reg311464) +reg311466 := PrimCons(reg311452, reg311465) +reg311467 := PrimCons(reg311451, reg311466) +reg311468 := PrimCons(reg311450, reg311467) +reg311469 := PrimCons(reg311449, reg311468) +reg311470 := PrimCons(reg311448, reg311469) +reg311471 := PrimCons(reg311447, reg311470) +reg311472 := PrimCons(reg311446, reg311471) +reg311473 := PrimCons(reg311445, reg311472) +reg311474 := PrimCons(reg311444, reg311473) +reg311475 := PrimCons(reg311443, reg311474) +reg311476 := PrimCons(reg311442, reg311475) +reg311477 := PrimCons(reg311441, reg311476) +reg311478 := PrimCons(reg311440, reg311477) +reg311479 := PrimCons(reg311439, reg311478) +reg311480 := PrimCons(reg311438, reg311479) +reg311481 := PrimCons(reg311437, reg311480) +reg311482 := PrimCons(reg311436, reg311481) +reg311483 := PrimCons(reg311435, reg311482) +reg311484 := PrimCons(reg311434, reg311483) +reg311485 := PrimCons(reg311433, reg311484) +reg311486 := PrimCons(reg311432, reg311485) +reg311487 := PrimCons(reg311431, reg311486) +reg311488 := PrimCons(reg311430, reg311487) +reg311489 := PrimCons(reg311429, reg311488) +reg311490 := PrimCons(reg311428, reg311489) +reg311491 := PrimCons(reg311427, reg311490) +reg311492 := PrimCons(reg311426, reg311491) +reg311493 := PrimCons(reg311425, reg311492) +reg311494 := PrimCons(reg311424, reg311493) +reg311495 := PrimCons(reg311423, reg311494) +reg311496 := PrimCons(reg311422, reg311495) +reg311497 := PrimCons(reg311421, reg311496) +reg311498 := PrimCons(reg311420, reg311497) +reg311499 := PrimCons(reg311419, reg311498) +reg311500 := PrimCons(reg311418, reg311499) +reg311501 := PrimCons(reg311417, reg311500) +reg311502 := PrimCons(reg311416, reg311501) +reg311503 := PrimCons(reg311415, reg311502) +reg311504 := PrimCons(reg311414, reg311503) +reg311505 := PrimCons(reg311413, reg311504) +reg311506 := PrimCons(reg311412, reg311505) +reg311507 := PrimCons(reg311411, reg311506) +reg311508 := PrimCons(reg311410, reg311507) +reg311509 := PrimCons(reg311409, reg311508) +reg311510 := PrimCons(reg311408, reg311509) +reg311511 := PrimCons(reg311407, reg311510) +reg311512 := PrimCons(reg311406, reg311511) +reg311513 := PrimCons(reg311405, reg311512) +reg311514 := PrimCons(reg311404, reg311513) +reg311515 := PrimCons(reg311403, reg311514) +reg311516 := PrimCons(reg311402, reg311515) +reg311517 := PrimCons(reg311401, reg311516) +reg311518 := PrimCons(reg311400, reg311517) +reg311519 := PrimCons(reg311399, reg311518) +reg311520 := PrimCons(reg311398, reg311519) +reg311521 := PrimCons(reg311397, reg311520) +reg311522 := PrimCons(reg311396, reg311521) +reg311523 := PrimCons(reg311395, reg311522) +reg311524 := PrimCons(reg311394, reg311523) +reg311525 := PrimCons(reg311393, reg311524) +reg311526 := PrimCons(reg311392, reg311525) +reg311527 := PrimCons(reg311391, reg311526) +reg311528 := PrimCons(reg311390, reg311527) +reg311529 := PrimCons(reg311389, reg311528) +reg311530 := PrimCons(reg311388, reg311529) +reg311531 := PrimCons(reg311387, reg311530) +reg311532 := PrimCons(reg311386, reg311531) +reg311533 := PrimCons(reg311385, reg311532) +reg311534 := PrimCons(reg311384, reg311533) +reg311535 := PrimCons(reg311383, reg311534) +reg311536 := PrimCons(reg311382, reg311535) +reg311537 := PrimCons(reg311381, reg311536) +reg311538 := PrimCons(reg311380, reg311537) +reg311539 := PrimCons(reg311379, reg311538) +reg311540 := PrimCons(reg311378, reg311539) +reg311541 := PrimCons(reg311377, reg311540) +reg311542 := PrimCons(reg311376, reg311541) +reg311543 := PrimCons(reg311375, reg311542) +reg311544 := PrimCons(reg311374, reg311543) +reg311545 := PrimCons(reg311373, reg311544) +reg311546 := PrimCons(reg311372, reg311545) +reg311547 := PrimCons(reg311371, reg311546) +reg311548 := PrimCons(reg311370, reg311547) +reg311549 := PrimCons(reg311369, reg311548) +reg311550 := PrimCons(reg311368, reg311549) +reg311551 := PrimCons(reg311367, reg311550) +reg311552 := PrimCons(reg311366, reg311551) +reg311553 := PrimCons(reg311365, reg311552) +reg311554 := PrimCons(reg311364, reg311553) +reg311555 := PrimCons(reg311363, reg311554) +reg311556 := PrimCons(reg311362, reg311555) +reg311557 := PrimCons(reg311361, reg311556) +reg311558 := PrimCons(reg311360, reg311557) +reg311559 := PrimCons(reg311359, reg311558) +reg311560 := PrimCons(reg311358, reg311559) +reg311561 := PrimCons(reg311357, reg311560) +reg311562 := PrimCons(reg311356, reg311561) +reg311563 := PrimCons(reg311355, reg311562) +reg311564 := PrimCons(reg311354, reg311563) +reg311565 := PrimCons(reg311353, reg311564) +reg311566 := PrimCons(reg311352, reg311565) +reg311567 := PrimCons(reg311351, reg311566) +reg311568 := PrimCons(reg311350, reg311567) +reg311569 := PrimCons(reg311349, reg311568) +reg311570 := PrimCons(reg311348, reg311569) +reg311571 := PrimCons(reg311347, reg311570) +reg311572 := PrimCons(reg311346, reg311571) +reg311573 := PrimCons(reg311345, reg311572) +reg311574 := PrimCons(reg311344, reg311573) +reg311575 := PrimCons(reg311343, reg311574) +reg311576 := PrimCons(reg311342, reg311575) +reg311577 := PrimCons(reg311341, reg311576) +reg311578 := PrimCons(reg311340, reg311577) +reg311579 := PrimCons(reg311339, reg311578) +reg311580 := PrimCons(reg311338, reg311579) +reg311581 := PrimCons(reg311337, reg311580) +reg311582 := PrimCons(reg311336, reg311581) +reg311583 := PrimCons(reg311335, reg311582) +reg311584 := PrimCons(reg311334, reg311583) +reg311585 := PrimCons(reg311333, reg311584) +reg311586 := PrimCons(reg311332, reg311585) +reg311587 := PrimCons(reg311331, reg311586) +reg311588 := PrimCons(reg311330, reg311587) +reg311589 := PrimCons(reg311329, reg311588) +reg311590 := PrimCons(reg311328, reg311589) +reg311591 := PrimCons(reg311327, reg311590) +reg311592 := PrimCons(reg311326, reg311591) +reg311593 := PrimCons(reg311325, reg311592) +reg311594 := PrimCons(reg311324, reg311593) +reg311595 := PrimCons(reg311323, reg311594) +reg311596 := PrimCons(reg311322, reg311595) +reg311597 := PrimCons(reg311321, reg311596) +reg311598 := PrimCons(reg311320, reg311597) +reg311599 := PrimCons(reg311319, reg311598) +reg311600 := PrimCons(reg311318, reg311599) +reg311601 := PrimCons(reg311317, reg311600) +reg311602 := PrimCons(reg311316, reg311601) +reg311603 := PrimCons(reg311315, reg311602) +reg311604 := PrimCons(reg311314, reg311603) +reg311605 := PrimCons(reg311313, reg311604) +reg311606 := PrimCons(reg311312, reg311605) +reg311607 := PrimCons(reg311311, reg311606) +reg311608 := PrimCons(reg311310, reg311607) +reg311609 := PrimCons(reg311309, reg311608) +reg311610 := PrimCons(reg311308, reg311609) +reg311611 := PrimCons(reg311307, reg311610) +reg311612 := PrimCons(reg311306, reg311611) +reg311613 := PrimCons(reg311305, reg311612) +reg311614 := PrimCons(reg311304, reg311613) +reg311615 := PrimCons(reg311303, reg311614) +reg311616 := PrimCons(reg311302, reg311615) +reg311617 := PrimCons(reg311301, reg311616) +reg311618 := PrimCons(reg311300, reg311617) +reg311619 := PrimCons(reg311299, reg311618) +reg311620 := PrimCons(reg311298, reg311619) +reg311621 := PrimCons(reg311297, reg311620) +reg311622 := PrimCons(reg311296, reg311621) +reg311623 := PrimCons(reg311295, reg311622) +reg311624 := PrimCons(reg311294, reg311623) +reg311625 := PrimCons(reg311293, reg311624) +reg311626 := PrimCons(reg311292, reg311625) +reg311627 := PrimCons(reg311291, reg311626) +reg311628 := PrimCons(reg311290, reg311627) +reg311629 := PrimCons(reg311289, reg311628) +reg311630 := PrimCons(reg311288, reg311629) +reg311631 := PrimCons(reg311287, reg311630) +reg311632 := PrimCons(reg311286, reg311631) +reg311633 := PrimCons(reg311285, reg311632) +reg311634 := PrimCons(reg311284, reg311633) +reg311635 := PrimCons(reg311283, reg311634) +reg311636 := PrimCons(reg311282, reg311635) +reg311637 := PrimCons(reg311281, reg311636) +reg311638 := PrimCons(reg311280, reg311637) +reg311639 := PrimCons(reg311279, reg311638) +reg311640 := PrimCons(reg311278, reg311639) +reg311641 := PrimCons(reg311277, reg311640) +reg311642 := PrimCons(reg311276, reg311641) +reg311643 := PrimCons(reg311275, reg311642) +reg311644 := PrimCons(reg311274, reg311643) +reg311645 := PrimCons(reg311273, reg311644) +reg311646 := PrimCons(reg311272, reg311645) +reg311647 := PrimCons(reg311271, reg311646) +reg311648 := PrimCons(reg311270, reg311647) +reg311649 := PrimCons(reg311269, reg311648) +reg311650 := PrimCons(reg311268, reg311649) +reg311651 := PrimCons(reg311267, reg311650) +reg311652 := PrimCons(reg311266, reg311651) +reg311653 := PrimCons(reg311265, reg311652) +reg311654 := PrimCons(reg311264, reg311653) +reg311655 := PrimCons(reg311263, reg311654) +reg311656 := PrimCons(reg311262, reg311655) +reg311657 := PrimCons(reg311261, reg311656) +reg311658 := PrimCons(reg311259, reg311657) +reg311659 := PrimCons(reg311258, reg311658) +reg311660 := PrimCons(reg311257, reg311659) +reg311661 := PrimCons(reg311256, reg311660) +reg311662 := PrimCons(reg311255, reg311661) +reg311663 := PrimCons(reg311254, reg311662) +reg311664 := PrimCons(reg311253, reg311663) +reg311665 := PrimCons(reg311252, reg311664) +reg311666 := PrimCons(reg311251, reg311665) +reg311667 := PrimCons(reg311250, reg311666) +reg311668 := PrimCons(reg311249, reg311667) +reg311669 := PrimCons(reg311248, reg311668) +reg311670 := PrimCons(reg311247, reg311669) +reg311671 := PrimCons(reg311246, reg311670) +reg311672 := PrimCons(reg311245, reg311671) +reg311673 := PrimCons(reg311244, reg311672) +reg311674 := PrimCons(reg311243, reg311673) +reg311675 := PrimCons(reg311242, reg311674) +reg311676 := PrimCons(reg311241, reg311675) +reg311677 := PrimCons(reg311240, reg311676) +reg311678 := PrimCons(reg311239, reg311677) +reg311679 := PrimCons(reg311238, reg311678) +reg311680 := PrimCons(reg311237, reg311679) +reg311681 := PrimCons(reg311236, reg311680) +reg311682 := PrimCons(reg311235, reg311681) +reg311683 := PrimCons(reg311234, reg311682) +reg311684 := PrimCons(reg311233, reg311683) +reg311685 := PrimCons(reg311232, reg311684) +reg311686 := PrimCons(reg311231, reg311685) +reg311687 := PrimCons(reg311230, reg311686) +reg311688 := PrimCons(reg311229, reg311687) +reg311689 := PrimCons(reg311228, reg311688) +reg311690 := PrimCons(reg311227, reg311689) +reg311691 := PrimCons(reg311226, reg311690) +reg311692 := PrimCons(reg311225, reg311691) +reg311693 := PrimCons(reg311224, reg311692) +reg311694 := PrimCons(reg311223, reg311693) +reg311695 := PrimCons(reg311222, reg311694) +reg311696 := PrimCons(reg311221, reg311695) +reg311697 := PrimCons(reg311220, reg311696) +reg311698 := PrimCons(reg311219, reg311697) +reg311699 := PrimCons(reg311218, reg311698) +reg311700 := PrimCons(reg311217, reg311699) +reg311701 := PrimCons(reg311216, reg311700) +reg311702 := PrimCons(reg311215, reg311701) +reg311703 := PrimCons(reg311214, reg311702) +reg311704 := PrimCons(reg311213, reg311703) +reg311705 := PrimCons(reg311212, reg311704) +reg311706 := MakeSymbol("*property-vector*") +reg311707 := PrimValue(reg311706) +__ctx.TailApply(__defun__put, reg311210, reg311211, reg311705, reg311707) +return +}, 0)) +__defun__shen_4lambda_1form_1entry = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1657 := __args[0] +_ = V1657 +reg311709 := MakeSymbol("package") +reg311710 := PrimEqual(reg311709, V1657) +if reg311710 == True { +reg311711 := Nil; +__ctx.Return(reg311711) +return +} else { +reg311712 := MakeSymbol("receive") +reg311713 := PrimEqual(reg311712, V1657) +if reg311713 == True { +reg311714 := Nil; +__ctx.Return(reg311714) +return +} else { +reg311715 := __e.Call(__defun__arity, V1657) +ArityF := reg311715 +_ = ArityF +reg311716 := MakeNumber(-1) +reg311717 := PrimEqual(ArityF, reg311716) +if reg311717 == True { +reg311718 := Nil; +__ctx.Return(reg311718) +return +} else { +reg311719 := MakeNumber(0) +reg311720 := PrimEqual(ArityF, reg311719) +if reg311720 == True { +reg311721 := Nil; +__ctx.Return(reg311721) +return +} else { +reg311722 := __e.Call(__defun__shen_4lambda_1form, V1657, ArityF) +reg311723 := PrimEvalKL(__e, reg311722) +reg311724 := PrimCons(V1657, reg311723) +reg311725 := Nil; +reg311726 := PrimCons(reg311724, reg311725) +__ctx.Return(reg311726) +return +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.lambda-form-entry", value: __defun__shen_4lambda_1form_1entry}) + +__defun__shen_4lambda_1form = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1660 := __args[0] +_ = V1660 +V1661 := __args[1] +_ = V1661 +reg311727 := MakeNumber(0) +reg311728 := PrimEqual(reg311727, V1661) +if reg311728 == True { +__ctx.Return(V1660) +return +} else { +reg311729 := MakeSymbol("V") +reg311730 := __e.Call(__defun__gensym, reg311729) +X := reg311730 +_ = X +reg311731 := MakeSymbol("lambda") +reg311732 := __e.Call(__defun__shen_4add_1end, V1660, X) +reg311733 := MakeNumber(1) +reg311734 := PrimNumberSubtract(V1661, reg311733) +reg311735 := __e.Call(__defun__shen_4lambda_1form, reg311732, reg311734) +reg311736 := Nil; +reg311737 := PrimCons(reg311735, reg311736) +reg311738 := PrimCons(X, reg311737) +reg311739 := PrimCons(reg311731, reg311738) +__ctx.Return(reg311739) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.lambda-form", value: __defun__shen_4lambda_1form}) + +__defun__shen_4add_1end = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1664 := __args[0] +_ = V1664 +V1665 := __args[1] +_ = V1665 +reg311740 := PrimIsPair(V1664) +if reg311740 == True { +reg311741 := Nil; +reg311742 := PrimCons(V1665, reg311741) +__ctx.TailApply(__defun__append, V1664, reg311742) +return +} else { +reg311744 := Nil; +reg311745 := PrimCons(V1665, reg311744) +reg311746 := PrimCons(V1664, reg311745) +__ctx.Return(reg311746) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.add-end", value: __defun__shen_4add_1end}) + +__defun__shen_4set_1lambda_1form_1entry = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1667 := __args[0] +_ = V1667 +reg311747 := PrimIsPair(V1667) +if reg311747 == True { +reg311748 := PrimHead(V1667) +reg311749 := MakeSymbol("shen.lambda-form") +reg311750 := PrimTail(V1667) +reg311751 := MakeSymbol("*property-vector*") +reg311752 := PrimValue(reg311751) +__ctx.TailApply(__defun__put, reg311748, reg311749, reg311750, reg311752) +return +} else { +reg311754 := MakeSymbol("shen.set-lambda-form-entry") +__ctx.TailApply(__defun__shen_4f__error, reg311754) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.set-lambda-form-entry", value: __defun__shen_4set_1lambda_1form_1entry}) + +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg311756 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Entry := __args[0] +_ = Entry +__ctx.TailApply(__defun__shen_4set_1lambda_1form_1entry, Entry) +return +}, 1) +reg311758 := MakeSymbol("shen.datatype-error") +reg311759 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4datatype_1error, X) +return +}, 1) +reg311761 := PrimCons(reg311758, reg311759) +reg311762 := MakeSymbol("shen.tuple") +reg311763 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4tuple, X) +return +}, 1) +reg311765 := PrimCons(reg311762, reg311763) +reg311766 := MakeSymbol("shen.pvar") +reg311767 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4pvar, X) +return +}, 1) +reg311769 := PrimCons(reg311766, reg311767) +reg311770 := MakeSymbol("shen.dictionary") +reg311771 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4dictionary, X) +return +}, 1) +reg311773 := PrimCons(reg311770, reg311771) +reg311774 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4lambda_1form_1entry, X) +return +}, 1) +reg311776 := MakeString("shen") +reg311777 := PrimIntern(reg311776) +reg311778 := __e.Call(__defun__external, reg311777) +reg311779 := __e.Call(__defun__mapcan, reg311774, reg311778) +reg311780 := PrimCons(reg311773, reg311779) +reg311781 := PrimCons(reg311769, reg311780) +reg311782 := PrimCons(reg311765, reg311781) +reg311783 := PrimCons(reg311761, reg311782) +__ctx.TailApply(__defun__shen_4for_1each, reg311756, reg311783) +return +}, 0)) +__defun__specialise = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1669 := __args[0] +_ = V1669 +reg311785 := MakeSymbol("shen.*special*") +reg311786 := MakeSymbol("shen.*special*") +reg311787 := PrimValue(reg311786) +reg311788 := PrimCons(V1669, reg311787) +reg311789 := PrimSet(reg311785, reg311788) +_ = reg311789 +__ctx.Return(V1669) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "specialise", value: __defun__specialise}) + +__defun__unspecialise = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1671 := __args[0] +_ = V1671 +reg311790 := MakeSymbol("shen.*special*") +reg311791 := MakeSymbol("shen.*special*") +reg311792 := PrimValue(reg311791) +reg311793 := __e.Call(__defun__remove, V1671, reg311792) +reg311794 := PrimSet(reg311790, reg311793) +_ = reg311794 +__ctx.Return(V1671) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "unspecialise", value: __defun__unspecialise}) + +} diff --git a/cmd/shen/dict.go b/cmd/shen/dict.go new file mode 100644 index 0000000..1e2ab42 --- /dev/null +++ b/cmd/shen/dict.go @@ -0,0 +1,430 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__shen_4dict Obj // shen.dict +var __defun__shen_4dict_2 Obj // shen.dict? +var __defun__shen_4dict_1capacity Obj // shen.dict-capacity +var __defun__shen_4dict_1count Obj // shen.dict-count +var __defun__shen_4dict_1count_1_6 Obj // shen.dict-count-> +var __defun__shen_4_5_1dict_1bucket Obj // shen.<-dict-bucket +var __defun__shen_4dict_1bucket_1_6 Obj // shen.dict-bucket-> +var __defun__shen_4dict_1update_1count Obj // shen.dict-update-count +var __defun__shen_4dict_1_6 Obj // shen.dict-> +var __defun__shen_4_5_1dict Obj // shen.<-dict +var __defun__shen_4dict_1rm Obj // shen.dict-rm +var __defun__shen_4dict_1fold Obj // shen.dict-fold +var __defun__shen_4dict_1fold_1h Obj // shen.dict-fold-h +var __defun__shen_4bucket_1fold Obj // shen.bucket-fold +var __defun__shen_4dict_1keys Obj // shen.dict-keys +var __defun__shen_4dict_1values Obj // shen.dict-values + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297325 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg297325) +return +}, 0)) +__defun__shen_4dict = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3255 := __args[0] +_ = V3255 +reg297326 := MakeNumber(1) +reg297327 := PrimLessThan(V3255, reg297326) +if reg297327 == True { +reg297328 := MakeString("invalid initial dict size: ") +reg297329 := MakeString("") +reg297330 := MakeSymbol("shen.s") +reg297331 := __e.Call(__defun__shen_4app, V3255, reg297329, reg297330) +reg297332 := PrimStringConcat(reg297328, reg297331) +reg297333 := PrimSimpleError(reg297332) +__ctx.Return(reg297333) +return +} else { +reg297334 := MakeNumber(3) +reg297335 := PrimNumberAdd(reg297334, V3255) +reg297336 := PrimAbsvector(reg297335) +D := reg297336 +_ = D +reg297337 := MakeNumber(0) +reg297338 := MakeSymbol("shen.dictionary") +reg297339 := PrimVectorSet(D, reg297337, reg297338) +Tag := reg297339 +_ = Tag +reg297340 := MakeNumber(1) +reg297341 := PrimVectorSet(D, reg297340, V3255) +Capacity := reg297341 +_ = Capacity +reg297342 := MakeNumber(2) +reg297343 := MakeNumber(0) +reg297344 := PrimVectorSet(D, reg297342, reg297343) +Count := reg297344 +_ = Count +reg297345 := MakeNumber(3) +reg297346 := MakeNumber(2) +reg297347 := PrimNumberAdd(reg297346, V3255) +reg297348 := Nil; +reg297349 := __e.Call(__defun__shen_4fillvector, D, reg297345, reg297347, reg297348) +Fill := reg297349 +_ = Fill +__ctx.Return(D) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.dict", value: __defun__shen_4dict}) + +__defun__shen_4dict_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3257 := __args[0] +_ = V3257 +reg297350 := PrimIsVector(V3257) +if reg297350 == True { +reg297351 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297352 := MakeNumber(0) +reg297353 := PrimVectorGet(V3257, reg297352) +__ctx.Return(reg297353) +return +}, 0) +reg297354 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg297355 := MakeSymbol("shen.not-dictionary") +__ctx.Return(reg297355) +return +}, 1) +reg297356 := __e.Try(reg297351).Catch(reg297354) +reg297357 := MakeSymbol("shen.dictionary") +reg297358 := PrimEqual(reg297356, reg297357) +if reg297358 == True { +reg297359 := True; +__ctx.Return(reg297359) +return +} else { +reg297360 := False; +__ctx.Return(reg297360) +return +} +} else { +reg297361 := False; +__ctx.Return(reg297361) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.dict?", value: __defun__shen_4dict_2}) + +__defun__shen_4dict_1capacity = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3259 := __args[0] +_ = V3259 +reg297362 := MakeNumber(1) +reg297363 := PrimVectorGet(V3259, reg297362) +__ctx.Return(reg297363) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.dict-capacity", value: __defun__shen_4dict_1capacity}) + +__defun__shen_4dict_1count = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3261 := __args[0] +_ = V3261 +reg297364 := MakeNumber(2) +reg297365 := PrimVectorGet(V3261, reg297364) +__ctx.Return(reg297365) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.dict-count", value: __defun__shen_4dict_1count}) + +__defun__shen_4dict_1count_1_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3264 := __args[0] +_ = V3264 +V3265 := __args[1] +_ = V3265 +reg297366 := MakeNumber(2) +reg297367 := PrimVectorSet(V3264, reg297366, V3265) +__ctx.Return(reg297367) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.dict-count->", value: __defun__shen_4dict_1count_1_6}) + +__defun__shen_4_5_1dict_1bucket = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3268 := __args[0] +_ = V3268 +V3269 := __args[1] +_ = V3269 +reg297368 := MakeNumber(3) +reg297369 := PrimNumberAdd(reg297368, V3269) +reg297370 := PrimVectorGet(V3268, reg297369) +__ctx.Return(reg297370) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.<-dict-bucket", value: __defun__shen_4_5_1dict_1bucket}) + +__defun__shen_4dict_1bucket_1_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3273 := __args[0] +_ = V3273 +V3274 := __args[1] +_ = V3274 +V3275 := __args[2] +_ = V3275 +reg297371 := MakeNumber(3) +reg297372 := PrimNumberAdd(reg297371, V3274) +reg297373 := PrimVectorSet(V3273, reg297372, V3275) +__ctx.Return(reg297373) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.dict-bucket->", value: __defun__shen_4dict_1bucket_1_6}) + +__defun__shen_4dict_1update_1count = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3279 := __args[0] +_ = V3279 +V3280 := __args[1] +_ = V3280 +V3281 := __args[2] +_ = V3281 +reg297374 := __e.Call(__defun__length, V3281) +reg297375 := __e.Call(__defun__length, V3280) +reg297376 := PrimNumberSubtract(reg297374, reg297375) +Diff := reg297376 +_ = Diff +reg297377 := __e.Call(__defun__shen_4dict_1count, V3279) +reg297378 := PrimNumberAdd(Diff, reg297377) +__ctx.TailApply(__defun__shen_4dict_1count_1_6, V3279, reg297378) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.dict-update-count", value: __defun__shen_4dict_1update_1count}) + +__defun__shen_4dict_1_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3285 := __args[0] +_ = V3285 +V3286 := __args[1] +_ = V3286 +V3287 := __args[2] +_ = V3287 +reg297380 := __e.Call(__defun__shen_4dict_1capacity, V3285) +reg297381 := __e.Call(__defun__hash, V3286, reg297380) +N := reg297381 +_ = N +reg297382 := __e.Call(__defun__shen_4_5_1dict_1bucket, V3285, N) +Bucket := reg297382 +_ = Bucket +reg297383 := __e.Call(__defun__shen_4assoc_1set, V3286, V3287, Bucket) +NewBucket := reg297383 +_ = NewBucket +reg297384 := __e.Call(__defun__shen_4dict_1bucket_1_6, V3285, N, NewBucket) +Change := reg297384 +_ = Change +reg297385 := __e.Call(__defun__shen_4dict_1update_1count, V3285, Bucket, NewBucket) +Count := reg297385 +_ = Count +__ctx.Return(V3287) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.dict->", value: __defun__shen_4dict_1_6}) + +__defun__shen_4_5_1dict = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3290 := __args[0] +_ = V3290 +V3291 := __args[1] +_ = V3291 +reg297386 := __e.Call(__defun__shen_4dict_1capacity, V3290) +reg297387 := __e.Call(__defun__hash, V3291, reg297386) +N := reg297387 +_ = N +reg297388 := __e.Call(__defun__shen_4_5_1dict_1bucket, V3290, N) +Bucket := reg297388 +_ = Bucket +reg297389 := __e.Call(__defun__assoc, V3291, Bucket) +Result := reg297389 +_ = Result +reg297390 := __e.Call(__defun__empty_2, Result) +if reg297390 == True { +reg297391 := MakeString("value ") +reg297392 := MakeString(" not found in dict\n") +reg297393 := MakeSymbol("shen.a") +reg297394 := __e.Call(__defun__shen_4app, V3291, reg297392, reg297393) +reg297395 := PrimStringConcat(reg297391, reg297394) +reg297396 := PrimSimpleError(reg297395) +__ctx.Return(reg297396) +return +} else { +reg297397 := PrimTail(Result) +__ctx.Return(reg297397) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.<-dict", value: __defun__shen_4_5_1dict}) + +__defun__shen_4dict_1rm = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3294 := __args[0] +_ = V3294 +V3295 := __args[1] +_ = V3295 +reg297398 := __e.Call(__defun__shen_4dict_1capacity, V3294) +reg297399 := __e.Call(__defun__hash, V3295, reg297398) +N := reg297399 +_ = N +reg297400 := __e.Call(__defun__shen_4_5_1dict_1bucket, V3294, N) +Bucket := reg297400 +_ = Bucket +reg297401 := __e.Call(__defun__shen_4assoc_1rm, V3295, Bucket) +NewBucket := reg297401 +_ = NewBucket +reg297402 := __e.Call(__defun__shen_4dict_1bucket_1_6, V3294, N, NewBucket) +Change := reg297402 +_ = Change +reg297403 := __e.Call(__defun__shen_4dict_1update_1count, V3294, Bucket, NewBucket) +Count := reg297403 +_ = Count +__ctx.Return(V3295) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.dict-rm", value: __defun__shen_4dict_1rm}) + +__defun__shen_4dict_1fold = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3299 := __args[0] +_ = V3299 +V3300 := __args[1] +_ = V3300 +V3301 := __args[2] +_ = V3301 +reg297404 := __e.Call(__defun__shen_4dict_1capacity, V3300) +Limit := reg297404 +_ = Limit +reg297405 := MakeNumber(0) +__ctx.TailApply(__defun__shen_4dict_1fold_1h, V3299, V3300, V3301, reg297405, Limit) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.dict-fold", value: __defun__shen_4dict_1fold}) + +__defun__shen_4dict_1fold_1h = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3308 := __args[0] +_ = V3308 +V3309 := __args[1] +_ = V3309 +V3310 := __args[2] +_ = V3310 +V3311 := __args[3] +_ = V3311 +V3312 := __args[4] +_ = V3312 +reg297407 := PrimEqual(V3312, V3311) +if reg297407 == True { +__ctx.Return(V3310) +return +} else { +reg297408 := __e.Call(__defun__shen_4_5_1dict_1bucket, V3309, V3311) +B := reg297408 +_ = B +reg297409 := __e.Call(__defun__shen_4bucket_1fold, V3308, B, V3310) +Acc := reg297409 +_ = Acc +reg297410 := MakeNumber(1) +reg297411 := PrimNumberAdd(reg297410, V3311) +__ctx.TailApply(__defun__shen_4dict_1fold_1h, V3308, V3309, Acc, reg297411, V3312) +return +} +}, 5) +__initDefs = append(__initDefs, defType{name: "shen.dict-fold-h", value: __defun__shen_4dict_1fold_1h}) + +__defun__shen_4bucket_1fold = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3316 := __args[0] +_ = V3316 +V3317 := __args[1] +_ = V3317 +V3318 := __args[2] +_ = V3318 +reg297413 := Nil; +reg297414 := PrimEqual(reg297413, V3317) +if reg297414 == True { +__ctx.Return(V3318) +return +} else { +reg297415 := PrimIsPair(V3317) +var reg297422 Obj +if reg297415 == True { +reg297416 := PrimHead(V3317) +reg297417 := PrimIsPair(reg297416) +var reg297420 Obj +if reg297417 == True { +reg297418 := True; +reg297420 = reg297418 +} else { +reg297419 := False; +reg297420 = reg297419 +} +reg297422 = reg297420 +} else { +reg297421 := False; +reg297422 = reg297421 +} +if reg297422 == True { +reg297423 := PrimHead(V3317) +reg297424 := PrimHead(reg297423) +reg297425 := PrimHead(V3317) +reg297426 := PrimTail(reg297425) +reg297427 := PrimTail(V3317) +reg297428 := __e.Call(__defun__shen_4bucket_1fold, V3316, reg297427, V3318) +__ctx.TailApply(V3316, reg297424, reg297426, reg297428) +return +} else { +reg297430 := MakeSymbol("shen.bucket-fold") +__ctx.TailApply(__defun__shen_4f__error, reg297430) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.bucket-fold", value: __defun__shen_4bucket_1fold}) + +__defun__shen_4dict_1keys = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3320 := __args[0] +_ = V3320 +reg297432 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +K := __args[0] +_ = K +reg297433 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ := __args[0] +_ = __ +reg297434 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Acc := __args[0] +_ = Acc +reg297435 := PrimCons(K, Acc) +__ctx.Return(reg297435) +return +}, 1) +__ctx.Return(reg297434) +return +}, 1) +__ctx.Return(reg297433) +return +}, 1) +reg297436 := Nil; +__ctx.TailApply(__defun__shen_4dict_1fold, reg297432, V3320, reg297436) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.dict-keys", value: __defun__shen_4dict_1keys}) + +__defun__shen_4dict_1values = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3322 := __args[0] +_ = V3322 +reg297438 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ := __args[0] +_ = __ +reg297439 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V := __args[0] +_ = V +reg297440 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Acc := __args[0] +_ = Acc +reg297441 := PrimCons(V, Acc) +__ctx.Return(reg297441) +return +}, 1) +__ctx.Return(reg297440) +return +}, 1) +__ctx.Return(reg297439) +return +}, 1) +reg297442 := Nil; +__ctx.TailApply(__defun__shen_4dict_1fold, reg297438, V3322, reg297442) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.dict-values", value: __defun__shen_4dict_1values}) + +} diff --git a/cmd/shen/load.go b/cmd/shen/load.go new file mode 100644 index 0000000..a041a53 --- /dev/null +++ b/cmd/shen/load.go @@ -0,0 +1,497 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__load Obj // load +var __defun__shen_4load_1help Obj // shen.load-help +var __defun__shen_4remove_1synonyms Obj // shen.remove-synonyms +var __defun__shen_4typecheck_1and_1load Obj // shen.typecheck-and-load +var __defun__shen_4typetable Obj // shen.typetable +var __defun__shen_4assumetype Obj // shen.assumetype +var __defun__shen_4unwind_1types Obj // shen.unwind-types +var __defun__shen_4remtype Obj // shen.remtype +var __defun__shen_4removetype Obj // shen.removetype +var __defun__shen_4_5sig_7rest_6 Obj // shen. +var __defun__write_1to_1file Obj // write-to-file + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg307834 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg307834) +return +}, 0)) +__defun__load = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1673 := __args[0] +_ = V1673 +reg307835 := MakeSymbol("run") +reg307836 := PrimGetTime(reg307835) +Start := reg307836 +_ = Start +reg307837 := MakeSymbol("shen.*tc*") +reg307838 := PrimValue(reg307837) +reg307839 := __e.Call(__defun__read_1file, V1673) +reg307840 := __e.Call(__defun__shen_4load_1help, reg307838, reg307839) +Result := reg307840 +_ = Result +reg307841 := MakeSymbol("run") +reg307842 := PrimGetTime(reg307841) +Finish := reg307842 +_ = Finish +reg307843 := PrimNumberSubtract(Finish, Start) +Time := reg307843 +_ = Time +reg307844 := MakeString("\nrun time: ") +reg307845 := PrimStr(Time) +reg307846 := MakeString(" secs\n") +reg307847 := PrimStringConcat(reg307845, reg307846) +reg307848 := PrimStringConcat(reg307844, reg307847) +reg307849 := __e.Call(__defun__stoutput) +reg307850 := __e.Call(__defun__shen_4prhush, reg307848, reg307849) +Message := reg307850 +_ = Message +Load := Result +_ = Load +reg307851 := MakeSymbol("shen.*tc*") +reg307852 := PrimValue(reg307851) +var reg307862 Obj +if reg307852 == True { +reg307853 := MakeString("\ntypechecked in ") +reg307854 := __e.Call(__defun__inferences) +reg307855 := MakeString(" inferences\n") +reg307856 := MakeSymbol("shen.a") +reg307857 := __e.Call(__defun__shen_4app, reg307854, reg307855, reg307856) +reg307858 := PrimStringConcat(reg307853, reg307857) +reg307859 := __e.Call(__defun__stoutput) +reg307860 := __e.Call(__defun__shen_4prhush, reg307858, reg307859) +reg307862 = reg307860 +} else { +reg307861 := MakeSymbol("shen.skip") +reg307862 = reg307861 +} +Infs := reg307862 +_ = Infs +reg307863 := MakeSymbol("loaded") +__ctx.Return(reg307863) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "load", value: __defun__load}) + +__defun__shen_4load_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1680 := __args[0] +_ = V1680 +V1681 := __args[1] +_ = V1681 +reg307864 := False; +reg307865 := PrimEqual(reg307864, V1680) +if reg307865 == True { +reg307866 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +reg307867 := __e.Call(__defun__shen_4eval_1without_1macros, X) +reg307868 := MakeString("\n") +reg307869 := MakeSymbol("shen.s") +reg307870 := __e.Call(__defun__shen_4app, reg307867, reg307868, reg307869) +reg307871 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__shen_4prhush, reg307870, reg307871) +return +}, 1) +__ctx.TailApply(__defun__shen_4for_1each, reg307866, V1681) +return +} else { +reg307874 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4remove_1synonyms, X) +return +}, 1) +reg307876 := __e.Call(__defun__mapcan, reg307874, V1681) +RemoveSynonyms := reg307876 +_ = RemoveSynonyms +reg307877 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4typetable, X) +return +}, 1) +reg307879 := __e.Call(__defun__mapcan, reg307877, RemoveSynonyms) +Table := reg307879 +_ = Table +reg307880 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4assumetype, X) +return +}, 1) +reg307882 := __e.Call(__defun__shen_4for_1each, reg307880, Table) +Assume := reg307882 +_ = Assume +reg307883 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg307884 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4typecheck_1and_1load, X) +return +}, 1) +__ctx.TailApply(__defun__shen_4for_1each, reg307884, RemoveSynonyms) +return +}, 0) +reg307887 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +__ctx.TailApply(__defun__shen_4unwind_1types, E, Table) +return +}, 1) +reg307889 := __e.Try(reg307883).Catch(reg307887) +__ctx.Return(reg307889) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.load-help", value: __defun__shen_4load_1help}) + +__defun__shen_4remove_1synonyms = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1683 := __args[0] +_ = V1683 +reg307890 := PrimIsPair(V1683) +var reg307898 Obj +if reg307890 == True { +reg307891 := MakeSymbol("shen.synonyms-help") +reg307892 := PrimHead(V1683) +reg307893 := PrimEqual(reg307891, reg307892) +var reg307896 Obj +if reg307893 == True { +reg307894 := True; +reg307896 = reg307894 +} else { +reg307895 := False; +reg307896 = reg307895 +} +reg307898 = reg307896 +} else { +reg307897 := False; +reg307898 = reg307897 +} +if reg307898 == True { +reg307899 := __e.Call(__defun__eval, V1683) +_ = reg307899 +reg307900 := Nil; +__ctx.Return(reg307900) +return +} else { +reg307901 := Nil; +reg307902 := PrimCons(V1683, reg307901) +__ctx.Return(reg307902) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.remove-synonyms", value: __defun__shen_4remove_1synonyms}) + +__defun__shen_4typecheck_1and_1load = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1685 := __args[0] +_ = V1685 +reg307903 := MakeNumber(1) +reg307904 := __e.Call(__defun__nl, reg307903) +_ = reg307904 +reg307905 := MakeSymbol("A") +reg307906 := __e.Call(__defun__gensym, reg307905) +__ctx.TailApply(__defun__shen_4typecheck_1and_1evaluate, V1685, reg307906) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.typecheck-and-load", value: __defun__shen_4typecheck_1and_1load}) + +__defun__shen_4typetable = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1691 := __args[0] +_ = V1691 +reg307908 := PrimIsPair(V1691) +var reg307923 Obj +if reg307908 == True { +reg307909 := MakeSymbol("define") +reg307910 := PrimHead(V1691) +reg307911 := PrimEqual(reg307909, reg307910) +var reg307918 Obj +if reg307911 == True { +reg307912 := PrimTail(V1691) +reg307913 := PrimIsPair(reg307912) +var reg307916 Obj +if reg307913 == True { +reg307914 := True; +reg307916 = reg307914 +} else { +reg307915 := False; +reg307916 = reg307915 +} +reg307918 = reg307916 +} else { +reg307917 := False; +reg307918 = reg307917 +} +var reg307921 Obj +if reg307918 == True { +reg307919 := True; +reg307921 = reg307919 +} else { +reg307920 := False; +reg307921 = reg307920 +} +reg307923 = reg307921 +} else { +reg307922 := False; +reg307923 = reg307922 +} +if reg307923 == True { +reg307924 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Y := __args[0] +_ = Y +__ctx.TailApply(__defun__shen_4_5sig_7rest_6, Y) +return +}, 1) +reg307926 := PrimTail(V1691) +reg307927 := PrimTail(reg307926) +reg307928 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg307929 := PrimTail(V1691) +reg307930 := PrimHead(reg307929) +reg307931 := MakeString(" lacks a proper signature.\n") +reg307932 := MakeSymbol("shen.a") +reg307933 := __e.Call(__defun__shen_4app, reg307930, reg307931, reg307932) +reg307934 := PrimSimpleError(reg307933) +__ctx.Return(reg307934) +return +}, 1) +reg307935 := __e.Call(__defun__compile, reg307924, reg307927, reg307928) +Sig := reg307935 +_ = Sig +reg307936 := PrimTail(V1691) +reg307937 := PrimHead(reg307936) +reg307938 := PrimCons(reg307937, Sig) +reg307939 := Nil; +reg307940 := PrimCons(reg307938, reg307939) +__ctx.Return(reg307940) +return +} else { +reg307941 := Nil; +__ctx.Return(reg307941) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.typetable", value: __defun__shen_4typetable}) + +__defun__shen_4assumetype = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1693 := __args[0] +_ = V1693 +reg307942 := PrimIsPair(V1693) +if reg307942 == True { +reg307943 := PrimHead(V1693) +reg307944 := PrimTail(V1693) +__ctx.TailApply(__defun__declare, reg307943, reg307944) +return +} else { +reg307946 := MakeSymbol("shen.assumetype") +__ctx.TailApply(__defun__shen_4f__error, reg307946) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.assumetype", value: __defun__shen_4assumetype}) + +__defun__shen_4unwind_1types = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1700 := __args[0] +_ = V1700 +V1701 := __args[1] +_ = V1701 +reg307948 := Nil; +reg307949 := PrimEqual(reg307948, V1701) +if reg307949 == True { +reg307950 := PrimErrorToString(V1700) +reg307951 := PrimSimpleError(reg307950) +__ctx.Return(reg307951) +return +} else { +reg307952 := PrimIsPair(V1701) +var reg307959 Obj +if reg307952 == True { +reg307953 := PrimHead(V1701) +reg307954 := PrimIsPair(reg307953) +var reg307957 Obj +if reg307954 == True { +reg307955 := True; +reg307957 = reg307955 +} else { +reg307956 := False; +reg307957 = reg307956 +} +reg307959 = reg307957 +} else { +reg307958 := False; +reg307959 = reg307958 +} +if reg307959 == True { +reg307960 := PrimHead(V1701) +reg307961 := PrimHead(reg307960) +reg307962 := __e.Call(__defun__shen_4remtype, reg307961) +_ = reg307962 +reg307963 := PrimTail(V1701) +__ctx.TailApply(__defun__shen_4unwind_1types, V1700, reg307963) +return +} else { +reg307965 := MakeSymbol("shen.unwind-types") +__ctx.TailApply(__defun__shen_4f__error, reg307965) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.unwind-types", value: __defun__shen_4unwind_1types}) + +__defun__shen_4remtype = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1703 := __args[0] +_ = V1703 +reg307967 := MakeSymbol("shen.*signedfuncs*") +reg307968 := MakeSymbol("shen.*signedfuncs*") +reg307969 := PrimValue(reg307968) +reg307970 := __e.Call(__defun__shen_4removetype, V1703, reg307969) +reg307971 := PrimSet(reg307967, reg307970) +__ctx.Return(reg307971) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.remtype", value: __defun__shen_4remtype}) + +__defun__shen_4removetype = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1711 := __args[0] +_ = V1711 +V1712 := __args[1] +_ = V1712 +reg307972 := Nil; +reg307973 := PrimEqual(reg307972, V1712) +if reg307973 == True { +reg307974 := Nil; +__ctx.Return(reg307974) +return +} else { +reg307975 := PrimIsPair(V1712) +var reg307990 Obj +if reg307975 == True { +reg307976 := PrimHead(V1712) +reg307977 := PrimIsPair(reg307976) +var reg307985 Obj +if reg307977 == True { +reg307978 := PrimHead(V1712) +reg307979 := PrimHead(reg307978) +reg307980 := PrimEqual(reg307979, V1711) +var reg307983 Obj +if reg307980 == True { +reg307981 := True; +reg307983 = reg307981 +} else { +reg307982 := False; +reg307983 = reg307982 +} +reg307985 = reg307983 +} else { +reg307984 := False; +reg307985 = reg307984 +} +var reg307988 Obj +if reg307985 == True { +reg307986 := True; +reg307988 = reg307986 +} else { +reg307987 := False; +reg307988 = reg307987 +} +reg307990 = reg307988 +} else { +reg307989 := False; +reg307990 = reg307989 +} +if reg307990 == True { +reg307991 := PrimHead(V1712) +reg307992 := PrimHead(reg307991) +reg307993 := PrimTail(V1712) +__ctx.TailApply(__defun__shen_4removetype, reg307992, reg307993) +return +} else { +reg307995 := PrimIsPair(V1712) +if reg307995 == True { +reg307996 := PrimHead(V1712) +reg307997 := PrimTail(V1712) +reg307998 := __e.Call(__defun__shen_4removetype, V1711, reg307997) +reg307999 := PrimCons(reg307996, reg307998) +__ctx.Return(reg307999) +return +} else { +reg308000 := MakeSymbol("shen.removetype") +__ctx.TailApply(__defun__shen_4f__error, reg308000) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.removetype", value: __defun__shen_4removetype}) + +__defun__shen_4_5sig_7rest_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1714 := __args[0] +_ = V1714 +reg308002 := __e.Call(__defun__shen_4_5signature_6, V1714) +Parse__shen_4_5signature_6 := reg308002 +_ = Parse__shen_4_5signature_6 +reg308003 := __e.Call(__defun__fail) +reg308004 := PrimEqual(reg308003, Parse__shen_4_5signature_6) +reg308005 := PrimNot(reg308004) +if reg308005 == True { +reg308006 := __e.Call(__defun___5_b_6, Parse__shen_4_5signature_6) +Parse___5_b_6 := reg308006 +_ = Parse___5_b_6 +reg308007 := __e.Call(__defun__fail) +reg308008 := PrimEqual(reg308007, Parse___5_b_6) +reg308009 := PrimNot(reg308008) +if reg308009 == True { +reg308010 := PrimHead(Parse___5_b_6) +reg308011 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5signature_6) +__ctx.TailApply(__defun__shen_4pair, reg308010, reg308011) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5sig_7rest_6}) + +__defun__write_1to_1file = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1717 := __args[0] +_ = V1717 +V1718 := __args[1] +_ = V1718 +reg308015 := MakeSymbol("out") +reg308016 := PrimOpenStream(V1717, reg308015) +Stream := reg308016 +_ = Stream +reg308017 := PrimIsString(V1718) +var reg308024 Obj +if reg308017 == True { +reg308018 := MakeString("\n\n") +reg308019 := MakeSymbol("shen.a") +reg308020 := __e.Call(__defun__shen_4app, V1718, reg308018, reg308019) +reg308024 = reg308020 +} else { +reg308021 := MakeString("\n\n") +reg308022 := MakeSymbol("shen.s") +reg308023 := __e.Call(__defun__shen_4app, V1718, reg308021, reg308022) +reg308024 = reg308023 +} +String := reg308024 +_ = String +reg308025 := __e.Call(__defun__pr, String, Stream) +Write := reg308025 +_ = Write +reg308026 := PrimCloseStream(Stream) +Close := reg308026 +_ = Close +__ctx.Return(V1718) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "write-to-file", value: __defun__write_1to_1file}) + +} diff --git a/cmd/shen/macros.go b/cmd/shen/macros.go new file mode 100644 index 0000000..3b8cafb --- /dev/null +++ b/cmd/shen/macros.go @@ -0,0 +1,2993 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__macroexpand Obj // macroexpand +var __defun__shen_4error_1macro Obj // shen.error-macro +var __defun__shen_4output_1macro Obj // shen.output-macro +var __defun__shen_4make_1string_1macro Obj // shen.make-string-macro +var __defun__shen_4input_1macro Obj // shen.input-macro +var __defun__shen_4compose Obj // shen.compose +var __defun__shen_4compile_1macro Obj // shen.compile-macro +var __defun__shen_4prolog_1macro Obj // shen.prolog-macro +var __defun__shen_4receive_1terms Obj // shen.receive-terms +var __defun__shen_4pass_1literals Obj // shen.pass-literals +var __defun__shen_4defprolog_1macro Obj // shen.defprolog-macro +var __defun__shen_4datatype_1macro Obj // shen.datatype-macro +var __defun__shen_4intern_1type Obj // shen.intern-type +var __defun__shen_4_8s_1macro Obj // shen.@s-macro +var __defun__shen_4synonyms_1macro Obj // shen.synonyms-macro +var __defun__shen_4curry_1synonyms Obj // shen.curry-synonyms +var __defun__shen_4nl_1macro Obj // shen.nl-macro +var __defun__shen_4assoc_1macro Obj // shen.assoc-macro +var __defun__shen_4let_1macro Obj // shen.let-macro +var __defun__shen_4abs_1macro Obj // shen.abs-macro +var __defun__shen_4cases_1macro Obj // shen.cases-macro +var __defun__shen_4timer_1macro Obj // shen.timer-macro +var __defun__shen_4tuple_1up Obj // shen.tuple-up +var __defun__shen_4put_cget_1macro Obj // shen.put/get-macro +var __defun__shen_4function_1macro Obj // shen.function-macro +var __defun__shen_4function_1abstraction Obj // shen.function-abstraction +var __defun__shen_4function_1abstraction_1help Obj // shen.function-abstraction-help +var __defun__undefmacro Obj // undefmacro +var __defun__shen_4findpos Obj // shen.findpos +var __defun__shen_4remove_1nth Obj // shen.remove-nth + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg308762 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg308762) +return +}, 0)) +__defun__macroexpand = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1720 := __args[0] +_ = V1720 +reg308763 := MakeSymbol("*macros*") +reg308764 := PrimValue(reg308763) +reg308765 := __e.Call(__defun__shen_4compose, reg308764, V1720) +Y := reg308765 +_ = Y +reg308766 := PrimEqual(V1720, Y) +if reg308766 == True { +__ctx.Return(V1720) +return +} else { +reg308767 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__macroexpand, Z) +return +}, 1) +__ctx.TailApply(__defun__shen_4walk, reg308767, Y) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "macroexpand", value: __defun__macroexpand}) + +__defun__shen_4error_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1722 := __args[0] +_ = V1722 +reg308770 := PrimIsPair(V1722) +var reg308785 Obj +if reg308770 == True { +reg308771 := MakeSymbol("error") +reg308772 := PrimHead(V1722) +reg308773 := PrimEqual(reg308771, reg308772) +var reg308780 Obj +if reg308773 == True { +reg308774 := PrimTail(V1722) +reg308775 := PrimIsPair(reg308774) +var reg308778 Obj +if reg308775 == True { +reg308776 := True; +reg308778 = reg308776 +} else { +reg308777 := False; +reg308778 = reg308777 +} +reg308780 = reg308778 +} else { +reg308779 := False; +reg308780 = reg308779 +} +var reg308783 Obj +if reg308780 == True { +reg308781 := True; +reg308783 = reg308781 +} else { +reg308782 := False; +reg308783 = reg308782 +} +reg308785 = reg308783 +} else { +reg308784 := False; +reg308785 = reg308784 +} +if reg308785 == True { +reg308786 := MakeSymbol("simple-error") +reg308787 := PrimTail(V1722) +reg308788 := PrimHead(reg308787) +reg308789 := PrimTail(V1722) +reg308790 := PrimTail(reg308789) +reg308791 := __e.Call(__defun__shen_4mkstr, reg308788, reg308790) +reg308792 := Nil; +reg308793 := PrimCons(reg308791, reg308792) +reg308794 := PrimCons(reg308786, reg308793) +__ctx.Return(reg308794) +return +} else { +__ctx.Return(V1722) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.error-macro", value: __defun__shen_4error_1macro}) + +__defun__shen_4output_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1724 := __args[0] +_ = V1724 +reg308795 := PrimIsPair(V1724) +var reg308810 Obj +if reg308795 == True { +reg308796 := MakeSymbol("output") +reg308797 := PrimHead(V1724) +reg308798 := PrimEqual(reg308796, reg308797) +var reg308805 Obj +if reg308798 == True { +reg308799 := PrimTail(V1724) +reg308800 := PrimIsPair(reg308799) +var reg308803 Obj +if reg308800 == True { +reg308801 := True; +reg308803 = reg308801 +} else { +reg308802 := False; +reg308803 = reg308802 +} +reg308805 = reg308803 +} else { +reg308804 := False; +reg308805 = reg308804 +} +var reg308808 Obj +if reg308805 == True { +reg308806 := True; +reg308808 = reg308806 +} else { +reg308807 := False; +reg308808 = reg308807 +} +reg308810 = reg308808 +} else { +reg308809 := False; +reg308810 = reg308809 +} +if reg308810 == True { +reg308811 := MakeSymbol("shen.prhush") +reg308812 := PrimTail(V1724) +reg308813 := PrimHead(reg308812) +reg308814 := PrimTail(V1724) +reg308815 := PrimTail(reg308814) +reg308816 := __e.Call(__defun__shen_4mkstr, reg308813, reg308815) +reg308817 := MakeSymbol("stoutput") +reg308818 := Nil; +reg308819 := PrimCons(reg308817, reg308818) +reg308820 := Nil; +reg308821 := PrimCons(reg308819, reg308820) +reg308822 := PrimCons(reg308816, reg308821) +reg308823 := PrimCons(reg308811, reg308822) +__ctx.Return(reg308823) +return +} else { +reg308824 := PrimIsPair(V1724) +var reg308848 Obj +if reg308824 == True { +reg308825 := MakeSymbol("pr") +reg308826 := PrimHead(V1724) +reg308827 := PrimEqual(reg308825, reg308826) +var reg308843 Obj +if reg308827 == True { +reg308828 := PrimTail(V1724) +reg308829 := PrimIsPair(reg308828) +var reg308838 Obj +if reg308829 == True { +reg308830 := Nil; +reg308831 := PrimTail(V1724) +reg308832 := PrimTail(reg308831) +reg308833 := PrimEqual(reg308830, reg308832) +var reg308836 Obj +if reg308833 == True { +reg308834 := True; +reg308836 = reg308834 +} else { +reg308835 := False; +reg308836 = reg308835 +} +reg308838 = reg308836 +} else { +reg308837 := False; +reg308838 = reg308837 +} +var reg308841 Obj +if reg308838 == True { +reg308839 := True; +reg308841 = reg308839 +} else { +reg308840 := False; +reg308841 = reg308840 +} +reg308843 = reg308841 +} else { +reg308842 := False; +reg308843 = reg308842 +} +var reg308846 Obj +if reg308843 == True { +reg308844 := True; +reg308846 = reg308844 +} else { +reg308845 := False; +reg308846 = reg308845 +} +reg308848 = reg308846 +} else { +reg308847 := False; +reg308848 = reg308847 +} +if reg308848 == True { +reg308849 := MakeSymbol("pr") +reg308850 := PrimTail(V1724) +reg308851 := PrimHead(reg308850) +reg308852 := MakeSymbol("stoutput") +reg308853 := Nil; +reg308854 := PrimCons(reg308852, reg308853) +reg308855 := Nil; +reg308856 := PrimCons(reg308854, reg308855) +reg308857 := PrimCons(reg308851, reg308856) +reg308858 := PrimCons(reg308849, reg308857) +__ctx.Return(reg308858) +return +} else { +__ctx.Return(V1724) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.output-macro", value: __defun__shen_4output_1macro}) + +__defun__shen_4make_1string_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1726 := __args[0] +_ = V1726 +reg308859 := PrimIsPair(V1726) +var reg308874 Obj +if reg308859 == True { +reg308860 := MakeSymbol("make-string") +reg308861 := PrimHead(V1726) +reg308862 := PrimEqual(reg308860, reg308861) +var reg308869 Obj +if reg308862 == True { +reg308863 := PrimTail(V1726) +reg308864 := PrimIsPair(reg308863) +var reg308867 Obj +if reg308864 == True { +reg308865 := True; +reg308867 = reg308865 +} else { +reg308866 := False; +reg308867 = reg308866 +} +reg308869 = reg308867 +} else { +reg308868 := False; +reg308869 = reg308868 +} +var reg308872 Obj +if reg308869 == True { +reg308870 := True; +reg308872 = reg308870 +} else { +reg308871 := False; +reg308872 = reg308871 +} +reg308874 = reg308872 +} else { +reg308873 := False; +reg308874 = reg308873 +} +if reg308874 == True { +reg308875 := PrimTail(V1726) +reg308876 := PrimHead(reg308875) +reg308877 := PrimTail(V1726) +reg308878 := PrimTail(reg308877) +__ctx.TailApply(__defun__shen_4mkstr, reg308876, reg308878) +return +} else { +__ctx.Return(V1726) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.make-string-macro", value: __defun__shen_4make_1string_1macro}) + +__defun__shen_4input_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1728 := __args[0] +_ = V1728 +reg308880 := PrimIsPair(V1728) +var reg308896 Obj +if reg308880 == True { +reg308881 := MakeSymbol("lineread") +reg308882 := PrimHead(V1728) +reg308883 := PrimEqual(reg308881, reg308882) +var reg308891 Obj +if reg308883 == True { +reg308884 := Nil; +reg308885 := PrimTail(V1728) +reg308886 := PrimEqual(reg308884, reg308885) +var reg308889 Obj +if reg308886 == True { +reg308887 := True; +reg308889 = reg308887 +} else { +reg308888 := False; +reg308889 = reg308888 +} +reg308891 = reg308889 +} else { +reg308890 := False; +reg308891 = reg308890 +} +var reg308894 Obj +if reg308891 == True { +reg308892 := True; +reg308894 = reg308892 +} else { +reg308893 := False; +reg308894 = reg308893 +} +reg308896 = reg308894 +} else { +reg308895 := False; +reg308896 = reg308895 +} +if reg308896 == True { +reg308897 := MakeSymbol("lineread") +reg308898 := MakeSymbol("stinput") +reg308899 := Nil; +reg308900 := PrimCons(reg308898, reg308899) +reg308901 := Nil; +reg308902 := PrimCons(reg308900, reg308901) +reg308903 := PrimCons(reg308897, reg308902) +__ctx.Return(reg308903) +return +} else { +reg308904 := PrimIsPair(V1728) +var reg308920 Obj +if reg308904 == True { +reg308905 := MakeSymbol("input") +reg308906 := PrimHead(V1728) +reg308907 := PrimEqual(reg308905, reg308906) +var reg308915 Obj +if reg308907 == True { +reg308908 := Nil; +reg308909 := PrimTail(V1728) +reg308910 := PrimEqual(reg308908, reg308909) +var reg308913 Obj +if reg308910 == True { +reg308911 := True; +reg308913 = reg308911 +} else { +reg308912 := False; +reg308913 = reg308912 +} +reg308915 = reg308913 +} else { +reg308914 := False; +reg308915 = reg308914 +} +var reg308918 Obj +if reg308915 == True { +reg308916 := True; +reg308918 = reg308916 +} else { +reg308917 := False; +reg308918 = reg308917 +} +reg308920 = reg308918 +} else { +reg308919 := False; +reg308920 = reg308919 +} +if reg308920 == True { +reg308921 := MakeSymbol("input") +reg308922 := MakeSymbol("stinput") +reg308923 := Nil; +reg308924 := PrimCons(reg308922, reg308923) +reg308925 := Nil; +reg308926 := PrimCons(reg308924, reg308925) +reg308927 := PrimCons(reg308921, reg308926) +__ctx.Return(reg308927) +return +} else { +reg308928 := PrimIsPair(V1728) +var reg308944 Obj +if reg308928 == True { +reg308929 := MakeSymbol("read") +reg308930 := PrimHead(V1728) +reg308931 := PrimEqual(reg308929, reg308930) +var reg308939 Obj +if reg308931 == True { +reg308932 := Nil; +reg308933 := PrimTail(V1728) +reg308934 := PrimEqual(reg308932, reg308933) +var reg308937 Obj +if reg308934 == True { +reg308935 := True; +reg308937 = reg308935 +} else { +reg308936 := False; +reg308937 = reg308936 +} +reg308939 = reg308937 +} else { +reg308938 := False; +reg308939 = reg308938 +} +var reg308942 Obj +if reg308939 == True { +reg308940 := True; +reg308942 = reg308940 +} else { +reg308941 := False; +reg308942 = reg308941 +} +reg308944 = reg308942 +} else { +reg308943 := False; +reg308944 = reg308943 +} +if reg308944 == True { +reg308945 := MakeSymbol("read") +reg308946 := MakeSymbol("stinput") +reg308947 := Nil; +reg308948 := PrimCons(reg308946, reg308947) +reg308949 := Nil; +reg308950 := PrimCons(reg308948, reg308949) +reg308951 := PrimCons(reg308945, reg308950) +__ctx.Return(reg308951) +return +} else { +reg308952 := PrimIsPair(V1728) +var reg308976 Obj +if reg308952 == True { +reg308953 := MakeSymbol("input+") +reg308954 := PrimHead(V1728) +reg308955 := PrimEqual(reg308953, reg308954) +var reg308971 Obj +if reg308955 == True { +reg308956 := PrimTail(V1728) +reg308957 := PrimIsPair(reg308956) +var reg308966 Obj +if reg308957 == True { +reg308958 := Nil; +reg308959 := PrimTail(V1728) +reg308960 := PrimTail(reg308959) +reg308961 := PrimEqual(reg308958, reg308960) +var reg308964 Obj +if reg308961 == True { +reg308962 := True; +reg308964 = reg308962 +} else { +reg308963 := False; +reg308964 = reg308963 +} +reg308966 = reg308964 +} else { +reg308965 := False; +reg308966 = reg308965 +} +var reg308969 Obj +if reg308966 == True { +reg308967 := True; +reg308969 = reg308967 +} else { +reg308968 := False; +reg308969 = reg308968 +} +reg308971 = reg308969 +} else { +reg308970 := False; +reg308971 = reg308970 +} +var reg308974 Obj +if reg308971 == True { +reg308972 := True; +reg308974 = reg308972 +} else { +reg308973 := False; +reg308974 = reg308973 +} +reg308976 = reg308974 +} else { +reg308975 := False; +reg308976 = reg308975 +} +if reg308976 == True { +reg308977 := MakeSymbol("input+") +reg308978 := PrimTail(V1728) +reg308979 := PrimHead(reg308978) +reg308980 := MakeSymbol("stinput") +reg308981 := Nil; +reg308982 := PrimCons(reg308980, reg308981) +reg308983 := Nil; +reg308984 := PrimCons(reg308982, reg308983) +reg308985 := PrimCons(reg308979, reg308984) +reg308986 := PrimCons(reg308977, reg308985) +__ctx.Return(reg308986) +return +} else { +reg308987 := PrimIsPair(V1728) +var reg309003 Obj +if reg308987 == True { +reg308988 := MakeSymbol("read-byte") +reg308989 := PrimHead(V1728) +reg308990 := PrimEqual(reg308988, reg308989) +var reg308998 Obj +if reg308990 == True { +reg308991 := Nil; +reg308992 := PrimTail(V1728) +reg308993 := PrimEqual(reg308991, reg308992) +var reg308996 Obj +if reg308993 == True { +reg308994 := True; +reg308996 = reg308994 +} else { +reg308995 := False; +reg308996 = reg308995 +} +reg308998 = reg308996 +} else { +reg308997 := False; +reg308998 = reg308997 +} +var reg309001 Obj +if reg308998 == True { +reg308999 := True; +reg309001 = reg308999 +} else { +reg309000 := False; +reg309001 = reg309000 +} +reg309003 = reg309001 +} else { +reg309002 := False; +reg309003 = reg309002 +} +if reg309003 == True { +reg309004 := MakeSymbol("read-byte") +reg309005 := MakeSymbol("stinput") +reg309006 := Nil; +reg309007 := PrimCons(reg309005, reg309006) +reg309008 := Nil; +reg309009 := PrimCons(reg309007, reg309008) +reg309010 := PrimCons(reg309004, reg309009) +__ctx.Return(reg309010) +return +} else { +__ctx.Return(V1728) +return +} +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.input-macro", value: __defun__shen_4input_1macro}) + +__defun__shen_4compose = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1731 := __args[0] +_ = V1731 +V1732 := __args[1] +_ = V1732 +reg309012 := Nil; +reg309013 := PrimEqual(reg309012, V1731) +if reg309013 == True { +__ctx.Return(V1732) +return +} else { +reg309014 := PrimIsPair(V1731) +if reg309014 == True { +reg309015 := PrimTail(V1731) +reg309016 := PrimHead(V1731) +f309011 := reg309016 +_ = f309011 +reg309017 := __e.Call(f309011, V1732) +__ctx.TailApply(__defun__shen_4compose, reg309015, reg309017) +return +} else { +reg309019 := MakeSymbol("shen.compose") +__ctx.TailApply(__defun__shen_4f__error, reg309019) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.compose", value: __defun__shen_4compose}) + +__defun__shen_4compile_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1734 := __args[0] +_ = V1734 +reg309021 := PrimIsPair(V1734) +var reg309054 Obj +if reg309021 == True { +reg309022 := MakeSymbol("compile") +reg309023 := PrimHead(V1734) +reg309024 := PrimEqual(reg309022, reg309023) +var reg309049 Obj +if reg309024 == True { +reg309025 := PrimTail(V1734) +reg309026 := PrimIsPair(reg309025) +var reg309044 Obj +if reg309026 == True { +reg309027 := PrimTail(V1734) +reg309028 := PrimTail(reg309027) +reg309029 := PrimIsPair(reg309028) +var reg309039 Obj +if reg309029 == True { +reg309030 := Nil; +reg309031 := PrimTail(V1734) +reg309032 := PrimTail(reg309031) +reg309033 := PrimTail(reg309032) +reg309034 := PrimEqual(reg309030, reg309033) +var reg309037 Obj +if reg309034 == True { +reg309035 := True; +reg309037 = reg309035 +} else { +reg309036 := False; +reg309037 = reg309036 +} +reg309039 = reg309037 +} else { +reg309038 := False; +reg309039 = reg309038 +} +var reg309042 Obj +if reg309039 == True { +reg309040 := True; +reg309042 = reg309040 +} else { +reg309041 := False; +reg309042 = reg309041 +} +reg309044 = reg309042 +} else { +reg309043 := False; +reg309044 = reg309043 +} +var reg309047 Obj +if reg309044 == True { +reg309045 := True; +reg309047 = reg309045 +} else { +reg309046 := False; +reg309047 = reg309046 +} +reg309049 = reg309047 +} else { +reg309048 := False; +reg309049 = reg309048 +} +var reg309052 Obj +if reg309049 == True { +reg309050 := True; +reg309052 = reg309050 +} else { +reg309051 := False; +reg309052 = reg309051 +} +reg309054 = reg309052 +} else { +reg309053 := False; +reg309054 = reg309053 +} +if reg309054 == True { +reg309055 := MakeSymbol("compile") +reg309056 := PrimTail(V1734) +reg309057 := PrimHead(reg309056) +reg309058 := PrimTail(V1734) +reg309059 := PrimTail(reg309058) +reg309060 := PrimHead(reg309059) +reg309061 := MakeSymbol("lambda") +reg309062 := MakeSymbol("E") +reg309063 := MakeSymbol("if") +reg309064 := MakeSymbol("cons?") +reg309065 := MakeSymbol("E") +reg309066 := Nil; +reg309067 := PrimCons(reg309065, reg309066) +reg309068 := PrimCons(reg309064, reg309067) +reg309069 := MakeSymbol("error") +reg309070 := MakeString("parse error here: ~S~%") +reg309071 := MakeSymbol("E") +reg309072 := Nil; +reg309073 := PrimCons(reg309071, reg309072) +reg309074 := PrimCons(reg309070, reg309073) +reg309075 := PrimCons(reg309069, reg309074) +reg309076 := MakeSymbol("error") +reg309077 := MakeString("parse error~%") +reg309078 := Nil; +reg309079 := PrimCons(reg309077, reg309078) +reg309080 := PrimCons(reg309076, reg309079) +reg309081 := Nil; +reg309082 := PrimCons(reg309080, reg309081) +reg309083 := PrimCons(reg309075, reg309082) +reg309084 := PrimCons(reg309068, reg309083) +reg309085 := PrimCons(reg309063, reg309084) +reg309086 := Nil; +reg309087 := PrimCons(reg309085, reg309086) +reg309088 := PrimCons(reg309062, reg309087) +reg309089 := PrimCons(reg309061, reg309088) +reg309090 := Nil; +reg309091 := PrimCons(reg309089, reg309090) +reg309092 := PrimCons(reg309060, reg309091) +reg309093 := PrimCons(reg309057, reg309092) +reg309094 := PrimCons(reg309055, reg309093) +__ctx.Return(reg309094) +return +} else { +__ctx.Return(V1734) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.compile-macro", value: __defun__shen_4compile_1macro}) + +__defun__shen_4prolog_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1736 := __args[0] +_ = V1736 +reg309095 := PrimIsPair(V1736) +var reg309103 Obj +if reg309095 == True { +reg309096 := MakeSymbol("prolog?") +reg309097 := PrimHead(V1736) +reg309098 := PrimEqual(reg309096, reg309097) +var reg309101 Obj +if reg309098 == True { +reg309099 := True; +reg309101 = reg309099 +} else { +reg309100 := False; +reg309101 = reg309100 +} +reg309103 = reg309101 +} else { +reg309102 := False; +reg309103 = reg309102 +} +if reg309103 == True { +reg309104 := MakeSymbol("shen.f") +reg309105 := __e.Call(__defun__gensym, reg309104) +F := reg309105 +_ = F +reg309106 := PrimTail(V1736) +reg309107 := __e.Call(__defun__shen_4receive_1terms, reg309106) +Receive := reg309107 +_ = Receive +reg309108 := MakeSymbol("defprolog") +reg309109 := Nil; +reg309110 := PrimCons(F, reg309109) +reg309111 := PrimCons(reg309108, reg309110) +reg309112 := MakeSymbol("<--") +reg309113 := Nil; +reg309114 := PrimCons(reg309112, reg309113) +reg309115 := PrimTail(V1736) +reg309116 := __e.Call(__defun__shen_4pass_1literals, reg309115) +reg309117 := MakeSymbol(";") +reg309118 := Nil; +reg309119 := PrimCons(reg309117, reg309118) +reg309120 := __e.Call(__defun__append, reg309116, reg309119) +reg309121 := __e.Call(__defun__append, reg309114, reg309120) +reg309122 := __e.Call(__defun__append, Receive, reg309121) +reg309123 := __e.Call(__defun__append, reg309111, reg309122) +reg309124 := __e.Call(__defun__eval, reg309123) +PrologDef := reg309124 +_ = PrologDef +reg309125 := MakeSymbol("shen.start-new-prolog-process") +reg309126 := Nil; +reg309127 := PrimCons(reg309125, reg309126) +reg309128 := MakeSymbol("freeze") +reg309129 := True; +reg309130 := Nil; +reg309131 := PrimCons(reg309129, reg309130) +reg309132 := PrimCons(reg309128, reg309131) +reg309133 := Nil; +reg309134 := PrimCons(reg309132, reg309133) +reg309135 := PrimCons(reg309127, reg309134) +reg309136 := __e.Call(__defun__append, Receive, reg309135) +reg309137 := PrimCons(F, reg309136) +Query := reg309137 +_ = Query +__ctx.Return(Query) +return +} else { +__ctx.Return(V1736) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.prolog-macro", value: __defun__shen_4prolog_1macro}) + +__defun__shen_4receive_1terms = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1742 := __args[0] +_ = V1742 +reg309138 := Nil; +reg309139 := PrimEqual(reg309138, V1742) +if reg309139 == True { +reg309140 := Nil; +__ctx.Return(reg309140) +return +} else { +reg309141 := PrimIsPair(V1742) +var reg309175 Obj +if reg309141 == True { +reg309142 := PrimHead(V1742) +reg309143 := PrimIsPair(reg309142) +var reg309170 Obj +if reg309143 == True { +reg309144 := MakeSymbol("receive") +reg309145 := PrimHead(V1742) +reg309146 := PrimHead(reg309145) +reg309147 := PrimEqual(reg309144, reg309146) +var reg309165 Obj +if reg309147 == True { +reg309148 := PrimHead(V1742) +reg309149 := PrimTail(reg309148) +reg309150 := PrimIsPair(reg309149) +var reg309160 Obj +if reg309150 == True { +reg309151 := Nil; +reg309152 := PrimHead(V1742) +reg309153 := PrimTail(reg309152) +reg309154 := PrimTail(reg309153) +reg309155 := PrimEqual(reg309151, reg309154) +var reg309158 Obj +if reg309155 == True { +reg309156 := True; +reg309158 = reg309156 +} else { +reg309157 := False; +reg309158 = reg309157 +} +reg309160 = reg309158 +} else { +reg309159 := False; +reg309160 = reg309159 +} +var reg309163 Obj +if reg309160 == True { +reg309161 := True; +reg309163 = reg309161 +} else { +reg309162 := False; +reg309163 = reg309162 +} +reg309165 = reg309163 +} else { +reg309164 := False; +reg309165 = reg309164 +} +var reg309168 Obj +if reg309165 == True { +reg309166 := True; +reg309168 = reg309166 +} else { +reg309167 := False; +reg309168 = reg309167 +} +reg309170 = reg309168 +} else { +reg309169 := False; +reg309170 = reg309169 +} +var reg309173 Obj +if reg309170 == True { +reg309171 := True; +reg309173 = reg309171 +} else { +reg309172 := False; +reg309173 = reg309172 +} +reg309175 = reg309173 +} else { +reg309174 := False; +reg309175 = reg309174 +} +if reg309175 == True { +reg309176 := PrimHead(V1742) +reg309177 := PrimTail(reg309176) +reg309178 := PrimHead(reg309177) +reg309179 := PrimTail(V1742) +reg309180 := __e.Call(__defun__shen_4receive_1terms, reg309179) +reg309181 := PrimCons(reg309178, reg309180) +__ctx.Return(reg309181) +return +} else { +reg309182 := PrimIsPair(V1742) +if reg309182 == True { +reg309183 := PrimTail(V1742) +__ctx.TailApply(__defun__shen_4receive_1terms, reg309183) +return +} else { +reg309185 := MakeSymbol("shen.receive-terms") +__ctx.TailApply(__defun__shen_4f__error, reg309185) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.receive-terms", value: __defun__shen_4receive_1terms}) + +__defun__shen_4pass_1literals = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1746 := __args[0] +_ = V1746 +reg309187 := Nil; +reg309188 := PrimEqual(reg309187, V1746) +if reg309188 == True { +reg309189 := Nil; +__ctx.Return(reg309189) +return +} else { +reg309190 := PrimIsPair(V1746) +var reg309224 Obj +if reg309190 == True { +reg309191 := PrimHead(V1746) +reg309192 := PrimIsPair(reg309191) +var reg309219 Obj +if reg309192 == True { +reg309193 := MakeSymbol("receive") +reg309194 := PrimHead(V1746) +reg309195 := PrimHead(reg309194) +reg309196 := PrimEqual(reg309193, reg309195) +var reg309214 Obj +if reg309196 == True { +reg309197 := PrimHead(V1746) +reg309198 := PrimTail(reg309197) +reg309199 := PrimIsPair(reg309198) +var reg309209 Obj +if reg309199 == True { +reg309200 := Nil; +reg309201 := PrimHead(V1746) +reg309202 := PrimTail(reg309201) +reg309203 := PrimTail(reg309202) +reg309204 := PrimEqual(reg309200, reg309203) +var reg309207 Obj +if reg309204 == True { +reg309205 := True; +reg309207 = reg309205 +} else { +reg309206 := False; +reg309207 = reg309206 +} +reg309209 = reg309207 +} else { +reg309208 := False; +reg309209 = reg309208 +} +var reg309212 Obj +if reg309209 == True { +reg309210 := True; +reg309212 = reg309210 +} else { +reg309211 := False; +reg309212 = reg309211 +} +reg309214 = reg309212 +} else { +reg309213 := False; +reg309214 = reg309213 +} +var reg309217 Obj +if reg309214 == True { +reg309215 := True; +reg309217 = reg309215 +} else { +reg309216 := False; +reg309217 = reg309216 +} +reg309219 = reg309217 +} else { +reg309218 := False; +reg309219 = reg309218 +} +var reg309222 Obj +if reg309219 == True { +reg309220 := True; +reg309222 = reg309220 +} else { +reg309221 := False; +reg309222 = reg309221 +} +reg309224 = reg309222 +} else { +reg309223 := False; +reg309224 = reg309223 +} +if reg309224 == True { +reg309225 := PrimTail(V1746) +__ctx.TailApply(__defun__shen_4pass_1literals, reg309225) +return +} else { +reg309227 := PrimIsPair(V1746) +if reg309227 == True { +reg309228 := PrimHead(V1746) +reg309229 := PrimTail(V1746) +reg309230 := __e.Call(__defun__shen_4pass_1literals, reg309229) +reg309231 := PrimCons(reg309228, reg309230) +__ctx.Return(reg309231) +return +} else { +reg309232 := MakeSymbol("shen.pass-literals") +__ctx.TailApply(__defun__shen_4f__error, reg309232) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.pass-literals", value: __defun__shen_4pass_1literals}) + +__defun__shen_4defprolog_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1748 := __args[0] +_ = V1748 +reg309234 := PrimIsPair(V1748) +var reg309249 Obj +if reg309234 == True { +reg309235 := MakeSymbol("defprolog") +reg309236 := PrimHead(V1748) +reg309237 := PrimEqual(reg309235, reg309236) +var reg309244 Obj +if reg309237 == True { +reg309238 := PrimTail(V1748) +reg309239 := PrimIsPair(reg309238) +var reg309242 Obj +if reg309239 == True { +reg309240 := True; +reg309242 = reg309240 +} else { +reg309241 := False; +reg309242 = reg309241 +} +reg309244 = reg309242 +} else { +reg309243 := False; +reg309244 = reg309243 +} +var reg309247 Obj +if reg309244 == True { +reg309245 := True; +reg309247 = reg309245 +} else { +reg309246 := False; +reg309247 = reg309246 +} +reg309249 = reg309247 +} else { +reg309248 := False; +reg309249 = reg309248 +} +if reg309249 == True { +reg309250 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Y := __args[0] +_ = Y +__ctx.TailApply(__defun__shen_4_5defprolog_6, Y) +return +}, 1) +reg309252 := PrimTail(V1748) +reg309253 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Y := __args[0] +_ = Y +reg309254 := PrimTail(V1748) +reg309255 := PrimHead(reg309254) +__ctx.TailApply(__defun__shen_4prolog_1error, reg309255, Y) +return +}, 1) +__ctx.TailApply(__defun__compile, reg309250, reg309252, reg309253) +return +} else { +__ctx.Return(V1748) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.defprolog-macro", value: __defun__shen_4defprolog_1macro}) + +__defun__shen_4datatype_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1750 := __args[0] +_ = V1750 +reg309258 := PrimIsPair(V1750) +var reg309273 Obj +if reg309258 == True { +reg309259 := MakeSymbol("datatype") +reg309260 := PrimHead(V1750) +reg309261 := PrimEqual(reg309259, reg309260) +var reg309268 Obj +if reg309261 == True { +reg309262 := PrimTail(V1750) +reg309263 := PrimIsPair(reg309262) +var reg309266 Obj +if reg309263 == True { +reg309264 := True; +reg309266 = reg309264 +} else { +reg309265 := False; +reg309266 = reg309265 +} +reg309268 = reg309266 +} else { +reg309267 := False; +reg309268 = reg309267 +} +var reg309271 Obj +if reg309268 == True { +reg309269 := True; +reg309271 = reg309269 +} else { +reg309270 := False; +reg309271 = reg309270 +} +reg309273 = reg309271 +} else { +reg309272 := False; +reg309273 = reg309272 +} +if reg309273 == True { +reg309274 := MakeSymbol("shen.process-datatype") +reg309275 := PrimTail(V1750) +reg309276 := PrimHead(reg309275) +reg309277 := __e.Call(__defun__shen_4intern_1type, reg309276) +reg309278 := MakeSymbol("compile") +reg309279 := MakeSymbol("lambda") +reg309280 := MakeSymbol("X") +reg309281 := MakeSymbol("shen.") +reg309282 := MakeSymbol("X") +reg309283 := Nil; +reg309284 := PrimCons(reg309282, reg309283) +reg309285 := PrimCons(reg309281, reg309284) +reg309286 := Nil; +reg309287 := PrimCons(reg309285, reg309286) +reg309288 := PrimCons(reg309280, reg309287) +reg309289 := PrimCons(reg309279, reg309288) +reg309290 := PrimTail(V1750) +reg309291 := PrimTail(reg309290) +reg309292 := __e.Call(__defun__shen_4rcons__form, reg309291) +reg309293 := MakeSymbol("function") +reg309294 := MakeSymbol("shen.datatype-error") +reg309295 := Nil; +reg309296 := PrimCons(reg309294, reg309295) +reg309297 := PrimCons(reg309293, reg309296) +reg309298 := Nil; +reg309299 := PrimCons(reg309297, reg309298) +reg309300 := PrimCons(reg309292, reg309299) +reg309301 := PrimCons(reg309289, reg309300) +reg309302 := PrimCons(reg309278, reg309301) +reg309303 := Nil; +reg309304 := PrimCons(reg309302, reg309303) +reg309305 := PrimCons(reg309277, reg309304) +reg309306 := PrimCons(reg309274, reg309305) +__ctx.Return(reg309306) +return +} else { +__ctx.Return(V1750) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.datatype-macro", value: __defun__shen_4datatype_1macro}) + +__defun__shen_4intern_1type = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1752 := __args[0] +_ = V1752 +reg309307 := MakeString("type#") +reg309308 := PrimStr(V1752) +reg309309 := PrimStringConcat(reg309307, reg309308) +reg309310 := PrimIntern(reg309309) +__ctx.Return(reg309310) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.intern-type", value: __defun__shen_4intern_1type}) + +__defun__shen_4_8s_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1754 := __args[0] +_ = V1754 +reg309311 := PrimIsPair(V1754) +var reg309343 Obj +if reg309311 == True { +reg309312 := MakeSymbol("@s") +reg309313 := PrimHead(V1754) +reg309314 := PrimEqual(reg309312, reg309313) +var reg309338 Obj +if reg309314 == True { +reg309315 := PrimTail(V1754) +reg309316 := PrimIsPair(reg309315) +var reg309333 Obj +if reg309316 == True { +reg309317 := PrimTail(V1754) +reg309318 := PrimTail(reg309317) +reg309319 := PrimIsPair(reg309318) +var reg309328 Obj +if reg309319 == True { +reg309320 := PrimTail(V1754) +reg309321 := PrimTail(reg309320) +reg309322 := PrimTail(reg309321) +reg309323 := PrimIsPair(reg309322) +var reg309326 Obj +if reg309323 == True { +reg309324 := True; +reg309326 = reg309324 +} else { +reg309325 := False; +reg309326 = reg309325 +} +reg309328 = reg309326 +} else { +reg309327 := False; +reg309328 = reg309327 +} +var reg309331 Obj +if reg309328 == True { +reg309329 := True; +reg309331 = reg309329 +} else { +reg309330 := False; +reg309331 = reg309330 +} +reg309333 = reg309331 +} else { +reg309332 := False; +reg309333 = reg309332 +} +var reg309336 Obj +if reg309333 == True { +reg309334 := True; +reg309336 = reg309334 +} else { +reg309335 := False; +reg309336 = reg309335 +} +reg309338 = reg309336 +} else { +reg309337 := False; +reg309338 = reg309337 +} +var reg309341 Obj +if reg309338 == True { +reg309339 := True; +reg309341 = reg309339 +} else { +reg309340 := False; +reg309341 = reg309340 +} +reg309343 = reg309341 +} else { +reg309342 := False; +reg309343 = reg309342 +} +if reg309343 == True { +reg309344 := MakeSymbol("@s") +reg309345 := PrimTail(V1754) +reg309346 := PrimHead(reg309345) +reg309347 := MakeSymbol("@s") +reg309348 := PrimTail(V1754) +reg309349 := PrimTail(reg309348) +reg309350 := PrimCons(reg309347, reg309349) +reg309351 := __e.Call(__defun__shen_4_8s_1macro, reg309350) +reg309352 := Nil; +reg309353 := PrimCons(reg309351, reg309352) +reg309354 := PrimCons(reg309346, reg309353) +reg309355 := PrimCons(reg309344, reg309354) +__ctx.Return(reg309355) +return +} else { +reg309356 := PrimIsPair(V1754) +var reg309397 Obj +if reg309356 == True { +reg309357 := MakeSymbol("@s") +reg309358 := PrimHead(V1754) +reg309359 := PrimEqual(reg309357, reg309358) +var reg309392 Obj +if reg309359 == True { +reg309360 := PrimTail(V1754) +reg309361 := PrimIsPair(reg309360) +var reg309387 Obj +if reg309361 == True { +reg309362 := PrimTail(V1754) +reg309363 := PrimTail(reg309362) +reg309364 := PrimIsPair(reg309363) +var reg309382 Obj +if reg309364 == True { +reg309365 := Nil; +reg309366 := PrimTail(V1754) +reg309367 := PrimTail(reg309366) +reg309368 := PrimTail(reg309367) +reg309369 := PrimEqual(reg309365, reg309368) +var reg309377 Obj +if reg309369 == True { +reg309370 := PrimTail(V1754) +reg309371 := PrimHead(reg309370) +reg309372 := PrimIsString(reg309371) +var reg309375 Obj +if reg309372 == True { +reg309373 := True; +reg309375 = reg309373 +} else { +reg309374 := False; +reg309375 = reg309374 +} +reg309377 = reg309375 +} else { +reg309376 := False; +reg309377 = reg309376 +} +var reg309380 Obj +if reg309377 == True { +reg309378 := True; +reg309380 = reg309378 +} else { +reg309379 := False; +reg309380 = reg309379 +} +reg309382 = reg309380 +} else { +reg309381 := False; +reg309382 = reg309381 +} +var reg309385 Obj +if reg309382 == True { +reg309383 := True; +reg309385 = reg309383 +} else { +reg309384 := False; +reg309385 = reg309384 +} +reg309387 = reg309385 +} else { +reg309386 := False; +reg309387 = reg309386 +} +var reg309390 Obj +if reg309387 == True { +reg309388 := True; +reg309390 = reg309388 +} else { +reg309389 := False; +reg309390 = reg309389 +} +reg309392 = reg309390 +} else { +reg309391 := False; +reg309392 = reg309391 +} +var reg309395 Obj +if reg309392 == True { +reg309393 := True; +reg309395 = reg309393 +} else { +reg309394 := False; +reg309395 = reg309394 +} +reg309397 = reg309395 +} else { +reg309396 := False; +reg309397 = reg309396 +} +if reg309397 == True { +reg309398 := PrimTail(V1754) +reg309399 := PrimHead(reg309398) +reg309400 := __e.Call(__defun__explode, reg309399) +E := reg309400 +_ = E +reg309401 := __e.Call(__defun__length, E) +reg309402 := MakeNumber(1) +reg309403 := PrimGreatThan(reg309401, reg309402) +if reg309403 == True { +reg309404 := MakeSymbol("@s") +reg309405 := PrimTail(V1754) +reg309406 := PrimTail(reg309405) +reg309407 := __e.Call(__defun__append, E, reg309406) +reg309408 := PrimCons(reg309404, reg309407) +__ctx.TailApply(__defun__shen_4_8s_1macro, reg309408) +return +} else { +__ctx.Return(V1754) +return +} +} else { +__ctx.Return(V1754) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.@s-macro", value: __defun__shen_4_8s_1macro}) + +__defun__shen_4synonyms_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1756 := __args[0] +_ = V1756 +reg309410 := PrimIsPair(V1756) +var reg309418 Obj +if reg309410 == True { +reg309411 := MakeSymbol("synonyms") +reg309412 := PrimHead(V1756) +reg309413 := PrimEqual(reg309411, reg309412) +var reg309416 Obj +if reg309413 == True { +reg309414 := True; +reg309416 = reg309414 +} else { +reg309415 := False; +reg309416 = reg309415 +} +reg309418 = reg309416 +} else { +reg309417 := False; +reg309418 = reg309417 +} +if reg309418 == True { +reg309419 := MakeSymbol("shen.synonyms-help") +reg309420 := PrimTail(V1756) +reg309421 := __e.Call(__defun__shen_4curry_1synonyms, reg309420) +reg309422 := __e.Call(__defun__shen_4rcons__form, reg309421) +reg309423 := Nil; +reg309424 := PrimCons(reg309422, reg309423) +reg309425 := PrimCons(reg309419, reg309424) +__ctx.Return(reg309425) +return +} else { +__ctx.Return(V1756) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.synonyms-macro", value: __defun__shen_4synonyms_1macro}) + +__defun__shen_4curry_1synonyms = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1758 := __args[0] +_ = V1758 +reg309426 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4curry_1type, X) +return +}, 1) +__ctx.TailApply(__defun__map, reg309426, V1758) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.curry-synonyms", value: __defun__shen_4curry_1synonyms}) + +__defun__shen_4nl_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1760 := __args[0] +_ = V1760 +reg309429 := PrimIsPair(V1760) +var reg309445 Obj +if reg309429 == True { +reg309430 := MakeSymbol("nl") +reg309431 := PrimHead(V1760) +reg309432 := PrimEqual(reg309430, reg309431) +var reg309440 Obj +if reg309432 == True { +reg309433 := Nil; +reg309434 := PrimTail(V1760) +reg309435 := PrimEqual(reg309433, reg309434) +var reg309438 Obj +if reg309435 == True { +reg309436 := True; +reg309438 = reg309436 +} else { +reg309437 := False; +reg309438 = reg309437 +} +reg309440 = reg309438 +} else { +reg309439 := False; +reg309440 = reg309439 +} +var reg309443 Obj +if reg309440 == True { +reg309441 := True; +reg309443 = reg309441 +} else { +reg309442 := False; +reg309443 = reg309442 +} +reg309445 = reg309443 +} else { +reg309444 := False; +reg309445 = reg309444 +} +if reg309445 == True { +reg309446 := MakeSymbol("nl") +reg309447 := MakeNumber(1) +reg309448 := Nil; +reg309449 := PrimCons(reg309447, reg309448) +reg309450 := PrimCons(reg309446, reg309449) +__ctx.Return(reg309450) +return +} else { +__ctx.Return(V1760) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.nl-macro", value: __defun__shen_4nl_1macro}) + +__defun__shen_4assoc_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1762 := __args[0] +_ = V1762 +reg309451 := PrimIsPair(V1762) +var reg309499 Obj +if reg309451 == True { +reg309452 := PrimTail(V1762) +reg309453 := PrimIsPair(reg309452) +var reg309494 Obj +if reg309453 == True { +reg309454 := PrimTail(V1762) +reg309455 := PrimTail(reg309454) +reg309456 := PrimIsPair(reg309455) +var reg309489 Obj +if reg309456 == True { +reg309457 := PrimTail(V1762) +reg309458 := PrimTail(reg309457) +reg309459 := PrimTail(reg309458) +reg309460 := PrimIsPair(reg309459) +var reg309484 Obj +if reg309460 == True { +reg309461 := PrimHead(V1762) +reg309462 := MakeSymbol("@p") +reg309463 := MakeSymbol("@v") +reg309464 := MakeSymbol("append") +reg309465 := MakeSymbol("and") +reg309466 := MakeSymbol("or") +reg309467 := MakeSymbol("+") +reg309468 := MakeSymbol("*") +reg309469 := MakeSymbol("do") +reg309470 := Nil; +reg309471 := PrimCons(reg309469, reg309470) +reg309472 := PrimCons(reg309468, reg309471) +reg309473 := PrimCons(reg309467, reg309472) +reg309474 := PrimCons(reg309466, reg309473) +reg309475 := PrimCons(reg309465, reg309474) +reg309476 := PrimCons(reg309464, reg309475) +reg309477 := PrimCons(reg309463, reg309476) +reg309478 := PrimCons(reg309462, reg309477) +reg309479 := __e.Call(__defun__element_2, reg309461, reg309478) +var reg309482 Obj +if reg309479 == True { +reg309480 := True; +reg309482 = reg309480 +} else { +reg309481 := False; +reg309482 = reg309481 +} +reg309484 = reg309482 +} else { +reg309483 := False; +reg309484 = reg309483 +} +var reg309487 Obj +if reg309484 == True { +reg309485 := True; +reg309487 = reg309485 +} else { +reg309486 := False; +reg309487 = reg309486 +} +reg309489 = reg309487 +} else { +reg309488 := False; +reg309489 = reg309488 +} +var reg309492 Obj +if reg309489 == True { +reg309490 := True; +reg309492 = reg309490 +} else { +reg309491 := False; +reg309492 = reg309491 +} +reg309494 = reg309492 +} else { +reg309493 := False; +reg309494 = reg309493 +} +var reg309497 Obj +if reg309494 == True { +reg309495 := True; +reg309497 = reg309495 +} else { +reg309496 := False; +reg309497 = reg309496 +} +reg309499 = reg309497 +} else { +reg309498 := False; +reg309499 = reg309498 +} +if reg309499 == True { +reg309500 := PrimHead(V1762) +reg309501 := PrimTail(V1762) +reg309502 := PrimHead(reg309501) +reg309503 := PrimHead(V1762) +reg309504 := PrimTail(V1762) +reg309505 := PrimTail(reg309504) +reg309506 := PrimCons(reg309503, reg309505) +reg309507 := __e.Call(__defun__shen_4assoc_1macro, reg309506) +reg309508 := Nil; +reg309509 := PrimCons(reg309507, reg309508) +reg309510 := PrimCons(reg309502, reg309509) +reg309511 := PrimCons(reg309500, reg309510) +__ctx.Return(reg309511) +return +} else { +__ctx.Return(V1762) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.assoc-macro", value: __defun__shen_4assoc_1macro}) + +__defun__shen_4let_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1764 := __args[0] +_ = V1764 +reg309512 := PrimIsPair(V1764) +var reg309554 Obj +if reg309512 == True { +reg309513 := MakeSymbol("let") +reg309514 := PrimHead(V1764) +reg309515 := PrimEqual(reg309513, reg309514) +var reg309549 Obj +if reg309515 == True { +reg309516 := PrimTail(V1764) +reg309517 := PrimIsPair(reg309516) +var reg309544 Obj +if reg309517 == True { +reg309518 := PrimTail(V1764) +reg309519 := PrimTail(reg309518) +reg309520 := PrimIsPair(reg309519) +var reg309539 Obj +if reg309520 == True { +reg309521 := PrimTail(V1764) +reg309522 := PrimTail(reg309521) +reg309523 := PrimTail(reg309522) +reg309524 := PrimIsPair(reg309523) +var reg309534 Obj +if reg309524 == True { +reg309525 := PrimTail(V1764) +reg309526 := PrimTail(reg309525) +reg309527 := PrimTail(reg309526) +reg309528 := PrimTail(reg309527) +reg309529 := PrimIsPair(reg309528) +var reg309532 Obj +if reg309529 == True { +reg309530 := True; +reg309532 = reg309530 +} else { +reg309531 := False; +reg309532 = reg309531 +} +reg309534 = reg309532 +} else { +reg309533 := False; +reg309534 = reg309533 +} +var reg309537 Obj +if reg309534 == True { +reg309535 := True; +reg309537 = reg309535 +} else { +reg309536 := False; +reg309537 = reg309536 +} +reg309539 = reg309537 +} else { +reg309538 := False; +reg309539 = reg309538 +} +var reg309542 Obj +if reg309539 == True { +reg309540 := True; +reg309542 = reg309540 +} else { +reg309541 := False; +reg309542 = reg309541 +} +reg309544 = reg309542 +} else { +reg309543 := False; +reg309544 = reg309543 +} +var reg309547 Obj +if reg309544 == True { +reg309545 := True; +reg309547 = reg309545 +} else { +reg309546 := False; +reg309547 = reg309546 +} +reg309549 = reg309547 +} else { +reg309548 := False; +reg309549 = reg309548 +} +var reg309552 Obj +if reg309549 == True { +reg309550 := True; +reg309552 = reg309550 +} else { +reg309551 := False; +reg309552 = reg309551 +} +reg309554 = reg309552 +} else { +reg309553 := False; +reg309554 = reg309553 +} +if reg309554 == True { +reg309555 := MakeSymbol("let") +reg309556 := PrimTail(V1764) +reg309557 := PrimHead(reg309556) +reg309558 := PrimTail(V1764) +reg309559 := PrimTail(reg309558) +reg309560 := PrimHead(reg309559) +reg309561 := MakeSymbol("let") +reg309562 := PrimTail(V1764) +reg309563 := PrimTail(reg309562) +reg309564 := PrimTail(reg309563) +reg309565 := PrimCons(reg309561, reg309564) +reg309566 := __e.Call(__defun__shen_4let_1macro, reg309565) +reg309567 := Nil; +reg309568 := PrimCons(reg309566, reg309567) +reg309569 := PrimCons(reg309560, reg309568) +reg309570 := PrimCons(reg309557, reg309569) +reg309571 := PrimCons(reg309555, reg309570) +__ctx.Return(reg309571) +return +} else { +__ctx.Return(V1764) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.let-macro", value: __defun__shen_4let_1macro}) + +__defun__shen_4abs_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1766 := __args[0] +_ = V1766 +reg309572 := PrimIsPair(V1766) +var reg309604 Obj +if reg309572 == True { +reg309573 := MakeSymbol("/.") +reg309574 := PrimHead(V1766) +reg309575 := PrimEqual(reg309573, reg309574) +var reg309599 Obj +if reg309575 == True { +reg309576 := PrimTail(V1766) +reg309577 := PrimIsPair(reg309576) +var reg309594 Obj +if reg309577 == True { +reg309578 := PrimTail(V1766) +reg309579 := PrimTail(reg309578) +reg309580 := PrimIsPair(reg309579) +var reg309589 Obj +if reg309580 == True { +reg309581 := PrimTail(V1766) +reg309582 := PrimTail(reg309581) +reg309583 := PrimTail(reg309582) +reg309584 := PrimIsPair(reg309583) +var reg309587 Obj +if reg309584 == True { +reg309585 := True; +reg309587 = reg309585 +} else { +reg309586 := False; +reg309587 = reg309586 +} +reg309589 = reg309587 +} else { +reg309588 := False; +reg309589 = reg309588 +} +var reg309592 Obj +if reg309589 == True { +reg309590 := True; +reg309592 = reg309590 +} else { +reg309591 := False; +reg309592 = reg309591 +} +reg309594 = reg309592 +} else { +reg309593 := False; +reg309594 = reg309593 +} +var reg309597 Obj +if reg309594 == True { +reg309595 := True; +reg309597 = reg309595 +} else { +reg309596 := False; +reg309597 = reg309596 +} +reg309599 = reg309597 +} else { +reg309598 := False; +reg309599 = reg309598 +} +var reg309602 Obj +if reg309599 == True { +reg309600 := True; +reg309602 = reg309600 +} else { +reg309601 := False; +reg309602 = reg309601 +} +reg309604 = reg309602 +} else { +reg309603 := False; +reg309604 = reg309603 +} +if reg309604 == True { +reg309605 := MakeSymbol("lambda") +reg309606 := PrimTail(V1766) +reg309607 := PrimHead(reg309606) +reg309608 := MakeSymbol("/.") +reg309609 := PrimTail(V1766) +reg309610 := PrimTail(reg309609) +reg309611 := PrimCons(reg309608, reg309610) +reg309612 := __e.Call(__defun__shen_4abs_1macro, reg309611) +reg309613 := Nil; +reg309614 := PrimCons(reg309612, reg309613) +reg309615 := PrimCons(reg309607, reg309614) +reg309616 := PrimCons(reg309605, reg309615) +__ctx.Return(reg309616) +return +} else { +reg309617 := PrimIsPair(V1766) +var reg309650 Obj +if reg309617 == True { +reg309618 := MakeSymbol("/.") +reg309619 := PrimHead(V1766) +reg309620 := PrimEqual(reg309618, reg309619) +var reg309645 Obj +if reg309620 == True { +reg309621 := PrimTail(V1766) +reg309622 := PrimIsPair(reg309621) +var reg309640 Obj +if reg309622 == True { +reg309623 := PrimTail(V1766) +reg309624 := PrimTail(reg309623) +reg309625 := PrimIsPair(reg309624) +var reg309635 Obj +if reg309625 == True { +reg309626 := Nil; +reg309627 := PrimTail(V1766) +reg309628 := PrimTail(reg309627) +reg309629 := PrimTail(reg309628) +reg309630 := PrimEqual(reg309626, reg309629) +var reg309633 Obj +if reg309630 == True { +reg309631 := True; +reg309633 = reg309631 +} else { +reg309632 := False; +reg309633 = reg309632 +} +reg309635 = reg309633 +} else { +reg309634 := False; +reg309635 = reg309634 +} +var reg309638 Obj +if reg309635 == True { +reg309636 := True; +reg309638 = reg309636 +} else { +reg309637 := False; +reg309638 = reg309637 +} +reg309640 = reg309638 +} else { +reg309639 := False; +reg309640 = reg309639 +} +var reg309643 Obj +if reg309640 == True { +reg309641 := True; +reg309643 = reg309641 +} else { +reg309642 := False; +reg309643 = reg309642 +} +reg309645 = reg309643 +} else { +reg309644 := False; +reg309645 = reg309644 +} +var reg309648 Obj +if reg309645 == True { +reg309646 := True; +reg309648 = reg309646 +} else { +reg309647 := False; +reg309648 = reg309647 +} +reg309650 = reg309648 +} else { +reg309649 := False; +reg309650 = reg309649 +} +if reg309650 == True { +reg309651 := MakeSymbol("lambda") +reg309652 := PrimTail(V1766) +reg309653 := PrimCons(reg309651, reg309652) +__ctx.Return(reg309653) +return +} else { +__ctx.Return(V1766) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.abs-macro", value: __defun__shen_4abs_1macro}) + +__defun__shen_4cases_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1770 := __args[0] +_ = V1770 +reg309654 := PrimIsPair(V1770) +var reg309686 Obj +if reg309654 == True { +reg309655 := MakeSymbol("cases") +reg309656 := PrimHead(V1770) +reg309657 := PrimEqual(reg309655, reg309656) +var reg309681 Obj +if reg309657 == True { +reg309658 := PrimTail(V1770) +reg309659 := PrimIsPair(reg309658) +var reg309676 Obj +if reg309659 == True { +reg309660 := True; +reg309661 := PrimTail(V1770) +reg309662 := PrimHead(reg309661) +reg309663 := PrimEqual(reg309660, reg309662) +var reg309671 Obj +if reg309663 == True { +reg309664 := PrimTail(V1770) +reg309665 := PrimTail(reg309664) +reg309666 := PrimIsPair(reg309665) +var reg309669 Obj +if reg309666 == True { +reg309667 := True; +reg309669 = reg309667 +} else { +reg309668 := False; +reg309669 = reg309668 +} +reg309671 = reg309669 +} else { +reg309670 := False; +reg309671 = reg309670 +} +var reg309674 Obj +if reg309671 == True { +reg309672 := True; +reg309674 = reg309672 +} else { +reg309673 := False; +reg309674 = reg309673 +} +reg309676 = reg309674 +} else { +reg309675 := False; +reg309676 = reg309675 +} +var reg309679 Obj +if reg309676 == True { +reg309677 := True; +reg309679 = reg309677 +} else { +reg309678 := False; +reg309679 = reg309678 +} +reg309681 = reg309679 +} else { +reg309680 := False; +reg309681 = reg309680 +} +var reg309684 Obj +if reg309681 == True { +reg309682 := True; +reg309684 = reg309682 +} else { +reg309683 := False; +reg309684 = reg309683 +} +reg309686 = reg309684 +} else { +reg309685 := False; +reg309686 = reg309685 +} +if reg309686 == True { +reg309687 := PrimTail(V1770) +reg309688 := PrimTail(reg309687) +reg309689 := PrimHead(reg309688) +__ctx.Return(reg309689) +return +} else { +reg309690 := PrimIsPair(V1770) +var reg309723 Obj +if reg309690 == True { +reg309691 := MakeSymbol("cases") +reg309692 := PrimHead(V1770) +reg309693 := PrimEqual(reg309691, reg309692) +var reg309718 Obj +if reg309693 == True { +reg309694 := PrimTail(V1770) +reg309695 := PrimIsPair(reg309694) +var reg309713 Obj +if reg309695 == True { +reg309696 := PrimTail(V1770) +reg309697 := PrimTail(reg309696) +reg309698 := PrimIsPair(reg309697) +var reg309708 Obj +if reg309698 == True { +reg309699 := Nil; +reg309700 := PrimTail(V1770) +reg309701 := PrimTail(reg309700) +reg309702 := PrimTail(reg309701) +reg309703 := PrimEqual(reg309699, reg309702) +var reg309706 Obj +if reg309703 == True { +reg309704 := True; +reg309706 = reg309704 +} else { +reg309705 := False; +reg309706 = reg309705 +} +reg309708 = reg309706 +} else { +reg309707 := False; +reg309708 = reg309707 +} +var reg309711 Obj +if reg309708 == True { +reg309709 := True; +reg309711 = reg309709 +} else { +reg309710 := False; +reg309711 = reg309710 +} +reg309713 = reg309711 +} else { +reg309712 := False; +reg309713 = reg309712 +} +var reg309716 Obj +if reg309713 == True { +reg309714 := True; +reg309716 = reg309714 +} else { +reg309715 := False; +reg309716 = reg309715 +} +reg309718 = reg309716 +} else { +reg309717 := False; +reg309718 = reg309717 +} +var reg309721 Obj +if reg309718 == True { +reg309719 := True; +reg309721 = reg309719 +} else { +reg309720 := False; +reg309721 = reg309720 +} +reg309723 = reg309721 +} else { +reg309722 := False; +reg309723 = reg309722 +} +if reg309723 == True { +reg309724 := MakeSymbol("if") +reg309725 := PrimTail(V1770) +reg309726 := PrimHead(reg309725) +reg309727 := PrimTail(V1770) +reg309728 := PrimTail(reg309727) +reg309729 := PrimHead(reg309728) +reg309730 := MakeSymbol("simple-error") +reg309731 := MakeString("error: cases exhausted") +reg309732 := Nil; +reg309733 := PrimCons(reg309731, reg309732) +reg309734 := PrimCons(reg309730, reg309733) +reg309735 := Nil; +reg309736 := PrimCons(reg309734, reg309735) +reg309737 := PrimCons(reg309729, reg309736) +reg309738 := PrimCons(reg309726, reg309737) +reg309739 := PrimCons(reg309724, reg309738) +__ctx.Return(reg309739) +return +} else { +reg309740 := PrimIsPair(V1770) +var reg309763 Obj +if reg309740 == True { +reg309741 := MakeSymbol("cases") +reg309742 := PrimHead(V1770) +reg309743 := PrimEqual(reg309741, reg309742) +var reg309758 Obj +if reg309743 == True { +reg309744 := PrimTail(V1770) +reg309745 := PrimIsPair(reg309744) +var reg309753 Obj +if reg309745 == True { +reg309746 := PrimTail(V1770) +reg309747 := PrimTail(reg309746) +reg309748 := PrimIsPair(reg309747) +var reg309751 Obj +if reg309748 == True { +reg309749 := True; +reg309751 = reg309749 +} else { +reg309750 := False; +reg309751 = reg309750 +} +reg309753 = reg309751 +} else { +reg309752 := False; +reg309753 = reg309752 +} +var reg309756 Obj +if reg309753 == True { +reg309754 := True; +reg309756 = reg309754 +} else { +reg309755 := False; +reg309756 = reg309755 +} +reg309758 = reg309756 +} else { +reg309757 := False; +reg309758 = reg309757 +} +var reg309761 Obj +if reg309758 == True { +reg309759 := True; +reg309761 = reg309759 +} else { +reg309760 := False; +reg309761 = reg309760 +} +reg309763 = reg309761 +} else { +reg309762 := False; +reg309763 = reg309762 +} +if reg309763 == True { +reg309764 := MakeSymbol("if") +reg309765 := PrimTail(V1770) +reg309766 := PrimHead(reg309765) +reg309767 := PrimTail(V1770) +reg309768 := PrimTail(reg309767) +reg309769 := PrimHead(reg309768) +reg309770 := MakeSymbol("cases") +reg309771 := PrimTail(V1770) +reg309772 := PrimTail(reg309771) +reg309773 := PrimTail(reg309772) +reg309774 := PrimCons(reg309770, reg309773) +reg309775 := __e.Call(__defun__shen_4cases_1macro, reg309774) +reg309776 := Nil; +reg309777 := PrimCons(reg309775, reg309776) +reg309778 := PrimCons(reg309769, reg309777) +reg309779 := PrimCons(reg309766, reg309778) +reg309780 := PrimCons(reg309764, reg309779) +__ctx.Return(reg309780) +return +} else { +reg309781 := PrimIsPair(V1770) +var reg309805 Obj +if reg309781 == True { +reg309782 := MakeSymbol("cases") +reg309783 := PrimHead(V1770) +reg309784 := PrimEqual(reg309782, reg309783) +var reg309800 Obj +if reg309784 == True { +reg309785 := PrimTail(V1770) +reg309786 := PrimIsPair(reg309785) +var reg309795 Obj +if reg309786 == True { +reg309787 := Nil; +reg309788 := PrimTail(V1770) +reg309789 := PrimTail(reg309788) +reg309790 := PrimEqual(reg309787, reg309789) +var reg309793 Obj +if reg309790 == True { +reg309791 := True; +reg309793 = reg309791 +} else { +reg309792 := False; +reg309793 = reg309792 +} +reg309795 = reg309793 +} else { +reg309794 := False; +reg309795 = reg309794 +} +var reg309798 Obj +if reg309795 == True { +reg309796 := True; +reg309798 = reg309796 +} else { +reg309797 := False; +reg309798 = reg309797 +} +reg309800 = reg309798 +} else { +reg309799 := False; +reg309800 = reg309799 +} +var reg309803 Obj +if reg309800 == True { +reg309801 := True; +reg309803 = reg309801 +} else { +reg309802 := False; +reg309803 = reg309802 +} +reg309805 = reg309803 +} else { +reg309804 := False; +reg309805 = reg309804 +} +if reg309805 == True { +reg309806 := MakeString("error: odd number of case elements\n") +reg309807 := PrimSimpleError(reg309806) +__ctx.Return(reg309807) +return +} else { +__ctx.Return(V1770) +return +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.cases-macro", value: __defun__shen_4cases_1macro}) + +__defun__shen_4timer_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1772 := __args[0] +_ = V1772 +reg309808 := PrimIsPair(V1772) +var reg309832 Obj +if reg309808 == True { +reg309809 := MakeSymbol("time") +reg309810 := PrimHead(V1772) +reg309811 := PrimEqual(reg309809, reg309810) +var reg309827 Obj +if reg309811 == True { +reg309812 := PrimTail(V1772) +reg309813 := PrimIsPair(reg309812) +var reg309822 Obj +if reg309813 == True { +reg309814 := Nil; +reg309815 := PrimTail(V1772) +reg309816 := PrimTail(reg309815) +reg309817 := PrimEqual(reg309814, reg309816) +var reg309820 Obj +if reg309817 == True { +reg309818 := True; +reg309820 = reg309818 +} else { +reg309819 := False; +reg309820 = reg309819 +} +reg309822 = reg309820 +} else { +reg309821 := False; +reg309822 = reg309821 +} +var reg309825 Obj +if reg309822 == True { +reg309823 := True; +reg309825 = reg309823 +} else { +reg309824 := False; +reg309825 = reg309824 +} +reg309827 = reg309825 +} else { +reg309826 := False; +reg309827 = reg309826 +} +var reg309830 Obj +if reg309827 == True { +reg309828 := True; +reg309830 = reg309828 +} else { +reg309829 := False; +reg309830 = reg309829 +} +reg309832 = reg309830 +} else { +reg309831 := False; +reg309832 = reg309831 +} +if reg309832 == True { +reg309833 := MakeSymbol("let") +reg309834 := MakeSymbol("Start") +reg309835 := MakeSymbol("get-time") +reg309836 := MakeSymbol("run") +reg309837 := Nil; +reg309838 := PrimCons(reg309836, reg309837) +reg309839 := PrimCons(reg309835, reg309838) +reg309840 := MakeSymbol("Result") +reg309841 := PrimTail(V1772) +reg309842 := PrimHead(reg309841) +reg309843 := MakeSymbol("Finish") +reg309844 := MakeSymbol("get-time") +reg309845 := MakeSymbol("run") +reg309846 := Nil; +reg309847 := PrimCons(reg309845, reg309846) +reg309848 := PrimCons(reg309844, reg309847) +reg309849 := MakeSymbol("Time") +reg309850 := MakeSymbol("-") +reg309851 := MakeSymbol("Finish") +reg309852 := MakeSymbol("Start") +reg309853 := Nil; +reg309854 := PrimCons(reg309852, reg309853) +reg309855 := PrimCons(reg309851, reg309854) +reg309856 := PrimCons(reg309850, reg309855) +reg309857 := MakeSymbol("Message") +reg309858 := MakeSymbol("shen.prhush") +reg309859 := MakeSymbol("cn") +reg309860 := MakeString("\nrun time: ") +reg309861 := MakeSymbol("cn") +reg309862 := MakeSymbol("str") +reg309863 := MakeSymbol("Time") +reg309864 := Nil; +reg309865 := PrimCons(reg309863, reg309864) +reg309866 := PrimCons(reg309862, reg309865) +reg309867 := MakeString(" secs\n") +reg309868 := Nil; +reg309869 := PrimCons(reg309867, reg309868) +reg309870 := PrimCons(reg309866, reg309869) +reg309871 := PrimCons(reg309861, reg309870) +reg309872 := Nil; +reg309873 := PrimCons(reg309871, reg309872) +reg309874 := PrimCons(reg309860, reg309873) +reg309875 := PrimCons(reg309859, reg309874) +reg309876 := MakeSymbol("stoutput") +reg309877 := Nil; +reg309878 := PrimCons(reg309876, reg309877) +reg309879 := Nil; +reg309880 := PrimCons(reg309878, reg309879) +reg309881 := PrimCons(reg309875, reg309880) +reg309882 := PrimCons(reg309858, reg309881) +reg309883 := MakeSymbol("Result") +reg309884 := Nil; +reg309885 := PrimCons(reg309883, reg309884) +reg309886 := PrimCons(reg309882, reg309885) +reg309887 := PrimCons(reg309857, reg309886) +reg309888 := PrimCons(reg309856, reg309887) +reg309889 := PrimCons(reg309849, reg309888) +reg309890 := PrimCons(reg309848, reg309889) +reg309891 := PrimCons(reg309843, reg309890) +reg309892 := PrimCons(reg309842, reg309891) +reg309893 := PrimCons(reg309840, reg309892) +reg309894 := PrimCons(reg309839, reg309893) +reg309895 := PrimCons(reg309834, reg309894) +reg309896 := PrimCons(reg309833, reg309895) +__ctx.TailApply(__defun__shen_4let_1macro, reg309896) +return +} else { +__ctx.Return(V1772) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.timer-macro", value: __defun__shen_4timer_1macro}) + +__defun__shen_4tuple_1up = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1774 := __args[0] +_ = V1774 +reg309898 := PrimIsPair(V1774) +if reg309898 == True { +reg309899 := MakeSymbol("@p") +reg309900 := PrimHead(V1774) +reg309901 := PrimTail(V1774) +reg309902 := __e.Call(__defun__shen_4tuple_1up, reg309901) +reg309903 := Nil; +reg309904 := PrimCons(reg309902, reg309903) +reg309905 := PrimCons(reg309900, reg309904) +reg309906 := PrimCons(reg309899, reg309905) +__ctx.Return(reg309906) +return +} else { +__ctx.Return(V1774) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.tuple-up", value: __defun__shen_4tuple_1up}) + +__defun__shen_4put_cget_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1776 := __args[0] +_ = V1776 +reg309907 := PrimIsPair(V1776) +var reg309950 Obj +if reg309907 == True { +reg309908 := MakeSymbol("put") +reg309909 := PrimHead(V1776) +reg309910 := PrimEqual(reg309908, reg309909) +var reg309945 Obj +if reg309910 == True { +reg309911 := PrimTail(V1776) +reg309912 := PrimIsPair(reg309911) +var reg309940 Obj +if reg309912 == True { +reg309913 := PrimTail(V1776) +reg309914 := PrimTail(reg309913) +reg309915 := PrimIsPair(reg309914) +var reg309935 Obj +if reg309915 == True { +reg309916 := PrimTail(V1776) +reg309917 := PrimTail(reg309916) +reg309918 := PrimTail(reg309917) +reg309919 := PrimIsPair(reg309918) +var reg309930 Obj +if reg309919 == True { +reg309920 := Nil; +reg309921 := PrimTail(V1776) +reg309922 := PrimTail(reg309921) +reg309923 := PrimTail(reg309922) +reg309924 := PrimTail(reg309923) +reg309925 := PrimEqual(reg309920, reg309924) +var reg309928 Obj +if reg309925 == True { +reg309926 := True; +reg309928 = reg309926 +} else { +reg309927 := False; +reg309928 = reg309927 +} +reg309930 = reg309928 +} else { +reg309929 := False; +reg309930 = reg309929 +} +var reg309933 Obj +if reg309930 == True { +reg309931 := True; +reg309933 = reg309931 +} else { +reg309932 := False; +reg309933 = reg309932 +} +reg309935 = reg309933 +} else { +reg309934 := False; +reg309935 = reg309934 +} +var reg309938 Obj +if reg309935 == True { +reg309936 := True; +reg309938 = reg309936 +} else { +reg309937 := False; +reg309938 = reg309937 +} +reg309940 = reg309938 +} else { +reg309939 := False; +reg309940 = reg309939 +} +var reg309943 Obj +if reg309940 == True { +reg309941 := True; +reg309943 = reg309941 +} else { +reg309942 := False; +reg309943 = reg309942 +} +reg309945 = reg309943 +} else { +reg309944 := False; +reg309945 = reg309944 +} +var reg309948 Obj +if reg309945 == True { +reg309946 := True; +reg309948 = reg309946 +} else { +reg309947 := False; +reg309948 = reg309947 +} +reg309950 = reg309948 +} else { +reg309949 := False; +reg309950 = reg309949 +} +if reg309950 == True { +reg309951 := MakeSymbol("put") +reg309952 := PrimTail(V1776) +reg309953 := PrimHead(reg309952) +reg309954 := PrimTail(V1776) +reg309955 := PrimTail(reg309954) +reg309956 := PrimHead(reg309955) +reg309957 := PrimTail(V1776) +reg309958 := PrimTail(reg309957) +reg309959 := PrimTail(reg309958) +reg309960 := PrimHead(reg309959) +reg309961 := MakeSymbol("value") +reg309962 := MakeSymbol("*property-vector*") +reg309963 := Nil; +reg309964 := PrimCons(reg309962, reg309963) +reg309965 := PrimCons(reg309961, reg309964) +reg309966 := Nil; +reg309967 := PrimCons(reg309965, reg309966) +reg309968 := PrimCons(reg309960, reg309967) +reg309969 := PrimCons(reg309956, reg309968) +reg309970 := PrimCons(reg309953, reg309969) +reg309971 := PrimCons(reg309951, reg309970) +__ctx.Return(reg309971) +return +} else { +reg309972 := PrimIsPair(V1776) +var reg310005 Obj +if reg309972 == True { +reg309973 := MakeSymbol("get") +reg309974 := PrimHead(V1776) +reg309975 := PrimEqual(reg309973, reg309974) +var reg310000 Obj +if reg309975 == True { +reg309976 := PrimTail(V1776) +reg309977 := PrimIsPair(reg309976) +var reg309995 Obj +if reg309977 == True { +reg309978 := PrimTail(V1776) +reg309979 := PrimTail(reg309978) +reg309980 := PrimIsPair(reg309979) +var reg309990 Obj +if reg309980 == True { +reg309981 := Nil; +reg309982 := PrimTail(V1776) +reg309983 := PrimTail(reg309982) +reg309984 := PrimTail(reg309983) +reg309985 := PrimEqual(reg309981, reg309984) +var reg309988 Obj +if reg309985 == True { +reg309986 := True; +reg309988 = reg309986 +} else { +reg309987 := False; +reg309988 = reg309987 +} +reg309990 = reg309988 +} else { +reg309989 := False; +reg309990 = reg309989 +} +var reg309993 Obj +if reg309990 == True { +reg309991 := True; +reg309993 = reg309991 +} else { +reg309992 := False; +reg309993 = reg309992 +} +reg309995 = reg309993 +} else { +reg309994 := False; +reg309995 = reg309994 +} +var reg309998 Obj +if reg309995 == True { +reg309996 := True; +reg309998 = reg309996 +} else { +reg309997 := False; +reg309998 = reg309997 +} +reg310000 = reg309998 +} else { +reg309999 := False; +reg310000 = reg309999 +} +var reg310003 Obj +if reg310000 == True { +reg310001 := True; +reg310003 = reg310001 +} else { +reg310002 := False; +reg310003 = reg310002 +} +reg310005 = reg310003 +} else { +reg310004 := False; +reg310005 = reg310004 +} +if reg310005 == True { +reg310006 := MakeSymbol("get") +reg310007 := PrimTail(V1776) +reg310008 := PrimHead(reg310007) +reg310009 := PrimTail(V1776) +reg310010 := PrimTail(reg310009) +reg310011 := PrimHead(reg310010) +reg310012 := MakeSymbol("value") +reg310013 := MakeSymbol("*property-vector*") +reg310014 := Nil; +reg310015 := PrimCons(reg310013, reg310014) +reg310016 := PrimCons(reg310012, reg310015) +reg310017 := Nil; +reg310018 := PrimCons(reg310016, reg310017) +reg310019 := PrimCons(reg310011, reg310018) +reg310020 := PrimCons(reg310008, reg310019) +reg310021 := PrimCons(reg310006, reg310020) +__ctx.Return(reg310021) +return +} else { +reg310022 := PrimIsPair(V1776) +var reg310055 Obj +if reg310022 == True { +reg310023 := MakeSymbol("unput") +reg310024 := PrimHead(V1776) +reg310025 := PrimEqual(reg310023, reg310024) +var reg310050 Obj +if reg310025 == True { +reg310026 := PrimTail(V1776) +reg310027 := PrimIsPair(reg310026) +var reg310045 Obj +if reg310027 == True { +reg310028 := PrimTail(V1776) +reg310029 := PrimTail(reg310028) +reg310030 := PrimIsPair(reg310029) +var reg310040 Obj +if reg310030 == True { +reg310031 := Nil; +reg310032 := PrimTail(V1776) +reg310033 := PrimTail(reg310032) +reg310034 := PrimTail(reg310033) +reg310035 := PrimEqual(reg310031, reg310034) +var reg310038 Obj +if reg310035 == True { +reg310036 := True; +reg310038 = reg310036 +} else { +reg310037 := False; +reg310038 = reg310037 +} +reg310040 = reg310038 +} else { +reg310039 := False; +reg310040 = reg310039 +} +var reg310043 Obj +if reg310040 == True { +reg310041 := True; +reg310043 = reg310041 +} else { +reg310042 := False; +reg310043 = reg310042 +} +reg310045 = reg310043 +} else { +reg310044 := False; +reg310045 = reg310044 +} +var reg310048 Obj +if reg310045 == True { +reg310046 := True; +reg310048 = reg310046 +} else { +reg310047 := False; +reg310048 = reg310047 +} +reg310050 = reg310048 +} else { +reg310049 := False; +reg310050 = reg310049 +} +var reg310053 Obj +if reg310050 == True { +reg310051 := True; +reg310053 = reg310051 +} else { +reg310052 := False; +reg310053 = reg310052 +} +reg310055 = reg310053 +} else { +reg310054 := False; +reg310055 = reg310054 +} +if reg310055 == True { +reg310056 := MakeSymbol("unput") +reg310057 := PrimTail(V1776) +reg310058 := PrimHead(reg310057) +reg310059 := PrimTail(V1776) +reg310060 := PrimTail(reg310059) +reg310061 := PrimHead(reg310060) +reg310062 := MakeSymbol("value") +reg310063 := MakeSymbol("*property-vector*") +reg310064 := Nil; +reg310065 := PrimCons(reg310063, reg310064) +reg310066 := PrimCons(reg310062, reg310065) +reg310067 := Nil; +reg310068 := PrimCons(reg310066, reg310067) +reg310069 := PrimCons(reg310061, reg310068) +reg310070 := PrimCons(reg310058, reg310069) +reg310071 := PrimCons(reg310056, reg310070) +__ctx.Return(reg310071) +return +} else { +__ctx.Return(V1776) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.put/get-macro", value: __defun__shen_4put_cget_1macro}) + +__defun__shen_4function_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1778 := __args[0] +_ = V1778 +reg310072 := PrimIsPair(V1778) +var reg310096 Obj +if reg310072 == True { +reg310073 := MakeSymbol("function") +reg310074 := PrimHead(V1778) +reg310075 := PrimEqual(reg310073, reg310074) +var reg310091 Obj +if reg310075 == True { +reg310076 := PrimTail(V1778) +reg310077 := PrimIsPair(reg310076) +var reg310086 Obj +if reg310077 == True { +reg310078 := Nil; +reg310079 := PrimTail(V1778) +reg310080 := PrimTail(reg310079) +reg310081 := PrimEqual(reg310078, reg310080) +var reg310084 Obj +if reg310081 == True { +reg310082 := True; +reg310084 = reg310082 +} else { +reg310083 := False; +reg310084 = reg310083 +} +reg310086 = reg310084 +} else { +reg310085 := False; +reg310086 = reg310085 +} +var reg310089 Obj +if reg310086 == True { +reg310087 := True; +reg310089 = reg310087 +} else { +reg310088 := False; +reg310089 = reg310088 +} +reg310091 = reg310089 +} else { +reg310090 := False; +reg310091 = reg310090 +} +var reg310094 Obj +if reg310091 == True { +reg310092 := True; +reg310094 = reg310092 +} else { +reg310093 := False; +reg310094 = reg310093 +} +reg310096 = reg310094 +} else { +reg310095 := False; +reg310096 = reg310095 +} +if reg310096 == True { +reg310097 := PrimTail(V1778) +reg310098 := PrimHead(reg310097) +reg310099 := PrimTail(V1778) +reg310100 := PrimHead(reg310099) +reg310101 := __e.Call(__defun__arity, reg310100) +__ctx.TailApply(__defun__shen_4function_1abstraction, reg310098, reg310101) +return +} else { +__ctx.Return(V1778) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.function-macro", value: __defun__shen_4function_1macro}) + +__defun__shen_4function_1abstraction = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1781 := __args[0] +_ = V1781 +V1782 := __args[1] +_ = V1782 +reg310103 := MakeNumber(0) +reg310104 := PrimEqual(reg310103, V1782) +if reg310104 == True { +reg310105 := MakeString(" has no lambda form\n") +reg310106 := MakeSymbol("shen.a") +reg310107 := __e.Call(__defun__shen_4app, V1781, reg310105, reg310106) +reg310108 := PrimSimpleError(reg310107) +__ctx.Return(reg310108) +return +} else { +reg310109 := MakeNumber(-1) +reg310110 := PrimEqual(reg310109, V1782) +if reg310110 == True { +reg310111 := MakeSymbol("function") +reg310112 := Nil; +reg310113 := PrimCons(V1781, reg310112) +reg310114 := PrimCons(reg310111, reg310113) +__ctx.Return(reg310114) +return +} else { +reg310115 := Nil; +__ctx.TailApply(__defun__shen_4function_1abstraction_1help, V1781, V1782, reg310115) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.function-abstraction", value: __defun__shen_4function_1abstraction}) + +__defun__shen_4function_1abstraction_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1786 := __args[0] +_ = V1786 +V1787 := __args[1] +_ = V1787 +V1788 := __args[2] +_ = V1788 +reg310117 := MakeNumber(0) +reg310118 := PrimEqual(reg310117, V1787) +if reg310118 == True { +reg310119 := PrimCons(V1786, V1788) +__ctx.Return(reg310119) +return +} else { +reg310120 := MakeSymbol("V") +reg310121 := __e.Call(__defun__gensym, reg310120) +X := reg310121 +_ = X +reg310122 := MakeSymbol("/.") +reg310123 := MakeNumber(1) +reg310124 := PrimNumberSubtract(V1787, reg310123) +reg310125 := Nil; +reg310126 := PrimCons(X, reg310125) +reg310127 := __e.Call(__defun__append, V1788, reg310126) +reg310128 := __e.Call(__defun__shen_4function_1abstraction_1help, V1786, reg310124, reg310127) +reg310129 := Nil; +reg310130 := PrimCons(reg310128, reg310129) +reg310131 := PrimCons(X, reg310130) +reg310132 := PrimCons(reg310122, reg310131) +__ctx.Return(reg310132) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.function-abstraction-help", value: __defun__shen_4function_1abstraction_1help}) + +__defun__undefmacro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1790 := __args[0] +_ = V1790 +reg310133 := MakeSymbol("shen.*macroreg*") +reg310134 := PrimValue(reg310133) +MacroReg := reg310134 +_ = MacroReg +reg310135 := __e.Call(__defun__shen_4findpos, V1790, MacroReg) +Pos := reg310135 +_ = Pos +reg310136 := MakeSymbol("shen.*macroreg*") +reg310137 := __e.Call(__defun__remove, V1790, MacroReg) +reg310138 := PrimSet(reg310136, reg310137) +Remove1 := reg310138 +_ = Remove1 +reg310139 := MakeSymbol("*macros*") +reg310140 := MakeSymbol("*macros*") +reg310141 := PrimValue(reg310140) +reg310142 := __e.Call(__defun__shen_4remove_1nth, Pos, reg310141) +reg310143 := PrimSet(reg310139, reg310142) +Remove2 := reg310143 +_ = Remove2 +__ctx.Return(V1790) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "undefmacro", value: __defun__undefmacro}) + +__defun__shen_4findpos = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1800 := __args[0] +_ = V1800 +V1801 := __args[1] +_ = V1801 +reg310144 := Nil; +reg310145 := PrimEqual(reg310144, V1801) +if reg310145 == True { +reg310146 := MakeString(" is not a macro\n") +reg310147 := MakeSymbol("shen.a") +reg310148 := __e.Call(__defun__shen_4app, V1800, reg310146, reg310147) +reg310149 := PrimSimpleError(reg310148) +__ctx.Return(reg310149) +return +} else { +reg310150 := PrimIsPair(V1801) +var reg310157 Obj +if reg310150 == True { +reg310151 := PrimHead(V1801) +reg310152 := PrimEqual(reg310151, V1800) +var reg310155 Obj +if reg310152 == True { +reg310153 := True; +reg310155 = reg310153 +} else { +reg310154 := False; +reg310155 = reg310154 +} +reg310157 = reg310155 +} else { +reg310156 := False; +reg310157 = reg310156 +} +if reg310157 == True { +reg310158 := MakeNumber(1) +__ctx.Return(reg310158) +return +} else { +reg310159 := PrimIsPair(V1801) +if reg310159 == True { +reg310160 := MakeNumber(1) +reg310161 := PrimTail(V1801) +reg310162 := __e.Call(__defun__shen_4findpos, V1800, reg310161) +reg310163 := PrimNumberAdd(reg310160, reg310162) +__ctx.Return(reg310163) +return +} else { +reg310164 := MakeSymbol("shen.findpos") +__ctx.TailApply(__defun__shen_4f__error, reg310164) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.findpos", value: __defun__shen_4findpos}) + +__defun__shen_4remove_1nth = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1806 := __args[0] +_ = V1806 +V1807 := __args[1] +_ = V1807 +reg310166 := MakeNumber(1) +reg310167 := PrimEqual(reg310166, V1806) +var reg310173 Obj +if reg310167 == True { +reg310168 := PrimIsPair(V1807) +var reg310171 Obj +if reg310168 == True { +reg310169 := True; +reg310171 = reg310169 +} else { +reg310170 := False; +reg310171 = reg310170 +} +reg310173 = reg310171 +} else { +reg310172 := False; +reg310173 = reg310172 +} +if reg310173 == True { +reg310174 := PrimTail(V1807) +__ctx.Return(reg310174) +return +} else { +reg310175 := PrimIsPair(V1807) +if reg310175 == True { +reg310176 := PrimHead(V1807) +reg310177 := MakeNumber(1) +reg310178 := PrimNumberSubtract(V1806, reg310177) +reg310179 := PrimTail(V1807) +reg310180 := __e.Call(__defun__shen_4remove_1nth, reg310178, reg310179) +reg310181 := PrimCons(reg310176, reg310180) +__ctx.Return(reg310181) +return +} else { +reg310182 := MakeSymbol("shen.remove-nth") +__ctx.TailApply(__defun__shen_4f__error, reg310182) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.remove-nth", value: __defun__shen_4remove_1nth}) + +} diff --git a/cmd/shen/main.go b/cmd/shen/main.go index 3d9aa20..26f41cc 100644 --- a/cmd/shen/main.go +++ b/cmd/shen/main.go @@ -2,24 +2,16 @@ package main import ( "flag" - "fmt" - "io" "net/http" _ "net/http/pprof" - "os" - "path" - "github.com/tiancaiamao/shen-go/runtime" + "github.com/tiancaiamao/shen-go/kl" ) var pprof bool -var boot string -var kl bool func init() { - flag.BoolVar(&kl, "kl", false, "run kl") flag.BoolVar(&pprof, "pprof", false, "enable pprof") - flag.StringVar(&boot, "boot", "", "use bootstrap file for testing") } func main() { @@ -28,72 +20,10 @@ func main() { if pprof { go http.ListenAndServe(":8080", nil) } - runtime.Boot = boot - runtime.RegistNativeCall("primitive.load-file", 1, loadFile) - m := runtime.NewVM() + e := kl.NewEvaluator() + Regist(e) - if kl { - runtime.BootstrapMin() - r := runtime.NewSexpReader(os.Stdin) - for i := 0; ; i++ { - fmt.Printf("%d #> ", i) - sexp, err := r.Read() - if err != nil { - fmt.Println("read error:", err) - break - } - - // var a vm.Assember - // a.FromSexp(sexp) - // code := a.Comiple() - // res := m.Eval(code) - // fmt.Println(kl.ObjString(res)) - - res := m.Eval(sexp) - fmt.Println(runtime.ObjString(res)) - } - } else { - runtime.BootstrapShen() - res := m.Eval(runtime.Cons(runtime.MakeSymbol("shen.shen"), runtime.Nil)) - fmt.Println(runtime.ObjString(res)) - } + e.Eval(kl.Cons(kl.MakeSymbol("shen.shen"), kl.Nil)) return } - -func loadFile(args ...runtime.Obj) runtime.Obj { - file := runtime.GetString(args[0]) - var filePath string - if _, err := os.Stat(file); err == nil { - filePath = file - } else { - filePath = path.Join(runtime.PackagePath(), file) - if _, err := os.Stat(filePath); err != nil { - return runtime.MakeError(err.Error()) - } - } - - f, err := os.Open(filePath) - if err != nil { - return runtime.MakeError(err.Error()) - } - defer f.Close() - - r := runtime.NewSexpReader(f) - for { - exp, err := r.Read() - if err != nil { - if err != io.EOF { - return runtime.MakeError(err.Error()) - } - break - } - - res := runtime.Eval(exp) - - if runtime.IsError(res) { - return res - } - } - return args[0] -} diff --git a/cmd/shen/prolog.go b/cmd/shen/prolog.go new file mode 100644 index 0000000..3b70ff3 --- /dev/null +++ b/cmd/shen/prolog.go @@ -0,0 +1,10803 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__shen_4_5defprolog_6 Obj // shen. +var __defun__shen_4prolog_1error Obj // shen.prolog-error +var __defun__shen_4next_150 Obj // shen.next-50 +var __defun__shen_4decons_1string Obj // shen.decons-string +var __defun__shen_4insert_1predicate Obj // shen.insert-predicate +var __defun__shen_4_5predicate_d_6 Obj // shen. +var __defun__shen_4_5clauses_d_6 Obj // shen. +var __defun__shen_4_5clause_d_6 Obj // shen. +var __defun__shen_4_5head_d_6 Obj // shen. +var __defun__shen_4_5term_d_6 Obj // shen. +var __defun__shen_4legitimate_1term_2 Obj // shen.legitimate-term? +var __defun__shen_4eval_1cons Obj // shen.eval-cons +var __defun__shen_4_5body_d_6 Obj // shen. +var __defun__shen_4_5literal_d_6 Obj // shen. +var __defun__shen_4_5end_d_6 Obj // shen. +var __defun__cut Obj // cut +var __defun__shen_4insert__modes Obj // shen.insert_modes +var __defun__shen_4s_1prolog Obj // shen.s-prolog +var __defun__shen_4prolog_1_6shen Obj // shen.prolog->shen +var __defun__shen_4s_1prolog__clause Obj // shen.s-prolog_clause +var __defun__shen_4head__abstraction Obj // shen.head_abstraction +var __defun__shen_4complexity__head Obj // shen.complexity_head +var __defun__shen_4safe_1multiply Obj // shen.safe-multiply +var __defun__shen_4complexity Obj // shen.complexity +var __defun__shen_4safe_1product Obj // shen.safe-product +var __defun__shen_4s_1prolog__literal Obj // shen.s-prolog_literal +var __defun__shen_4insert__deref Obj // shen.insert_deref +var __defun__shen_4insert__lazyderef Obj // shen.insert_lazyderef +var __defun__shen_4group__clauses Obj // shen.group_clauses +var __defun__shen_4collect Obj // shen.collect +var __defun__shen_4same__predicate_2 Obj // shen.same_predicate? +var __defun__shen_4compile__prolog__procedure Obj // shen.compile_prolog_procedure +var __defun__shen_4procedure__name Obj // shen.procedure_name +var __defun__shen_4clauses_1to_1shen Obj // shen.clauses-to-shen +var __defun__shen_4catch_1cut Obj // shen.catch-cut +var __defun__shen_4catchpoint Obj // shen.catchpoint +var __defun__shen_4cutpoint Obj // shen.cutpoint +var __defun__shen_4nest_1disjunct Obj // shen.nest-disjunct +var __defun__shen_4lisp_1or Obj // shen.lisp-or +var __defun__shen_4prolog_1aritycheck Obj // shen.prolog-aritycheck +var __defun__shen_4linearise_1clause Obj // shen.linearise-clause +var __defun__shen_4clause__form Obj // shen.clause_form +var __defun__shen_4explicit__modes Obj // shen.explicit_modes +var __defun__shen_4em__help Obj // shen.em_help +var __defun__shen_4cf__help Obj // shen.cf_help +var __defun__occurs_1check Obj // occurs-check +var __defun__shen_4aum Obj // shen.aum +var __defun__shen_4continuation__call Obj // shen.continuation_call +var __defun__remove Obj // remove +var __defun__shen_4remove_1h Obj // shen.remove-h +var __defun__shen_4cc__help Obj // shen.cc_help +var __defun__shen_4make__mu__application Obj // shen.make_mu_application +var __defun__shen_4mu__reduction Obj // shen.mu_reduction +var __defun__shen_4rcons__form Obj // shen.rcons_form +var __defun__shen_4remove__modes Obj // shen.remove_modes +var __defun__shen_4ephemeral__variable_2 Obj // shen.ephemeral_variable? +var __defun__shen_4prolog__constant_2 Obj // shen.prolog_constant? +var __defun__shen_4aum__to__shen Obj // shen.aum_to_shen +var __defun__shen_4chwild Obj // shen.chwild +var __defun__shen_4newpv Obj // shen.newpv +var __defun__shen_4resizeprocessvector Obj // shen.resizeprocessvector +var __defun__shen_4resize_1vector Obj // shen.resize-vector +var __defun__shen_4copy_1vector Obj // shen.copy-vector +var __defun__shen_4copy_1vector_1stage_11 Obj // shen.copy-vector-stage-1 +var __defun__shen_4copy_1vector_1stage_12 Obj // shen.copy-vector-stage-2 +var __defun__shen_4mk_1pvar Obj // shen.mk-pvar +var __defun__shen_4pvar_2 Obj // shen.pvar? +var __defun__shen_4bindv Obj // shen.bindv +var __defun__shen_4unbindv Obj // shen.unbindv +var __defun__shen_4incinfs Obj // shen.incinfs +var __defun__shen_4call__the__continuation Obj // shen.call_the_continuation +var __defun__shen_4newcontinuation Obj // shen.newcontinuation +var __defun__return Obj // return +var __defun__shen_4measure_ereturn Obj // shen.measure&return +var __defun__unify Obj // unify +var __defun__shen_4lzy_a Obj // shen.lzy= +var __defun__shen_4deref Obj // shen.deref +var __defun__shen_4lazyderef Obj // shen.lazyderef +var __defun__shen_4valvector Obj // shen.valvector +var __defun__unify_b Obj // unify! +var __defun__shen_4lzy_a_b Obj // shen.lzy=! +var __defun__shen_4occurs_2 Obj // shen.occurs? +var __defun__identical Obj // identical +var __defun__shen_4lzy_a_a Obj // shen.lzy== +var __defun__shen_4pvar Obj // shen.pvar +var __defun__bind Obj // bind +var __defun__fwhen Obj // fwhen +var __defun__call Obj // call +var __defun__shen_4call_1help Obj // shen.call-help +var __defun__shen_4intprolog Obj // shen.intprolog +var __defun__shen_4intprolog_1help Obj // shen.intprolog-help +var __defun__shen_4intprolog_1help_1help Obj // shen.intprolog-help-help +var __defun__shen_4call_1rest Obj // shen.call-rest +var __defun__shen_4start_1new_1prolog_1process Obj // shen.start-new-prolog-process +var __defun__shen_4insert_1prolog_1variables Obj // shen.insert-prolog-variables +var __defun__shen_4insert_1prolog_1variables_1help Obj // shen.insert-prolog-variables-help +var __defun__shen_4initialise_1prolog Obj // shen.initialise-prolog + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg302180 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg302180) +return +}, 0)) +__defun__shen_4_5defprolog_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1809 := __args[0] +_ = V1809 +reg302181 := __e.Call(__defun__shen_4_5predicate_d_6, V1809) +Parse__shen_4_5predicate_d_6 := reg302181 +_ = Parse__shen_4_5predicate_d_6 +reg302182 := __e.Call(__defun__fail) +reg302183 := PrimEqual(reg302182, Parse__shen_4_5predicate_d_6) +reg302184 := PrimNot(reg302183) +if reg302184 == True { +reg302185 := __e.Call(__defun__shen_4_5clauses_d_6, Parse__shen_4_5predicate_d_6) +Parse__shen_4_5clauses_d_6 := reg302185 +_ = Parse__shen_4_5clauses_d_6 +reg302186 := __e.Call(__defun__fail) +reg302187 := PrimEqual(reg302186, Parse__shen_4_5clauses_d_6) +reg302188 := PrimNot(reg302187) +if reg302188 == True { +reg302189 := PrimHead(Parse__shen_4_5clauses_d_6) +reg302190 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Parse__X := __args[0] +_ = Parse__X +reg302191 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5predicate_d_6) +__ctx.TailApply(__defun__shen_4insert_1predicate, reg302191, Parse__X) +return +}, 1) +reg302193 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5clauses_d_6) +reg302194 := __e.Call(__defun__map, reg302190, reg302193) +reg302195 := __e.Call(__defun__shen_4prolog_1_6shen, reg302194) +reg302196 := PrimHead(reg302195) +__ctx.TailApply(__defun__shen_4pair, reg302189, reg302196) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5defprolog_6}) + +__defun__shen_4prolog_1error = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1818 := __args[0] +_ = V1818 +V1819 := __args[1] +_ = V1819 +reg302200 := PrimIsPair(V1819) +var reg302216 Obj +if reg302200 == True { +reg302201 := PrimTail(V1819) +reg302202 := PrimIsPair(reg302201) +var reg302211 Obj +if reg302202 == True { +reg302203 := Nil; +reg302204 := PrimTail(V1819) +reg302205 := PrimTail(reg302204) +reg302206 := PrimEqual(reg302203, reg302205) +var reg302209 Obj +if reg302206 == True { +reg302207 := True; +reg302209 = reg302207 +} else { +reg302208 := False; +reg302209 = reg302208 +} +reg302211 = reg302209 +} else { +reg302210 := False; +reg302211 = reg302210 +} +var reg302214 Obj +if reg302211 == True { +reg302212 := True; +reg302214 = reg302212 +} else { +reg302213 := False; +reg302214 = reg302213 +} +reg302216 = reg302214 +} else { +reg302215 := False; +reg302216 = reg302215 +} +if reg302216 == True { +reg302217 := MakeString("prolog syntax error in ") +reg302218 := MakeString(" here:\n\n ") +reg302219 := MakeNumber(50) +reg302220 := PrimHead(V1819) +reg302221 := __e.Call(__defun__shen_4next_150, reg302219, reg302220) +reg302222 := MakeString("\n") +reg302223 := MakeSymbol("shen.a") +reg302224 := __e.Call(__defun__shen_4app, reg302221, reg302222, reg302223) +reg302225 := PrimStringConcat(reg302218, reg302224) +reg302226 := MakeSymbol("shen.a") +reg302227 := __e.Call(__defun__shen_4app, V1818, reg302225, reg302226) +reg302228 := PrimStringConcat(reg302217, reg302227) +reg302229 := PrimSimpleError(reg302228) +__ctx.Return(reg302229) +return +} else { +reg302230 := MakeString("prolog syntax error in ") +reg302231 := MakeString("\n") +reg302232 := MakeSymbol("shen.a") +reg302233 := __e.Call(__defun__shen_4app, V1818, reg302231, reg302232) +reg302234 := PrimStringConcat(reg302230, reg302233) +reg302235 := PrimSimpleError(reg302234) +__ctx.Return(reg302235) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.prolog-error", value: __defun__shen_4prolog_1error}) + +__defun__shen_4next_150 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1826 := __args[0] +_ = V1826 +V1827 := __args[1] +_ = V1827 +reg302236 := Nil; +reg302237 := PrimEqual(reg302236, V1827) +if reg302237 == True { +reg302238 := MakeString("") +__ctx.Return(reg302238) +return +} else { +reg302239 := MakeNumber(0) +reg302240 := PrimEqual(reg302239, V1826) +if reg302240 == True { +reg302241 := MakeString("") +__ctx.Return(reg302241) +return +} else { +reg302242 := PrimIsPair(V1827) +if reg302242 == True { +reg302243 := PrimHead(V1827) +reg302244 := __e.Call(__defun__shen_4decons_1string, reg302243) +reg302245 := MakeNumber(1) +reg302246 := PrimNumberSubtract(V1826, reg302245) +reg302247 := PrimTail(V1827) +reg302248 := __e.Call(__defun__shen_4next_150, reg302246, reg302247) +reg302249 := PrimStringConcat(reg302244, reg302248) +__ctx.Return(reg302249) +return +} else { +reg302250 := MakeSymbol("shen.next-50") +__ctx.TailApply(__defun__shen_4f__error, reg302250) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.next-50", value: __defun__shen_4next_150}) + +__defun__shen_4decons_1string = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1829 := __args[0] +_ = V1829 +reg302252 := PrimIsPair(V1829) +var reg302285 Obj +if reg302252 == True { +reg302253 := MakeSymbol("cons") +reg302254 := PrimHead(V1829) +reg302255 := PrimEqual(reg302253, reg302254) +var reg302280 Obj +if reg302255 == True { +reg302256 := PrimTail(V1829) +reg302257 := PrimIsPair(reg302256) +var reg302275 Obj +if reg302257 == True { +reg302258 := PrimTail(V1829) +reg302259 := PrimTail(reg302258) +reg302260 := PrimIsPair(reg302259) +var reg302270 Obj +if reg302260 == True { +reg302261 := Nil; +reg302262 := PrimTail(V1829) +reg302263 := PrimTail(reg302262) +reg302264 := PrimTail(reg302263) +reg302265 := PrimEqual(reg302261, reg302264) +var reg302268 Obj +if reg302265 == True { +reg302266 := True; +reg302268 = reg302266 +} else { +reg302267 := False; +reg302268 = reg302267 +} +reg302270 = reg302268 +} else { +reg302269 := False; +reg302270 = reg302269 +} +var reg302273 Obj +if reg302270 == True { +reg302271 := True; +reg302273 = reg302271 +} else { +reg302272 := False; +reg302273 = reg302272 +} +reg302275 = reg302273 +} else { +reg302274 := False; +reg302275 = reg302274 +} +var reg302278 Obj +if reg302275 == True { +reg302276 := True; +reg302278 = reg302276 +} else { +reg302277 := False; +reg302278 = reg302277 +} +reg302280 = reg302278 +} else { +reg302279 := False; +reg302280 = reg302279 +} +var reg302283 Obj +if reg302280 == True { +reg302281 := True; +reg302283 = reg302281 +} else { +reg302282 := False; +reg302283 = reg302282 +} +reg302285 = reg302283 +} else { +reg302284 := False; +reg302285 = reg302284 +} +if reg302285 == True { +reg302286 := __e.Call(__defun__shen_4eval_1cons, V1829) +reg302287 := MakeString(" ") +reg302288 := MakeSymbol("shen.s") +__ctx.TailApply(__defun__shen_4app, reg302286, reg302287, reg302288) +return +} else { +reg302290 := MakeString(" ") +reg302291 := MakeSymbol("shen.r") +__ctx.TailApply(__defun__shen_4app, V1829, reg302290, reg302291) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.decons-string", value: __defun__shen_4decons_1string}) + +__defun__shen_4insert_1predicate = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1832 := __args[0] +_ = V1832 +V1833 := __args[1] +_ = V1833 +reg302293 := PrimIsPair(V1833) +var reg302309 Obj +if reg302293 == True { +reg302294 := PrimTail(V1833) +reg302295 := PrimIsPair(reg302294) +var reg302304 Obj +if reg302295 == True { +reg302296 := Nil; +reg302297 := PrimTail(V1833) +reg302298 := PrimTail(reg302297) +reg302299 := PrimEqual(reg302296, reg302298) +var reg302302 Obj +if reg302299 == True { +reg302300 := True; +reg302302 = reg302300 +} else { +reg302301 := False; +reg302302 = reg302301 +} +reg302304 = reg302302 +} else { +reg302303 := False; +reg302304 = reg302303 +} +var reg302307 Obj +if reg302304 == True { +reg302305 := True; +reg302307 = reg302305 +} else { +reg302306 := False; +reg302307 = reg302306 +} +reg302309 = reg302307 +} else { +reg302308 := False; +reg302309 = reg302308 +} +if reg302309 == True { +reg302310 := PrimHead(V1833) +reg302311 := PrimCons(V1832, reg302310) +reg302312 := MakeSymbol(":-") +reg302313 := PrimTail(V1833) +reg302314 := PrimCons(reg302312, reg302313) +reg302315 := PrimCons(reg302311, reg302314) +__ctx.Return(reg302315) +return +} else { +reg302316 := MakeSymbol("shen.insert-predicate") +__ctx.TailApply(__defun__shen_4f__error, reg302316) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.insert-predicate", value: __defun__shen_4insert_1predicate}) + +__defun__shen_4_5predicate_d_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1835 := __args[0] +_ = V1835 +reg302318 := PrimHead(V1835) +reg302319 := PrimIsPair(reg302318) +if reg302319 == True { +reg302320 := PrimHead(V1835) +reg302321 := PrimHead(reg302320) +Parse__X := reg302321 +_ = Parse__X +reg302322 := PrimHead(V1835) +reg302323 := PrimTail(reg302322) +reg302324 := __e.Call(__defun__shen_4hdtl, V1835) +reg302325 := __e.Call(__defun__shen_4pair, reg302323, reg302324) +reg302326 := PrimHead(reg302325) +__ctx.TailApply(__defun__shen_4pair, reg302326, Parse__X) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5predicate_d_6}) + +__defun__shen_4_5clauses_d_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1837 := __args[0] +_ = V1837 +reg302329 := __e.Call(__defun__shen_4_5clause_d_6, V1837) +Parse__shen_4_5clause_d_6 := reg302329 +_ = Parse__shen_4_5clause_d_6 +reg302330 := __e.Call(__defun__fail) +reg302331 := PrimEqual(reg302330, Parse__shen_4_5clause_d_6) +reg302332 := PrimNot(reg302331) +var reg302345 Obj +if reg302332 == True { +reg302333 := __e.Call(__defun__shen_4_5clauses_d_6, Parse__shen_4_5clause_d_6) +Parse__shen_4_5clauses_d_6 := reg302333 +_ = Parse__shen_4_5clauses_d_6 +reg302334 := __e.Call(__defun__fail) +reg302335 := PrimEqual(reg302334, Parse__shen_4_5clauses_d_6) +reg302336 := PrimNot(reg302335) +var reg302343 Obj +if reg302336 == True { +reg302337 := PrimHead(Parse__shen_4_5clauses_d_6) +reg302338 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5clause_d_6) +reg302339 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5clauses_d_6) +reg302340 := PrimCons(reg302338, reg302339) +reg302341 := __e.Call(__defun__shen_4pair, reg302337, reg302340) +reg302343 = reg302341 +} else { +reg302342 := __e.Call(__defun__fail) +reg302343 = reg302342 +} +reg302345 = reg302343 +} else { +reg302344 := __e.Call(__defun__fail) +reg302345 = reg302344 +} +YaccParse := reg302345 +_ = YaccParse +reg302346 := __e.Call(__defun__fail) +reg302347 := PrimEqual(YaccParse, reg302346) +if reg302347 == True { +reg302348 := __e.Call(__defun___5e_6, V1837) +Parse___5e_6 := reg302348 +_ = Parse___5e_6 +reg302349 := __e.Call(__defun__fail) +reg302350 := PrimEqual(reg302349, Parse___5e_6) +reg302351 := PrimNot(reg302350) +if reg302351 == True { +reg302352 := PrimHead(Parse___5e_6) +reg302353 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg302352, reg302353) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5clauses_d_6}) + +__defun__shen_4_5clause_d_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1839 := __args[0] +_ = V1839 +reg302356 := __e.Call(__defun__shen_4_5head_d_6, V1839) +Parse__shen_4_5head_d_6 := reg302356 +_ = Parse__shen_4_5head_d_6 +reg302357 := __e.Call(__defun__fail) +reg302358 := PrimEqual(reg302357, Parse__shen_4_5head_d_6) +reg302359 := PrimNot(reg302358) +if reg302359 == True { +reg302360 := PrimHead(Parse__shen_4_5head_d_6) +reg302361 := PrimIsPair(reg302360) +var reg302370 Obj +if reg302361 == True { +reg302362 := MakeSymbol("<--") +reg302363 := PrimHead(Parse__shen_4_5head_d_6) +reg302364 := PrimHead(reg302363) +reg302365 := PrimEqual(reg302362, reg302364) +var reg302368 Obj +if reg302365 == True { +reg302366 := True; +reg302368 = reg302366 +} else { +reg302367 := False; +reg302368 = reg302367 +} +reg302370 = reg302368 +} else { +reg302369 := False; +reg302370 = reg302369 +} +if reg302370 == True { +reg302371 := PrimHead(Parse__shen_4_5head_d_6) +reg302372 := PrimTail(reg302371) +reg302373 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5head_d_6) +reg302374 := __e.Call(__defun__shen_4pair, reg302372, reg302373) +reg302375 := __e.Call(__defun__shen_4_5body_d_6, reg302374) +Parse__shen_4_5body_d_6 := reg302375 +_ = Parse__shen_4_5body_d_6 +reg302376 := __e.Call(__defun__fail) +reg302377 := PrimEqual(reg302376, Parse__shen_4_5body_d_6) +reg302378 := PrimNot(reg302377) +if reg302378 == True { +reg302379 := __e.Call(__defun__shen_4_5end_d_6, Parse__shen_4_5body_d_6) +Parse__shen_4_5end_d_6 := reg302379 +_ = Parse__shen_4_5end_d_6 +reg302380 := __e.Call(__defun__fail) +reg302381 := PrimEqual(reg302380, Parse__shen_4_5end_d_6) +reg302382 := PrimNot(reg302381) +if reg302382 == True { +reg302383 := PrimHead(Parse__shen_4_5end_d_6) +reg302384 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5head_d_6) +reg302385 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5body_d_6) +reg302386 := Nil; +reg302387 := PrimCons(reg302385, reg302386) +reg302388 := PrimCons(reg302384, reg302387) +__ctx.TailApply(__defun__shen_4pair, reg302383, reg302388) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5clause_d_6}) + +__defun__shen_4_5head_d_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1841 := __args[0] +_ = V1841 +reg302394 := __e.Call(__defun__shen_4_5term_d_6, V1841) +Parse__shen_4_5term_d_6 := reg302394 +_ = Parse__shen_4_5term_d_6 +reg302395 := __e.Call(__defun__fail) +reg302396 := PrimEqual(reg302395, Parse__shen_4_5term_d_6) +reg302397 := PrimNot(reg302396) +var reg302410 Obj +if reg302397 == True { +reg302398 := __e.Call(__defun__shen_4_5head_d_6, Parse__shen_4_5term_d_6) +Parse__shen_4_5head_d_6 := reg302398 +_ = Parse__shen_4_5head_d_6 +reg302399 := __e.Call(__defun__fail) +reg302400 := PrimEqual(reg302399, Parse__shen_4_5head_d_6) +reg302401 := PrimNot(reg302400) +var reg302408 Obj +if reg302401 == True { +reg302402 := PrimHead(Parse__shen_4_5head_d_6) +reg302403 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5term_d_6) +reg302404 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5head_d_6) +reg302405 := PrimCons(reg302403, reg302404) +reg302406 := __e.Call(__defun__shen_4pair, reg302402, reg302405) +reg302408 = reg302406 +} else { +reg302407 := __e.Call(__defun__fail) +reg302408 = reg302407 +} +reg302410 = reg302408 +} else { +reg302409 := __e.Call(__defun__fail) +reg302410 = reg302409 +} +YaccParse := reg302410 +_ = YaccParse +reg302411 := __e.Call(__defun__fail) +reg302412 := PrimEqual(YaccParse, reg302411) +if reg302412 == True { +reg302413 := __e.Call(__defun___5e_6, V1841) +Parse___5e_6 := reg302413 +_ = Parse___5e_6 +reg302414 := __e.Call(__defun__fail) +reg302415 := PrimEqual(reg302414, Parse___5e_6) +reg302416 := PrimNot(reg302415) +if reg302416 == True { +reg302417 := PrimHead(Parse___5e_6) +reg302418 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg302417, reg302418) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5head_d_6}) + +__defun__shen_4_5term_d_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1843 := __args[0] +_ = V1843 +reg302421 := PrimHead(V1843) +reg302422 := PrimIsPair(reg302421) +if reg302422 == True { +reg302423 := PrimHead(V1843) +reg302424 := PrimHead(reg302423) +Parse__X := reg302424 +_ = Parse__X +reg302425 := MakeSymbol("<--") +reg302426 := PrimEqual(reg302425, Parse__X) +reg302427 := PrimNot(reg302426) +var reg302433 Obj +if reg302427 == True { +reg302428 := __e.Call(__defun__shen_4legitimate_1term_2, Parse__X) +var reg302431 Obj +if reg302428 == True { +reg302429 := True; +reg302431 = reg302429 +} else { +reg302430 := False; +reg302431 = reg302430 +} +reg302433 = reg302431 +} else { +reg302432 := False; +reg302433 = reg302432 +} +if reg302433 == True { +reg302434 := PrimHead(V1843) +reg302435 := PrimTail(reg302434) +reg302436 := __e.Call(__defun__shen_4hdtl, V1843) +reg302437 := __e.Call(__defun__shen_4pair, reg302435, reg302436) +reg302438 := PrimHead(reg302437) +reg302439 := __e.Call(__defun__shen_4eval_1cons, Parse__X) +__ctx.TailApply(__defun__shen_4pair, reg302438, reg302439) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5term_d_6}) + +__defun__shen_4legitimate_1term_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1849 := __args[0] +_ = V1849 +reg302443 := PrimIsPair(V1849) +var reg302476 Obj +if reg302443 == True { +reg302444 := MakeSymbol("cons") +reg302445 := PrimHead(V1849) +reg302446 := PrimEqual(reg302444, reg302445) +var reg302471 Obj +if reg302446 == True { +reg302447 := PrimTail(V1849) +reg302448 := PrimIsPair(reg302447) +var reg302466 Obj +if reg302448 == True { +reg302449 := PrimTail(V1849) +reg302450 := PrimTail(reg302449) +reg302451 := PrimIsPair(reg302450) +var reg302461 Obj +if reg302451 == True { +reg302452 := Nil; +reg302453 := PrimTail(V1849) +reg302454 := PrimTail(reg302453) +reg302455 := PrimTail(reg302454) +reg302456 := PrimEqual(reg302452, reg302455) +var reg302459 Obj +if reg302456 == True { +reg302457 := True; +reg302459 = reg302457 +} else { +reg302458 := False; +reg302459 = reg302458 +} +reg302461 = reg302459 +} else { +reg302460 := False; +reg302461 = reg302460 +} +var reg302464 Obj +if reg302461 == True { +reg302462 := True; +reg302464 = reg302462 +} else { +reg302463 := False; +reg302464 = reg302463 +} +reg302466 = reg302464 +} else { +reg302465 := False; +reg302466 = reg302465 +} +var reg302469 Obj +if reg302466 == True { +reg302467 := True; +reg302469 = reg302467 +} else { +reg302468 := False; +reg302469 = reg302468 +} +reg302471 = reg302469 +} else { +reg302470 := False; +reg302471 = reg302470 +} +var reg302474 Obj +if reg302471 == True { +reg302472 := True; +reg302474 = reg302472 +} else { +reg302473 := False; +reg302474 = reg302473 +} +reg302476 = reg302474 +} else { +reg302475 := False; +reg302476 = reg302475 +} +if reg302476 == True { +reg302477 := PrimTail(V1849) +reg302478 := PrimHead(reg302477) +reg302479 := __e.Call(__defun__shen_4legitimate_1term_2, reg302478) +if reg302479 == True { +reg302480 := PrimTail(V1849) +reg302481 := PrimTail(reg302480) +reg302482 := PrimHead(reg302481) +reg302483 := __e.Call(__defun__shen_4legitimate_1term_2, reg302482) +if reg302483 == True { +reg302484 := True; +__ctx.Return(reg302484) +return +} else { +reg302485 := False; +__ctx.Return(reg302485) +return +} +} else { +reg302486 := False; +__ctx.Return(reg302486) +return +} +} else { +reg302487 := PrimIsPair(V1849) +var reg302530 Obj +if reg302487 == True { +reg302488 := MakeSymbol("mode") +reg302489 := PrimHead(V1849) +reg302490 := PrimEqual(reg302488, reg302489) +var reg302525 Obj +if reg302490 == True { +reg302491 := PrimTail(V1849) +reg302492 := PrimIsPair(reg302491) +var reg302520 Obj +if reg302492 == True { +reg302493 := PrimTail(V1849) +reg302494 := PrimTail(reg302493) +reg302495 := PrimIsPair(reg302494) +var reg302515 Obj +if reg302495 == True { +reg302496 := MakeSymbol("+") +reg302497 := PrimTail(V1849) +reg302498 := PrimTail(reg302497) +reg302499 := PrimHead(reg302498) +reg302500 := PrimEqual(reg302496, reg302499) +var reg302510 Obj +if reg302500 == True { +reg302501 := Nil; +reg302502 := PrimTail(V1849) +reg302503 := PrimTail(reg302502) +reg302504 := PrimTail(reg302503) +reg302505 := PrimEqual(reg302501, reg302504) +var reg302508 Obj +if reg302505 == True { +reg302506 := True; +reg302508 = reg302506 +} else { +reg302507 := False; +reg302508 = reg302507 +} +reg302510 = reg302508 +} else { +reg302509 := False; +reg302510 = reg302509 +} +var reg302513 Obj +if reg302510 == True { +reg302511 := True; +reg302513 = reg302511 +} else { +reg302512 := False; +reg302513 = reg302512 +} +reg302515 = reg302513 +} else { +reg302514 := False; +reg302515 = reg302514 +} +var reg302518 Obj +if reg302515 == True { +reg302516 := True; +reg302518 = reg302516 +} else { +reg302517 := False; +reg302518 = reg302517 +} +reg302520 = reg302518 +} else { +reg302519 := False; +reg302520 = reg302519 +} +var reg302523 Obj +if reg302520 == True { +reg302521 := True; +reg302523 = reg302521 +} else { +reg302522 := False; +reg302523 = reg302522 +} +reg302525 = reg302523 +} else { +reg302524 := False; +reg302525 = reg302524 +} +var reg302528 Obj +if reg302525 == True { +reg302526 := True; +reg302528 = reg302526 +} else { +reg302527 := False; +reg302528 = reg302527 +} +reg302530 = reg302528 +} else { +reg302529 := False; +reg302530 = reg302529 +} +if reg302530 == True { +reg302531 := PrimTail(V1849) +reg302532 := PrimHead(reg302531) +__ctx.TailApply(__defun__shen_4legitimate_1term_2, reg302532) +return +} else { +reg302534 := PrimIsPair(V1849) +var reg302577 Obj +if reg302534 == True { +reg302535 := MakeSymbol("mode") +reg302536 := PrimHead(V1849) +reg302537 := PrimEqual(reg302535, reg302536) +var reg302572 Obj +if reg302537 == True { +reg302538 := PrimTail(V1849) +reg302539 := PrimIsPair(reg302538) +var reg302567 Obj +if reg302539 == True { +reg302540 := PrimTail(V1849) +reg302541 := PrimTail(reg302540) +reg302542 := PrimIsPair(reg302541) +var reg302562 Obj +if reg302542 == True { +reg302543 := MakeSymbol("-") +reg302544 := PrimTail(V1849) +reg302545 := PrimTail(reg302544) +reg302546 := PrimHead(reg302545) +reg302547 := PrimEqual(reg302543, reg302546) +var reg302557 Obj +if reg302547 == True { +reg302548 := Nil; +reg302549 := PrimTail(V1849) +reg302550 := PrimTail(reg302549) +reg302551 := PrimTail(reg302550) +reg302552 := PrimEqual(reg302548, reg302551) +var reg302555 Obj +if reg302552 == True { +reg302553 := True; +reg302555 = reg302553 +} else { +reg302554 := False; +reg302555 = reg302554 +} +reg302557 = reg302555 +} else { +reg302556 := False; +reg302557 = reg302556 +} +var reg302560 Obj +if reg302557 == True { +reg302558 := True; +reg302560 = reg302558 +} else { +reg302559 := False; +reg302560 = reg302559 +} +reg302562 = reg302560 +} else { +reg302561 := False; +reg302562 = reg302561 +} +var reg302565 Obj +if reg302562 == True { +reg302563 := True; +reg302565 = reg302563 +} else { +reg302564 := False; +reg302565 = reg302564 +} +reg302567 = reg302565 +} else { +reg302566 := False; +reg302567 = reg302566 +} +var reg302570 Obj +if reg302567 == True { +reg302568 := True; +reg302570 = reg302568 +} else { +reg302569 := False; +reg302570 = reg302569 +} +reg302572 = reg302570 +} else { +reg302571 := False; +reg302572 = reg302571 +} +var reg302575 Obj +if reg302572 == True { +reg302573 := True; +reg302575 = reg302573 +} else { +reg302574 := False; +reg302575 = reg302574 +} +reg302577 = reg302575 +} else { +reg302576 := False; +reg302577 = reg302576 +} +if reg302577 == True { +reg302578 := PrimTail(V1849) +reg302579 := PrimHead(reg302578) +__ctx.TailApply(__defun__shen_4legitimate_1term_2, reg302579) +return +} else { +reg302581 := PrimIsPair(V1849) +if reg302581 == True { +reg302582 := False; +__ctx.Return(reg302582) +return +} else { +reg302583 := True; +__ctx.Return(reg302583) +return +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.legitimate-term?", value: __defun__shen_4legitimate_1term_2}) + +__defun__shen_4eval_1cons = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1851 := __args[0] +_ = V1851 +reg302584 := PrimIsPair(V1851) +var reg302617 Obj +if reg302584 == True { +reg302585 := MakeSymbol("cons") +reg302586 := PrimHead(V1851) +reg302587 := PrimEqual(reg302585, reg302586) +var reg302612 Obj +if reg302587 == True { +reg302588 := PrimTail(V1851) +reg302589 := PrimIsPair(reg302588) +var reg302607 Obj +if reg302589 == True { +reg302590 := PrimTail(V1851) +reg302591 := PrimTail(reg302590) +reg302592 := PrimIsPair(reg302591) +var reg302602 Obj +if reg302592 == True { +reg302593 := Nil; +reg302594 := PrimTail(V1851) +reg302595 := PrimTail(reg302594) +reg302596 := PrimTail(reg302595) +reg302597 := PrimEqual(reg302593, reg302596) +var reg302600 Obj +if reg302597 == True { +reg302598 := True; +reg302600 = reg302598 +} else { +reg302599 := False; +reg302600 = reg302599 +} +reg302602 = reg302600 +} else { +reg302601 := False; +reg302602 = reg302601 +} +var reg302605 Obj +if reg302602 == True { +reg302603 := True; +reg302605 = reg302603 +} else { +reg302604 := False; +reg302605 = reg302604 +} +reg302607 = reg302605 +} else { +reg302606 := False; +reg302607 = reg302606 +} +var reg302610 Obj +if reg302607 == True { +reg302608 := True; +reg302610 = reg302608 +} else { +reg302609 := False; +reg302610 = reg302609 +} +reg302612 = reg302610 +} else { +reg302611 := False; +reg302612 = reg302611 +} +var reg302615 Obj +if reg302612 == True { +reg302613 := True; +reg302615 = reg302613 +} else { +reg302614 := False; +reg302615 = reg302614 +} +reg302617 = reg302615 +} else { +reg302616 := False; +reg302617 = reg302616 +} +if reg302617 == True { +reg302618 := PrimTail(V1851) +reg302619 := PrimHead(reg302618) +reg302620 := __e.Call(__defun__shen_4eval_1cons, reg302619) +reg302621 := PrimTail(V1851) +reg302622 := PrimTail(reg302621) +reg302623 := PrimHead(reg302622) +reg302624 := __e.Call(__defun__shen_4eval_1cons, reg302623) +reg302625 := PrimCons(reg302620, reg302624) +__ctx.Return(reg302625) +return +} else { +reg302626 := PrimIsPair(V1851) +var reg302659 Obj +if reg302626 == True { +reg302627 := MakeSymbol("mode") +reg302628 := PrimHead(V1851) +reg302629 := PrimEqual(reg302627, reg302628) +var reg302654 Obj +if reg302629 == True { +reg302630 := PrimTail(V1851) +reg302631 := PrimIsPair(reg302630) +var reg302649 Obj +if reg302631 == True { +reg302632 := PrimTail(V1851) +reg302633 := PrimTail(reg302632) +reg302634 := PrimIsPair(reg302633) +var reg302644 Obj +if reg302634 == True { +reg302635 := Nil; +reg302636 := PrimTail(V1851) +reg302637 := PrimTail(reg302636) +reg302638 := PrimTail(reg302637) +reg302639 := PrimEqual(reg302635, reg302638) +var reg302642 Obj +if reg302639 == True { +reg302640 := True; +reg302642 = reg302640 +} else { +reg302641 := False; +reg302642 = reg302641 +} +reg302644 = reg302642 +} else { +reg302643 := False; +reg302644 = reg302643 +} +var reg302647 Obj +if reg302644 == True { +reg302645 := True; +reg302647 = reg302645 +} else { +reg302646 := False; +reg302647 = reg302646 +} +reg302649 = reg302647 +} else { +reg302648 := False; +reg302649 = reg302648 +} +var reg302652 Obj +if reg302649 == True { +reg302650 := True; +reg302652 = reg302650 +} else { +reg302651 := False; +reg302652 = reg302651 +} +reg302654 = reg302652 +} else { +reg302653 := False; +reg302654 = reg302653 +} +var reg302657 Obj +if reg302654 == True { +reg302655 := True; +reg302657 = reg302655 +} else { +reg302656 := False; +reg302657 = reg302656 +} +reg302659 = reg302657 +} else { +reg302658 := False; +reg302659 = reg302658 +} +if reg302659 == True { +reg302660 := MakeSymbol("mode") +reg302661 := PrimTail(V1851) +reg302662 := PrimHead(reg302661) +reg302663 := __e.Call(__defun__shen_4eval_1cons, reg302662) +reg302664 := PrimTail(V1851) +reg302665 := PrimTail(reg302664) +reg302666 := PrimCons(reg302663, reg302665) +reg302667 := PrimCons(reg302660, reg302666) +__ctx.Return(reg302667) +return +} else { +__ctx.Return(V1851) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.eval-cons", value: __defun__shen_4eval_1cons}) + +__defun__shen_4_5body_d_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1853 := __args[0] +_ = V1853 +reg302668 := __e.Call(__defun__shen_4_5literal_d_6, V1853) +Parse__shen_4_5literal_d_6 := reg302668 +_ = Parse__shen_4_5literal_d_6 +reg302669 := __e.Call(__defun__fail) +reg302670 := PrimEqual(reg302669, Parse__shen_4_5literal_d_6) +reg302671 := PrimNot(reg302670) +var reg302684 Obj +if reg302671 == True { +reg302672 := __e.Call(__defun__shen_4_5body_d_6, Parse__shen_4_5literal_d_6) +Parse__shen_4_5body_d_6 := reg302672 +_ = Parse__shen_4_5body_d_6 +reg302673 := __e.Call(__defun__fail) +reg302674 := PrimEqual(reg302673, Parse__shen_4_5body_d_6) +reg302675 := PrimNot(reg302674) +var reg302682 Obj +if reg302675 == True { +reg302676 := PrimHead(Parse__shen_4_5body_d_6) +reg302677 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5literal_d_6) +reg302678 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5body_d_6) +reg302679 := PrimCons(reg302677, reg302678) +reg302680 := __e.Call(__defun__shen_4pair, reg302676, reg302679) +reg302682 = reg302680 +} else { +reg302681 := __e.Call(__defun__fail) +reg302682 = reg302681 +} +reg302684 = reg302682 +} else { +reg302683 := __e.Call(__defun__fail) +reg302684 = reg302683 +} +YaccParse := reg302684 +_ = YaccParse +reg302685 := __e.Call(__defun__fail) +reg302686 := PrimEqual(YaccParse, reg302685) +if reg302686 == True { +reg302687 := __e.Call(__defun___5e_6, V1853) +Parse___5e_6 := reg302687 +_ = Parse___5e_6 +reg302688 := __e.Call(__defun__fail) +reg302689 := PrimEqual(reg302688, Parse___5e_6) +reg302690 := PrimNot(reg302689) +if reg302690 == True { +reg302691 := PrimHead(Parse___5e_6) +reg302692 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg302691, reg302692) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5body_d_6}) + +__defun__shen_4_5literal_d_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1855 := __args[0] +_ = V1855 +reg302695 := PrimHead(V1855) +reg302696 := PrimIsPair(reg302695) +var reg302705 Obj +if reg302696 == True { +reg302697 := MakeSymbol("!") +reg302698 := PrimHead(V1855) +reg302699 := PrimHead(reg302698) +reg302700 := PrimEqual(reg302697, reg302699) +var reg302703 Obj +if reg302700 == True { +reg302701 := True; +reg302703 = reg302701 +} else { +reg302702 := False; +reg302703 = reg302702 +} +reg302705 = reg302703 +} else { +reg302704 := False; +reg302705 = reg302704 +} +var reg302719 Obj +if reg302705 == True { +reg302706 := PrimHead(V1855) +reg302707 := PrimTail(reg302706) +reg302708 := __e.Call(__defun__shen_4hdtl, V1855) +reg302709 := __e.Call(__defun__shen_4pair, reg302707, reg302708) +reg302710 := PrimHead(reg302709) +reg302711 := MakeSymbol("cut") +reg302712 := MakeString("Throwcontrol") +reg302713 := PrimIntern(reg302712) +reg302714 := Nil; +reg302715 := PrimCons(reg302713, reg302714) +reg302716 := PrimCons(reg302711, reg302715) +reg302717 := __e.Call(__defun__shen_4pair, reg302710, reg302716) +reg302719 = reg302717 +} else { +reg302718 := __e.Call(__defun__fail) +reg302719 = reg302718 +} +YaccParse := reg302719 +_ = YaccParse +reg302720 := __e.Call(__defun__fail) +reg302721 := PrimEqual(YaccParse, reg302720) +if reg302721 == True { +reg302722 := PrimHead(V1855) +reg302723 := PrimIsPair(reg302722) +if reg302723 == True { +reg302724 := PrimHead(V1855) +reg302725 := PrimHead(reg302724) +Parse__X := reg302725 +_ = Parse__X +reg302726 := PrimIsPair(Parse__X) +if reg302726 == True { +reg302727 := PrimHead(V1855) +reg302728 := PrimTail(reg302727) +reg302729 := __e.Call(__defun__shen_4hdtl, V1855) +reg302730 := __e.Call(__defun__shen_4pair, reg302728, reg302729) +reg302731 := PrimHead(reg302730) +__ctx.TailApply(__defun__shen_4pair, reg302731, Parse__X) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5literal_d_6}) + +__defun__shen_4_5end_d_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1857 := __args[0] +_ = V1857 +reg302735 := PrimHead(V1857) +reg302736 := PrimIsPair(reg302735) +if reg302736 == True { +reg302737 := PrimHead(V1857) +reg302738 := PrimHead(reg302737) +Parse__X := reg302738 +_ = Parse__X +reg302739 := MakeSymbol(";") +reg302740 := PrimEqual(Parse__X, reg302739) +if reg302740 == True { +reg302741 := PrimHead(V1857) +reg302742 := PrimTail(reg302741) +reg302743 := __e.Call(__defun__shen_4hdtl, V1857) +reg302744 := __e.Call(__defun__shen_4pair, reg302742, reg302743) +reg302745 := PrimHead(reg302744) +__ctx.TailApply(__defun__shen_4pair, reg302745, Parse__X) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5end_d_6}) + +__defun__cut = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1861 := __args[0] +_ = V1861 +V1862 := __args[1] +_ = V1862 +V1863 := __args[2] +_ = V1863 +reg302749 := __e.Call(__defun__thaw, V1863) +Result := reg302749 +_ = Result +reg302750 := False; +reg302751 := PrimEqual(Result, reg302750) +if reg302751 == True { +__ctx.Return(V1861) +return +} else { +__ctx.Return(Result) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "cut", value: __defun__cut}) + +__defun__shen_4insert__modes = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1865 := __args[0] +_ = V1865 +reg302752 := PrimIsPair(V1865) +var reg302785 Obj +if reg302752 == True { +reg302753 := MakeSymbol("mode") +reg302754 := PrimHead(V1865) +reg302755 := PrimEqual(reg302753, reg302754) +var reg302780 Obj +if reg302755 == True { +reg302756 := PrimTail(V1865) +reg302757 := PrimIsPair(reg302756) +var reg302775 Obj +if reg302757 == True { +reg302758 := PrimTail(V1865) +reg302759 := PrimTail(reg302758) +reg302760 := PrimIsPair(reg302759) +var reg302770 Obj +if reg302760 == True { +reg302761 := Nil; +reg302762 := PrimTail(V1865) +reg302763 := PrimTail(reg302762) +reg302764 := PrimTail(reg302763) +reg302765 := PrimEqual(reg302761, reg302764) +var reg302768 Obj +if reg302765 == True { +reg302766 := True; +reg302768 = reg302766 +} else { +reg302767 := False; +reg302768 = reg302767 +} +reg302770 = reg302768 +} else { +reg302769 := False; +reg302770 = reg302769 +} +var reg302773 Obj +if reg302770 == True { +reg302771 := True; +reg302773 = reg302771 +} else { +reg302772 := False; +reg302773 = reg302772 +} +reg302775 = reg302773 +} else { +reg302774 := False; +reg302775 = reg302774 +} +var reg302778 Obj +if reg302775 == True { +reg302776 := True; +reg302778 = reg302776 +} else { +reg302777 := False; +reg302778 = reg302777 +} +reg302780 = reg302778 +} else { +reg302779 := False; +reg302780 = reg302779 +} +var reg302783 Obj +if reg302780 == True { +reg302781 := True; +reg302783 = reg302781 +} else { +reg302782 := False; +reg302783 = reg302782 +} +reg302785 = reg302783 +} else { +reg302784 := False; +reg302785 = reg302784 +} +if reg302785 == True { +__ctx.Return(V1865) +return +} else { +reg302786 := Nil; +reg302787 := PrimEqual(reg302786, V1865) +if reg302787 == True { +reg302788 := Nil; +__ctx.Return(reg302788) +return +} else { +reg302789 := PrimIsPair(V1865) +if reg302789 == True { +reg302790 := MakeSymbol("mode") +reg302791 := PrimHead(V1865) +reg302792 := MakeSymbol("+") +reg302793 := Nil; +reg302794 := PrimCons(reg302792, reg302793) +reg302795 := PrimCons(reg302791, reg302794) +reg302796 := PrimCons(reg302790, reg302795) +reg302797 := MakeSymbol("mode") +reg302798 := PrimTail(V1865) +reg302799 := __e.Call(__defun__shen_4insert__modes, reg302798) +reg302800 := MakeSymbol("-") +reg302801 := Nil; +reg302802 := PrimCons(reg302800, reg302801) +reg302803 := PrimCons(reg302799, reg302802) +reg302804 := PrimCons(reg302797, reg302803) +reg302805 := PrimCons(reg302796, reg302804) +__ctx.Return(reg302805) +return +} else { +__ctx.Return(V1865) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.insert_modes", value: __defun__shen_4insert__modes}) + +__defun__shen_4s_1prolog = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1867 := __args[0] +_ = V1867 +reg302806 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__eval, X) +return +}, 1) +reg302808 := __e.Call(__defun__shen_4prolog_1_6shen, V1867) +__ctx.TailApply(__defun__map, reg302806, reg302808) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.s-prolog", value: __defun__shen_4s_1prolog}) + +__defun__shen_4prolog_1_6shen = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1869 := __args[0] +_ = V1869 +reg302810 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4compile__prolog__procedure, X) +return +}, 1) +reg302812 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4s_1prolog__clause, X) +return +}, 1) +reg302814 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4head__abstraction, X) +return +}, 1) +reg302816 := __e.Call(__defun__mapcan, reg302814, V1869) +reg302817 := __e.Call(__defun__map, reg302812, reg302816) +reg302818 := __e.Call(__defun__shen_4group__clauses, reg302817) +__ctx.TailApply(__defun__map, reg302810, reg302818) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.prolog->shen", value: __defun__shen_4prolog_1_6shen}) + +__defun__shen_4s_1prolog__clause = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1871 := __args[0] +_ = V1871 +reg302820 := PrimIsPair(V1871) +var reg302854 Obj +if reg302820 == True { +reg302821 := PrimTail(V1871) +reg302822 := PrimIsPair(reg302821) +var reg302849 Obj +if reg302822 == True { +reg302823 := MakeSymbol(":-") +reg302824 := PrimTail(V1871) +reg302825 := PrimHead(reg302824) +reg302826 := PrimEqual(reg302823, reg302825) +var reg302844 Obj +if reg302826 == True { +reg302827 := PrimTail(V1871) +reg302828 := PrimTail(reg302827) +reg302829 := PrimIsPair(reg302828) +var reg302839 Obj +if reg302829 == True { +reg302830 := Nil; +reg302831 := PrimTail(V1871) +reg302832 := PrimTail(reg302831) +reg302833 := PrimTail(reg302832) +reg302834 := PrimEqual(reg302830, reg302833) +var reg302837 Obj +if reg302834 == True { +reg302835 := True; +reg302837 = reg302835 +} else { +reg302836 := False; +reg302837 = reg302836 +} +reg302839 = reg302837 +} else { +reg302838 := False; +reg302839 = reg302838 +} +var reg302842 Obj +if reg302839 == True { +reg302840 := True; +reg302842 = reg302840 +} else { +reg302841 := False; +reg302842 = reg302841 +} +reg302844 = reg302842 +} else { +reg302843 := False; +reg302844 = reg302843 +} +var reg302847 Obj +if reg302844 == True { +reg302845 := True; +reg302847 = reg302845 +} else { +reg302846 := False; +reg302847 = reg302846 +} +reg302849 = reg302847 +} else { +reg302848 := False; +reg302849 = reg302848 +} +var reg302852 Obj +if reg302849 == True { +reg302850 := True; +reg302852 = reg302850 +} else { +reg302851 := False; +reg302852 = reg302851 +} +reg302854 = reg302852 +} else { +reg302853 := False; +reg302854 = reg302853 +} +if reg302854 == True { +reg302855 := PrimHead(V1871) +reg302856 := MakeSymbol(":-") +reg302857 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4s_1prolog__literal, X) +return +}, 1) +reg302859 := PrimTail(V1871) +reg302860 := PrimTail(reg302859) +reg302861 := PrimHead(reg302860) +reg302862 := __e.Call(__defun__map, reg302857, reg302861) +reg302863 := Nil; +reg302864 := PrimCons(reg302862, reg302863) +reg302865 := PrimCons(reg302856, reg302864) +reg302866 := PrimCons(reg302855, reg302865) +__ctx.Return(reg302866) +return +} else { +reg302867 := MakeSymbol("shen.s-prolog_clause") +__ctx.TailApply(__defun__shen_4f__error, reg302867) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.s-prolog_clause", value: __defun__shen_4s_1prolog__clause}) + +__defun__shen_4head__abstraction = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1873 := __args[0] +_ = V1873 +reg302869 := PrimIsPair(V1873) +var reg302917 Obj +if reg302869 == True { +reg302870 := PrimTail(V1873) +reg302871 := PrimIsPair(reg302870) +var reg302912 Obj +if reg302871 == True { +reg302872 := MakeSymbol(":-") +reg302873 := PrimTail(V1873) +reg302874 := PrimHead(reg302873) +reg302875 := PrimEqual(reg302872, reg302874) +var reg302907 Obj +if reg302875 == True { +reg302876 := PrimTail(V1873) +reg302877 := PrimTail(reg302876) +reg302878 := PrimIsPair(reg302877) +var reg302902 Obj +if reg302878 == True { +reg302879 := Nil; +reg302880 := PrimTail(V1873) +reg302881 := PrimTail(reg302880) +reg302882 := PrimTail(reg302881) +reg302883 := PrimEqual(reg302879, reg302882) +var reg302897 Obj +if reg302883 == True { +reg302884 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg302885 := PrimHead(V1873) +reg302886 := __e.Call(__defun__shen_4complexity__head, reg302885) +reg302887 := MakeSymbol("shen.*maxcomplexity*") +reg302888 := PrimValue(reg302887) +reg302889 := PrimLessThan(reg302886, reg302888) +__ctx.Return(reg302889) +return +}, 0) +reg302890 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ := __args[0] +_ = __ +reg302891 := False; +__ctx.Return(reg302891) +return +}, 1) +reg302892 := __e.Try(reg302884).Catch(reg302890) +var reg302895 Obj +if reg302892 == True { +reg302893 := True; +reg302895 = reg302893 +} else { +reg302894 := False; +reg302895 = reg302894 +} +reg302897 = reg302895 +} else { +reg302896 := False; +reg302897 = reg302896 +} +var reg302900 Obj +if reg302897 == True { +reg302898 := True; +reg302900 = reg302898 +} else { +reg302899 := False; +reg302900 = reg302899 +} +reg302902 = reg302900 +} else { +reg302901 := False; +reg302902 = reg302901 +} +var reg302905 Obj +if reg302902 == True { +reg302903 := True; +reg302905 = reg302903 +} else { +reg302904 := False; +reg302905 = reg302904 +} +reg302907 = reg302905 +} else { +reg302906 := False; +reg302907 = reg302906 +} +var reg302910 Obj +if reg302907 == True { +reg302908 := True; +reg302910 = reg302908 +} else { +reg302909 := False; +reg302910 = reg302909 +} +reg302912 = reg302910 +} else { +reg302911 := False; +reg302912 = reg302911 +} +var reg302915 Obj +if reg302912 == True { +reg302913 := True; +reg302915 = reg302913 +} else { +reg302914 := False; +reg302915 = reg302914 +} +reg302917 = reg302915 +} else { +reg302916 := False; +reg302917 = reg302916 +} +if reg302917 == True { +reg302918 := Nil; +reg302919 := PrimCons(V1873, reg302918) +__ctx.Return(reg302919) +return +} else { +reg302920 := PrimIsPair(V1873) +var reg302961 Obj +if reg302920 == True { +reg302921 := PrimHead(V1873) +reg302922 := PrimIsPair(reg302921) +var reg302956 Obj +if reg302922 == True { +reg302923 := PrimTail(V1873) +reg302924 := PrimIsPair(reg302923) +var reg302951 Obj +if reg302924 == True { +reg302925 := MakeSymbol(":-") +reg302926 := PrimTail(V1873) +reg302927 := PrimHead(reg302926) +reg302928 := PrimEqual(reg302925, reg302927) +var reg302946 Obj +if reg302928 == True { +reg302929 := PrimTail(V1873) +reg302930 := PrimTail(reg302929) +reg302931 := PrimIsPair(reg302930) +var reg302941 Obj +if reg302931 == True { +reg302932 := Nil; +reg302933 := PrimTail(V1873) +reg302934 := PrimTail(reg302933) +reg302935 := PrimTail(reg302934) +reg302936 := PrimEqual(reg302932, reg302935) +var reg302939 Obj +if reg302936 == True { +reg302937 := True; +reg302939 = reg302937 +} else { +reg302938 := False; +reg302939 = reg302938 +} +reg302941 = reg302939 +} else { +reg302940 := False; +reg302941 = reg302940 +} +var reg302944 Obj +if reg302941 == True { +reg302942 := True; +reg302944 = reg302942 +} else { +reg302943 := False; +reg302944 = reg302943 +} +reg302946 = reg302944 +} else { +reg302945 := False; +reg302946 = reg302945 +} +var reg302949 Obj +if reg302946 == True { +reg302947 := True; +reg302949 = reg302947 +} else { +reg302948 := False; +reg302949 = reg302948 +} +reg302951 = reg302949 +} else { +reg302950 := False; +reg302951 = reg302950 +} +var reg302954 Obj +if reg302951 == True { +reg302952 := True; +reg302954 = reg302952 +} else { +reg302953 := False; +reg302954 = reg302953 +} +reg302956 = reg302954 +} else { +reg302955 := False; +reg302956 = reg302955 +} +var reg302959 Obj +if reg302956 == True { +reg302957 := True; +reg302959 = reg302957 +} else { +reg302958 := False; +reg302959 = reg302958 +} +reg302961 = reg302959 +} else { +reg302960 := False; +reg302961 = reg302960 +} +if reg302961 == True { +reg302962 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Y := __args[0] +_ = Y +reg302963 := MakeSymbol("V") +__ctx.TailApply(__defun__gensym, reg302963) +return +}, 1) +reg302965 := PrimHead(V1873) +reg302966 := PrimTail(reg302965) +reg302967 := __e.Call(__defun__map, reg302962, reg302966) +Terms := reg302967 +_ = Terms +reg302968 := PrimHead(V1873) +reg302969 := PrimTail(reg302968) +reg302970 := __e.Call(__defun__shen_4remove__modes, reg302969) +reg302971 := __e.Call(__defun__shen_4rcons__form, reg302970) +XTerms := reg302971 +_ = XTerms +reg302972 := MakeSymbol("unify") +reg302973 := __e.Call(__defun__shen_4cons__form, Terms) +reg302974 := Nil; +reg302975 := PrimCons(XTerms, reg302974) +reg302976 := PrimCons(reg302973, reg302975) +reg302977 := PrimCons(reg302972, reg302976) +Literal := reg302977 +_ = Literal +reg302978 := PrimHead(V1873) +reg302979 := PrimHead(reg302978) +reg302980 := PrimCons(reg302979, Terms) +reg302981 := MakeSymbol(":-") +reg302982 := PrimTail(V1873) +reg302983 := PrimTail(reg302982) +reg302984 := PrimHead(reg302983) +reg302985 := PrimCons(Literal, reg302984) +reg302986 := Nil; +reg302987 := PrimCons(reg302985, reg302986) +reg302988 := PrimCons(reg302981, reg302987) +reg302989 := PrimCons(reg302980, reg302988) +Clause := reg302989 +_ = Clause +reg302990 := Nil; +reg302991 := PrimCons(Clause, reg302990) +__ctx.Return(reg302991) +return +} else { +reg302992 := MakeSymbol("shen.head_abstraction") +__ctx.TailApply(__defun__shen_4f__error, reg302992) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.head_abstraction", value: __defun__shen_4head__abstraction}) + +__defun__shen_4complexity__head = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1879 := __args[0] +_ = V1879 +reg302994 := PrimIsPair(V1879) +if reg302994 == True { +reg302995 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4complexity, X) +return +}, 1) +reg302997 := PrimTail(V1879) +reg302998 := __e.Call(__defun__map, reg302995, reg302997) +__ctx.TailApply(__defun__shen_4safe_1product, reg302998) +return +} else { +reg303000 := MakeSymbol("shen.complexity_head") +__ctx.TailApply(__defun__shen_4f__error, reg303000) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.complexity_head", value: __defun__shen_4complexity__head}) + +__defun__shen_4safe_1multiply = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1882 := __args[0] +_ = V1882 +V1883 := __args[1] +_ = V1883 +reg303002 := PrimNumberMultiply(V1882, V1883) +__ctx.Return(reg303002) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.safe-multiply", value: __defun__shen_4safe_1multiply}) + +__defun__shen_4complexity = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1892 := __args[0] +_ = V1892 +reg303003 := PrimIsPair(V1892) +var reg303085 Obj +if reg303003 == True { +reg303004 := MakeSymbol("mode") +reg303005 := PrimHead(V1892) +reg303006 := PrimEqual(reg303004, reg303005) +var reg303080 Obj +if reg303006 == True { +reg303007 := PrimTail(V1892) +reg303008 := PrimIsPair(reg303007) +var reg303075 Obj +if reg303008 == True { +reg303009 := PrimTail(V1892) +reg303010 := PrimHead(reg303009) +reg303011 := PrimIsPair(reg303010) +var reg303070 Obj +if reg303011 == True { +reg303012 := MakeSymbol("mode") +reg303013 := PrimTail(V1892) +reg303014 := PrimHead(reg303013) +reg303015 := PrimHead(reg303014) +reg303016 := PrimEqual(reg303012, reg303015) +var reg303065 Obj +if reg303016 == True { +reg303017 := PrimTail(V1892) +reg303018 := PrimHead(reg303017) +reg303019 := PrimTail(reg303018) +reg303020 := PrimIsPair(reg303019) +var reg303060 Obj +if reg303020 == True { +reg303021 := PrimTail(V1892) +reg303022 := PrimHead(reg303021) +reg303023 := PrimTail(reg303022) +reg303024 := PrimTail(reg303023) +reg303025 := PrimIsPair(reg303024) +var reg303055 Obj +if reg303025 == True { +reg303026 := Nil; +reg303027 := PrimTail(V1892) +reg303028 := PrimHead(reg303027) +reg303029 := PrimTail(reg303028) +reg303030 := PrimTail(reg303029) +reg303031 := PrimTail(reg303030) +reg303032 := PrimEqual(reg303026, reg303031) +var reg303050 Obj +if reg303032 == True { +reg303033 := PrimTail(V1892) +reg303034 := PrimTail(reg303033) +reg303035 := PrimIsPair(reg303034) +var reg303045 Obj +if reg303035 == True { +reg303036 := Nil; +reg303037 := PrimTail(V1892) +reg303038 := PrimTail(reg303037) +reg303039 := PrimTail(reg303038) +reg303040 := PrimEqual(reg303036, reg303039) +var reg303043 Obj +if reg303040 == True { +reg303041 := True; +reg303043 = reg303041 +} else { +reg303042 := False; +reg303043 = reg303042 +} +reg303045 = reg303043 +} else { +reg303044 := False; +reg303045 = reg303044 +} +var reg303048 Obj +if reg303045 == True { +reg303046 := True; +reg303048 = reg303046 +} else { +reg303047 := False; +reg303048 = reg303047 +} +reg303050 = reg303048 +} else { +reg303049 := False; +reg303050 = reg303049 +} +var reg303053 Obj +if reg303050 == True { +reg303051 := True; +reg303053 = reg303051 +} else { +reg303052 := False; +reg303053 = reg303052 +} +reg303055 = reg303053 +} else { +reg303054 := False; +reg303055 = reg303054 +} +var reg303058 Obj +if reg303055 == True { +reg303056 := True; +reg303058 = reg303056 +} else { +reg303057 := False; +reg303058 = reg303057 +} +reg303060 = reg303058 +} else { +reg303059 := False; +reg303060 = reg303059 +} +var reg303063 Obj +if reg303060 == True { +reg303061 := True; +reg303063 = reg303061 +} else { +reg303062 := False; +reg303063 = reg303062 +} +reg303065 = reg303063 +} else { +reg303064 := False; +reg303065 = reg303064 +} +var reg303068 Obj +if reg303065 == True { +reg303066 := True; +reg303068 = reg303066 +} else { +reg303067 := False; +reg303068 = reg303067 +} +reg303070 = reg303068 +} else { +reg303069 := False; +reg303070 = reg303069 +} +var reg303073 Obj +if reg303070 == True { +reg303071 := True; +reg303073 = reg303071 +} else { +reg303072 := False; +reg303073 = reg303072 +} +reg303075 = reg303073 +} else { +reg303074 := False; +reg303075 = reg303074 +} +var reg303078 Obj +if reg303075 == True { +reg303076 := True; +reg303078 = reg303076 +} else { +reg303077 := False; +reg303078 = reg303077 +} +reg303080 = reg303078 +} else { +reg303079 := False; +reg303080 = reg303079 +} +var reg303083 Obj +if reg303080 == True { +reg303081 := True; +reg303083 = reg303081 +} else { +reg303082 := False; +reg303083 = reg303082 +} +reg303085 = reg303083 +} else { +reg303084 := False; +reg303085 = reg303084 +} +if reg303085 == True { +reg303086 := PrimTail(V1892) +reg303087 := PrimHead(reg303086) +__ctx.TailApply(__defun__shen_4complexity, reg303087) +return +} else { +reg303089 := PrimIsPair(V1892) +var reg303140 Obj +if reg303089 == True { +reg303090 := MakeSymbol("mode") +reg303091 := PrimHead(V1892) +reg303092 := PrimEqual(reg303090, reg303091) +var reg303135 Obj +if reg303092 == True { +reg303093 := PrimTail(V1892) +reg303094 := PrimIsPair(reg303093) +var reg303130 Obj +if reg303094 == True { +reg303095 := PrimTail(V1892) +reg303096 := PrimHead(reg303095) +reg303097 := PrimIsPair(reg303096) +var reg303125 Obj +if reg303097 == True { +reg303098 := PrimTail(V1892) +reg303099 := PrimTail(reg303098) +reg303100 := PrimIsPair(reg303099) +var reg303120 Obj +if reg303100 == True { +reg303101 := MakeSymbol("+") +reg303102 := PrimTail(V1892) +reg303103 := PrimTail(reg303102) +reg303104 := PrimHead(reg303103) +reg303105 := PrimEqual(reg303101, reg303104) +var reg303115 Obj +if reg303105 == True { +reg303106 := Nil; +reg303107 := PrimTail(V1892) +reg303108 := PrimTail(reg303107) +reg303109 := PrimTail(reg303108) +reg303110 := PrimEqual(reg303106, reg303109) +var reg303113 Obj +if reg303110 == True { +reg303111 := True; +reg303113 = reg303111 +} else { +reg303112 := False; +reg303113 = reg303112 +} +reg303115 = reg303113 +} else { +reg303114 := False; +reg303115 = reg303114 +} +var reg303118 Obj +if reg303115 == True { +reg303116 := True; +reg303118 = reg303116 +} else { +reg303117 := False; +reg303118 = reg303117 +} +reg303120 = reg303118 +} else { +reg303119 := False; +reg303120 = reg303119 +} +var reg303123 Obj +if reg303120 == True { +reg303121 := True; +reg303123 = reg303121 +} else { +reg303122 := False; +reg303123 = reg303122 +} +reg303125 = reg303123 +} else { +reg303124 := False; +reg303125 = reg303124 +} +var reg303128 Obj +if reg303125 == True { +reg303126 := True; +reg303128 = reg303126 +} else { +reg303127 := False; +reg303128 = reg303127 +} +reg303130 = reg303128 +} else { +reg303129 := False; +reg303130 = reg303129 +} +var reg303133 Obj +if reg303130 == True { +reg303131 := True; +reg303133 = reg303131 +} else { +reg303132 := False; +reg303133 = reg303132 +} +reg303135 = reg303133 +} else { +reg303134 := False; +reg303135 = reg303134 +} +var reg303138 Obj +if reg303135 == True { +reg303136 := True; +reg303138 = reg303136 +} else { +reg303137 := False; +reg303138 = reg303137 +} +reg303140 = reg303138 +} else { +reg303139 := False; +reg303140 = reg303139 +} +if reg303140 == True { +reg303141 := MakeNumber(2) +reg303142 := MakeSymbol("mode") +reg303143 := PrimTail(V1892) +reg303144 := PrimHead(reg303143) +reg303145 := PrimHead(reg303144) +reg303146 := PrimTail(V1892) +reg303147 := PrimTail(reg303146) +reg303148 := PrimCons(reg303145, reg303147) +reg303149 := PrimCons(reg303142, reg303148) +reg303150 := __e.Call(__defun__shen_4complexity, reg303149) +reg303151 := MakeSymbol("mode") +reg303152 := PrimTail(V1892) +reg303153 := PrimHead(reg303152) +reg303154 := PrimTail(reg303153) +reg303155 := PrimTail(V1892) +reg303156 := PrimTail(reg303155) +reg303157 := PrimCons(reg303154, reg303156) +reg303158 := PrimCons(reg303151, reg303157) +reg303159 := __e.Call(__defun__shen_4complexity, reg303158) +reg303160 := __e.Call(__defun__shen_4safe_1multiply, reg303150, reg303159) +__ctx.TailApply(__defun__shen_4safe_1multiply, reg303141, reg303160) +return +} else { +reg303162 := PrimIsPair(V1892) +var reg303213 Obj +if reg303162 == True { +reg303163 := MakeSymbol("mode") +reg303164 := PrimHead(V1892) +reg303165 := PrimEqual(reg303163, reg303164) +var reg303208 Obj +if reg303165 == True { +reg303166 := PrimTail(V1892) +reg303167 := PrimIsPair(reg303166) +var reg303203 Obj +if reg303167 == True { +reg303168 := PrimTail(V1892) +reg303169 := PrimHead(reg303168) +reg303170 := PrimIsPair(reg303169) +var reg303198 Obj +if reg303170 == True { +reg303171 := PrimTail(V1892) +reg303172 := PrimTail(reg303171) +reg303173 := PrimIsPair(reg303172) +var reg303193 Obj +if reg303173 == True { +reg303174 := MakeSymbol("-") +reg303175 := PrimTail(V1892) +reg303176 := PrimTail(reg303175) +reg303177 := PrimHead(reg303176) +reg303178 := PrimEqual(reg303174, reg303177) +var reg303188 Obj +if reg303178 == True { +reg303179 := Nil; +reg303180 := PrimTail(V1892) +reg303181 := PrimTail(reg303180) +reg303182 := PrimTail(reg303181) +reg303183 := PrimEqual(reg303179, reg303182) +var reg303186 Obj +if reg303183 == True { +reg303184 := True; +reg303186 = reg303184 +} else { +reg303185 := False; +reg303186 = reg303185 +} +reg303188 = reg303186 +} else { +reg303187 := False; +reg303188 = reg303187 +} +var reg303191 Obj +if reg303188 == True { +reg303189 := True; +reg303191 = reg303189 +} else { +reg303190 := False; +reg303191 = reg303190 +} +reg303193 = reg303191 +} else { +reg303192 := False; +reg303193 = reg303192 +} +var reg303196 Obj +if reg303193 == True { +reg303194 := True; +reg303196 = reg303194 +} else { +reg303195 := False; +reg303196 = reg303195 +} +reg303198 = reg303196 +} else { +reg303197 := False; +reg303198 = reg303197 +} +var reg303201 Obj +if reg303198 == True { +reg303199 := True; +reg303201 = reg303199 +} else { +reg303200 := False; +reg303201 = reg303200 +} +reg303203 = reg303201 +} else { +reg303202 := False; +reg303203 = reg303202 +} +var reg303206 Obj +if reg303203 == True { +reg303204 := True; +reg303206 = reg303204 +} else { +reg303205 := False; +reg303206 = reg303205 +} +reg303208 = reg303206 +} else { +reg303207 := False; +reg303208 = reg303207 +} +var reg303211 Obj +if reg303208 == True { +reg303209 := True; +reg303211 = reg303209 +} else { +reg303210 := False; +reg303211 = reg303210 +} +reg303213 = reg303211 +} else { +reg303212 := False; +reg303213 = reg303212 +} +if reg303213 == True { +reg303214 := MakeSymbol("mode") +reg303215 := PrimTail(V1892) +reg303216 := PrimHead(reg303215) +reg303217 := PrimHead(reg303216) +reg303218 := PrimTail(V1892) +reg303219 := PrimTail(reg303218) +reg303220 := PrimCons(reg303217, reg303219) +reg303221 := PrimCons(reg303214, reg303220) +reg303222 := __e.Call(__defun__shen_4complexity, reg303221) +reg303223 := MakeSymbol("mode") +reg303224 := PrimTail(V1892) +reg303225 := PrimHead(reg303224) +reg303226 := PrimTail(reg303225) +reg303227 := PrimTail(V1892) +reg303228 := PrimTail(reg303227) +reg303229 := PrimCons(reg303226, reg303228) +reg303230 := PrimCons(reg303223, reg303229) +reg303231 := __e.Call(__defun__shen_4complexity, reg303230) +__ctx.TailApply(__defun__shen_4safe_1multiply, reg303222, reg303231) +return +} else { +reg303233 := PrimIsPair(V1892) +var reg303274 Obj +if reg303233 == True { +reg303234 := MakeSymbol("mode") +reg303235 := PrimHead(V1892) +reg303236 := PrimEqual(reg303234, reg303235) +var reg303269 Obj +if reg303236 == True { +reg303237 := PrimTail(V1892) +reg303238 := PrimIsPair(reg303237) +var reg303264 Obj +if reg303238 == True { +reg303239 := PrimTail(V1892) +reg303240 := PrimTail(reg303239) +reg303241 := PrimIsPair(reg303240) +var reg303259 Obj +if reg303241 == True { +reg303242 := Nil; +reg303243 := PrimTail(V1892) +reg303244 := PrimTail(reg303243) +reg303245 := PrimTail(reg303244) +reg303246 := PrimEqual(reg303242, reg303245) +var reg303254 Obj +if reg303246 == True { +reg303247 := PrimTail(V1892) +reg303248 := PrimHead(reg303247) +reg303249 := PrimIsVariable(reg303248) +var reg303252 Obj +if reg303249 == True { +reg303250 := True; +reg303252 = reg303250 +} else { +reg303251 := False; +reg303252 = reg303251 +} +reg303254 = reg303252 +} else { +reg303253 := False; +reg303254 = reg303253 +} +var reg303257 Obj +if reg303254 == True { +reg303255 := True; +reg303257 = reg303255 +} else { +reg303256 := False; +reg303257 = reg303256 +} +reg303259 = reg303257 +} else { +reg303258 := False; +reg303259 = reg303258 +} +var reg303262 Obj +if reg303259 == True { +reg303260 := True; +reg303262 = reg303260 +} else { +reg303261 := False; +reg303262 = reg303261 +} +reg303264 = reg303262 +} else { +reg303263 := False; +reg303264 = reg303263 +} +var reg303267 Obj +if reg303264 == True { +reg303265 := True; +reg303267 = reg303265 +} else { +reg303266 := False; +reg303267 = reg303266 +} +reg303269 = reg303267 +} else { +reg303268 := False; +reg303269 = reg303268 +} +var reg303272 Obj +if reg303269 == True { +reg303270 := True; +reg303272 = reg303270 +} else { +reg303271 := False; +reg303272 = reg303271 +} +reg303274 = reg303272 +} else { +reg303273 := False; +reg303274 = reg303273 +} +if reg303274 == True { +reg303275 := MakeNumber(1) +__ctx.Return(reg303275) +return +} else { +reg303276 := PrimIsPair(V1892) +var reg303319 Obj +if reg303276 == True { +reg303277 := MakeSymbol("mode") +reg303278 := PrimHead(V1892) +reg303279 := PrimEqual(reg303277, reg303278) +var reg303314 Obj +if reg303279 == True { +reg303280 := PrimTail(V1892) +reg303281 := PrimIsPair(reg303280) +var reg303309 Obj +if reg303281 == True { +reg303282 := PrimTail(V1892) +reg303283 := PrimTail(reg303282) +reg303284 := PrimIsPair(reg303283) +var reg303304 Obj +if reg303284 == True { +reg303285 := MakeSymbol("+") +reg303286 := PrimTail(V1892) +reg303287 := PrimTail(reg303286) +reg303288 := PrimHead(reg303287) +reg303289 := PrimEqual(reg303285, reg303288) +var reg303299 Obj +if reg303289 == True { +reg303290 := Nil; +reg303291 := PrimTail(V1892) +reg303292 := PrimTail(reg303291) +reg303293 := PrimTail(reg303292) +reg303294 := PrimEqual(reg303290, reg303293) +var reg303297 Obj +if reg303294 == True { +reg303295 := True; +reg303297 = reg303295 +} else { +reg303296 := False; +reg303297 = reg303296 +} +reg303299 = reg303297 +} else { +reg303298 := False; +reg303299 = reg303298 +} +var reg303302 Obj +if reg303299 == True { +reg303300 := True; +reg303302 = reg303300 +} else { +reg303301 := False; +reg303302 = reg303301 +} +reg303304 = reg303302 +} else { +reg303303 := False; +reg303304 = reg303303 +} +var reg303307 Obj +if reg303304 == True { +reg303305 := True; +reg303307 = reg303305 +} else { +reg303306 := False; +reg303307 = reg303306 +} +reg303309 = reg303307 +} else { +reg303308 := False; +reg303309 = reg303308 +} +var reg303312 Obj +if reg303309 == True { +reg303310 := True; +reg303312 = reg303310 +} else { +reg303311 := False; +reg303312 = reg303311 +} +reg303314 = reg303312 +} else { +reg303313 := False; +reg303314 = reg303313 +} +var reg303317 Obj +if reg303314 == True { +reg303315 := True; +reg303317 = reg303315 +} else { +reg303316 := False; +reg303317 = reg303316 +} +reg303319 = reg303317 +} else { +reg303318 := False; +reg303319 = reg303318 +} +if reg303319 == True { +reg303320 := MakeNumber(2) +__ctx.Return(reg303320) +return +} else { +reg303321 := PrimIsPair(V1892) +var reg303364 Obj +if reg303321 == True { +reg303322 := MakeSymbol("mode") +reg303323 := PrimHead(V1892) +reg303324 := PrimEqual(reg303322, reg303323) +var reg303359 Obj +if reg303324 == True { +reg303325 := PrimTail(V1892) +reg303326 := PrimIsPair(reg303325) +var reg303354 Obj +if reg303326 == True { +reg303327 := PrimTail(V1892) +reg303328 := PrimTail(reg303327) +reg303329 := PrimIsPair(reg303328) +var reg303349 Obj +if reg303329 == True { +reg303330 := MakeSymbol("-") +reg303331 := PrimTail(V1892) +reg303332 := PrimTail(reg303331) +reg303333 := PrimHead(reg303332) +reg303334 := PrimEqual(reg303330, reg303333) +var reg303344 Obj +if reg303334 == True { +reg303335 := Nil; +reg303336 := PrimTail(V1892) +reg303337 := PrimTail(reg303336) +reg303338 := PrimTail(reg303337) +reg303339 := PrimEqual(reg303335, reg303338) +var reg303342 Obj +if reg303339 == True { +reg303340 := True; +reg303342 = reg303340 +} else { +reg303341 := False; +reg303342 = reg303341 +} +reg303344 = reg303342 +} else { +reg303343 := False; +reg303344 = reg303343 +} +var reg303347 Obj +if reg303344 == True { +reg303345 := True; +reg303347 = reg303345 +} else { +reg303346 := False; +reg303347 = reg303346 +} +reg303349 = reg303347 +} else { +reg303348 := False; +reg303349 = reg303348 +} +var reg303352 Obj +if reg303349 == True { +reg303350 := True; +reg303352 = reg303350 +} else { +reg303351 := False; +reg303352 = reg303351 +} +reg303354 = reg303352 +} else { +reg303353 := False; +reg303354 = reg303353 +} +var reg303357 Obj +if reg303354 == True { +reg303355 := True; +reg303357 = reg303355 +} else { +reg303356 := False; +reg303357 = reg303356 +} +reg303359 = reg303357 +} else { +reg303358 := False; +reg303359 = reg303358 +} +var reg303362 Obj +if reg303359 == True { +reg303360 := True; +reg303362 = reg303360 +} else { +reg303361 := False; +reg303362 = reg303361 +} +reg303364 = reg303362 +} else { +reg303363 := False; +reg303364 = reg303363 +} +if reg303364 == True { +reg303365 := MakeNumber(1) +__ctx.Return(reg303365) +return +} else { +reg303366 := MakeSymbol("mode") +reg303367 := MakeSymbol("+") +reg303368 := Nil; +reg303369 := PrimCons(reg303367, reg303368) +reg303370 := PrimCons(V1892, reg303369) +reg303371 := PrimCons(reg303366, reg303370) +__ctx.TailApply(__defun__shen_4complexity, reg303371) +return +} +} +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.complexity", value: __defun__shen_4complexity}) + +__defun__shen_4safe_1product = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1894 := __args[0] +_ = V1894 +reg303373 := Nil; +reg303374 := PrimEqual(reg303373, V1894) +if reg303374 == True { +reg303375 := MakeNumber(1) +__ctx.Return(reg303375) +return +} else { +reg303376 := PrimIsPair(V1894) +if reg303376 == True { +reg303377 := PrimHead(V1894) +reg303378 := PrimTail(V1894) +reg303379 := __e.Call(__defun__shen_4safe_1product, reg303378) +__ctx.TailApply(__defun__shen_4safe_1multiply, reg303377, reg303379) +return +} else { +reg303381 := MakeSymbol("shen.safe-product") +__ctx.TailApply(__defun__shen_4f__error, reg303381) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.safe-product", value: __defun__shen_4safe_1product}) + +__defun__shen_4s_1prolog__literal = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1896 := __args[0] +_ = V1896 +reg303383 := PrimIsPair(V1896) +var reg303416 Obj +if reg303383 == True { +reg303384 := MakeSymbol("is") +reg303385 := PrimHead(V1896) +reg303386 := PrimEqual(reg303384, reg303385) +var reg303411 Obj +if reg303386 == True { +reg303387 := PrimTail(V1896) +reg303388 := PrimIsPair(reg303387) +var reg303406 Obj +if reg303388 == True { +reg303389 := PrimTail(V1896) +reg303390 := PrimTail(reg303389) +reg303391 := PrimIsPair(reg303390) +var reg303401 Obj +if reg303391 == True { +reg303392 := Nil; +reg303393 := PrimTail(V1896) +reg303394 := PrimTail(reg303393) +reg303395 := PrimTail(reg303394) +reg303396 := PrimEqual(reg303392, reg303395) +var reg303399 Obj +if reg303396 == True { +reg303397 := True; +reg303399 = reg303397 +} else { +reg303398 := False; +reg303399 = reg303398 +} +reg303401 = reg303399 +} else { +reg303400 := False; +reg303401 = reg303400 +} +var reg303404 Obj +if reg303401 == True { +reg303402 := True; +reg303404 = reg303402 +} else { +reg303403 := False; +reg303404 = reg303403 +} +reg303406 = reg303404 +} else { +reg303405 := False; +reg303406 = reg303405 +} +var reg303409 Obj +if reg303406 == True { +reg303407 := True; +reg303409 = reg303407 +} else { +reg303408 := False; +reg303409 = reg303408 +} +reg303411 = reg303409 +} else { +reg303410 := False; +reg303411 = reg303410 +} +var reg303414 Obj +if reg303411 == True { +reg303412 := True; +reg303414 = reg303412 +} else { +reg303413 := False; +reg303414 = reg303413 +} +reg303416 = reg303414 +} else { +reg303415 := False; +reg303416 = reg303415 +} +if reg303416 == True { +reg303417 := MakeSymbol("bind") +reg303418 := PrimTail(V1896) +reg303419 := PrimHead(reg303418) +reg303420 := PrimTail(V1896) +reg303421 := PrimTail(reg303420) +reg303422 := PrimHead(reg303421) +reg303423 := __e.Call(__defun__shen_4insert__deref, reg303422) +reg303424 := Nil; +reg303425 := PrimCons(reg303423, reg303424) +reg303426 := PrimCons(reg303419, reg303425) +reg303427 := PrimCons(reg303417, reg303426) +__ctx.Return(reg303427) +return +} else { +reg303428 := PrimIsPair(V1896) +var reg303452 Obj +if reg303428 == True { +reg303429 := MakeSymbol("when") +reg303430 := PrimHead(V1896) +reg303431 := PrimEqual(reg303429, reg303430) +var reg303447 Obj +if reg303431 == True { +reg303432 := PrimTail(V1896) +reg303433 := PrimIsPair(reg303432) +var reg303442 Obj +if reg303433 == True { +reg303434 := Nil; +reg303435 := PrimTail(V1896) +reg303436 := PrimTail(reg303435) +reg303437 := PrimEqual(reg303434, reg303436) +var reg303440 Obj +if reg303437 == True { +reg303438 := True; +reg303440 = reg303438 +} else { +reg303439 := False; +reg303440 = reg303439 +} +reg303442 = reg303440 +} else { +reg303441 := False; +reg303442 = reg303441 +} +var reg303445 Obj +if reg303442 == True { +reg303443 := True; +reg303445 = reg303443 +} else { +reg303444 := False; +reg303445 = reg303444 +} +reg303447 = reg303445 +} else { +reg303446 := False; +reg303447 = reg303446 +} +var reg303450 Obj +if reg303447 == True { +reg303448 := True; +reg303450 = reg303448 +} else { +reg303449 := False; +reg303450 = reg303449 +} +reg303452 = reg303450 +} else { +reg303451 := False; +reg303452 = reg303451 +} +if reg303452 == True { +reg303453 := MakeSymbol("fwhen") +reg303454 := PrimTail(V1896) +reg303455 := PrimHead(reg303454) +reg303456 := __e.Call(__defun__shen_4insert__deref, reg303455) +reg303457 := Nil; +reg303458 := PrimCons(reg303456, reg303457) +reg303459 := PrimCons(reg303453, reg303458) +__ctx.Return(reg303459) +return +} else { +reg303460 := PrimIsPair(V1896) +var reg303493 Obj +if reg303460 == True { +reg303461 := MakeSymbol("bind") +reg303462 := PrimHead(V1896) +reg303463 := PrimEqual(reg303461, reg303462) +var reg303488 Obj +if reg303463 == True { +reg303464 := PrimTail(V1896) +reg303465 := PrimIsPair(reg303464) +var reg303483 Obj +if reg303465 == True { +reg303466 := PrimTail(V1896) +reg303467 := PrimTail(reg303466) +reg303468 := PrimIsPair(reg303467) +var reg303478 Obj +if reg303468 == True { +reg303469 := Nil; +reg303470 := PrimTail(V1896) +reg303471 := PrimTail(reg303470) +reg303472 := PrimTail(reg303471) +reg303473 := PrimEqual(reg303469, reg303472) +var reg303476 Obj +if reg303473 == True { +reg303474 := True; +reg303476 = reg303474 +} else { +reg303475 := False; +reg303476 = reg303475 +} +reg303478 = reg303476 +} else { +reg303477 := False; +reg303478 = reg303477 +} +var reg303481 Obj +if reg303478 == True { +reg303479 := True; +reg303481 = reg303479 +} else { +reg303480 := False; +reg303481 = reg303480 +} +reg303483 = reg303481 +} else { +reg303482 := False; +reg303483 = reg303482 +} +var reg303486 Obj +if reg303483 == True { +reg303484 := True; +reg303486 = reg303484 +} else { +reg303485 := False; +reg303486 = reg303485 +} +reg303488 = reg303486 +} else { +reg303487 := False; +reg303488 = reg303487 +} +var reg303491 Obj +if reg303488 == True { +reg303489 := True; +reg303491 = reg303489 +} else { +reg303490 := False; +reg303491 = reg303490 +} +reg303493 = reg303491 +} else { +reg303492 := False; +reg303493 = reg303492 +} +if reg303493 == True { +reg303494 := MakeSymbol("bind") +reg303495 := PrimTail(V1896) +reg303496 := PrimHead(reg303495) +reg303497 := PrimTail(V1896) +reg303498 := PrimTail(reg303497) +reg303499 := PrimHead(reg303498) +reg303500 := __e.Call(__defun__shen_4insert__lazyderef, reg303499) +reg303501 := Nil; +reg303502 := PrimCons(reg303500, reg303501) +reg303503 := PrimCons(reg303496, reg303502) +reg303504 := PrimCons(reg303494, reg303503) +__ctx.Return(reg303504) +return +} else { +reg303505 := PrimIsPair(V1896) +var reg303529 Obj +if reg303505 == True { +reg303506 := MakeSymbol("fwhen") +reg303507 := PrimHead(V1896) +reg303508 := PrimEqual(reg303506, reg303507) +var reg303524 Obj +if reg303508 == True { +reg303509 := PrimTail(V1896) +reg303510 := PrimIsPair(reg303509) +var reg303519 Obj +if reg303510 == True { +reg303511 := Nil; +reg303512 := PrimTail(V1896) +reg303513 := PrimTail(reg303512) +reg303514 := PrimEqual(reg303511, reg303513) +var reg303517 Obj +if reg303514 == True { +reg303515 := True; +reg303517 = reg303515 +} else { +reg303516 := False; +reg303517 = reg303516 +} +reg303519 = reg303517 +} else { +reg303518 := False; +reg303519 = reg303518 +} +var reg303522 Obj +if reg303519 == True { +reg303520 := True; +reg303522 = reg303520 +} else { +reg303521 := False; +reg303522 = reg303521 +} +reg303524 = reg303522 +} else { +reg303523 := False; +reg303524 = reg303523 +} +var reg303527 Obj +if reg303524 == True { +reg303525 := True; +reg303527 = reg303525 +} else { +reg303526 := False; +reg303527 = reg303526 +} +reg303529 = reg303527 +} else { +reg303528 := False; +reg303529 = reg303528 +} +if reg303529 == True { +reg303530 := MakeSymbol("fwhen") +reg303531 := PrimTail(V1896) +reg303532 := PrimHead(reg303531) +reg303533 := __e.Call(__defun__shen_4insert__lazyderef, reg303532) +reg303534 := Nil; +reg303535 := PrimCons(reg303533, reg303534) +reg303536 := PrimCons(reg303530, reg303535) +__ctx.Return(reg303536) +return +} else { +reg303537 := PrimIsPair(V1896) +if reg303537 == True { +__ctx.Return(V1896) +return +} else { +reg303538 := MakeSymbol("shen.s-prolog_literal") +__ctx.TailApply(__defun__shen_4f__error, reg303538) +return +} +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.s-prolog_literal", value: __defun__shen_4s_1prolog__literal}) + +__defun__shen_4insert__deref = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1898 := __args[0] +_ = V1898 +reg303540 := PrimIsVariable(V1898) +if reg303540 == True { +reg303541 := MakeSymbol("shen.deref") +reg303542 := MakeSymbol("ProcessN") +reg303543 := Nil; +reg303544 := PrimCons(reg303542, reg303543) +reg303545 := PrimCons(V1898, reg303544) +reg303546 := PrimCons(reg303541, reg303545) +__ctx.Return(reg303546) +return +} else { +reg303547 := PrimIsPair(V1898) +if reg303547 == True { +reg303548 := PrimHead(V1898) +reg303549 := __e.Call(__defun__shen_4insert__deref, reg303548) +reg303550 := PrimTail(V1898) +reg303551 := __e.Call(__defun__shen_4insert__deref, reg303550) +reg303552 := PrimCons(reg303549, reg303551) +__ctx.Return(reg303552) +return +} else { +__ctx.Return(V1898) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.insert_deref", value: __defun__shen_4insert__deref}) + +__defun__shen_4insert__lazyderef = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1900 := __args[0] +_ = V1900 +reg303553 := PrimIsVariable(V1900) +if reg303553 == True { +reg303554 := MakeSymbol("shen.lazyderef") +reg303555 := MakeSymbol("ProcessN") +reg303556 := Nil; +reg303557 := PrimCons(reg303555, reg303556) +reg303558 := PrimCons(V1900, reg303557) +reg303559 := PrimCons(reg303554, reg303558) +__ctx.Return(reg303559) +return +} else { +reg303560 := PrimIsPair(V1900) +if reg303560 == True { +reg303561 := PrimHead(V1900) +reg303562 := __e.Call(__defun__shen_4insert__lazyderef, reg303561) +reg303563 := PrimTail(V1900) +reg303564 := __e.Call(__defun__shen_4insert__lazyderef, reg303563) +reg303565 := PrimCons(reg303562, reg303564) +__ctx.Return(reg303565) +return +} else { +__ctx.Return(V1900) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.insert_lazyderef", value: __defun__shen_4insert__lazyderef}) + +__defun__shen_4group__clauses = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1902 := __args[0] +_ = V1902 +reg303566 := Nil; +reg303567 := PrimEqual(reg303566, V1902) +if reg303567 == True { +reg303568 := Nil; +__ctx.Return(reg303568) +return +} else { +reg303569 := PrimIsPair(V1902) +if reg303569 == True { +reg303570 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +reg303571 := PrimHead(V1902) +__ctx.TailApply(__defun__shen_4same__predicate_2, reg303571, X) +return +}, 1) +reg303573 := __e.Call(__defun__shen_4collect, reg303570, V1902) +Group := reg303573 +_ = Group +reg303574 := __e.Call(__defun__difference, V1902, Group) +Rest := reg303574 +_ = Rest +reg303575 := __e.Call(__defun__shen_4group__clauses, Rest) +reg303576 := PrimCons(Group, reg303575) +__ctx.Return(reg303576) +return +} else { +reg303577 := MakeSymbol("shen.group_clauses") +__ctx.TailApply(__defun__shen_4f__error, reg303577) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.group_clauses", value: __defun__shen_4group__clauses}) + +__defun__shen_4collect = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1907 := __args[0] +_ = V1907 +V1908 := __args[1] +_ = V1908 +reg303579 := Nil; +reg303580 := PrimEqual(reg303579, V1908) +if reg303580 == True { +reg303581 := Nil; +__ctx.Return(reg303581) +return +} else { +reg303582 := PrimIsPair(V1908) +if reg303582 == True { +reg303583 := PrimHead(V1908) +reg303584 := __e.Call(V1907, reg303583) +if reg303584 == True { +reg303585 := PrimHead(V1908) +reg303586 := PrimTail(V1908) +reg303587 := __e.Call(__defun__shen_4collect, V1907, reg303586) +reg303588 := PrimCons(reg303585, reg303587) +__ctx.Return(reg303588) +return +} else { +reg303589 := PrimTail(V1908) +__ctx.TailApply(__defun__shen_4collect, V1907, reg303589) +return +} +} else { +reg303591 := MakeSymbol("shen.collect") +__ctx.TailApply(__defun__shen_4f__error, reg303591) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.collect", value: __defun__shen_4collect}) + +__defun__shen_4same__predicate_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1927 := __args[0] +_ = V1927 +V1928 := __args[1] +_ = V1928 +reg303593 := PrimIsPair(V1927) +var reg303613 Obj +if reg303593 == True { +reg303594 := PrimHead(V1927) +reg303595 := PrimIsPair(reg303594) +var reg303608 Obj +if reg303595 == True { +reg303596 := PrimIsPair(V1928) +var reg303603 Obj +if reg303596 == True { +reg303597 := PrimHead(V1928) +reg303598 := PrimIsPair(reg303597) +var reg303601 Obj +if reg303598 == True { +reg303599 := True; +reg303601 = reg303599 +} else { +reg303600 := False; +reg303601 = reg303600 +} +reg303603 = reg303601 +} else { +reg303602 := False; +reg303603 = reg303602 +} +var reg303606 Obj +if reg303603 == True { +reg303604 := True; +reg303606 = reg303604 +} else { +reg303605 := False; +reg303606 = reg303605 +} +reg303608 = reg303606 +} else { +reg303607 := False; +reg303608 = reg303607 +} +var reg303611 Obj +if reg303608 == True { +reg303609 := True; +reg303611 = reg303609 +} else { +reg303610 := False; +reg303611 = reg303610 +} +reg303613 = reg303611 +} else { +reg303612 := False; +reg303613 = reg303612 +} +if reg303613 == True { +reg303614 := PrimHead(V1927) +reg303615 := PrimHead(reg303614) +reg303616 := PrimHead(V1928) +reg303617 := PrimHead(reg303616) +reg303618 := PrimEqual(reg303615, reg303617) +__ctx.Return(reg303618) +return +} else { +reg303619 := MakeSymbol("shen.same_predicate?") +__ctx.TailApply(__defun__shen_4f__error, reg303619) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.same_predicate?", value: __defun__shen_4same__predicate_2}) + +__defun__shen_4compile__prolog__procedure = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1930 := __args[0] +_ = V1930 +reg303621 := __e.Call(__defun__shen_4procedure__name, V1930) +F := reg303621 +_ = F +reg303622 := __e.Call(__defun__shen_4clauses_1to_1shen, F, V1930) +Shen := reg303622 +_ = Shen +__ctx.Return(Shen) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.compile_prolog_procedure", value: __defun__shen_4compile__prolog__procedure}) + +__defun__shen_4procedure__name = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1944 := __args[0] +_ = V1944 +reg303623 := PrimIsPair(V1944) +var reg303638 Obj +if reg303623 == True { +reg303624 := PrimHead(V1944) +reg303625 := PrimIsPair(reg303624) +var reg303633 Obj +if reg303625 == True { +reg303626 := PrimHead(V1944) +reg303627 := PrimHead(reg303626) +reg303628 := PrimIsPair(reg303627) +var reg303631 Obj +if reg303628 == True { +reg303629 := True; +reg303631 = reg303629 +} else { +reg303630 := False; +reg303631 = reg303630 +} +reg303633 = reg303631 +} else { +reg303632 := False; +reg303633 = reg303632 +} +var reg303636 Obj +if reg303633 == True { +reg303634 := True; +reg303636 = reg303634 +} else { +reg303635 := False; +reg303636 = reg303635 +} +reg303638 = reg303636 +} else { +reg303637 := False; +reg303638 = reg303637 +} +if reg303638 == True { +reg303639 := PrimHead(V1944) +reg303640 := PrimHead(reg303639) +reg303641 := PrimHead(reg303640) +__ctx.Return(reg303641) +return +} else { +reg303642 := MakeSymbol("shen.procedure_name") +__ctx.TailApply(__defun__shen_4f__error, reg303642) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.procedure_name", value: __defun__shen_4procedure__name}) + +__defun__shen_4clauses_1to_1shen = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1947 := __args[0] +_ = V1947 +V1948 := __args[1] +_ = V1948 +reg303644 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4linearise_1clause, X) +return +}, 1) +reg303646 := __e.Call(__defun__map, reg303644, V1948) +Linear := reg303646 +_ = Linear +reg303647 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__head, X) +return +}, 1) +reg303649 := __e.Call(__defun__map, reg303647, V1948) +reg303650 := __e.Call(__defun__shen_4prolog_1aritycheck, V1947, reg303649) +Arity := reg303650 +_ = Arity +reg303651 := __e.Call(__defun__shen_4parameters, Arity) +Parameters := reg303651 +_ = Parameters +reg303652 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4aum, X, Parameters) +return +}, 1) +reg303654 := __e.Call(__defun__map, reg303652, Linear) +AUM__instructions := reg303654 +_ = AUM__instructions +reg303655 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4aum__to__shen, X) +return +}, 1) +reg303657 := __e.Call(__defun__map, reg303655, AUM__instructions) +reg303658 := __e.Call(__defun__shen_4nest_1disjunct, reg303657) +reg303659 := __e.Call(__defun__shen_4catch_1cut, reg303658) +Code := reg303659 +_ = Code +reg303660 := MakeSymbol("define") +reg303661 := MakeSymbol("ProcessN") +reg303662 := MakeSymbol("Continuation") +reg303663 := Nil; +reg303664 := PrimCons(reg303662, reg303663) +reg303665 := PrimCons(reg303661, reg303664) +reg303666 := MakeSymbol("->") +reg303667 := Nil; +reg303668 := PrimCons(Code, reg303667) +reg303669 := PrimCons(reg303666, reg303668) +reg303670 := __e.Call(__defun__append, reg303665, reg303669) +reg303671 := __e.Call(__defun__append, Parameters, reg303670) +reg303672 := PrimCons(V1947, reg303671) +reg303673 := PrimCons(reg303660, reg303672) +ShenDef := reg303673 +_ = ShenDef +__ctx.Return(ShenDef) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.clauses-to-shen", value: __defun__shen_4clauses_1to_1shen}) + +__defun__shen_4catch_1cut = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1950 := __args[0] +_ = V1950 +reg303674 := MakeSymbol("cut") +reg303675 := __e.Call(__defun__shen_4occurs_2, reg303674, V1950) +reg303676 := PrimNot(reg303675) +if reg303676 == True { +__ctx.Return(V1950) +return +} else { +reg303677 := MakeSymbol("let") +reg303678 := MakeSymbol("Throwcontrol") +reg303679 := MakeSymbol("shen.catchpoint") +reg303680 := Nil; +reg303681 := PrimCons(reg303679, reg303680) +reg303682 := MakeSymbol("shen.cutpoint") +reg303683 := MakeSymbol("Throwcontrol") +reg303684 := Nil; +reg303685 := PrimCons(V1950, reg303684) +reg303686 := PrimCons(reg303683, reg303685) +reg303687 := PrimCons(reg303682, reg303686) +reg303688 := Nil; +reg303689 := PrimCons(reg303687, reg303688) +reg303690 := PrimCons(reg303681, reg303689) +reg303691 := PrimCons(reg303678, reg303690) +reg303692 := PrimCons(reg303677, reg303691) +__ctx.Return(reg303692) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.catch-cut", value: __defun__shen_4catch_1cut}) + +__defun__shen_4catchpoint = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg303693 := MakeSymbol("shen.*catch*") +reg303694 := MakeNumber(1) +reg303695 := MakeSymbol("shen.*catch*") +reg303696 := PrimValue(reg303695) +reg303697 := PrimNumberAdd(reg303694, reg303696) +reg303698 := PrimSet(reg303693, reg303697) +__ctx.Return(reg303698) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.catchpoint", value: __defun__shen_4catchpoint}) + +__defun__shen_4cutpoint = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1958 := __args[0] +_ = V1958 +V1959 := __args[1] +_ = V1959 +reg303699 := PrimEqual(V1959, V1958) +if reg303699 == True { +reg303700 := False; +__ctx.Return(reg303700) +return +} else { +__ctx.Return(V1959) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.cutpoint", value: __defun__shen_4cutpoint}) + +__defun__shen_4nest_1disjunct = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1961 := __args[0] +_ = V1961 +reg303701 := PrimIsPair(V1961) +var reg303709 Obj +if reg303701 == True { +reg303702 := Nil; +reg303703 := PrimTail(V1961) +reg303704 := PrimEqual(reg303702, reg303703) +var reg303707 Obj +if reg303704 == True { +reg303705 := True; +reg303707 = reg303705 +} else { +reg303706 := False; +reg303707 = reg303706 +} +reg303709 = reg303707 +} else { +reg303708 := False; +reg303709 = reg303708 +} +if reg303709 == True { +reg303710 := PrimHead(V1961) +__ctx.Return(reg303710) +return +} else { +reg303711 := PrimIsPair(V1961) +if reg303711 == True { +reg303712 := PrimHead(V1961) +reg303713 := PrimTail(V1961) +reg303714 := __e.Call(__defun__shen_4nest_1disjunct, reg303713) +__ctx.TailApply(__defun__shen_4lisp_1or, reg303712, reg303714) +return +} else { +reg303716 := MakeSymbol("shen.nest-disjunct") +__ctx.TailApply(__defun__shen_4f__error, reg303716) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.nest-disjunct", value: __defun__shen_4nest_1disjunct}) + +__defun__shen_4lisp_1or = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1964 := __args[0] +_ = V1964 +V1965 := __args[1] +_ = V1965 +reg303718 := MakeSymbol("let") +reg303719 := MakeSymbol("Case") +reg303720 := MakeSymbol("if") +reg303721 := MakeSymbol("=") +reg303722 := MakeSymbol("Case") +reg303723 := False; +reg303724 := Nil; +reg303725 := PrimCons(reg303723, reg303724) +reg303726 := PrimCons(reg303722, reg303725) +reg303727 := PrimCons(reg303721, reg303726) +reg303728 := MakeSymbol("Case") +reg303729 := Nil; +reg303730 := PrimCons(reg303728, reg303729) +reg303731 := PrimCons(V1965, reg303730) +reg303732 := PrimCons(reg303727, reg303731) +reg303733 := PrimCons(reg303720, reg303732) +reg303734 := Nil; +reg303735 := PrimCons(reg303733, reg303734) +reg303736 := PrimCons(V1964, reg303735) +reg303737 := PrimCons(reg303719, reg303736) +reg303738 := PrimCons(reg303718, reg303737) +__ctx.Return(reg303738) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.lisp-or", value: __defun__shen_4lisp_1or}) + +__defun__shen_4prolog_1aritycheck = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1970 := __args[0] +_ = V1970 +V1971 := __args[1] +_ = V1971 +reg303739 := PrimIsPair(V1971) +var reg303747 Obj +if reg303739 == True { +reg303740 := Nil; +reg303741 := PrimTail(V1971) +reg303742 := PrimEqual(reg303740, reg303741) +var reg303745 Obj +if reg303742 == True { +reg303743 := True; +reg303745 = reg303743 +} else { +reg303744 := False; +reg303745 = reg303744 +} +reg303747 = reg303745 +} else { +reg303746 := False; +reg303747 = reg303746 +} +if reg303747 == True { +reg303748 := PrimHead(V1971) +reg303749 := __e.Call(__defun__length, reg303748) +reg303750 := MakeNumber(1) +reg303751 := PrimNumberSubtract(reg303749, reg303750) +__ctx.Return(reg303751) +return +} else { +reg303752 := PrimIsPair(V1971) +var reg303759 Obj +if reg303752 == True { +reg303753 := PrimTail(V1971) +reg303754 := PrimIsPair(reg303753) +var reg303757 Obj +if reg303754 == True { +reg303755 := True; +reg303757 = reg303755 +} else { +reg303756 := False; +reg303757 = reg303756 +} +reg303759 = reg303757 +} else { +reg303758 := False; +reg303759 = reg303758 +} +if reg303759 == True { +reg303760 := PrimHead(V1971) +reg303761 := __e.Call(__defun__length, reg303760) +reg303762 := PrimTail(V1971) +reg303763 := PrimHead(reg303762) +reg303764 := __e.Call(__defun__length, reg303763) +reg303765 := PrimEqual(reg303761, reg303764) +if reg303765 == True { +reg303766 := PrimTail(V1971) +__ctx.TailApply(__defun__shen_4prolog_1aritycheck, V1970, reg303766) +return +} else { +reg303768 := MakeString("arity error in prolog procedure ") +reg303769 := Nil; +reg303770 := PrimCons(V1970, reg303769) +reg303771 := MakeString("\n") +reg303772 := MakeSymbol("shen.a") +reg303773 := __e.Call(__defun__shen_4app, reg303770, reg303771, reg303772) +reg303774 := PrimStringConcat(reg303768, reg303773) +reg303775 := PrimSimpleError(reg303774) +__ctx.Return(reg303775) +return +} +} else { +reg303776 := MakeSymbol("shen.prolog-aritycheck") +__ctx.TailApply(__defun__shen_4f__error, reg303776) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.prolog-aritycheck", value: __defun__shen_4prolog_1aritycheck}) + +__defun__shen_4linearise_1clause = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1973 := __args[0] +_ = V1973 +reg303778 := PrimIsPair(V1973) +var reg303812 Obj +if reg303778 == True { +reg303779 := PrimTail(V1973) +reg303780 := PrimIsPair(reg303779) +var reg303807 Obj +if reg303780 == True { +reg303781 := MakeSymbol(":-") +reg303782 := PrimTail(V1973) +reg303783 := PrimHead(reg303782) +reg303784 := PrimEqual(reg303781, reg303783) +var reg303802 Obj +if reg303784 == True { +reg303785 := PrimTail(V1973) +reg303786 := PrimTail(reg303785) +reg303787 := PrimIsPair(reg303786) +var reg303797 Obj +if reg303787 == True { +reg303788 := Nil; +reg303789 := PrimTail(V1973) +reg303790 := PrimTail(reg303789) +reg303791 := PrimTail(reg303790) +reg303792 := PrimEqual(reg303788, reg303791) +var reg303795 Obj +if reg303792 == True { +reg303793 := True; +reg303795 = reg303793 +} else { +reg303794 := False; +reg303795 = reg303794 +} +reg303797 = reg303795 +} else { +reg303796 := False; +reg303797 = reg303796 +} +var reg303800 Obj +if reg303797 == True { +reg303798 := True; +reg303800 = reg303798 +} else { +reg303799 := False; +reg303800 = reg303799 +} +reg303802 = reg303800 +} else { +reg303801 := False; +reg303802 = reg303801 +} +var reg303805 Obj +if reg303802 == True { +reg303803 := True; +reg303805 = reg303803 +} else { +reg303804 := False; +reg303805 = reg303804 +} +reg303807 = reg303805 +} else { +reg303806 := False; +reg303807 = reg303806 +} +var reg303810 Obj +if reg303807 == True { +reg303808 := True; +reg303810 = reg303808 +} else { +reg303809 := False; +reg303810 = reg303809 +} +reg303812 = reg303810 +} else { +reg303811 := False; +reg303812 = reg303811 +} +if reg303812 == True { +reg303813 := PrimHead(V1973) +reg303814 := PrimTail(V1973) +reg303815 := PrimTail(reg303814) +reg303816 := PrimCons(reg303813, reg303815) +reg303817 := __e.Call(__defun__shen_4linearise, reg303816) +Linear := reg303817 +_ = Linear +__ctx.TailApply(__defun__shen_4clause__form, Linear) +return +} else { +reg303819 := MakeSymbol("shen.linearise-clause") +__ctx.TailApply(__defun__shen_4f__error, reg303819) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.linearise-clause", value: __defun__shen_4linearise_1clause}) + +__defun__shen_4clause__form = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1975 := __args[0] +_ = V1975 +reg303821 := PrimIsPair(V1975) +var reg303837 Obj +if reg303821 == True { +reg303822 := PrimTail(V1975) +reg303823 := PrimIsPair(reg303822) +var reg303832 Obj +if reg303823 == True { +reg303824 := Nil; +reg303825 := PrimTail(V1975) +reg303826 := PrimTail(reg303825) +reg303827 := PrimEqual(reg303824, reg303826) +var reg303830 Obj +if reg303827 == True { +reg303828 := True; +reg303830 = reg303828 +} else { +reg303829 := False; +reg303830 = reg303829 +} +reg303832 = reg303830 +} else { +reg303831 := False; +reg303832 = reg303831 +} +var reg303835 Obj +if reg303832 == True { +reg303833 := True; +reg303835 = reg303833 +} else { +reg303834 := False; +reg303835 = reg303834 +} +reg303837 = reg303835 +} else { +reg303836 := False; +reg303837 = reg303836 +} +if reg303837 == True { +reg303838 := PrimHead(V1975) +reg303839 := __e.Call(__defun__shen_4explicit__modes, reg303838) +reg303840 := MakeSymbol(":-") +reg303841 := PrimTail(V1975) +reg303842 := PrimHead(reg303841) +reg303843 := __e.Call(__defun__shen_4cf__help, reg303842) +reg303844 := Nil; +reg303845 := PrimCons(reg303843, reg303844) +reg303846 := PrimCons(reg303840, reg303845) +reg303847 := PrimCons(reg303839, reg303846) +__ctx.Return(reg303847) +return +} else { +reg303848 := MakeSymbol("shen.clause_form") +__ctx.TailApply(__defun__shen_4f__error, reg303848) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.clause_form", value: __defun__shen_4clause__form}) + +__defun__shen_4explicit__modes = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1977 := __args[0] +_ = V1977 +reg303850 := PrimIsPair(V1977) +if reg303850 == True { +reg303851 := PrimHead(V1977) +reg303852 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4em__help, X) +return +}, 1) +reg303854 := PrimTail(V1977) +reg303855 := __e.Call(__defun__map, reg303852, reg303854) +reg303856 := PrimCons(reg303851, reg303855) +__ctx.Return(reg303856) +return +} else { +reg303857 := MakeSymbol("shen.explicit_modes") +__ctx.TailApply(__defun__shen_4f__error, reg303857) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.explicit_modes", value: __defun__shen_4explicit__modes}) + +__defun__shen_4em__help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1979 := __args[0] +_ = V1979 +reg303859 := PrimIsPair(V1979) +var reg303892 Obj +if reg303859 == True { +reg303860 := MakeSymbol("mode") +reg303861 := PrimHead(V1979) +reg303862 := PrimEqual(reg303860, reg303861) +var reg303887 Obj +if reg303862 == True { +reg303863 := PrimTail(V1979) +reg303864 := PrimIsPair(reg303863) +var reg303882 Obj +if reg303864 == True { +reg303865 := PrimTail(V1979) +reg303866 := PrimTail(reg303865) +reg303867 := PrimIsPair(reg303866) +var reg303877 Obj +if reg303867 == True { +reg303868 := Nil; +reg303869 := PrimTail(V1979) +reg303870 := PrimTail(reg303869) +reg303871 := PrimTail(reg303870) +reg303872 := PrimEqual(reg303868, reg303871) +var reg303875 Obj +if reg303872 == True { +reg303873 := True; +reg303875 = reg303873 +} else { +reg303874 := False; +reg303875 = reg303874 +} +reg303877 = reg303875 +} else { +reg303876 := False; +reg303877 = reg303876 +} +var reg303880 Obj +if reg303877 == True { +reg303878 := True; +reg303880 = reg303878 +} else { +reg303879 := False; +reg303880 = reg303879 +} +reg303882 = reg303880 +} else { +reg303881 := False; +reg303882 = reg303881 +} +var reg303885 Obj +if reg303882 == True { +reg303883 := True; +reg303885 = reg303883 +} else { +reg303884 := False; +reg303885 = reg303884 +} +reg303887 = reg303885 +} else { +reg303886 := False; +reg303887 = reg303886 +} +var reg303890 Obj +if reg303887 == True { +reg303888 := True; +reg303890 = reg303888 +} else { +reg303889 := False; +reg303890 = reg303889 +} +reg303892 = reg303890 +} else { +reg303891 := False; +reg303892 = reg303891 +} +if reg303892 == True { +__ctx.Return(V1979) +return +} else { +reg303893 := MakeSymbol("mode") +reg303894 := MakeSymbol("+") +reg303895 := Nil; +reg303896 := PrimCons(reg303894, reg303895) +reg303897 := PrimCons(V1979, reg303896) +reg303898 := PrimCons(reg303893, reg303897) +__ctx.Return(reg303898) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.em_help", value: __defun__shen_4em__help}) + +__defun__shen_4cf__help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1981 := __args[0] +_ = V1981 +reg303899 := PrimIsPair(V1981) +var reg303981 Obj +if reg303899 == True { +reg303900 := MakeSymbol("where") +reg303901 := PrimHead(V1981) +reg303902 := PrimEqual(reg303900, reg303901) +var reg303976 Obj +if reg303902 == True { +reg303903 := PrimTail(V1981) +reg303904 := PrimIsPair(reg303903) +var reg303971 Obj +if reg303904 == True { +reg303905 := PrimTail(V1981) +reg303906 := PrimHead(reg303905) +reg303907 := PrimIsPair(reg303906) +var reg303966 Obj +if reg303907 == True { +reg303908 := MakeSymbol("=") +reg303909 := PrimTail(V1981) +reg303910 := PrimHead(reg303909) +reg303911 := PrimHead(reg303910) +reg303912 := PrimEqual(reg303908, reg303911) +var reg303961 Obj +if reg303912 == True { +reg303913 := PrimTail(V1981) +reg303914 := PrimHead(reg303913) +reg303915 := PrimTail(reg303914) +reg303916 := PrimIsPair(reg303915) +var reg303956 Obj +if reg303916 == True { +reg303917 := PrimTail(V1981) +reg303918 := PrimHead(reg303917) +reg303919 := PrimTail(reg303918) +reg303920 := PrimTail(reg303919) +reg303921 := PrimIsPair(reg303920) +var reg303951 Obj +if reg303921 == True { +reg303922 := Nil; +reg303923 := PrimTail(V1981) +reg303924 := PrimHead(reg303923) +reg303925 := PrimTail(reg303924) +reg303926 := PrimTail(reg303925) +reg303927 := PrimTail(reg303926) +reg303928 := PrimEqual(reg303922, reg303927) +var reg303946 Obj +if reg303928 == True { +reg303929 := PrimTail(V1981) +reg303930 := PrimTail(reg303929) +reg303931 := PrimIsPair(reg303930) +var reg303941 Obj +if reg303931 == True { +reg303932 := Nil; +reg303933 := PrimTail(V1981) +reg303934 := PrimTail(reg303933) +reg303935 := PrimTail(reg303934) +reg303936 := PrimEqual(reg303932, reg303935) +var reg303939 Obj +if reg303936 == True { +reg303937 := True; +reg303939 = reg303937 +} else { +reg303938 := False; +reg303939 = reg303938 +} +reg303941 = reg303939 +} else { +reg303940 := False; +reg303941 = reg303940 +} +var reg303944 Obj +if reg303941 == True { +reg303942 := True; +reg303944 = reg303942 +} else { +reg303943 := False; +reg303944 = reg303943 +} +reg303946 = reg303944 +} else { +reg303945 := False; +reg303946 = reg303945 +} +var reg303949 Obj +if reg303946 == True { +reg303947 := True; +reg303949 = reg303947 +} else { +reg303948 := False; +reg303949 = reg303948 +} +reg303951 = reg303949 +} else { +reg303950 := False; +reg303951 = reg303950 +} +var reg303954 Obj +if reg303951 == True { +reg303952 := True; +reg303954 = reg303952 +} else { +reg303953 := False; +reg303954 = reg303953 +} +reg303956 = reg303954 +} else { +reg303955 := False; +reg303956 = reg303955 +} +var reg303959 Obj +if reg303956 == True { +reg303957 := True; +reg303959 = reg303957 +} else { +reg303958 := False; +reg303959 = reg303958 +} +reg303961 = reg303959 +} else { +reg303960 := False; +reg303961 = reg303960 +} +var reg303964 Obj +if reg303961 == True { +reg303962 := True; +reg303964 = reg303962 +} else { +reg303963 := False; +reg303964 = reg303963 +} +reg303966 = reg303964 +} else { +reg303965 := False; +reg303966 = reg303965 +} +var reg303969 Obj +if reg303966 == True { +reg303967 := True; +reg303969 = reg303967 +} else { +reg303968 := False; +reg303969 = reg303968 +} +reg303971 = reg303969 +} else { +reg303970 := False; +reg303971 = reg303970 +} +var reg303974 Obj +if reg303971 == True { +reg303972 := True; +reg303974 = reg303972 +} else { +reg303973 := False; +reg303974 = reg303973 +} +reg303976 = reg303974 +} else { +reg303975 := False; +reg303976 = reg303975 +} +var reg303979 Obj +if reg303976 == True { +reg303977 := True; +reg303979 = reg303977 +} else { +reg303978 := False; +reg303979 = reg303978 +} +reg303981 = reg303979 +} else { +reg303980 := False; +reg303981 = reg303980 +} +if reg303981 == True { +reg303982 := MakeSymbol("shen.*occurs*") +reg303983 := PrimValue(reg303982) +var reg303986 Obj +if reg303983 == True { +reg303984 := MakeSymbol("unify!") +reg303986 = reg303984 +} else { +reg303985 := MakeSymbol("unify") +reg303986 = reg303985 +} +reg303987 := PrimTail(V1981) +reg303988 := PrimHead(reg303987) +reg303989 := PrimTail(reg303988) +reg303990 := PrimCons(reg303986, reg303989) +reg303991 := PrimTail(V1981) +reg303992 := PrimTail(reg303991) +reg303993 := PrimHead(reg303992) +reg303994 := __e.Call(__defun__shen_4cf__help, reg303993) +reg303995 := PrimCons(reg303990, reg303994) +__ctx.Return(reg303995) +return +} else { +__ctx.Return(V1981) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.cf_help", value: __defun__shen_4cf__help}) + +__defun__occurs_1check = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1987 := __args[0] +_ = V1987 +reg303996 := MakeSymbol("+") +reg303997 := PrimEqual(reg303996, V1987) +if reg303997 == True { +reg303998 := MakeSymbol("shen.*occurs*") +reg303999 := True; +reg304000 := PrimSet(reg303998, reg303999) +__ctx.Return(reg304000) +return +} else { +reg304001 := MakeSymbol("-") +reg304002 := PrimEqual(reg304001, V1987) +if reg304002 == True { +reg304003 := MakeSymbol("shen.*occurs*") +reg304004 := False; +reg304005 := PrimSet(reg304003, reg304004) +__ctx.Return(reg304005) +return +} else { +reg304006 := MakeString("occurs-check expects + or -\n") +reg304007 := PrimSimpleError(reg304006) +__ctx.Return(reg304007) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "occurs-check", value: __defun__occurs_1check}) + +__defun__shen_4aum = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1990 := __args[0] +_ = V1990 +V1991 := __args[1] +_ = V1991 +reg304008 := PrimIsPair(V1990) +var reg304049 Obj +if reg304008 == True { +reg304009 := PrimHead(V1990) +reg304010 := PrimIsPair(reg304009) +var reg304044 Obj +if reg304010 == True { +reg304011 := PrimTail(V1990) +reg304012 := PrimIsPair(reg304011) +var reg304039 Obj +if reg304012 == True { +reg304013 := MakeSymbol(":-") +reg304014 := PrimTail(V1990) +reg304015 := PrimHead(reg304014) +reg304016 := PrimEqual(reg304013, reg304015) +var reg304034 Obj +if reg304016 == True { +reg304017 := PrimTail(V1990) +reg304018 := PrimTail(reg304017) +reg304019 := PrimIsPair(reg304018) +var reg304029 Obj +if reg304019 == True { +reg304020 := Nil; +reg304021 := PrimTail(V1990) +reg304022 := PrimTail(reg304021) +reg304023 := PrimTail(reg304022) +reg304024 := PrimEqual(reg304020, reg304023) +var reg304027 Obj +if reg304024 == True { +reg304025 := True; +reg304027 = reg304025 +} else { +reg304026 := False; +reg304027 = reg304026 +} +reg304029 = reg304027 +} else { +reg304028 := False; +reg304029 = reg304028 +} +var reg304032 Obj +if reg304029 == True { +reg304030 := True; +reg304032 = reg304030 +} else { +reg304031 := False; +reg304032 = reg304031 +} +reg304034 = reg304032 +} else { +reg304033 := False; +reg304034 = reg304033 +} +var reg304037 Obj +if reg304034 == True { +reg304035 := True; +reg304037 = reg304035 +} else { +reg304036 := False; +reg304037 = reg304036 +} +reg304039 = reg304037 +} else { +reg304038 := False; +reg304039 = reg304038 +} +var reg304042 Obj +if reg304039 == True { +reg304040 := True; +reg304042 = reg304040 +} else { +reg304041 := False; +reg304042 = reg304041 +} +reg304044 = reg304042 +} else { +reg304043 := False; +reg304044 = reg304043 +} +var reg304047 Obj +if reg304044 == True { +reg304045 := True; +reg304047 = reg304045 +} else { +reg304046 := False; +reg304047 = reg304046 +} +reg304049 = reg304047 +} else { +reg304048 := False; +reg304049 = reg304048 +} +if reg304049 == True { +reg304050 := MakeSymbol("shen.mu") +reg304051 := PrimHead(V1990) +reg304052 := PrimTail(reg304051) +reg304053 := PrimHead(V1990) +reg304054 := PrimTail(reg304053) +reg304055 := PrimTail(V1990) +reg304056 := PrimTail(reg304055) +reg304057 := PrimHead(reg304056) +reg304058 := __e.Call(__defun__shen_4continuation__call, reg304054, reg304057) +reg304059 := Nil; +reg304060 := PrimCons(reg304058, reg304059) +reg304061 := PrimCons(reg304052, reg304060) +reg304062 := PrimCons(reg304050, reg304061) +reg304063 := __e.Call(__defun__shen_4make__mu__application, reg304062, V1991) +MuApplication := reg304063 +_ = MuApplication +reg304064 := MakeSymbol("+") +__ctx.TailApply(__defun__shen_4mu__reduction, MuApplication, reg304064) +return +} else { +reg304066 := MakeSymbol("shen.aum") +__ctx.TailApply(__defun__shen_4f__error, reg304066) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.aum", value: __defun__shen_4aum}) + +__defun__shen_4continuation__call = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1994 := __args[0] +_ = V1994 +V1995 := __args[1] +_ = V1995 +reg304068 := MakeSymbol("ProcessN") +reg304069 := __e.Call(__defun__shen_4extract__vars, V1994) +reg304070 := PrimCons(reg304068, reg304069) +VTerms := reg304070 +_ = VTerms +reg304071 := __e.Call(__defun__shen_4extract__vars, V1995) +VBody := reg304071 +_ = VBody +reg304072 := MakeSymbol("Throwcontrol") +reg304073 := __e.Call(__defun__difference, VBody, VTerms) +reg304074 := __e.Call(__defun__remove, reg304072, reg304073) +Free := reg304074 +_ = Free +__ctx.TailApply(__defun__shen_4cc__help, Free, V1995) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.continuation_call", value: __defun__shen_4continuation__call}) + +__defun__remove = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V1998 := __args[0] +_ = V1998 +V1999 := __args[1] +_ = V1999 +reg304076 := Nil; +__ctx.TailApply(__defun__shen_4remove_1h, V1998, V1999, reg304076) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "remove", value: __defun__remove}) + +__defun__shen_4remove_1h = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2006 := __args[0] +_ = V2006 +V2007 := __args[1] +_ = V2007 +V2008 := __args[2] +_ = V2008 +reg304078 := Nil; +reg304079 := PrimEqual(reg304078, V2007) +if reg304079 == True { +__ctx.TailApply(__defun__reverse, V2008) +return +} else { +reg304081 := PrimIsPair(V2007) +var reg304088 Obj +if reg304081 == True { +reg304082 := PrimHead(V2007) +reg304083 := PrimEqual(reg304082, V2006) +var reg304086 Obj +if reg304083 == True { +reg304084 := True; +reg304086 = reg304084 +} else { +reg304085 := False; +reg304086 = reg304085 +} +reg304088 = reg304086 +} else { +reg304087 := False; +reg304088 = reg304087 +} +if reg304088 == True { +reg304089 := PrimHead(V2007) +reg304090 := PrimTail(V2007) +__ctx.TailApply(__defun__shen_4remove_1h, reg304089, reg304090, V2008) +return +} else { +reg304092 := PrimIsPair(V2007) +if reg304092 == True { +reg304093 := PrimTail(V2007) +reg304094 := PrimHead(V2007) +reg304095 := PrimCons(reg304094, V2008) +__ctx.TailApply(__defun__shen_4remove_1h, V2006, reg304093, reg304095) +return +} else { +reg304097 := MakeSymbol("shen.remove-h") +__ctx.TailApply(__defun__shen_4f__error, reg304097) +return +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.remove-h", value: __defun__shen_4remove_1h}) + +__defun__shen_4cc__help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2011 := __args[0] +_ = V2011 +V2012 := __args[1] +_ = V2012 +reg304099 := Nil; +reg304100 := PrimEqual(reg304099, V2011) +var reg304107 Obj +if reg304100 == True { +reg304101 := Nil; +reg304102 := PrimEqual(reg304101, V2012) +var reg304105 Obj +if reg304102 == True { +reg304103 := True; +reg304105 = reg304103 +} else { +reg304104 := False; +reg304105 = reg304104 +} +reg304107 = reg304105 +} else { +reg304106 := False; +reg304107 = reg304106 +} +if reg304107 == True { +reg304108 := MakeSymbol("shen.pop") +reg304109 := MakeSymbol("shen.the") +reg304110 := MakeSymbol("shen.stack") +reg304111 := Nil; +reg304112 := PrimCons(reg304110, reg304111) +reg304113 := PrimCons(reg304109, reg304112) +reg304114 := PrimCons(reg304108, reg304113) +__ctx.Return(reg304114) +return +} else { +reg304115 := Nil; +reg304116 := PrimEqual(reg304115, V2012) +if reg304116 == True { +reg304117 := MakeSymbol("shen.rename") +reg304118 := MakeSymbol("shen.the") +reg304119 := MakeSymbol("shen.variables") +reg304120 := MakeSymbol("in") +reg304121 := MakeSymbol("and") +reg304122 := MakeSymbol("shen.then") +reg304123 := MakeSymbol("shen.pop") +reg304124 := MakeSymbol("shen.the") +reg304125 := MakeSymbol("shen.stack") +reg304126 := Nil; +reg304127 := PrimCons(reg304125, reg304126) +reg304128 := PrimCons(reg304124, reg304127) +reg304129 := PrimCons(reg304123, reg304128) +reg304130 := Nil; +reg304131 := PrimCons(reg304129, reg304130) +reg304132 := PrimCons(reg304122, reg304131) +reg304133 := PrimCons(reg304121, reg304132) +reg304134 := PrimCons(V2011, reg304133) +reg304135 := PrimCons(reg304120, reg304134) +reg304136 := PrimCons(reg304119, reg304135) +reg304137 := PrimCons(reg304118, reg304136) +reg304138 := PrimCons(reg304117, reg304137) +__ctx.Return(reg304138) +return +} else { +reg304139 := Nil; +reg304140 := PrimEqual(reg304139, V2011) +if reg304140 == True { +reg304141 := MakeSymbol("call") +reg304142 := MakeSymbol("shen.the") +reg304143 := MakeSymbol("shen.continuation") +reg304144 := Nil; +reg304145 := PrimCons(V2012, reg304144) +reg304146 := PrimCons(reg304143, reg304145) +reg304147 := PrimCons(reg304142, reg304146) +reg304148 := PrimCons(reg304141, reg304147) +__ctx.Return(reg304148) +return +} else { +reg304149 := MakeSymbol("shen.rename") +reg304150 := MakeSymbol("shen.the") +reg304151 := MakeSymbol("shen.variables") +reg304152 := MakeSymbol("in") +reg304153 := MakeSymbol("and") +reg304154 := MakeSymbol("shen.then") +reg304155 := MakeSymbol("call") +reg304156 := MakeSymbol("shen.the") +reg304157 := MakeSymbol("shen.continuation") +reg304158 := Nil; +reg304159 := PrimCons(V2012, reg304158) +reg304160 := PrimCons(reg304157, reg304159) +reg304161 := PrimCons(reg304156, reg304160) +reg304162 := PrimCons(reg304155, reg304161) +reg304163 := Nil; +reg304164 := PrimCons(reg304162, reg304163) +reg304165 := PrimCons(reg304154, reg304164) +reg304166 := PrimCons(reg304153, reg304165) +reg304167 := PrimCons(V2011, reg304166) +reg304168 := PrimCons(reg304152, reg304167) +reg304169 := PrimCons(reg304151, reg304168) +reg304170 := PrimCons(reg304150, reg304169) +reg304171 := PrimCons(reg304149, reg304170) +__ctx.Return(reg304171) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.cc_help", value: __defun__shen_4cc__help}) + +__defun__shen_4make__mu__application = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2015 := __args[0] +_ = V2015 +V2016 := __args[1] +_ = V2016 +reg304172 := PrimIsPair(V2015) +var reg304221 Obj +if reg304172 == True { +reg304173 := MakeSymbol("shen.mu") +reg304174 := PrimHead(V2015) +reg304175 := PrimEqual(reg304173, reg304174) +var reg304216 Obj +if reg304175 == True { +reg304176 := PrimTail(V2015) +reg304177 := PrimIsPair(reg304176) +var reg304211 Obj +if reg304177 == True { +reg304178 := Nil; +reg304179 := PrimTail(V2015) +reg304180 := PrimHead(reg304179) +reg304181 := PrimEqual(reg304178, reg304180) +var reg304206 Obj +if reg304181 == True { +reg304182 := PrimTail(V2015) +reg304183 := PrimTail(reg304182) +reg304184 := PrimIsPair(reg304183) +var reg304201 Obj +if reg304184 == True { +reg304185 := Nil; +reg304186 := PrimTail(V2015) +reg304187 := PrimTail(reg304186) +reg304188 := PrimTail(reg304187) +reg304189 := PrimEqual(reg304185, reg304188) +var reg304196 Obj +if reg304189 == True { +reg304190 := Nil; +reg304191 := PrimEqual(reg304190, V2016) +var reg304194 Obj +if reg304191 == True { +reg304192 := True; +reg304194 = reg304192 +} else { +reg304193 := False; +reg304194 = reg304193 +} +reg304196 = reg304194 +} else { +reg304195 := False; +reg304196 = reg304195 +} +var reg304199 Obj +if reg304196 == True { +reg304197 := True; +reg304199 = reg304197 +} else { +reg304198 := False; +reg304199 = reg304198 +} +reg304201 = reg304199 +} else { +reg304200 := False; +reg304201 = reg304200 +} +var reg304204 Obj +if reg304201 == True { +reg304202 := True; +reg304204 = reg304202 +} else { +reg304203 := False; +reg304204 = reg304203 +} +reg304206 = reg304204 +} else { +reg304205 := False; +reg304206 = reg304205 +} +var reg304209 Obj +if reg304206 == True { +reg304207 := True; +reg304209 = reg304207 +} else { +reg304208 := False; +reg304209 = reg304208 +} +reg304211 = reg304209 +} else { +reg304210 := False; +reg304211 = reg304210 +} +var reg304214 Obj +if reg304211 == True { +reg304212 := True; +reg304214 = reg304212 +} else { +reg304213 := False; +reg304214 = reg304213 +} +reg304216 = reg304214 +} else { +reg304215 := False; +reg304216 = reg304215 +} +var reg304219 Obj +if reg304216 == True { +reg304217 := True; +reg304219 = reg304217 +} else { +reg304218 := False; +reg304219 = reg304218 +} +reg304221 = reg304219 +} else { +reg304220 := False; +reg304221 = reg304220 +} +if reg304221 == True { +reg304222 := PrimTail(V2015) +reg304223 := PrimTail(reg304222) +reg304224 := PrimHead(reg304223) +__ctx.Return(reg304224) +return +} else { +reg304225 := PrimIsPair(V2015) +var reg304272 Obj +if reg304225 == True { +reg304226 := MakeSymbol("shen.mu") +reg304227 := PrimHead(V2015) +reg304228 := PrimEqual(reg304226, reg304227) +var reg304267 Obj +if reg304228 == True { +reg304229 := PrimTail(V2015) +reg304230 := PrimIsPair(reg304229) +var reg304262 Obj +if reg304230 == True { +reg304231 := PrimTail(V2015) +reg304232 := PrimHead(reg304231) +reg304233 := PrimIsPair(reg304232) +var reg304257 Obj +if reg304233 == True { +reg304234 := PrimTail(V2015) +reg304235 := PrimTail(reg304234) +reg304236 := PrimIsPair(reg304235) +var reg304252 Obj +if reg304236 == True { +reg304237 := Nil; +reg304238 := PrimTail(V2015) +reg304239 := PrimTail(reg304238) +reg304240 := PrimTail(reg304239) +reg304241 := PrimEqual(reg304237, reg304240) +var reg304247 Obj +if reg304241 == True { +reg304242 := PrimIsPair(V2016) +var reg304245 Obj +if reg304242 == True { +reg304243 := True; +reg304245 = reg304243 +} else { +reg304244 := False; +reg304245 = reg304244 +} +reg304247 = reg304245 +} else { +reg304246 := False; +reg304247 = reg304246 +} +var reg304250 Obj +if reg304247 == True { +reg304248 := True; +reg304250 = reg304248 +} else { +reg304249 := False; +reg304250 = reg304249 +} +reg304252 = reg304250 +} else { +reg304251 := False; +reg304252 = reg304251 +} +var reg304255 Obj +if reg304252 == True { +reg304253 := True; +reg304255 = reg304253 +} else { +reg304254 := False; +reg304255 = reg304254 +} +reg304257 = reg304255 +} else { +reg304256 := False; +reg304257 = reg304256 +} +var reg304260 Obj +if reg304257 == True { +reg304258 := True; +reg304260 = reg304258 +} else { +reg304259 := False; +reg304260 = reg304259 +} +reg304262 = reg304260 +} else { +reg304261 := False; +reg304262 = reg304261 +} +var reg304265 Obj +if reg304262 == True { +reg304263 := True; +reg304265 = reg304263 +} else { +reg304264 := False; +reg304265 = reg304264 +} +reg304267 = reg304265 +} else { +reg304266 := False; +reg304267 = reg304266 +} +var reg304270 Obj +if reg304267 == True { +reg304268 := True; +reg304270 = reg304268 +} else { +reg304269 := False; +reg304270 = reg304269 +} +reg304272 = reg304270 +} else { +reg304271 := False; +reg304272 = reg304271 +} +if reg304272 == True { +reg304273 := MakeSymbol("shen.mu") +reg304274 := PrimTail(V2015) +reg304275 := PrimHead(reg304274) +reg304276 := PrimHead(reg304275) +reg304277 := MakeSymbol("shen.mu") +reg304278 := PrimTail(V2015) +reg304279 := PrimHead(reg304278) +reg304280 := PrimTail(reg304279) +reg304281 := PrimTail(V2015) +reg304282 := PrimTail(reg304281) +reg304283 := PrimCons(reg304280, reg304282) +reg304284 := PrimCons(reg304277, reg304283) +reg304285 := PrimTail(V2016) +reg304286 := __e.Call(__defun__shen_4make__mu__application, reg304284, reg304285) +reg304287 := Nil; +reg304288 := PrimCons(reg304286, reg304287) +reg304289 := PrimCons(reg304276, reg304288) +reg304290 := PrimCons(reg304273, reg304289) +reg304291 := PrimHead(V2016) +reg304292 := Nil; +reg304293 := PrimCons(reg304291, reg304292) +reg304294 := PrimCons(reg304290, reg304293) +__ctx.Return(reg304294) +return +} else { +reg304295 := MakeSymbol("shen.make_mu_application") +__ctx.TailApply(__defun__shen_4f__error, reg304295) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.make_mu_application", value: __defun__shen_4make__mu__application}) + +__defun__shen_4mu__reduction = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2025 := __args[0] +_ = V2025 +V2026 := __args[1] +_ = V2026 +reg304297 := PrimIsPair(V2025) +var reg304411 Obj +if reg304297 == True { +reg304298 := PrimHead(V2025) +reg304299 := PrimIsPair(reg304298) +var reg304406 Obj +if reg304299 == True { +reg304300 := MakeSymbol("shen.mu") +reg304301 := PrimHead(V2025) +reg304302 := PrimHead(reg304301) +reg304303 := PrimEqual(reg304300, reg304302) +var reg304401 Obj +if reg304303 == True { +reg304304 := PrimHead(V2025) +reg304305 := PrimTail(reg304304) +reg304306 := PrimIsPair(reg304305) +var reg304396 Obj +if reg304306 == True { +reg304307 := PrimHead(V2025) +reg304308 := PrimTail(reg304307) +reg304309 := PrimHead(reg304308) +reg304310 := PrimIsPair(reg304309) +var reg304391 Obj +if reg304310 == True { +reg304311 := MakeSymbol("mode") +reg304312 := PrimHead(V2025) +reg304313 := PrimTail(reg304312) +reg304314 := PrimHead(reg304313) +reg304315 := PrimHead(reg304314) +reg304316 := PrimEqual(reg304311, reg304315) +var reg304386 Obj +if reg304316 == True { +reg304317 := PrimHead(V2025) +reg304318 := PrimTail(reg304317) +reg304319 := PrimHead(reg304318) +reg304320 := PrimTail(reg304319) +reg304321 := PrimIsPair(reg304320) +var reg304381 Obj +if reg304321 == True { +reg304322 := PrimHead(V2025) +reg304323 := PrimTail(reg304322) +reg304324 := PrimHead(reg304323) +reg304325 := PrimTail(reg304324) +reg304326 := PrimTail(reg304325) +reg304327 := PrimIsPair(reg304326) +var reg304376 Obj +if reg304327 == True { +reg304328 := Nil; +reg304329 := PrimHead(V2025) +reg304330 := PrimTail(reg304329) +reg304331 := PrimHead(reg304330) +reg304332 := PrimTail(reg304331) +reg304333 := PrimTail(reg304332) +reg304334 := PrimTail(reg304333) +reg304335 := PrimEqual(reg304328, reg304334) +var reg304371 Obj +if reg304335 == True { +reg304336 := PrimHead(V2025) +reg304337 := PrimTail(reg304336) +reg304338 := PrimTail(reg304337) +reg304339 := PrimIsPair(reg304338) +var reg304366 Obj +if reg304339 == True { +reg304340 := Nil; +reg304341 := PrimHead(V2025) +reg304342 := PrimTail(reg304341) +reg304343 := PrimTail(reg304342) +reg304344 := PrimTail(reg304343) +reg304345 := PrimEqual(reg304340, reg304344) +var reg304361 Obj +if reg304345 == True { +reg304346 := PrimTail(V2025) +reg304347 := PrimIsPair(reg304346) +var reg304356 Obj +if reg304347 == True { +reg304348 := Nil; +reg304349 := PrimTail(V2025) +reg304350 := PrimTail(reg304349) +reg304351 := PrimEqual(reg304348, reg304350) +var reg304354 Obj +if reg304351 == True { +reg304352 := True; +reg304354 = reg304352 +} else { +reg304353 := False; +reg304354 = reg304353 +} +reg304356 = reg304354 +} else { +reg304355 := False; +reg304356 = reg304355 +} +var reg304359 Obj +if reg304356 == True { +reg304357 := True; +reg304359 = reg304357 +} else { +reg304358 := False; +reg304359 = reg304358 +} +reg304361 = reg304359 +} else { +reg304360 := False; +reg304361 = reg304360 +} +var reg304364 Obj +if reg304361 == True { +reg304362 := True; +reg304364 = reg304362 +} else { +reg304363 := False; +reg304364 = reg304363 +} +reg304366 = reg304364 +} else { +reg304365 := False; +reg304366 = reg304365 +} +var reg304369 Obj +if reg304366 == True { +reg304367 := True; +reg304369 = reg304367 +} else { +reg304368 := False; +reg304369 = reg304368 +} +reg304371 = reg304369 +} else { +reg304370 := False; +reg304371 = reg304370 +} +var reg304374 Obj +if reg304371 == True { +reg304372 := True; +reg304374 = reg304372 +} else { +reg304373 := False; +reg304374 = reg304373 +} +reg304376 = reg304374 +} else { +reg304375 := False; +reg304376 = reg304375 +} +var reg304379 Obj +if reg304376 == True { +reg304377 := True; +reg304379 = reg304377 +} else { +reg304378 := False; +reg304379 = reg304378 +} +reg304381 = reg304379 +} else { +reg304380 := False; +reg304381 = reg304380 +} +var reg304384 Obj +if reg304381 == True { +reg304382 := True; +reg304384 = reg304382 +} else { +reg304383 := False; +reg304384 = reg304383 +} +reg304386 = reg304384 +} else { +reg304385 := False; +reg304386 = reg304385 +} +var reg304389 Obj +if reg304386 == True { +reg304387 := True; +reg304389 = reg304387 +} else { +reg304388 := False; +reg304389 = reg304388 +} +reg304391 = reg304389 +} else { +reg304390 := False; +reg304391 = reg304390 +} +var reg304394 Obj +if reg304391 == True { +reg304392 := True; +reg304394 = reg304392 +} else { +reg304393 := False; +reg304394 = reg304393 +} +reg304396 = reg304394 +} else { +reg304395 := False; +reg304396 = reg304395 +} +var reg304399 Obj +if reg304396 == True { +reg304397 := True; +reg304399 = reg304397 +} else { +reg304398 := False; +reg304399 = reg304398 +} +reg304401 = reg304399 +} else { +reg304400 := False; +reg304401 = reg304400 +} +var reg304404 Obj +if reg304401 == True { +reg304402 := True; +reg304404 = reg304402 +} else { +reg304403 := False; +reg304404 = reg304403 +} +reg304406 = reg304404 +} else { +reg304405 := False; +reg304406 = reg304405 +} +var reg304409 Obj +if reg304406 == True { +reg304407 := True; +reg304409 = reg304407 +} else { +reg304408 := False; +reg304409 = reg304408 +} +reg304411 = reg304409 +} else { +reg304410 := False; +reg304411 = reg304410 +} +if reg304411 == True { +reg304412 := MakeSymbol("shen.mu") +reg304413 := PrimHead(V2025) +reg304414 := PrimTail(reg304413) +reg304415 := PrimHead(reg304414) +reg304416 := PrimTail(reg304415) +reg304417 := PrimHead(reg304416) +reg304418 := PrimHead(V2025) +reg304419 := PrimTail(reg304418) +reg304420 := PrimTail(reg304419) +reg304421 := PrimCons(reg304417, reg304420) +reg304422 := PrimCons(reg304412, reg304421) +reg304423 := PrimTail(V2025) +reg304424 := PrimCons(reg304422, reg304423) +reg304425 := PrimHead(V2025) +reg304426 := PrimTail(reg304425) +reg304427 := PrimHead(reg304426) +reg304428 := PrimTail(reg304427) +reg304429 := PrimTail(reg304428) +reg304430 := PrimHead(reg304429) +__ctx.TailApply(__defun__shen_4mu__reduction, reg304424, reg304430) +return +} else { +reg304432 := PrimIsPair(V2025) +var reg304502 Obj +if reg304432 == True { +reg304433 := PrimHead(V2025) +reg304434 := PrimIsPair(reg304433) +var reg304497 Obj +if reg304434 == True { +reg304435 := MakeSymbol("shen.mu") +reg304436 := PrimHead(V2025) +reg304437 := PrimHead(reg304436) +reg304438 := PrimEqual(reg304435, reg304437) +var reg304492 Obj +if reg304438 == True { +reg304439 := PrimHead(V2025) +reg304440 := PrimTail(reg304439) +reg304441 := PrimIsPair(reg304440) +var reg304487 Obj +if reg304441 == True { +reg304442 := PrimHead(V2025) +reg304443 := PrimTail(reg304442) +reg304444 := PrimTail(reg304443) +reg304445 := PrimIsPair(reg304444) +var reg304482 Obj +if reg304445 == True { +reg304446 := Nil; +reg304447 := PrimHead(V2025) +reg304448 := PrimTail(reg304447) +reg304449 := PrimTail(reg304448) +reg304450 := PrimTail(reg304449) +reg304451 := PrimEqual(reg304446, reg304450) +var reg304477 Obj +if reg304451 == True { +reg304452 := PrimTail(V2025) +reg304453 := PrimIsPair(reg304452) +var reg304472 Obj +if reg304453 == True { +reg304454 := Nil; +reg304455 := PrimTail(V2025) +reg304456 := PrimTail(reg304455) +reg304457 := PrimEqual(reg304454, reg304456) +var reg304467 Obj +if reg304457 == True { +reg304458 := MakeSymbol("_") +reg304459 := PrimHead(V2025) +reg304460 := PrimTail(reg304459) +reg304461 := PrimHead(reg304460) +reg304462 := PrimEqual(reg304458, reg304461) +var reg304465 Obj +if reg304462 == True { +reg304463 := True; +reg304465 = reg304463 +} else { +reg304464 := False; +reg304465 = reg304464 +} +reg304467 = reg304465 +} else { +reg304466 := False; +reg304467 = reg304466 +} +var reg304470 Obj +if reg304467 == True { +reg304468 := True; +reg304470 = reg304468 +} else { +reg304469 := False; +reg304470 = reg304469 +} +reg304472 = reg304470 +} else { +reg304471 := False; +reg304472 = reg304471 +} +var reg304475 Obj +if reg304472 == True { +reg304473 := True; +reg304475 = reg304473 +} else { +reg304474 := False; +reg304475 = reg304474 +} +reg304477 = reg304475 +} else { +reg304476 := False; +reg304477 = reg304476 +} +var reg304480 Obj +if reg304477 == True { +reg304478 := True; +reg304480 = reg304478 +} else { +reg304479 := False; +reg304480 = reg304479 +} +reg304482 = reg304480 +} else { +reg304481 := False; +reg304482 = reg304481 +} +var reg304485 Obj +if reg304482 == True { +reg304483 := True; +reg304485 = reg304483 +} else { +reg304484 := False; +reg304485 = reg304484 +} +reg304487 = reg304485 +} else { +reg304486 := False; +reg304487 = reg304486 +} +var reg304490 Obj +if reg304487 == True { +reg304488 := True; +reg304490 = reg304488 +} else { +reg304489 := False; +reg304490 = reg304489 +} +reg304492 = reg304490 +} else { +reg304491 := False; +reg304492 = reg304491 +} +var reg304495 Obj +if reg304492 == True { +reg304493 := True; +reg304495 = reg304493 +} else { +reg304494 := False; +reg304495 = reg304494 +} +reg304497 = reg304495 +} else { +reg304496 := False; +reg304497 = reg304496 +} +var reg304500 Obj +if reg304497 == True { +reg304498 := True; +reg304500 = reg304498 +} else { +reg304499 := False; +reg304500 = reg304499 +} +reg304502 = reg304500 +} else { +reg304501 := False; +reg304502 = reg304501 +} +if reg304502 == True { +reg304503 := PrimHead(V2025) +reg304504 := PrimTail(reg304503) +reg304505 := PrimTail(reg304504) +reg304506 := PrimHead(reg304505) +__ctx.TailApply(__defun__shen_4mu__reduction, reg304506, V2026) +return +} else { +reg304508 := PrimIsPair(V2025) +var reg304579 Obj +if reg304508 == True { +reg304509 := PrimHead(V2025) +reg304510 := PrimIsPair(reg304509) +var reg304574 Obj +if reg304510 == True { +reg304511 := MakeSymbol("shen.mu") +reg304512 := PrimHead(V2025) +reg304513 := PrimHead(reg304512) +reg304514 := PrimEqual(reg304511, reg304513) +var reg304569 Obj +if reg304514 == True { +reg304515 := PrimHead(V2025) +reg304516 := PrimTail(reg304515) +reg304517 := PrimIsPair(reg304516) +var reg304564 Obj +if reg304517 == True { +reg304518 := PrimHead(V2025) +reg304519 := PrimTail(reg304518) +reg304520 := PrimTail(reg304519) +reg304521 := PrimIsPair(reg304520) +var reg304559 Obj +if reg304521 == True { +reg304522 := Nil; +reg304523 := PrimHead(V2025) +reg304524 := PrimTail(reg304523) +reg304525 := PrimTail(reg304524) +reg304526 := PrimTail(reg304525) +reg304527 := PrimEqual(reg304522, reg304526) +var reg304554 Obj +if reg304527 == True { +reg304528 := PrimTail(V2025) +reg304529 := PrimIsPair(reg304528) +var reg304549 Obj +if reg304529 == True { +reg304530 := Nil; +reg304531 := PrimTail(V2025) +reg304532 := PrimTail(reg304531) +reg304533 := PrimEqual(reg304530, reg304532) +var reg304544 Obj +if reg304533 == True { +reg304534 := PrimHead(V2025) +reg304535 := PrimTail(reg304534) +reg304536 := PrimHead(reg304535) +reg304537 := PrimTail(V2025) +reg304538 := PrimHead(reg304537) +reg304539 := __e.Call(__defun__shen_4ephemeral__variable_2, reg304536, reg304538) +var reg304542 Obj +if reg304539 == True { +reg304540 := True; +reg304542 = reg304540 +} else { +reg304541 := False; +reg304542 = reg304541 +} +reg304544 = reg304542 +} else { +reg304543 := False; +reg304544 = reg304543 +} +var reg304547 Obj +if reg304544 == True { +reg304545 := True; +reg304547 = reg304545 +} else { +reg304546 := False; +reg304547 = reg304546 +} +reg304549 = reg304547 +} else { +reg304548 := False; +reg304549 = reg304548 +} +var reg304552 Obj +if reg304549 == True { +reg304550 := True; +reg304552 = reg304550 +} else { +reg304551 := False; +reg304552 = reg304551 +} +reg304554 = reg304552 +} else { +reg304553 := False; +reg304554 = reg304553 +} +var reg304557 Obj +if reg304554 == True { +reg304555 := True; +reg304557 = reg304555 +} else { +reg304556 := False; +reg304557 = reg304556 +} +reg304559 = reg304557 +} else { +reg304558 := False; +reg304559 = reg304558 +} +var reg304562 Obj +if reg304559 == True { +reg304560 := True; +reg304562 = reg304560 +} else { +reg304561 := False; +reg304562 = reg304561 +} +reg304564 = reg304562 +} else { +reg304563 := False; +reg304564 = reg304563 +} +var reg304567 Obj +if reg304564 == True { +reg304565 := True; +reg304567 = reg304565 +} else { +reg304566 := False; +reg304567 = reg304566 +} +reg304569 = reg304567 +} else { +reg304568 := False; +reg304569 = reg304568 +} +var reg304572 Obj +if reg304569 == True { +reg304570 := True; +reg304572 = reg304570 +} else { +reg304571 := False; +reg304572 = reg304571 +} +reg304574 = reg304572 +} else { +reg304573 := False; +reg304574 = reg304573 +} +var reg304577 Obj +if reg304574 == True { +reg304575 := True; +reg304577 = reg304575 +} else { +reg304576 := False; +reg304577 = reg304576 +} +reg304579 = reg304577 +} else { +reg304578 := False; +reg304579 = reg304578 +} +if reg304579 == True { +reg304580 := PrimTail(V2025) +reg304581 := PrimHead(reg304580) +reg304582 := PrimHead(V2025) +reg304583 := PrimTail(reg304582) +reg304584 := PrimHead(reg304583) +reg304585 := PrimHead(V2025) +reg304586 := PrimTail(reg304585) +reg304587 := PrimTail(reg304586) +reg304588 := PrimHead(reg304587) +reg304589 := __e.Call(__defun__shen_4mu__reduction, reg304588, V2026) +__ctx.TailApply(__defun__subst, reg304581, reg304584, reg304589) +return +} else { +reg304591 := PrimIsPair(V2025) +var reg304660 Obj +if reg304591 == True { +reg304592 := PrimHead(V2025) +reg304593 := PrimIsPair(reg304592) +var reg304655 Obj +if reg304593 == True { +reg304594 := MakeSymbol("shen.mu") +reg304595 := PrimHead(V2025) +reg304596 := PrimHead(reg304595) +reg304597 := PrimEqual(reg304594, reg304596) +var reg304650 Obj +if reg304597 == True { +reg304598 := PrimHead(V2025) +reg304599 := PrimTail(reg304598) +reg304600 := PrimIsPair(reg304599) +var reg304645 Obj +if reg304600 == True { +reg304601 := PrimHead(V2025) +reg304602 := PrimTail(reg304601) +reg304603 := PrimTail(reg304602) +reg304604 := PrimIsPair(reg304603) +var reg304640 Obj +if reg304604 == True { +reg304605 := Nil; +reg304606 := PrimHead(V2025) +reg304607 := PrimTail(reg304606) +reg304608 := PrimTail(reg304607) +reg304609 := PrimTail(reg304608) +reg304610 := PrimEqual(reg304605, reg304609) +var reg304635 Obj +if reg304610 == True { +reg304611 := PrimTail(V2025) +reg304612 := PrimIsPair(reg304611) +var reg304630 Obj +if reg304612 == True { +reg304613 := Nil; +reg304614 := PrimTail(V2025) +reg304615 := PrimTail(reg304614) +reg304616 := PrimEqual(reg304613, reg304615) +var reg304625 Obj +if reg304616 == True { +reg304617 := PrimHead(V2025) +reg304618 := PrimTail(reg304617) +reg304619 := PrimHead(reg304618) +reg304620 := PrimIsVariable(reg304619) +var reg304623 Obj +if reg304620 == True { +reg304621 := True; +reg304623 = reg304621 +} else { +reg304622 := False; +reg304623 = reg304622 +} +reg304625 = reg304623 +} else { +reg304624 := False; +reg304625 = reg304624 +} +var reg304628 Obj +if reg304625 == True { +reg304626 := True; +reg304628 = reg304626 +} else { +reg304627 := False; +reg304628 = reg304627 +} +reg304630 = reg304628 +} else { +reg304629 := False; +reg304630 = reg304629 +} +var reg304633 Obj +if reg304630 == True { +reg304631 := True; +reg304633 = reg304631 +} else { +reg304632 := False; +reg304633 = reg304632 +} +reg304635 = reg304633 +} else { +reg304634 := False; +reg304635 = reg304634 +} +var reg304638 Obj +if reg304635 == True { +reg304636 := True; +reg304638 = reg304636 +} else { +reg304637 := False; +reg304638 = reg304637 +} +reg304640 = reg304638 +} else { +reg304639 := False; +reg304640 = reg304639 +} +var reg304643 Obj +if reg304640 == True { +reg304641 := True; +reg304643 = reg304641 +} else { +reg304642 := False; +reg304643 = reg304642 +} +reg304645 = reg304643 +} else { +reg304644 := False; +reg304645 = reg304644 +} +var reg304648 Obj +if reg304645 == True { +reg304646 := True; +reg304648 = reg304646 +} else { +reg304647 := False; +reg304648 = reg304647 +} +reg304650 = reg304648 +} else { +reg304649 := False; +reg304650 = reg304649 +} +var reg304653 Obj +if reg304650 == True { +reg304651 := True; +reg304653 = reg304651 +} else { +reg304652 := False; +reg304653 = reg304652 +} +reg304655 = reg304653 +} else { +reg304654 := False; +reg304655 = reg304654 +} +var reg304658 Obj +if reg304655 == True { +reg304656 := True; +reg304658 = reg304656 +} else { +reg304657 := False; +reg304658 = reg304657 +} +reg304660 = reg304658 +} else { +reg304659 := False; +reg304660 = reg304659 +} +if reg304660 == True { +reg304661 := MakeSymbol("let") +reg304662 := PrimHead(V2025) +reg304663 := PrimTail(reg304662) +reg304664 := PrimHead(reg304663) +reg304665 := MakeSymbol("shen.be") +reg304666 := PrimTail(V2025) +reg304667 := PrimHead(reg304666) +reg304668 := MakeSymbol("in") +reg304669 := PrimHead(V2025) +reg304670 := PrimTail(reg304669) +reg304671 := PrimTail(reg304670) +reg304672 := PrimHead(reg304671) +reg304673 := __e.Call(__defun__shen_4mu__reduction, reg304672, V2026) +reg304674 := Nil; +reg304675 := PrimCons(reg304673, reg304674) +reg304676 := PrimCons(reg304668, reg304675) +reg304677 := PrimCons(reg304667, reg304676) +reg304678 := PrimCons(reg304665, reg304677) +reg304679 := PrimCons(reg304664, reg304678) +reg304680 := PrimCons(reg304661, reg304679) +__ctx.Return(reg304680) +return +} else { +reg304681 := PrimIsPair(V2025) +var reg304757 Obj +if reg304681 == True { +reg304682 := PrimHead(V2025) +reg304683 := PrimIsPair(reg304682) +var reg304752 Obj +if reg304683 == True { +reg304684 := MakeSymbol("shen.mu") +reg304685 := PrimHead(V2025) +reg304686 := PrimHead(reg304685) +reg304687 := PrimEqual(reg304684, reg304686) +var reg304747 Obj +if reg304687 == True { +reg304688 := PrimHead(V2025) +reg304689 := PrimTail(reg304688) +reg304690 := PrimIsPair(reg304689) +var reg304742 Obj +if reg304690 == True { +reg304691 := PrimHead(V2025) +reg304692 := PrimTail(reg304691) +reg304693 := PrimTail(reg304692) +reg304694 := PrimIsPair(reg304693) +var reg304737 Obj +if reg304694 == True { +reg304695 := Nil; +reg304696 := PrimHead(V2025) +reg304697 := PrimTail(reg304696) +reg304698 := PrimTail(reg304697) +reg304699 := PrimTail(reg304698) +reg304700 := PrimEqual(reg304695, reg304699) +var reg304732 Obj +if reg304700 == True { +reg304701 := PrimTail(V2025) +reg304702 := PrimIsPair(reg304701) +var reg304727 Obj +if reg304702 == True { +reg304703 := Nil; +reg304704 := PrimTail(V2025) +reg304705 := PrimTail(reg304704) +reg304706 := PrimEqual(reg304703, reg304705) +var reg304722 Obj +if reg304706 == True { +reg304707 := MakeSymbol("-") +reg304708 := PrimEqual(reg304707, V2026) +var reg304717 Obj +if reg304708 == True { +reg304709 := PrimHead(V2025) +reg304710 := PrimTail(reg304709) +reg304711 := PrimHead(reg304710) +reg304712 := __e.Call(__defun__shen_4prolog__constant_2, reg304711) +var reg304715 Obj +if reg304712 == True { +reg304713 := True; +reg304715 = reg304713 +} else { +reg304714 := False; +reg304715 = reg304714 +} +reg304717 = reg304715 +} else { +reg304716 := False; +reg304717 = reg304716 +} +var reg304720 Obj +if reg304717 == True { +reg304718 := True; +reg304720 = reg304718 +} else { +reg304719 := False; +reg304720 = reg304719 +} +reg304722 = reg304720 +} else { +reg304721 := False; +reg304722 = reg304721 +} +var reg304725 Obj +if reg304722 == True { +reg304723 := True; +reg304725 = reg304723 +} else { +reg304724 := False; +reg304725 = reg304724 +} +reg304727 = reg304725 +} else { +reg304726 := False; +reg304727 = reg304726 +} +var reg304730 Obj +if reg304727 == True { +reg304728 := True; +reg304730 = reg304728 +} else { +reg304729 := False; +reg304730 = reg304729 +} +reg304732 = reg304730 +} else { +reg304731 := False; +reg304732 = reg304731 +} +var reg304735 Obj +if reg304732 == True { +reg304733 := True; +reg304735 = reg304733 +} else { +reg304734 := False; +reg304735 = reg304734 +} +reg304737 = reg304735 +} else { +reg304736 := False; +reg304737 = reg304736 +} +var reg304740 Obj +if reg304737 == True { +reg304738 := True; +reg304740 = reg304738 +} else { +reg304739 := False; +reg304740 = reg304739 +} +reg304742 = reg304740 +} else { +reg304741 := False; +reg304742 = reg304741 +} +var reg304745 Obj +if reg304742 == True { +reg304743 := True; +reg304745 = reg304743 +} else { +reg304744 := False; +reg304745 = reg304744 +} +reg304747 = reg304745 +} else { +reg304746 := False; +reg304747 = reg304746 +} +var reg304750 Obj +if reg304747 == True { +reg304748 := True; +reg304750 = reg304748 +} else { +reg304749 := False; +reg304750 = reg304749 +} +reg304752 = reg304750 +} else { +reg304751 := False; +reg304752 = reg304751 +} +var reg304755 Obj +if reg304752 == True { +reg304753 := True; +reg304755 = reg304753 +} else { +reg304754 := False; +reg304755 = reg304754 +} +reg304757 = reg304755 +} else { +reg304756 := False; +reg304757 = reg304756 +} +if reg304757 == True { +reg304758 := MakeSymbol("V") +reg304759 := __e.Call(__defun__gensym, reg304758) +Z := reg304759 +_ = Z +reg304760 := MakeSymbol("let") +reg304761 := MakeSymbol("shen.be") +reg304762 := MakeSymbol("shen.the") +reg304763 := MakeSymbol("shen.result") +reg304764 := MakeSymbol("shen.of") +reg304765 := MakeSymbol("shen.dereferencing") +reg304766 := PrimTail(V2025) +reg304767 := PrimCons(reg304765, reg304766) +reg304768 := PrimCons(reg304764, reg304767) +reg304769 := PrimCons(reg304763, reg304768) +reg304770 := PrimCons(reg304762, reg304769) +reg304771 := MakeSymbol("in") +reg304772 := MakeSymbol("if") +reg304773 := MakeSymbol("is") +reg304774 := MakeSymbol("identical") +reg304775 := MakeSymbol("shen.to") +reg304776 := PrimHead(V2025) +reg304777 := PrimTail(reg304776) +reg304778 := PrimHead(reg304777) +reg304779 := Nil; +reg304780 := PrimCons(reg304778, reg304779) +reg304781 := PrimCons(reg304775, reg304780) +reg304782 := PrimCons(reg304774, reg304781) +reg304783 := PrimCons(reg304773, reg304782) +reg304784 := PrimCons(Z, reg304783) +reg304785 := MakeSymbol("shen.then") +reg304786 := PrimHead(V2025) +reg304787 := PrimTail(reg304786) +reg304788 := PrimTail(reg304787) +reg304789 := PrimHead(reg304788) +reg304790 := MakeSymbol("-") +reg304791 := __e.Call(__defun__shen_4mu__reduction, reg304789, reg304790) +reg304792 := MakeSymbol("shen.else") +reg304793 := MakeSymbol("shen.failed!") +reg304794 := Nil; +reg304795 := PrimCons(reg304793, reg304794) +reg304796 := PrimCons(reg304792, reg304795) +reg304797 := PrimCons(reg304791, reg304796) +reg304798 := PrimCons(reg304785, reg304797) +reg304799 := PrimCons(reg304784, reg304798) +reg304800 := PrimCons(reg304772, reg304799) +reg304801 := Nil; +reg304802 := PrimCons(reg304800, reg304801) +reg304803 := PrimCons(reg304771, reg304802) +reg304804 := PrimCons(reg304770, reg304803) +reg304805 := PrimCons(reg304761, reg304804) +reg304806 := PrimCons(Z, reg304805) +reg304807 := PrimCons(reg304760, reg304806) +__ctx.Return(reg304807) +return +} else { +reg304808 := PrimIsPair(V2025) +var reg304884 Obj +if reg304808 == True { +reg304809 := PrimHead(V2025) +reg304810 := PrimIsPair(reg304809) +var reg304879 Obj +if reg304810 == True { +reg304811 := MakeSymbol("shen.mu") +reg304812 := PrimHead(V2025) +reg304813 := PrimHead(reg304812) +reg304814 := PrimEqual(reg304811, reg304813) +var reg304874 Obj +if reg304814 == True { +reg304815 := PrimHead(V2025) +reg304816 := PrimTail(reg304815) +reg304817 := PrimIsPair(reg304816) +var reg304869 Obj +if reg304817 == True { +reg304818 := PrimHead(V2025) +reg304819 := PrimTail(reg304818) +reg304820 := PrimTail(reg304819) +reg304821 := PrimIsPair(reg304820) +var reg304864 Obj +if reg304821 == True { +reg304822 := Nil; +reg304823 := PrimHead(V2025) +reg304824 := PrimTail(reg304823) +reg304825 := PrimTail(reg304824) +reg304826 := PrimTail(reg304825) +reg304827 := PrimEqual(reg304822, reg304826) +var reg304859 Obj +if reg304827 == True { +reg304828 := PrimTail(V2025) +reg304829 := PrimIsPair(reg304828) +var reg304854 Obj +if reg304829 == True { +reg304830 := Nil; +reg304831 := PrimTail(V2025) +reg304832 := PrimTail(reg304831) +reg304833 := PrimEqual(reg304830, reg304832) +var reg304849 Obj +if reg304833 == True { +reg304834 := MakeSymbol("+") +reg304835 := PrimEqual(reg304834, V2026) +var reg304844 Obj +if reg304835 == True { +reg304836 := PrimHead(V2025) +reg304837 := PrimTail(reg304836) +reg304838 := PrimHead(reg304837) +reg304839 := __e.Call(__defun__shen_4prolog__constant_2, reg304838) +var reg304842 Obj +if reg304839 == True { +reg304840 := True; +reg304842 = reg304840 +} else { +reg304841 := False; +reg304842 = reg304841 +} +reg304844 = reg304842 +} else { +reg304843 := False; +reg304844 = reg304843 +} +var reg304847 Obj +if reg304844 == True { +reg304845 := True; +reg304847 = reg304845 +} else { +reg304846 := False; +reg304847 = reg304846 +} +reg304849 = reg304847 +} else { +reg304848 := False; +reg304849 = reg304848 +} +var reg304852 Obj +if reg304849 == True { +reg304850 := True; +reg304852 = reg304850 +} else { +reg304851 := False; +reg304852 = reg304851 +} +reg304854 = reg304852 +} else { +reg304853 := False; +reg304854 = reg304853 +} +var reg304857 Obj +if reg304854 == True { +reg304855 := True; +reg304857 = reg304855 +} else { +reg304856 := False; +reg304857 = reg304856 +} +reg304859 = reg304857 +} else { +reg304858 := False; +reg304859 = reg304858 +} +var reg304862 Obj +if reg304859 == True { +reg304860 := True; +reg304862 = reg304860 +} else { +reg304861 := False; +reg304862 = reg304861 +} +reg304864 = reg304862 +} else { +reg304863 := False; +reg304864 = reg304863 +} +var reg304867 Obj +if reg304864 == True { +reg304865 := True; +reg304867 = reg304865 +} else { +reg304866 := False; +reg304867 = reg304866 +} +reg304869 = reg304867 +} else { +reg304868 := False; +reg304869 = reg304868 +} +var reg304872 Obj +if reg304869 == True { +reg304870 := True; +reg304872 = reg304870 +} else { +reg304871 := False; +reg304872 = reg304871 +} +reg304874 = reg304872 +} else { +reg304873 := False; +reg304874 = reg304873 +} +var reg304877 Obj +if reg304874 == True { +reg304875 := True; +reg304877 = reg304875 +} else { +reg304876 := False; +reg304877 = reg304876 +} +reg304879 = reg304877 +} else { +reg304878 := False; +reg304879 = reg304878 +} +var reg304882 Obj +if reg304879 == True { +reg304880 := True; +reg304882 = reg304880 +} else { +reg304881 := False; +reg304882 = reg304881 +} +reg304884 = reg304882 +} else { +reg304883 := False; +reg304884 = reg304883 +} +if reg304884 == True { +reg304885 := MakeSymbol("V") +reg304886 := __e.Call(__defun__gensym, reg304885) +Z := reg304886 +_ = Z +reg304887 := MakeSymbol("let") +reg304888 := MakeSymbol("shen.be") +reg304889 := MakeSymbol("shen.the") +reg304890 := MakeSymbol("shen.result") +reg304891 := MakeSymbol("shen.of") +reg304892 := MakeSymbol("shen.dereferencing") +reg304893 := PrimTail(V2025) +reg304894 := PrimCons(reg304892, reg304893) +reg304895 := PrimCons(reg304891, reg304894) +reg304896 := PrimCons(reg304890, reg304895) +reg304897 := PrimCons(reg304889, reg304896) +reg304898 := MakeSymbol("in") +reg304899 := MakeSymbol("if") +reg304900 := MakeSymbol("is") +reg304901 := MakeSymbol("identical") +reg304902 := MakeSymbol("shen.to") +reg304903 := PrimHead(V2025) +reg304904 := PrimTail(reg304903) +reg304905 := PrimHead(reg304904) +reg304906 := Nil; +reg304907 := PrimCons(reg304905, reg304906) +reg304908 := PrimCons(reg304902, reg304907) +reg304909 := PrimCons(reg304901, reg304908) +reg304910 := PrimCons(reg304900, reg304909) +reg304911 := PrimCons(Z, reg304910) +reg304912 := MakeSymbol("shen.then") +reg304913 := PrimHead(V2025) +reg304914 := PrimTail(reg304913) +reg304915 := PrimTail(reg304914) +reg304916 := PrimHead(reg304915) +reg304917 := MakeSymbol("+") +reg304918 := __e.Call(__defun__shen_4mu__reduction, reg304916, reg304917) +reg304919 := MakeSymbol("shen.else") +reg304920 := MakeSymbol("if") +reg304921 := MakeSymbol("is") +reg304922 := MakeSymbol("shen.a") +reg304923 := MakeSymbol("shen.variable") +reg304924 := Nil; +reg304925 := PrimCons(reg304923, reg304924) +reg304926 := PrimCons(reg304922, reg304925) +reg304927 := PrimCons(reg304921, reg304926) +reg304928 := PrimCons(Z, reg304927) +reg304929 := MakeSymbol("shen.then") +reg304930 := MakeSymbol("bind") +reg304931 := MakeSymbol("shen.to") +reg304932 := PrimHead(V2025) +reg304933 := PrimTail(reg304932) +reg304934 := PrimHead(reg304933) +reg304935 := MakeSymbol("in") +reg304936 := PrimHead(V2025) +reg304937 := PrimTail(reg304936) +reg304938 := PrimTail(reg304937) +reg304939 := PrimHead(reg304938) +reg304940 := MakeSymbol("+") +reg304941 := __e.Call(__defun__shen_4mu__reduction, reg304939, reg304940) +reg304942 := Nil; +reg304943 := PrimCons(reg304941, reg304942) +reg304944 := PrimCons(reg304935, reg304943) +reg304945 := PrimCons(reg304934, reg304944) +reg304946 := PrimCons(reg304931, reg304945) +reg304947 := PrimCons(Z, reg304946) +reg304948 := PrimCons(reg304930, reg304947) +reg304949 := MakeSymbol("shen.else") +reg304950 := MakeSymbol("shen.failed!") +reg304951 := Nil; +reg304952 := PrimCons(reg304950, reg304951) +reg304953 := PrimCons(reg304949, reg304952) +reg304954 := PrimCons(reg304948, reg304953) +reg304955 := PrimCons(reg304929, reg304954) +reg304956 := PrimCons(reg304928, reg304955) +reg304957 := PrimCons(reg304920, reg304956) +reg304958 := Nil; +reg304959 := PrimCons(reg304957, reg304958) +reg304960 := PrimCons(reg304919, reg304959) +reg304961 := PrimCons(reg304918, reg304960) +reg304962 := PrimCons(reg304912, reg304961) +reg304963 := PrimCons(reg304911, reg304962) +reg304964 := PrimCons(reg304899, reg304963) +reg304965 := Nil; +reg304966 := PrimCons(reg304964, reg304965) +reg304967 := PrimCons(reg304898, reg304966) +reg304968 := PrimCons(reg304897, reg304967) +reg304969 := PrimCons(reg304888, reg304968) +reg304970 := PrimCons(Z, reg304969) +reg304971 := PrimCons(reg304887, reg304970) +__ctx.Return(reg304971) +return +} else { +reg304972 := PrimIsPair(V2025) +var reg305048 Obj +if reg304972 == True { +reg304973 := PrimHead(V2025) +reg304974 := PrimIsPair(reg304973) +var reg305043 Obj +if reg304974 == True { +reg304975 := MakeSymbol("shen.mu") +reg304976 := PrimHead(V2025) +reg304977 := PrimHead(reg304976) +reg304978 := PrimEqual(reg304975, reg304977) +var reg305038 Obj +if reg304978 == True { +reg304979 := PrimHead(V2025) +reg304980 := PrimTail(reg304979) +reg304981 := PrimIsPair(reg304980) +var reg305033 Obj +if reg304981 == True { +reg304982 := PrimHead(V2025) +reg304983 := PrimTail(reg304982) +reg304984 := PrimHead(reg304983) +reg304985 := PrimIsPair(reg304984) +var reg305028 Obj +if reg304985 == True { +reg304986 := PrimHead(V2025) +reg304987 := PrimTail(reg304986) +reg304988 := PrimTail(reg304987) +reg304989 := PrimIsPair(reg304988) +var reg305023 Obj +if reg304989 == True { +reg304990 := Nil; +reg304991 := PrimHead(V2025) +reg304992 := PrimTail(reg304991) +reg304993 := PrimTail(reg304992) +reg304994 := PrimTail(reg304993) +reg304995 := PrimEqual(reg304990, reg304994) +var reg305018 Obj +if reg304995 == True { +reg304996 := PrimTail(V2025) +reg304997 := PrimIsPair(reg304996) +var reg305013 Obj +if reg304997 == True { +reg304998 := Nil; +reg304999 := PrimTail(V2025) +reg305000 := PrimTail(reg304999) +reg305001 := PrimEqual(reg304998, reg305000) +var reg305008 Obj +if reg305001 == True { +reg305002 := MakeSymbol("-") +reg305003 := PrimEqual(reg305002, V2026) +var reg305006 Obj +if reg305003 == True { +reg305004 := True; +reg305006 = reg305004 +} else { +reg305005 := False; +reg305006 = reg305005 +} +reg305008 = reg305006 +} else { +reg305007 := False; +reg305008 = reg305007 +} +var reg305011 Obj +if reg305008 == True { +reg305009 := True; +reg305011 = reg305009 +} else { +reg305010 := False; +reg305011 = reg305010 +} +reg305013 = reg305011 +} else { +reg305012 := False; +reg305013 = reg305012 +} +var reg305016 Obj +if reg305013 == True { +reg305014 := True; +reg305016 = reg305014 +} else { +reg305015 := False; +reg305016 = reg305015 +} +reg305018 = reg305016 +} else { +reg305017 := False; +reg305018 = reg305017 +} +var reg305021 Obj +if reg305018 == True { +reg305019 := True; +reg305021 = reg305019 +} else { +reg305020 := False; +reg305021 = reg305020 +} +reg305023 = reg305021 +} else { +reg305022 := False; +reg305023 = reg305022 +} +var reg305026 Obj +if reg305023 == True { +reg305024 := True; +reg305026 = reg305024 +} else { +reg305025 := False; +reg305026 = reg305025 +} +reg305028 = reg305026 +} else { +reg305027 := False; +reg305028 = reg305027 +} +var reg305031 Obj +if reg305028 == True { +reg305029 := True; +reg305031 = reg305029 +} else { +reg305030 := False; +reg305031 = reg305030 +} +reg305033 = reg305031 +} else { +reg305032 := False; +reg305033 = reg305032 +} +var reg305036 Obj +if reg305033 == True { +reg305034 := True; +reg305036 = reg305034 +} else { +reg305035 := False; +reg305036 = reg305035 +} +reg305038 = reg305036 +} else { +reg305037 := False; +reg305038 = reg305037 +} +var reg305041 Obj +if reg305038 == True { +reg305039 := True; +reg305041 = reg305039 +} else { +reg305040 := False; +reg305041 = reg305040 +} +reg305043 = reg305041 +} else { +reg305042 := False; +reg305043 = reg305042 +} +var reg305046 Obj +if reg305043 == True { +reg305044 := True; +reg305046 = reg305044 +} else { +reg305045 := False; +reg305046 = reg305045 +} +reg305048 = reg305046 +} else { +reg305047 := False; +reg305048 = reg305047 +} +if reg305048 == True { +reg305049 := MakeSymbol("V") +reg305050 := __e.Call(__defun__gensym, reg305049) +Z := reg305050 +_ = Z +reg305051 := MakeSymbol("let") +reg305052 := MakeSymbol("shen.be") +reg305053 := MakeSymbol("shen.the") +reg305054 := MakeSymbol("shen.result") +reg305055 := MakeSymbol("shen.of") +reg305056 := MakeSymbol("shen.dereferencing") +reg305057 := PrimTail(V2025) +reg305058 := PrimCons(reg305056, reg305057) +reg305059 := PrimCons(reg305055, reg305058) +reg305060 := PrimCons(reg305054, reg305059) +reg305061 := PrimCons(reg305053, reg305060) +reg305062 := MakeSymbol("in") +reg305063 := MakeSymbol("if") +reg305064 := MakeSymbol("is") +reg305065 := MakeSymbol("shen.a") +reg305066 := MakeSymbol("shen.non-empty") +reg305067 := MakeSymbol("list") +reg305068 := Nil; +reg305069 := PrimCons(reg305067, reg305068) +reg305070 := PrimCons(reg305066, reg305069) +reg305071 := PrimCons(reg305065, reg305070) +reg305072 := PrimCons(reg305064, reg305071) +reg305073 := PrimCons(Z, reg305072) +reg305074 := MakeSymbol("shen.then") +reg305075 := MakeSymbol("shen.mu") +reg305076 := PrimHead(V2025) +reg305077 := PrimTail(reg305076) +reg305078 := PrimHead(reg305077) +reg305079 := PrimHead(reg305078) +reg305080 := MakeSymbol("shen.mu") +reg305081 := PrimHead(V2025) +reg305082 := PrimTail(reg305081) +reg305083 := PrimHead(reg305082) +reg305084 := PrimTail(reg305083) +reg305085 := PrimHead(V2025) +reg305086 := PrimTail(reg305085) +reg305087 := PrimTail(reg305086) +reg305088 := PrimCons(reg305084, reg305087) +reg305089 := PrimCons(reg305080, reg305088) +reg305090 := MakeSymbol("shen.the") +reg305091 := MakeSymbol("tail") +reg305092 := MakeSymbol("shen.of") +reg305093 := Nil; +reg305094 := PrimCons(Z, reg305093) +reg305095 := PrimCons(reg305092, reg305094) +reg305096 := PrimCons(reg305091, reg305095) +reg305097 := PrimCons(reg305090, reg305096) +reg305098 := Nil; +reg305099 := PrimCons(reg305097, reg305098) +reg305100 := PrimCons(reg305089, reg305099) +reg305101 := Nil; +reg305102 := PrimCons(reg305100, reg305101) +reg305103 := PrimCons(reg305079, reg305102) +reg305104 := PrimCons(reg305075, reg305103) +reg305105 := MakeSymbol("shen.the") +reg305106 := MakeSymbol("head") +reg305107 := MakeSymbol("shen.of") +reg305108 := Nil; +reg305109 := PrimCons(Z, reg305108) +reg305110 := PrimCons(reg305107, reg305109) +reg305111 := PrimCons(reg305106, reg305110) +reg305112 := PrimCons(reg305105, reg305111) +reg305113 := Nil; +reg305114 := PrimCons(reg305112, reg305113) +reg305115 := PrimCons(reg305104, reg305114) +reg305116 := MakeSymbol("-") +reg305117 := __e.Call(__defun__shen_4mu__reduction, reg305115, reg305116) +reg305118 := MakeSymbol("shen.else") +reg305119 := MakeSymbol("shen.failed!") +reg305120 := Nil; +reg305121 := PrimCons(reg305119, reg305120) +reg305122 := PrimCons(reg305118, reg305121) +reg305123 := PrimCons(reg305117, reg305122) +reg305124 := PrimCons(reg305074, reg305123) +reg305125 := PrimCons(reg305073, reg305124) +reg305126 := PrimCons(reg305063, reg305125) +reg305127 := Nil; +reg305128 := PrimCons(reg305126, reg305127) +reg305129 := PrimCons(reg305062, reg305128) +reg305130 := PrimCons(reg305061, reg305129) +reg305131 := PrimCons(reg305052, reg305130) +reg305132 := PrimCons(Z, reg305131) +reg305133 := PrimCons(reg305051, reg305132) +__ctx.Return(reg305133) +return +} else { +reg305134 := PrimIsPair(V2025) +var reg305210 Obj +if reg305134 == True { +reg305135 := PrimHead(V2025) +reg305136 := PrimIsPair(reg305135) +var reg305205 Obj +if reg305136 == True { +reg305137 := MakeSymbol("shen.mu") +reg305138 := PrimHead(V2025) +reg305139 := PrimHead(reg305138) +reg305140 := PrimEqual(reg305137, reg305139) +var reg305200 Obj +if reg305140 == True { +reg305141 := PrimHead(V2025) +reg305142 := PrimTail(reg305141) +reg305143 := PrimIsPair(reg305142) +var reg305195 Obj +if reg305143 == True { +reg305144 := PrimHead(V2025) +reg305145 := PrimTail(reg305144) +reg305146 := PrimHead(reg305145) +reg305147 := PrimIsPair(reg305146) +var reg305190 Obj +if reg305147 == True { +reg305148 := PrimHead(V2025) +reg305149 := PrimTail(reg305148) +reg305150 := PrimTail(reg305149) +reg305151 := PrimIsPair(reg305150) +var reg305185 Obj +if reg305151 == True { +reg305152 := Nil; +reg305153 := PrimHead(V2025) +reg305154 := PrimTail(reg305153) +reg305155 := PrimTail(reg305154) +reg305156 := PrimTail(reg305155) +reg305157 := PrimEqual(reg305152, reg305156) +var reg305180 Obj +if reg305157 == True { +reg305158 := PrimTail(V2025) +reg305159 := PrimIsPair(reg305158) +var reg305175 Obj +if reg305159 == True { +reg305160 := Nil; +reg305161 := PrimTail(V2025) +reg305162 := PrimTail(reg305161) +reg305163 := PrimEqual(reg305160, reg305162) +var reg305170 Obj +if reg305163 == True { +reg305164 := MakeSymbol("+") +reg305165 := PrimEqual(reg305164, V2026) +var reg305168 Obj +if reg305165 == True { +reg305166 := True; +reg305168 = reg305166 +} else { +reg305167 := False; +reg305168 = reg305167 +} +reg305170 = reg305168 +} else { +reg305169 := False; +reg305170 = reg305169 +} +var reg305173 Obj +if reg305170 == True { +reg305171 := True; +reg305173 = reg305171 +} else { +reg305172 := False; +reg305173 = reg305172 +} +reg305175 = reg305173 +} else { +reg305174 := False; +reg305175 = reg305174 +} +var reg305178 Obj +if reg305175 == True { +reg305176 := True; +reg305178 = reg305176 +} else { +reg305177 := False; +reg305178 = reg305177 +} +reg305180 = reg305178 +} else { +reg305179 := False; +reg305180 = reg305179 +} +var reg305183 Obj +if reg305180 == True { +reg305181 := True; +reg305183 = reg305181 +} else { +reg305182 := False; +reg305183 = reg305182 +} +reg305185 = reg305183 +} else { +reg305184 := False; +reg305185 = reg305184 +} +var reg305188 Obj +if reg305185 == True { +reg305186 := True; +reg305188 = reg305186 +} else { +reg305187 := False; +reg305188 = reg305187 +} +reg305190 = reg305188 +} else { +reg305189 := False; +reg305190 = reg305189 +} +var reg305193 Obj +if reg305190 == True { +reg305191 := True; +reg305193 = reg305191 +} else { +reg305192 := False; +reg305193 = reg305192 +} +reg305195 = reg305193 +} else { +reg305194 := False; +reg305195 = reg305194 +} +var reg305198 Obj +if reg305195 == True { +reg305196 := True; +reg305198 = reg305196 +} else { +reg305197 := False; +reg305198 = reg305197 +} +reg305200 = reg305198 +} else { +reg305199 := False; +reg305200 = reg305199 +} +var reg305203 Obj +if reg305200 == True { +reg305201 := True; +reg305203 = reg305201 +} else { +reg305202 := False; +reg305203 = reg305202 +} +reg305205 = reg305203 +} else { +reg305204 := False; +reg305205 = reg305204 +} +var reg305208 Obj +if reg305205 == True { +reg305206 := True; +reg305208 = reg305206 +} else { +reg305207 := False; +reg305208 = reg305207 +} +reg305210 = reg305208 +} else { +reg305209 := False; +reg305210 = reg305209 +} +if reg305210 == True { +reg305211 := MakeSymbol("V") +reg305212 := __e.Call(__defun__gensym, reg305211) +Z := reg305212 +_ = Z +reg305213 := MakeSymbol("let") +reg305214 := MakeSymbol("shen.be") +reg305215 := MakeSymbol("shen.the") +reg305216 := MakeSymbol("shen.result") +reg305217 := MakeSymbol("shen.of") +reg305218 := MakeSymbol("shen.dereferencing") +reg305219 := PrimTail(V2025) +reg305220 := PrimCons(reg305218, reg305219) +reg305221 := PrimCons(reg305217, reg305220) +reg305222 := PrimCons(reg305216, reg305221) +reg305223 := PrimCons(reg305215, reg305222) +reg305224 := MakeSymbol("in") +reg305225 := MakeSymbol("if") +reg305226 := MakeSymbol("is") +reg305227 := MakeSymbol("shen.a") +reg305228 := MakeSymbol("shen.non-empty") +reg305229 := MakeSymbol("list") +reg305230 := Nil; +reg305231 := PrimCons(reg305229, reg305230) +reg305232 := PrimCons(reg305228, reg305231) +reg305233 := PrimCons(reg305227, reg305232) +reg305234 := PrimCons(reg305226, reg305233) +reg305235 := PrimCons(Z, reg305234) +reg305236 := MakeSymbol("shen.then") +reg305237 := MakeSymbol("shen.mu") +reg305238 := PrimHead(V2025) +reg305239 := PrimTail(reg305238) +reg305240 := PrimHead(reg305239) +reg305241 := PrimHead(reg305240) +reg305242 := MakeSymbol("shen.mu") +reg305243 := PrimHead(V2025) +reg305244 := PrimTail(reg305243) +reg305245 := PrimHead(reg305244) +reg305246 := PrimTail(reg305245) +reg305247 := PrimHead(V2025) +reg305248 := PrimTail(reg305247) +reg305249 := PrimTail(reg305248) +reg305250 := PrimCons(reg305246, reg305249) +reg305251 := PrimCons(reg305242, reg305250) +reg305252 := MakeSymbol("shen.the") +reg305253 := MakeSymbol("tail") +reg305254 := MakeSymbol("shen.of") +reg305255 := Nil; +reg305256 := PrimCons(Z, reg305255) +reg305257 := PrimCons(reg305254, reg305256) +reg305258 := PrimCons(reg305253, reg305257) +reg305259 := PrimCons(reg305252, reg305258) +reg305260 := Nil; +reg305261 := PrimCons(reg305259, reg305260) +reg305262 := PrimCons(reg305251, reg305261) +reg305263 := Nil; +reg305264 := PrimCons(reg305262, reg305263) +reg305265 := PrimCons(reg305241, reg305264) +reg305266 := PrimCons(reg305237, reg305265) +reg305267 := MakeSymbol("shen.the") +reg305268 := MakeSymbol("head") +reg305269 := MakeSymbol("shen.of") +reg305270 := Nil; +reg305271 := PrimCons(Z, reg305270) +reg305272 := PrimCons(reg305269, reg305271) +reg305273 := PrimCons(reg305268, reg305272) +reg305274 := PrimCons(reg305267, reg305273) +reg305275 := Nil; +reg305276 := PrimCons(reg305274, reg305275) +reg305277 := PrimCons(reg305266, reg305276) +reg305278 := MakeSymbol("+") +reg305279 := __e.Call(__defun__shen_4mu__reduction, reg305277, reg305278) +reg305280 := MakeSymbol("shen.else") +reg305281 := MakeSymbol("if") +reg305282 := MakeSymbol("is") +reg305283 := MakeSymbol("shen.a") +reg305284 := MakeSymbol("shen.variable") +reg305285 := Nil; +reg305286 := PrimCons(reg305284, reg305285) +reg305287 := PrimCons(reg305283, reg305286) +reg305288 := PrimCons(reg305282, reg305287) +reg305289 := PrimCons(Z, reg305288) +reg305290 := MakeSymbol("shen.then") +reg305291 := MakeSymbol("shen.rename") +reg305292 := MakeSymbol("shen.the") +reg305293 := MakeSymbol("shen.variables") +reg305294 := MakeSymbol("in") +reg305295 := PrimHead(V2025) +reg305296 := PrimTail(reg305295) +reg305297 := PrimHead(reg305296) +reg305298 := __e.Call(__defun__shen_4extract__vars, reg305297) +reg305299 := MakeSymbol("and") +reg305300 := MakeSymbol("shen.then") +reg305301 := MakeSymbol("bind") +reg305302 := MakeSymbol("shen.to") +reg305303 := PrimHead(V2025) +reg305304 := PrimTail(reg305303) +reg305305 := PrimHead(reg305304) +reg305306 := __e.Call(__defun__shen_4remove__modes, reg305305) +reg305307 := __e.Call(__defun__shen_4rcons__form, reg305306) +reg305308 := MakeSymbol("in") +reg305309 := PrimHead(V2025) +reg305310 := PrimTail(reg305309) +reg305311 := PrimTail(reg305310) +reg305312 := PrimHead(reg305311) +reg305313 := MakeSymbol("+") +reg305314 := __e.Call(__defun__shen_4mu__reduction, reg305312, reg305313) +reg305315 := Nil; +reg305316 := PrimCons(reg305314, reg305315) +reg305317 := PrimCons(reg305308, reg305316) +reg305318 := PrimCons(reg305307, reg305317) +reg305319 := PrimCons(reg305302, reg305318) +reg305320 := PrimCons(Z, reg305319) +reg305321 := PrimCons(reg305301, reg305320) +reg305322 := Nil; +reg305323 := PrimCons(reg305321, reg305322) +reg305324 := PrimCons(reg305300, reg305323) +reg305325 := PrimCons(reg305299, reg305324) +reg305326 := PrimCons(reg305298, reg305325) +reg305327 := PrimCons(reg305294, reg305326) +reg305328 := PrimCons(reg305293, reg305327) +reg305329 := PrimCons(reg305292, reg305328) +reg305330 := PrimCons(reg305291, reg305329) +reg305331 := MakeSymbol("shen.else") +reg305332 := MakeSymbol("shen.failed!") +reg305333 := Nil; +reg305334 := PrimCons(reg305332, reg305333) +reg305335 := PrimCons(reg305331, reg305334) +reg305336 := PrimCons(reg305330, reg305335) +reg305337 := PrimCons(reg305290, reg305336) +reg305338 := PrimCons(reg305289, reg305337) +reg305339 := PrimCons(reg305281, reg305338) +reg305340 := Nil; +reg305341 := PrimCons(reg305339, reg305340) +reg305342 := PrimCons(reg305280, reg305341) +reg305343 := PrimCons(reg305279, reg305342) +reg305344 := PrimCons(reg305236, reg305343) +reg305345 := PrimCons(reg305235, reg305344) +reg305346 := PrimCons(reg305225, reg305345) +reg305347 := Nil; +reg305348 := PrimCons(reg305346, reg305347) +reg305349 := PrimCons(reg305224, reg305348) +reg305350 := PrimCons(reg305223, reg305349) +reg305351 := PrimCons(reg305214, reg305350) +reg305352 := PrimCons(Z, reg305351) +reg305353 := PrimCons(reg305213, reg305352) +__ctx.Return(reg305353) +return +} else { +__ctx.Return(V2025) +return +} +} +} +} +} +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.mu_reduction", value: __defun__shen_4mu__reduction}) + +__defun__shen_4rcons__form = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2028 := __args[0] +_ = V2028 +reg305354 := PrimIsPair(V2028) +if reg305354 == True { +reg305355 := MakeSymbol("cons") +reg305356 := PrimHead(V2028) +reg305357 := __e.Call(__defun__shen_4rcons__form, reg305356) +reg305358 := PrimTail(V2028) +reg305359 := __e.Call(__defun__shen_4rcons__form, reg305358) +reg305360 := Nil; +reg305361 := PrimCons(reg305359, reg305360) +reg305362 := PrimCons(reg305357, reg305361) +reg305363 := PrimCons(reg305355, reg305362) +__ctx.Return(reg305363) +return +} else { +__ctx.Return(V2028) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.rcons_form", value: __defun__shen_4rcons__form}) + +__defun__shen_4remove__modes = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2030 := __args[0] +_ = V2030 +reg305364 := PrimIsPair(V2030) +var reg305407 Obj +if reg305364 == True { +reg305365 := MakeSymbol("mode") +reg305366 := PrimHead(V2030) +reg305367 := PrimEqual(reg305365, reg305366) +var reg305402 Obj +if reg305367 == True { +reg305368 := PrimTail(V2030) +reg305369 := PrimIsPair(reg305368) +var reg305397 Obj +if reg305369 == True { +reg305370 := PrimTail(V2030) +reg305371 := PrimTail(reg305370) +reg305372 := PrimIsPair(reg305371) +var reg305392 Obj +if reg305372 == True { +reg305373 := MakeSymbol("+") +reg305374 := PrimTail(V2030) +reg305375 := PrimTail(reg305374) +reg305376 := PrimHead(reg305375) +reg305377 := PrimEqual(reg305373, reg305376) +var reg305387 Obj +if reg305377 == True { +reg305378 := Nil; +reg305379 := PrimTail(V2030) +reg305380 := PrimTail(reg305379) +reg305381 := PrimTail(reg305380) +reg305382 := PrimEqual(reg305378, reg305381) +var reg305385 Obj +if reg305382 == True { +reg305383 := True; +reg305385 = reg305383 +} else { +reg305384 := False; +reg305385 = reg305384 +} +reg305387 = reg305385 +} else { +reg305386 := False; +reg305387 = reg305386 +} +var reg305390 Obj +if reg305387 == True { +reg305388 := True; +reg305390 = reg305388 +} else { +reg305389 := False; +reg305390 = reg305389 +} +reg305392 = reg305390 +} else { +reg305391 := False; +reg305392 = reg305391 +} +var reg305395 Obj +if reg305392 == True { +reg305393 := True; +reg305395 = reg305393 +} else { +reg305394 := False; +reg305395 = reg305394 +} +reg305397 = reg305395 +} else { +reg305396 := False; +reg305397 = reg305396 +} +var reg305400 Obj +if reg305397 == True { +reg305398 := True; +reg305400 = reg305398 +} else { +reg305399 := False; +reg305400 = reg305399 +} +reg305402 = reg305400 +} else { +reg305401 := False; +reg305402 = reg305401 +} +var reg305405 Obj +if reg305402 == True { +reg305403 := True; +reg305405 = reg305403 +} else { +reg305404 := False; +reg305405 = reg305404 +} +reg305407 = reg305405 +} else { +reg305406 := False; +reg305407 = reg305406 +} +if reg305407 == True { +reg305408 := PrimTail(V2030) +reg305409 := PrimHead(reg305408) +__ctx.TailApply(__defun__shen_4remove__modes, reg305409) +return +} else { +reg305411 := PrimIsPair(V2030) +var reg305454 Obj +if reg305411 == True { +reg305412 := MakeSymbol("mode") +reg305413 := PrimHead(V2030) +reg305414 := PrimEqual(reg305412, reg305413) +var reg305449 Obj +if reg305414 == True { +reg305415 := PrimTail(V2030) +reg305416 := PrimIsPair(reg305415) +var reg305444 Obj +if reg305416 == True { +reg305417 := PrimTail(V2030) +reg305418 := PrimTail(reg305417) +reg305419 := PrimIsPair(reg305418) +var reg305439 Obj +if reg305419 == True { +reg305420 := MakeSymbol("-") +reg305421 := PrimTail(V2030) +reg305422 := PrimTail(reg305421) +reg305423 := PrimHead(reg305422) +reg305424 := PrimEqual(reg305420, reg305423) +var reg305434 Obj +if reg305424 == True { +reg305425 := Nil; +reg305426 := PrimTail(V2030) +reg305427 := PrimTail(reg305426) +reg305428 := PrimTail(reg305427) +reg305429 := PrimEqual(reg305425, reg305428) +var reg305432 Obj +if reg305429 == True { +reg305430 := True; +reg305432 = reg305430 +} else { +reg305431 := False; +reg305432 = reg305431 +} +reg305434 = reg305432 +} else { +reg305433 := False; +reg305434 = reg305433 +} +var reg305437 Obj +if reg305434 == True { +reg305435 := True; +reg305437 = reg305435 +} else { +reg305436 := False; +reg305437 = reg305436 +} +reg305439 = reg305437 +} else { +reg305438 := False; +reg305439 = reg305438 +} +var reg305442 Obj +if reg305439 == True { +reg305440 := True; +reg305442 = reg305440 +} else { +reg305441 := False; +reg305442 = reg305441 +} +reg305444 = reg305442 +} else { +reg305443 := False; +reg305444 = reg305443 +} +var reg305447 Obj +if reg305444 == True { +reg305445 := True; +reg305447 = reg305445 +} else { +reg305446 := False; +reg305447 = reg305446 +} +reg305449 = reg305447 +} else { +reg305448 := False; +reg305449 = reg305448 +} +var reg305452 Obj +if reg305449 == True { +reg305450 := True; +reg305452 = reg305450 +} else { +reg305451 := False; +reg305452 = reg305451 +} +reg305454 = reg305452 +} else { +reg305453 := False; +reg305454 = reg305453 +} +if reg305454 == True { +reg305455 := PrimTail(V2030) +reg305456 := PrimHead(reg305455) +__ctx.TailApply(__defun__shen_4remove__modes, reg305456) +return +} else { +reg305458 := PrimIsPair(V2030) +if reg305458 == True { +reg305459 := PrimHead(V2030) +reg305460 := __e.Call(__defun__shen_4remove__modes, reg305459) +reg305461 := PrimTail(V2030) +reg305462 := __e.Call(__defun__shen_4remove__modes, reg305461) +reg305463 := PrimCons(reg305460, reg305462) +__ctx.Return(reg305463) +return +} else { +__ctx.Return(V2030) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.remove_modes", value: __defun__shen_4remove__modes}) + +__defun__shen_4ephemeral__variable_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2033 := __args[0] +_ = V2033 +V2034 := __args[1] +_ = V2034 +reg305464 := PrimIsVariable(V2033) +if reg305464 == True { +reg305465 := PrimIsVariable(V2034) +if reg305465 == True { +reg305466 := True; +__ctx.Return(reg305466) +return +} else { +reg305467 := False; +__ctx.Return(reg305467) +return +} +} else { +reg305468 := False; +__ctx.Return(reg305468) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.ephemeral_variable?", value: __defun__shen_4ephemeral__variable_2}) + +__defun__shen_4prolog__constant_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2044 := __args[0] +_ = V2044 +reg305469 := PrimIsPair(V2044) +if reg305469 == True { +reg305470 := False; +__ctx.Return(reg305470) +return +} else { +reg305471 := True; +__ctx.Return(reg305471) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.prolog_constant?", value: __defun__shen_4prolog__constant_2}) + +__defun__shen_4aum__to__shen = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2046 := __args[0] +_ = V2046 +reg305472 := PrimIsPair(V2046) +var reg305560 Obj +if reg305472 == True { +reg305473 := MakeSymbol("let") +reg305474 := PrimHead(V2046) +reg305475 := PrimEqual(reg305473, reg305474) +var reg305555 Obj +if reg305475 == True { +reg305476 := PrimTail(V2046) +reg305477 := PrimIsPair(reg305476) +var reg305550 Obj +if reg305477 == True { +reg305478 := PrimTail(V2046) +reg305479 := PrimTail(reg305478) +reg305480 := PrimIsPair(reg305479) +var reg305545 Obj +if reg305480 == True { +reg305481 := MakeSymbol("shen.be") +reg305482 := PrimTail(V2046) +reg305483 := PrimTail(reg305482) +reg305484 := PrimHead(reg305483) +reg305485 := PrimEqual(reg305481, reg305484) +var reg305540 Obj +if reg305485 == True { +reg305486 := PrimTail(V2046) +reg305487 := PrimTail(reg305486) +reg305488 := PrimTail(reg305487) +reg305489 := PrimIsPair(reg305488) +var reg305535 Obj +if reg305489 == True { +reg305490 := PrimTail(V2046) +reg305491 := PrimTail(reg305490) +reg305492 := PrimTail(reg305491) +reg305493 := PrimTail(reg305492) +reg305494 := PrimIsPair(reg305493) +var reg305530 Obj +if reg305494 == True { +reg305495 := MakeSymbol("in") +reg305496 := PrimTail(V2046) +reg305497 := PrimTail(reg305496) +reg305498 := PrimTail(reg305497) +reg305499 := PrimTail(reg305498) +reg305500 := PrimHead(reg305499) +reg305501 := PrimEqual(reg305495, reg305500) +var reg305525 Obj +if reg305501 == True { +reg305502 := PrimTail(V2046) +reg305503 := PrimTail(reg305502) +reg305504 := PrimTail(reg305503) +reg305505 := PrimTail(reg305504) +reg305506 := PrimTail(reg305505) +reg305507 := PrimIsPair(reg305506) +var reg305520 Obj +if reg305507 == True { +reg305508 := Nil; +reg305509 := PrimTail(V2046) +reg305510 := PrimTail(reg305509) +reg305511 := PrimTail(reg305510) +reg305512 := PrimTail(reg305511) +reg305513 := PrimTail(reg305512) +reg305514 := PrimTail(reg305513) +reg305515 := PrimEqual(reg305508, reg305514) +var reg305518 Obj +if reg305515 == True { +reg305516 := True; +reg305518 = reg305516 +} else { +reg305517 := False; +reg305518 = reg305517 +} +reg305520 = reg305518 +} else { +reg305519 := False; +reg305520 = reg305519 +} +var reg305523 Obj +if reg305520 == True { +reg305521 := True; +reg305523 = reg305521 +} else { +reg305522 := False; +reg305523 = reg305522 +} +reg305525 = reg305523 +} else { +reg305524 := False; +reg305525 = reg305524 +} +var reg305528 Obj +if reg305525 == True { +reg305526 := True; +reg305528 = reg305526 +} else { +reg305527 := False; +reg305528 = reg305527 +} +reg305530 = reg305528 +} else { +reg305529 := False; +reg305530 = reg305529 +} +var reg305533 Obj +if reg305530 == True { +reg305531 := True; +reg305533 = reg305531 +} else { +reg305532 := False; +reg305533 = reg305532 +} +reg305535 = reg305533 +} else { +reg305534 := False; +reg305535 = reg305534 +} +var reg305538 Obj +if reg305535 == True { +reg305536 := True; +reg305538 = reg305536 +} else { +reg305537 := False; +reg305538 = reg305537 +} +reg305540 = reg305538 +} else { +reg305539 := False; +reg305540 = reg305539 +} +var reg305543 Obj +if reg305540 == True { +reg305541 := True; +reg305543 = reg305541 +} else { +reg305542 := False; +reg305543 = reg305542 +} +reg305545 = reg305543 +} else { +reg305544 := False; +reg305545 = reg305544 +} +var reg305548 Obj +if reg305545 == True { +reg305546 := True; +reg305548 = reg305546 +} else { +reg305547 := False; +reg305548 = reg305547 +} +reg305550 = reg305548 +} else { +reg305549 := False; +reg305550 = reg305549 +} +var reg305553 Obj +if reg305550 == True { +reg305551 := True; +reg305553 = reg305551 +} else { +reg305552 := False; +reg305553 = reg305552 +} +reg305555 = reg305553 +} else { +reg305554 := False; +reg305555 = reg305554 +} +var reg305558 Obj +if reg305555 == True { +reg305556 := True; +reg305558 = reg305556 +} else { +reg305557 := False; +reg305558 = reg305557 +} +reg305560 = reg305558 +} else { +reg305559 := False; +reg305560 = reg305559 +} +if reg305560 == True { +reg305561 := MakeSymbol("let") +reg305562 := PrimTail(V2046) +reg305563 := PrimHead(reg305562) +reg305564 := PrimTail(V2046) +reg305565 := PrimTail(reg305564) +reg305566 := PrimTail(reg305565) +reg305567 := PrimHead(reg305566) +reg305568 := __e.Call(__defun__shen_4aum__to__shen, reg305567) +reg305569 := PrimTail(V2046) +reg305570 := PrimTail(reg305569) +reg305571 := PrimTail(reg305570) +reg305572 := PrimTail(reg305571) +reg305573 := PrimTail(reg305572) +reg305574 := PrimHead(reg305573) +reg305575 := __e.Call(__defun__shen_4aum__to__shen, reg305574) +reg305576 := Nil; +reg305577 := PrimCons(reg305575, reg305576) +reg305578 := PrimCons(reg305568, reg305577) +reg305579 := PrimCons(reg305563, reg305578) +reg305580 := PrimCons(reg305561, reg305579) +__ctx.Return(reg305580) +return +} else { +reg305581 := PrimIsPair(V2046) +var reg305665 Obj +if reg305581 == True { +reg305582 := MakeSymbol("shen.the") +reg305583 := PrimHead(V2046) +reg305584 := PrimEqual(reg305582, reg305583) +var reg305660 Obj +if reg305584 == True { +reg305585 := PrimTail(V2046) +reg305586 := PrimIsPair(reg305585) +var reg305655 Obj +if reg305586 == True { +reg305587 := MakeSymbol("shen.result") +reg305588 := PrimTail(V2046) +reg305589 := PrimHead(reg305588) +reg305590 := PrimEqual(reg305587, reg305589) +var reg305650 Obj +if reg305590 == True { +reg305591 := PrimTail(V2046) +reg305592 := PrimTail(reg305591) +reg305593 := PrimIsPair(reg305592) +var reg305645 Obj +if reg305593 == True { +reg305594 := MakeSymbol("shen.of") +reg305595 := PrimTail(V2046) +reg305596 := PrimTail(reg305595) +reg305597 := PrimHead(reg305596) +reg305598 := PrimEqual(reg305594, reg305597) +var reg305640 Obj +if reg305598 == True { +reg305599 := PrimTail(V2046) +reg305600 := PrimTail(reg305599) +reg305601 := PrimTail(reg305600) +reg305602 := PrimIsPair(reg305601) +var reg305635 Obj +if reg305602 == True { +reg305603 := MakeSymbol("shen.dereferencing") +reg305604 := PrimTail(V2046) +reg305605 := PrimTail(reg305604) +reg305606 := PrimTail(reg305605) +reg305607 := PrimHead(reg305606) +reg305608 := PrimEqual(reg305603, reg305607) +var reg305630 Obj +if reg305608 == True { +reg305609 := PrimTail(V2046) +reg305610 := PrimTail(reg305609) +reg305611 := PrimTail(reg305610) +reg305612 := PrimTail(reg305611) +reg305613 := PrimIsPair(reg305612) +var reg305625 Obj +if reg305613 == True { +reg305614 := Nil; +reg305615 := PrimTail(V2046) +reg305616 := PrimTail(reg305615) +reg305617 := PrimTail(reg305616) +reg305618 := PrimTail(reg305617) +reg305619 := PrimTail(reg305618) +reg305620 := PrimEqual(reg305614, reg305619) +var reg305623 Obj +if reg305620 == True { +reg305621 := True; +reg305623 = reg305621 +} else { +reg305622 := False; +reg305623 = reg305622 +} +reg305625 = reg305623 +} else { +reg305624 := False; +reg305625 = reg305624 +} +var reg305628 Obj +if reg305625 == True { +reg305626 := True; +reg305628 = reg305626 +} else { +reg305627 := False; +reg305628 = reg305627 +} +reg305630 = reg305628 +} else { +reg305629 := False; +reg305630 = reg305629 +} +var reg305633 Obj +if reg305630 == True { +reg305631 := True; +reg305633 = reg305631 +} else { +reg305632 := False; +reg305633 = reg305632 +} +reg305635 = reg305633 +} else { +reg305634 := False; +reg305635 = reg305634 +} +var reg305638 Obj +if reg305635 == True { +reg305636 := True; +reg305638 = reg305636 +} else { +reg305637 := False; +reg305638 = reg305637 +} +reg305640 = reg305638 +} else { +reg305639 := False; +reg305640 = reg305639 +} +var reg305643 Obj +if reg305640 == True { +reg305641 := True; +reg305643 = reg305641 +} else { +reg305642 := False; +reg305643 = reg305642 +} +reg305645 = reg305643 +} else { +reg305644 := False; +reg305645 = reg305644 +} +var reg305648 Obj +if reg305645 == True { +reg305646 := True; +reg305648 = reg305646 +} else { +reg305647 := False; +reg305648 = reg305647 +} +reg305650 = reg305648 +} else { +reg305649 := False; +reg305650 = reg305649 +} +var reg305653 Obj +if reg305650 == True { +reg305651 := True; +reg305653 = reg305651 +} else { +reg305652 := False; +reg305653 = reg305652 +} +reg305655 = reg305653 +} else { +reg305654 := False; +reg305655 = reg305654 +} +var reg305658 Obj +if reg305655 == True { +reg305656 := True; +reg305658 = reg305656 +} else { +reg305657 := False; +reg305658 = reg305657 +} +reg305660 = reg305658 +} else { +reg305659 := False; +reg305660 = reg305659 +} +var reg305663 Obj +if reg305660 == True { +reg305661 := True; +reg305663 = reg305661 +} else { +reg305662 := False; +reg305663 = reg305662 +} +reg305665 = reg305663 +} else { +reg305664 := False; +reg305665 = reg305664 +} +if reg305665 == True { +reg305666 := MakeSymbol("shen.lazyderef") +reg305667 := PrimTail(V2046) +reg305668 := PrimTail(reg305667) +reg305669 := PrimTail(reg305668) +reg305670 := PrimTail(reg305669) +reg305671 := PrimHead(reg305670) +reg305672 := __e.Call(__defun__shen_4aum__to__shen, reg305671) +reg305673 := MakeSymbol("ProcessN") +reg305674 := Nil; +reg305675 := PrimCons(reg305673, reg305674) +reg305676 := PrimCons(reg305672, reg305675) +reg305677 := PrimCons(reg305666, reg305676) +__ctx.Return(reg305677) +return +} else { +reg305678 := PrimIsPair(V2046) +var reg305766 Obj +if reg305678 == True { +reg305679 := MakeSymbol("if") +reg305680 := PrimHead(V2046) +reg305681 := PrimEqual(reg305679, reg305680) +var reg305761 Obj +if reg305681 == True { +reg305682 := PrimTail(V2046) +reg305683 := PrimIsPair(reg305682) +var reg305756 Obj +if reg305683 == True { +reg305684 := PrimTail(V2046) +reg305685 := PrimTail(reg305684) +reg305686 := PrimIsPair(reg305685) +var reg305751 Obj +if reg305686 == True { +reg305687 := MakeSymbol("shen.then") +reg305688 := PrimTail(V2046) +reg305689 := PrimTail(reg305688) +reg305690 := PrimHead(reg305689) +reg305691 := PrimEqual(reg305687, reg305690) +var reg305746 Obj +if reg305691 == True { +reg305692 := PrimTail(V2046) +reg305693 := PrimTail(reg305692) +reg305694 := PrimTail(reg305693) +reg305695 := PrimIsPair(reg305694) +var reg305741 Obj +if reg305695 == True { +reg305696 := PrimTail(V2046) +reg305697 := PrimTail(reg305696) +reg305698 := PrimTail(reg305697) +reg305699 := PrimTail(reg305698) +reg305700 := PrimIsPair(reg305699) +var reg305736 Obj +if reg305700 == True { +reg305701 := MakeSymbol("shen.else") +reg305702 := PrimTail(V2046) +reg305703 := PrimTail(reg305702) +reg305704 := PrimTail(reg305703) +reg305705 := PrimTail(reg305704) +reg305706 := PrimHead(reg305705) +reg305707 := PrimEqual(reg305701, reg305706) +var reg305731 Obj +if reg305707 == True { +reg305708 := PrimTail(V2046) +reg305709 := PrimTail(reg305708) +reg305710 := PrimTail(reg305709) +reg305711 := PrimTail(reg305710) +reg305712 := PrimTail(reg305711) +reg305713 := PrimIsPair(reg305712) +var reg305726 Obj +if reg305713 == True { +reg305714 := Nil; +reg305715 := PrimTail(V2046) +reg305716 := PrimTail(reg305715) +reg305717 := PrimTail(reg305716) +reg305718 := PrimTail(reg305717) +reg305719 := PrimTail(reg305718) +reg305720 := PrimTail(reg305719) +reg305721 := PrimEqual(reg305714, reg305720) +var reg305724 Obj +if reg305721 == True { +reg305722 := True; +reg305724 = reg305722 +} else { +reg305723 := False; +reg305724 = reg305723 +} +reg305726 = reg305724 +} else { +reg305725 := False; +reg305726 = reg305725 +} +var reg305729 Obj +if reg305726 == True { +reg305727 := True; +reg305729 = reg305727 +} else { +reg305728 := False; +reg305729 = reg305728 +} +reg305731 = reg305729 +} else { +reg305730 := False; +reg305731 = reg305730 +} +var reg305734 Obj +if reg305731 == True { +reg305732 := True; +reg305734 = reg305732 +} else { +reg305733 := False; +reg305734 = reg305733 +} +reg305736 = reg305734 +} else { +reg305735 := False; +reg305736 = reg305735 +} +var reg305739 Obj +if reg305736 == True { +reg305737 := True; +reg305739 = reg305737 +} else { +reg305738 := False; +reg305739 = reg305738 +} +reg305741 = reg305739 +} else { +reg305740 := False; +reg305741 = reg305740 +} +var reg305744 Obj +if reg305741 == True { +reg305742 := True; +reg305744 = reg305742 +} else { +reg305743 := False; +reg305744 = reg305743 +} +reg305746 = reg305744 +} else { +reg305745 := False; +reg305746 = reg305745 +} +var reg305749 Obj +if reg305746 == True { +reg305747 := True; +reg305749 = reg305747 +} else { +reg305748 := False; +reg305749 = reg305748 +} +reg305751 = reg305749 +} else { +reg305750 := False; +reg305751 = reg305750 +} +var reg305754 Obj +if reg305751 == True { +reg305752 := True; +reg305754 = reg305752 +} else { +reg305753 := False; +reg305754 = reg305753 +} +reg305756 = reg305754 +} else { +reg305755 := False; +reg305756 = reg305755 +} +var reg305759 Obj +if reg305756 == True { +reg305757 := True; +reg305759 = reg305757 +} else { +reg305758 := False; +reg305759 = reg305758 +} +reg305761 = reg305759 +} else { +reg305760 := False; +reg305761 = reg305760 +} +var reg305764 Obj +if reg305761 == True { +reg305762 := True; +reg305764 = reg305762 +} else { +reg305763 := False; +reg305764 = reg305763 +} +reg305766 = reg305764 +} else { +reg305765 := False; +reg305766 = reg305765 +} +if reg305766 == True { +reg305767 := MakeSymbol("if") +reg305768 := PrimTail(V2046) +reg305769 := PrimHead(reg305768) +reg305770 := __e.Call(__defun__shen_4aum__to__shen, reg305769) +reg305771 := PrimTail(V2046) +reg305772 := PrimTail(reg305771) +reg305773 := PrimTail(reg305772) +reg305774 := PrimHead(reg305773) +reg305775 := __e.Call(__defun__shen_4aum__to__shen, reg305774) +reg305776 := PrimTail(V2046) +reg305777 := PrimTail(reg305776) +reg305778 := PrimTail(reg305777) +reg305779 := PrimTail(reg305778) +reg305780 := PrimTail(reg305779) +reg305781 := PrimHead(reg305780) +reg305782 := __e.Call(__defun__shen_4aum__to__shen, reg305781) +reg305783 := Nil; +reg305784 := PrimCons(reg305782, reg305783) +reg305785 := PrimCons(reg305775, reg305784) +reg305786 := PrimCons(reg305770, reg305785) +reg305787 := PrimCons(reg305767, reg305786) +__ctx.Return(reg305787) +return +} else { +reg305788 := PrimIsPair(V2046) +var reg305853 Obj +if reg305788 == True { +reg305789 := PrimTail(V2046) +reg305790 := PrimIsPair(reg305789) +var reg305848 Obj +if reg305790 == True { +reg305791 := MakeSymbol("is") +reg305792 := PrimTail(V2046) +reg305793 := PrimHead(reg305792) +reg305794 := PrimEqual(reg305791, reg305793) +var reg305843 Obj +if reg305794 == True { +reg305795 := PrimTail(V2046) +reg305796 := PrimTail(reg305795) +reg305797 := PrimIsPair(reg305796) +var reg305838 Obj +if reg305797 == True { +reg305798 := MakeSymbol("shen.a") +reg305799 := PrimTail(V2046) +reg305800 := PrimTail(reg305799) +reg305801 := PrimHead(reg305800) +reg305802 := PrimEqual(reg305798, reg305801) +var reg305833 Obj +if reg305802 == True { +reg305803 := PrimTail(V2046) +reg305804 := PrimTail(reg305803) +reg305805 := PrimTail(reg305804) +reg305806 := PrimIsPair(reg305805) +var reg305828 Obj +if reg305806 == True { +reg305807 := MakeSymbol("shen.variable") +reg305808 := PrimTail(V2046) +reg305809 := PrimTail(reg305808) +reg305810 := PrimTail(reg305809) +reg305811 := PrimHead(reg305810) +reg305812 := PrimEqual(reg305807, reg305811) +var reg305823 Obj +if reg305812 == True { +reg305813 := Nil; +reg305814 := PrimTail(V2046) +reg305815 := PrimTail(reg305814) +reg305816 := PrimTail(reg305815) +reg305817 := PrimTail(reg305816) +reg305818 := PrimEqual(reg305813, reg305817) +var reg305821 Obj +if reg305818 == True { +reg305819 := True; +reg305821 = reg305819 +} else { +reg305820 := False; +reg305821 = reg305820 +} +reg305823 = reg305821 +} else { +reg305822 := False; +reg305823 = reg305822 +} +var reg305826 Obj +if reg305823 == True { +reg305824 := True; +reg305826 = reg305824 +} else { +reg305825 := False; +reg305826 = reg305825 +} +reg305828 = reg305826 +} else { +reg305827 := False; +reg305828 = reg305827 +} +var reg305831 Obj +if reg305828 == True { +reg305829 := True; +reg305831 = reg305829 +} else { +reg305830 := False; +reg305831 = reg305830 +} +reg305833 = reg305831 +} else { +reg305832 := False; +reg305833 = reg305832 +} +var reg305836 Obj +if reg305833 == True { +reg305834 := True; +reg305836 = reg305834 +} else { +reg305835 := False; +reg305836 = reg305835 +} +reg305838 = reg305836 +} else { +reg305837 := False; +reg305838 = reg305837 +} +var reg305841 Obj +if reg305838 == True { +reg305839 := True; +reg305841 = reg305839 +} else { +reg305840 := False; +reg305841 = reg305840 +} +reg305843 = reg305841 +} else { +reg305842 := False; +reg305843 = reg305842 +} +var reg305846 Obj +if reg305843 == True { +reg305844 := True; +reg305846 = reg305844 +} else { +reg305845 := False; +reg305846 = reg305845 +} +reg305848 = reg305846 +} else { +reg305847 := False; +reg305848 = reg305847 +} +var reg305851 Obj +if reg305848 == True { +reg305849 := True; +reg305851 = reg305849 +} else { +reg305850 := False; +reg305851 = reg305850 +} +reg305853 = reg305851 +} else { +reg305852 := False; +reg305853 = reg305852 +} +if reg305853 == True { +reg305854 := MakeSymbol("shen.pvar?") +reg305855 := PrimHead(V2046) +reg305856 := Nil; +reg305857 := PrimCons(reg305855, reg305856) +reg305858 := PrimCons(reg305854, reg305857) +__ctx.Return(reg305858) +return +} else { +reg305859 := PrimIsPair(V2046) +var reg305947 Obj +if reg305859 == True { +reg305860 := PrimTail(V2046) +reg305861 := PrimIsPair(reg305860) +var reg305942 Obj +if reg305861 == True { +reg305862 := MakeSymbol("is") +reg305863 := PrimTail(V2046) +reg305864 := PrimHead(reg305863) +reg305865 := PrimEqual(reg305862, reg305864) +var reg305937 Obj +if reg305865 == True { +reg305866 := PrimTail(V2046) +reg305867 := PrimTail(reg305866) +reg305868 := PrimIsPair(reg305867) +var reg305932 Obj +if reg305868 == True { +reg305869 := MakeSymbol("shen.a") +reg305870 := PrimTail(V2046) +reg305871 := PrimTail(reg305870) +reg305872 := PrimHead(reg305871) +reg305873 := PrimEqual(reg305869, reg305872) +var reg305927 Obj +if reg305873 == True { +reg305874 := PrimTail(V2046) +reg305875 := PrimTail(reg305874) +reg305876 := PrimTail(reg305875) +reg305877 := PrimIsPair(reg305876) +var reg305922 Obj +if reg305877 == True { +reg305878 := MakeSymbol("shen.non-empty") +reg305879 := PrimTail(V2046) +reg305880 := PrimTail(reg305879) +reg305881 := PrimTail(reg305880) +reg305882 := PrimHead(reg305881) +reg305883 := PrimEqual(reg305878, reg305882) +var reg305917 Obj +if reg305883 == True { +reg305884 := PrimTail(V2046) +reg305885 := PrimTail(reg305884) +reg305886 := PrimTail(reg305885) +reg305887 := PrimTail(reg305886) +reg305888 := PrimIsPair(reg305887) +var reg305912 Obj +if reg305888 == True { +reg305889 := MakeSymbol("list") +reg305890 := PrimTail(V2046) +reg305891 := PrimTail(reg305890) +reg305892 := PrimTail(reg305891) +reg305893 := PrimTail(reg305892) +reg305894 := PrimHead(reg305893) +reg305895 := PrimEqual(reg305889, reg305894) +var reg305907 Obj +if reg305895 == True { +reg305896 := Nil; +reg305897 := PrimTail(V2046) +reg305898 := PrimTail(reg305897) +reg305899 := PrimTail(reg305898) +reg305900 := PrimTail(reg305899) +reg305901 := PrimTail(reg305900) +reg305902 := PrimEqual(reg305896, reg305901) +var reg305905 Obj +if reg305902 == True { +reg305903 := True; +reg305905 = reg305903 +} else { +reg305904 := False; +reg305905 = reg305904 +} +reg305907 = reg305905 +} else { +reg305906 := False; +reg305907 = reg305906 +} +var reg305910 Obj +if reg305907 == True { +reg305908 := True; +reg305910 = reg305908 +} else { +reg305909 := False; +reg305910 = reg305909 +} +reg305912 = reg305910 +} else { +reg305911 := False; +reg305912 = reg305911 +} +var reg305915 Obj +if reg305912 == True { +reg305913 := True; +reg305915 = reg305913 +} else { +reg305914 := False; +reg305915 = reg305914 +} +reg305917 = reg305915 +} else { +reg305916 := False; +reg305917 = reg305916 +} +var reg305920 Obj +if reg305917 == True { +reg305918 := True; +reg305920 = reg305918 +} else { +reg305919 := False; +reg305920 = reg305919 +} +reg305922 = reg305920 +} else { +reg305921 := False; +reg305922 = reg305921 +} +var reg305925 Obj +if reg305922 == True { +reg305923 := True; +reg305925 = reg305923 +} else { +reg305924 := False; +reg305925 = reg305924 +} +reg305927 = reg305925 +} else { +reg305926 := False; +reg305927 = reg305926 +} +var reg305930 Obj +if reg305927 == True { +reg305928 := True; +reg305930 = reg305928 +} else { +reg305929 := False; +reg305930 = reg305929 +} +reg305932 = reg305930 +} else { +reg305931 := False; +reg305932 = reg305931 +} +var reg305935 Obj +if reg305932 == True { +reg305933 := True; +reg305935 = reg305933 +} else { +reg305934 := False; +reg305935 = reg305934 +} +reg305937 = reg305935 +} else { +reg305936 := False; +reg305937 = reg305936 +} +var reg305940 Obj +if reg305937 == True { +reg305938 := True; +reg305940 = reg305938 +} else { +reg305939 := False; +reg305940 = reg305939 +} +reg305942 = reg305940 +} else { +reg305941 := False; +reg305942 = reg305941 +} +var reg305945 Obj +if reg305942 == True { +reg305943 := True; +reg305945 = reg305943 +} else { +reg305944 := False; +reg305945 = reg305944 +} +reg305947 = reg305945 +} else { +reg305946 := False; +reg305947 = reg305946 +} +if reg305947 == True { +reg305948 := MakeSymbol("cons?") +reg305949 := PrimHead(V2046) +reg305950 := Nil; +reg305951 := PrimCons(reg305949, reg305950) +reg305952 := PrimCons(reg305948, reg305951) +__ctx.Return(reg305952) +return +} else { +reg305953 := PrimIsPair(V2046) +var reg306115 Obj +if reg305953 == True { +reg305954 := MakeSymbol("shen.rename") +reg305955 := PrimHead(V2046) +reg305956 := PrimEqual(reg305954, reg305955) +var reg306110 Obj +if reg305956 == True { +reg305957 := PrimTail(V2046) +reg305958 := PrimIsPair(reg305957) +var reg306105 Obj +if reg305958 == True { +reg305959 := MakeSymbol("shen.the") +reg305960 := PrimTail(V2046) +reg305961 := PrimHead(reg305960) +reg305962 := PrimEqual(reg305959, reg305961) +var reg306100 Obj +if reg305962 == True { +reg305963 := PrimTail(V2046) +reg305964 := PrimTail(reg305963) +reg305965 := PrimIsPair(reg305964) +var reg306095 Obj +if reg305965 == True { +reg305966 := MakeSymbol("shen.variables") +reg305967 := PrimTail(V2046) +reg305968 := PrimTail(reg305967) +reg305969 := PrimHead(reg305968) +reg305970 := PrimEqual(reg305966, reg305969) +var reg306090 Obj +if reg305970 == True { +reg305971 := PrimTail(V2046) +reg305972 := PrimTail(reg305971) +reg305973 := PrimTail(reg305972) +reg305974 := PrimIsPair(reg305973) +var reg306085 Obj +if reg305974 == True { +reg305975 := MakeSymbol("in") +reg305976 := PrimTail(V2046) +reg305977 := PrimTail(reg305976) +reg305978 := PrimTail(reg305977) +reg305979 := PrimHead(reg305978) +reg305980 := PrimEqual(reg305975, reg305979) +var reg306080 Obj +if reg305980 == True { +reg305981 := PrimTail(V2046) +reg305982 := PrimTail(reg305981) +reg305983 := PrimTail(reg305982) +reg305984 := PrimTail(reg305983) +reg305985 := PrimIsPair(reg305984) +var reg306075 Obj +if reg305985 == True { +reg305986 := Nil; +reg305987 := PrimTail(V2046) +reg305988 := PrimTail(reg305987) +reg305989 := PrimTail(reg305988) +reg305990 := PrimTail(reg305989) +reg305991 := PrimHead(reg305990) +reg305992 := PrimEqual(reg305986, reg305991) +var reg306070 Obj +if reg305992 == True { +reg305993 := PrimTail(V2046) +reg305994 := PrimTail(reg305993) +reg305995 := PrimTail(reg305994) +reg305996 := PrimTail(reg305995) +reg305997 := PrimTail(reg305996) +reg305998 := PrimIsPair(reg305997) +var reg306065 Obj +if reg305998 == True { +reg305999 := MakeSymbol("and") +reg306000 := PrimTail(V2046) +reg306001 := PrimTail(reg306000) +reg306002 := PrimTail(reg306001) +reg306003 := PrimTail(reg306002) +reg306004 := PrimTail(reg306003) +reg306005 := PrimHead(reg306004) +reg306006 := PrimEqual(reg305999, reg306005) +var reg306060 Obj +if reg306006 == True { +reg306007 := PrimTail(V2046) +reg306008 := PrimTail(reg306007) +reg306009 := PrimTail(reg306008) +reg306010 := PrimTail(reg306009) +reg306011 := PrimTail(reg306010) +reg306012 := PrimTail(reg306011) +reg306013 := PrimIsPair(reg306012) +var reg306055 Obj +if reg306013 == True { +reg306014 := MakeSymbol("shen.then") +reg306015 := PrimTail(V2046) +reg306016 := PrimTail(reg306015) +reg306017 := PrimTail(reg306016) +reg306018 := PrimTail(reg306017) +reg306019 := PrimTail(reg306018) +reg306020 := PrimTail(reg306019) +reg306021 := PrimHead(reg306020) +reg306022 := PrimEqual(reg306014, reg306021) +var reg306050 Obj +if reg306022 == True { +reg306023 := PrimTail(V2046) +reg306024 := PrimTail(reg306023) +reg306025 := PrimTail(reg306024) +reg306026 := PrimTail(reg306025) +reg306027 := PrimTail(reg306026) +reg306028 := PrimTail(reg306027) +reg306029 := PrimTail(reg306028) +reg306030 := PrimIsPair(reg306029) +var reg306045 Obj +if reg306030 == True { +reg306031 := Nil; +reg306032 := PrimTail(V2046) +reg306033 := PrimTail(reg306032) +reg306034 := PrimTail(reg306033) +reg306035 := PrimTail(reg306034) +reg306036 := PrimTail(reg306035) +reg306037 := PrimTail(reg306036) +reg306038 := PrimTail(reg306037) +reg306039 := PrimTail(reg306038) +reg306040 := PrimEqual(reg306031, reg306039) +var reg306043 Obj +if reg306040 == True { +reg306041 := True; +reg306043 = reg306041 +} else { +reg306042 := False; +reg306043 = reg306042 +} +reg306045 = reg306043 +} else { +reg306044 := False; +reg306045 = reg306044 +} +var reg306048 Obj +if reg306045 == True { +reg306046 := True; +reg306048 = reg306046 +} else { +reg306047 := False; +reg306048 = reg306047 +} +reg306050 = reg306048 +} else { +reg306049 := False; +reg306050 = reg306049 +} +var reg306053 Obj +if reg306050 == True { +reg306051 := True; +reg306053 = reg306051 +} else { +reg306052 := False; +reg306053 = reg306052 +} +reg306055 = reg306053 +} else { +reg306054 := False; +reg306055 = reg306054 +} +var reg306058 Obj +if reg306055 == True { +reg306056 := True; +reg306058 = reg306056 +} else { +reg306057 := False; +reg306058 = reg306057 +} +reg306060 = reg306058 +} else { +reg306059 := False; +reg306060 = reg306059 +} +var reg306063 Obj +if reg306060 == True { +reg306061 := True; +reg306063 = reg306061 +} else { +reg306062 := False; +reg306063 = reg306062 +} +reg306065 = reg306063 +} else { +reg306064 := False; +reg306065 = reg306064 +} +var reg306068 Obj +if reg306065 == True { +reg306066 := True; +reg306068 = reg306066 +} else { +reg306067 := False; +reg306068 = reg306067 +} +reg306070 = reg306068 +} else { +reg306069 := False; +reg306070 = reg306069 +} +var reg306073 Obj +if reg306070 == True { +reg306071 := True; +reg306073 = reg306071 +} else { +reg306072 := False; +reg306073 = reg306072 +} +reg306075 = reg306073 +} else { +reg306074 := False; +reg306075 = reg306074 +} +var reg306078 Obj +if reg306075 == True { +reg306076 := True; +reg306078 = reg306076 +} else { +reg306077 := False; +reg306078 = reg306077 +} +reg306080 = reg306078 +} else { +reg306079 := False; +reg306080 = reg306079 +} +var reg306083 Obj +if reg306080 == True { +reg306081 := True; +reg306083 = reg306081 +} else { +reg306082 := False; +reg306083 = reg306082 +} +reg306085 = reg306083 +} else { +reg306084 := False; +reg306085 = reg306084 +} +var reg306088 Obj +if reg306085 == True { +reg306086 := True; +reg306088 = reg306086 +} else { +reg306087 := False; +reg306088 = reg306087 +} +reg306090 = reg306088 +} else { +reg306089 := False; +reg306090 = reg306089 +} +var reg306093 Obj +if reg306090 == True { +reg306091 := True; +reg306093 = reg306091 +} else { +reg306092 := False; +reg306093 = reg306092 +} +reg306095 = reg306093 +} else { +reg306094 := False; +reg306095 = reg306094 +} +var reg306098 Obj +if reg306095 == True { +reg306096 := True; +reg306098 = reg306096 +} else { +reg306097 := False; +reg306098 = reg306097 +} +reg306100 = reg306098 +} else { +reg306099 := False; +reg306100 = reg306099 +} +var reg306103 Obj +if reg306100 == True { +reg306101 := True; +reg306103 = reg306101 +} else { +reg306102 := False; +reg306103 = reg306102 +} +reg306105 = reg306103 +} else { +reg306104 := False; +reg306105 = reg306104 +} +var reg306108 Obj +if reg306105 == True { +reg306106 := True; +reg306108 = reg306106 +} else { +reg306107 := False; +reg306108 = reg306107 +} +reg306110 = reg306108 +} else { +reg306109 := False; +reg306110 = reg306109 +} +var reg306113 Obj +if reg306110 == True { +reg306111 := True; +reg306113 = reg306111 +} else { +reg306112 := False; +reg306113 = reg306112 +} +reg306115 = reg306113 +} else { +reg306114 := False; +reg306115 = reg306114 +} +if reg306115 == True { +reg306116 := PrimTail(V2046) +reg306117 := PrimTail(reg306116) +reg306118 := PrimTail(reg306117) +reg306119 := PrimTail(reg306118) +reg306120 := PrimTail(reg306119) +reg306121 := PrimTail(reg306120) +reg306122 := PrimTail(reg306121) +reg306123 := PrimHead(reg306122) +__ctx.TailApply(__defun__shen_4aum__to__shen, reg306123) +return +} else { +reg306125 := PrimIsPair(V2046) +var reg306286 Obj +if reg306125 == True { +reg306126 := MakeSymbol("shen.rename") +reg306127 := PrimHead(V2046) +reg306128 := PrimEqual(reg306126, reg306127) +var reg306281 Obj +if reg306128 == True { +reg306129 := PrimTail(V2046) +reg306130 := PrimIsPair(reg306129) +var reg306276 Obj +if reg306130 == True { +reg306131 := MakeSymbol("shen.the") +reg306132 := PrimTail(V2046) +reg306133 := PrimHead(reg306132) +reg306134 := PrimEqual(reg306131, reg306133) +var reg306271 Obj +if reg306134 == True { +reg306135 := PrimTail(V2046) +reg306136 := PrimTail(reg306135) +reg306137 := PrimIsPair(reg306136) +var reg306266 Obj +if reg306137 == True { +reg306138 := MakeSymbol("shen.variables") +reg306139 := PrimTail(V2046) +reg306140 := PrimTail(reg306139) +reg306141 := PrimHead(reg306140) +reg306142 := PrimEqual(reg306138, reg306141) +var reg306261 Obj +if reg306142 == True { +reg306143 := PrimTail(V2046) +reg306144 := PrimTail(reg306143) +reg306145 := PrimTail(reg306144) +reg306146 := PrimIsPair(reg306145) +var reg306256 Obj +if reg306146 == True { +reg306147 := MakeSymbol("in") +reg306148 := PrimTail(V2046) +reg306149 := PrimTail(reg306148) +reg306150 := PrimTail(reg306149) +reg306151 := PrimHead(reg306150) +reg306152 := PrimEqual(reg306147, reg306151) +var reg306251 Obj +if reg306152 == True { +reg306153 := PrimTail(V2046) +reg306154 := PrimTail(reg306153) +reg306155 := PrimTail(reg306154) +reg306156 := PrimTail(reg306155) +reg306157 := PrimIsPair(reg306156) +var reg306246 Obj +if reg306157 == True { +reg306158 := PrimTail(V2046) +reg306159 := PrimTail(reg306158) +reg306160 := PrimTail(reg306159) +reg306161 := PrimTail(reg306160) +reg306162 := PrimHead(reg306161) +reg306163 := PrimIsPair(reg306162) +var reg306241 Obj +if reg306163 == True { +reg306164 := PrimTail(V2046) +reg306165 := PrimTail(reg306164) +reg306166 := PrimTail(reg306165) +reg306167 := PrimTail(reg306166) +reg306168 := PrimTail(reg306167) +reg306169 := PrimIsPair(reg306168) +var reg306236 Obj +if reg306169 == True { +reg306170 := MakeSymbol("and") +reg306171 := PrimTail(V2046) +reg306172 := PrimTail(reg306171) +reg306173 := PrimTail(reg306172) +reg306174 := PrimTail(reg306173) +reg306175 := PrimTail(reg306174) +reg306176 := PrimHead(reg306175) +reg306177 := PrimEqual(reg306170, reg306176) +var reg306231 Obj +if reg306177 == True { +reg306178 := PrimTail(V2046) +reg306179 := PrimTail(reg306178) +reg306180 := PrimTail(reg306179) +reg306181 := PrimTail(reg306180) +reg306182 := PrimTail(reg306181) +reg306183 := PrimTail(reg306182) +reg306184 := PrimIsPair(reg306183) +var reg306226 Obj +if reg306184 == True { +reg306185 := MakeSymbol("shen.then") +reg306186 := PrimTail(V2046) +reg306187 := PrimTail(reg306186) +reg306188 := PrimTail(reg306187) +reg306189 := PrimTail(reg306188) +reg306190 := PrimTail(reg306189) +reg306191 := PrimTail(reg306190) +reg306192 := PrimHead(reg306191) +reg306193 := PrimEqual(reg306185, reg306192) +var reg306221 Obj +if reg306193 == True { +reg306194 := PrimTail(V2046) +reg306195 := PrimTail(reg306194) +reg306196 := PrimTail(reg306195) +reg306197 := PrimTail(reg306196) +reg306198 := PrimTail(reg306197) +reg306199 := PrimTail(reg306198) +reg306200 := PrimTail(reg306199) +reg306201 := PrimIsPair(reg306200) +var reg306216 Obj +if reg306201 == True { +reg306202 := Nil; +reg306203 := PrimTail(V2046) +reg306204 := PrimTail(reg306203) +reg306205 := PrimTail(reg306204) +reg306206 := PrimTail(reg306205) +reg306207 := PrimTail(reg306206) +reg306208 := PrimTail(reg306207) +reg306209 := PrimTail(reg306208) +reg306210 := PrimTail(reg306209) +reg306211 := PrimEqual(reg306202, reg306210) +var reg306214 Obj +if reg306211 == True { +reg306212 := True; +reg306214 = reg306212 +} else { +reg306213 := False; +reg306214 = reg306213 +} +reg306216 = reg306214 +} else { +reg306215 := False; +reg306216 = reg306215 +} +var reg306219 Obj +if reg306216 == True { +reg306217 := True; +reg306219 = reg306217 +} else { +reg306218 := False; +reg306219 = reg306218 +} +reg306221 = reg306219 +} else { +reg306220 := False; +reg306221 = reg306220 +} +var reg306224 Obj +if reg306221 == True { +reg306222 := True; +reg306224 = reg306222 +} else { +reg306223 := False; +reg306224 = reg306223 +} +reg306226 = reg306224 +} else { +reg306225 := False; +reg306226 = reg306225 +} +var reg306229 Obj +if reg306226 == True { +reg306227 := True; +reg306229 = reg306227 +} else { +reg306228 := False; +reg306229 = reg306228 +} +reg306231 = reg306229 +} else { +reg306230 := False; +reg306231 = reg306230 +} +var reg306234 Obj +if reg306231 == True { +reg306232 := True; +reg306234 = reg306232 +} else { +reg306233 := False; +reg306234 = reg306233 +} +reg306236 = reg306234 +} else { +reg306235 := False; +reg306236 = reg306235 +} +var reg306239 Obj +if reg306236 == True { +reg306237 := True; +reg306239 = reg306237 +} else { +reg306238 := False; +reg306239 = reg306238 +} +reg306241 = reg306239 +} else { +reg306240 := False; +reg306241 = reg306240 +} +var reg306244 Obj +if reg306241 == True { +reg306242 := True; +reg306244 = reg306242 +} else { +reg306243 := False; +reg306244 = reg306243 +} +reg306246 = reg306244 +} else { +reg306245 := False; +reg306246 = reg306245 +} +var reg306249 Obj +if reg306246 == True { +reg306247 := True; +reg306249 = reg306247 +} else { +reg306248 := False; +reg306249 = reg306248 +} +reg306251 = reg306249 +} else { +reg306250 := False; +reg306251 = reg306250 +} +var reg306254 Obj +if reg306251 == True { +reg306252 := True; +reg306254 = reg306252 +} else { +reg306253 := False; +reg306254 = reg306253 +} +reg306256 = reg306254 +} else { +reg306255 := False; +reg306256 = reg306255 +} +var reg306259 Obj +if reg306256 == True { +reg306257 := True; +reg306259 = reg306257 +} else { +reg306258 := False; +reg306259 = reg306258 +} +reg306261 = reg306259 +} else { +reg306260 := False; +reg306261 = reg306260 +} +var reg306264 Obj +if reg306261 == True { +reg306262 := True; +reg306264 = reg306262 +} else { +reg306263 := False; +reg306264 = reg306263 +} +reg306266 = reg306264 +} else { +reg306265 := False; +reg306266 = reg306265 +} +var reg306269 Obj +if reg306266 == True { +reg306267 := True; +reg306269 = reg306267 +} else { +reg306268 := False; +reg306269 = reg306268 +} +reg306271 = reg306269 +} else { +reg306270 := False; +reg306271 = reg306270 +} +var reg306274 Obj +if reg306271 == True { +reg306272 := True; +reg306274 = reg306272 +} else { +reg306273 := False; +reg306274 = reg306273 +} +reg306276 = reg306274 +} else { +reg306275 := False; +reg306276 = reg306275 +} +var reg306279 Obj +if reg306276 == True { +reg306277 := True; +reg306279 = reg306277 +} else { +reg306278 := False; +reg306279 = reg306278 +} +reg306281 = reg306279 +} else { +reg306280 := False; +reg306281 = reg306280 +} +var reg306284 Obj +if reg306281 == True { +reg306282 := True; +reg306284 = reg306282 +} else { +reg306283 := False; +reg306284 = reg306283 +} +reg306286 = reg306284 +} else { +reg306285 := False; +reg306286 = reg306285 +} +if reg306286 == True { +reg306287 := MakeSymbol("let") +reg306288 := PrimTail(V2046) +reg306289 := PrimTail(reg306288) +reg306290 := PrimTail(reg306289) +reg306291 := PrimTail(reg306290) +reg306292 := PrimHead(reg306291) +reg306293 := PrimHead(reg306292) +reg306294 := MakeSymbol("shen.newpv") +reg306295 := MakeSymbol("ProcessN") +reg306296 := Nil; +reg306297 := PrimCons(reg306295, reg306296) +reg306298 := PrimCons(reg306294, reg306297) +reg306299 := MakeSymbol("shen.rename") +reg306300 := MakeSymbol("shen.the") +reg306301 := MakeSymbol("shen.variables") +reg306302 := MakeSymbol("in") +reg306303 := PrimTail(V2046) +reg306304 := PrimTail(reg306303) +reg306305 := PrimTail(reg306304) +reg306306 := PrimTail(reg306305) +reg306307 := PrimHead(reg306306) +reg306308 := PrimTail(reg306307) +reg306309 := PrimTail(V2046) +reg306310 := PrimTail(reg306309) +reg306311 := PrimTail(reg306310) +reg306312 := PrimTail(reg306311) +reg306313 := PrimTail(reg306312) +reg306314 := PrimCons(reg306308, reg306313) +reg306315 := PrimCons(reg306302, reg306314) +reg306316 := PrimCons(reg306301, reg306315) +reg306317 := PrimCons(reg306300, reg306316) +reg306318 := PrimCons(reg306299, reg306317) +reg306319 := __e.Call(__defun__shen_4aum__to__shen, reg306318) +reg306320 := Nil; +reg306321 := PrimCons(reg306319, reg306320) +reg306322 := PrimCons(reg306298, reg306321) +reg306323 := PrimCons(reg306293, reg306322) +reg306324 := PrimCons(reg306287, reg306323) +__ctx.Return(reg306324) +return +} else { +reg306325 := PrimIsPair(V2046) +var reg306413 Obj +if reg306325 == True { +reg306326 := MakeSymbol("bind") +reg306327 := PrimHead(V2046) +reg306328 := PrimEqual(reg306326, reg306327) +var reg306408 Obj +if reg306328 == True { +reg306329 := PrimTail(V2046) +reg306330 := PrimIsPair(reg306329) +var reg306403 Obj +if reg306330 == True { +reg306331 := PrimTail(V2046) +reg306332 := PrimTail(reg306331) +reg306333 := PrimIsPair(reg306332) +var reg306398 Obj +if reg306333 == True { +reg306334 := MakeSymbol("shen.to") +reg306335 := PrimTail(V2046) +reg306336 := PrimTail(reg306335) +reg306337 := PrimHead(reg306336) +reg306338 := PrimEqual(reg306334, reg306337) +var reg306393 Obj +if reg306338 == True { +reg306339 := PrimTail(V2046) +reg306340 := PrimTail(reg306339) +reg306341 := PrimTail(reg306340) +reg306342 := PrimIsPair(reg306341) +var reg306388 Obj +if reg306342 == True { +reg306343 := PrimTail(V2046) +reg306344 := PrimTail(reg306343) +reg306345 := PrimTail(reg306344) +reg306346 := PrimTail(reg306345) +reg306347 := PrimIsPair(reg306346) +var reg306383 Obj +if reg306347 == True { +reg306348 := MakeSymbol("in") +reg306349 := PrimTail(V2046) +reg306350 := PrimTail(reg306349) +reg306351 := PrimTail(reg306350) +reg306352 := PrimTail(reg306351) +reg306353 := PrimHead(reg306352) +reg306354 := PrimEqual(reg306348, reg306353) +var reg306378 Obj +if reg306354 == True { +reg306355 := PrimTail(V2046) +reg306356 := PrimTail(reg306355) +reg306357 := PrimTail(reg306356) +reg306358 := PrimTail(reg306357) +reg306359 := PrimTail(reg306358) +reg306360 := PrimIsPair(reg306359) +var reg306373 Obj +if reg306360 == True { +reg306361 := Nil; +reg306362 := PrimTail(V2046) +reg306363 := PrimTail(reg306362) +reg306364 := PrimTail(reg306363) +reg306365 := PrimTail(reg306364) +reg306366 := PrimTail(reg306365) +reg306367 := PrimTail(reg306366) +reg306368 := PrimEqual(reg306361, reg306367) +var reg306371 Obj +if reg306368 == True { +reg306369 := True; +reg306371 = reg306369 +} else { +reg306370 := False; +reg306371 = reg306370 +} +reg306373 = reg306371 +} else { +reg306372 := False; +reg306373 = reg306372 +} +var reg306376 Obj +if reg306373 == True { +reg306374 := True; +reg306376 = reg306374 +} else { +reg306375 := False; +reg306376 = reg306375 +} +reg306378 = reg306376 +} else { +reg306377 := False; +reg306378 = reg306377 +} +var reg306381 Obj +if reg306378 == True { +reg306379 := True; +reg306381 = reg306379 +} else { +reg306380 := False; +reg306381 = reg306380 +} +reg306383 = reg306381 +} else { +reg306382 := False; +reg306383 = reg306382 +} +var reg306386 Obj +if reg306383 == True { +reg306384 := True; +reg306386 = reg306384 +} else { +reg306385 := False; +reg306386 = reg306385 +} +reg306388 = reg306386 +} else { +reg306387 := False; +reg306388 = reg306387 +} +var reg306391 Obj +if reg306388 == True { +reg306389 := True; +reg306391 = reg306389 +} else { +reg306390 := False; +reg306391 = reg306390 +} +reg306393 = reg306391 +} else { +reg306392 := False; +reg306393 = reg306392 +} +var reg306396 Obj +if reg306393 == True { +reg306394 := True; +reg306396 = reg306394 +} else { +reg306395 := False; +reg306396 = reg306395 +} +reg306398 = reg306396 +} else { +reg306397 := False; +reg306398 = reg306397 +} +var reg306401 Obj +if reg306398 == True { +reg306399 := True; +reg306401 = reg306399 +} else { +reg306400 := False; +reg306401 = reg306400 +} +reg306403 = reg306401 +} else { +reg306402 := False; +reg306403 = reg306402 +} +var reg306406 Obj +if reg306403 == True { +reg306404 := True; +reg306406 = reg306404 +} else { +reg306405 := False; +reg306406 = reg306405 +} +reg306408 = reg306406 +} else { +reg306407 := False; +reg306408 = reg306407 +} +var reg306411 Obj +if reg306408 == True { +reg306409 := True; +reg306411 = reg306409 +} else { +reg306410 := False; +reg306411 = reg306410 +} +reg306413 = reg306411 +} else { +reg306412 := False; +reg306413 = reg306412 +} +if reg306413 == True { +reg306414 := MakeSymbol("do") +reg306415 := MakeSymbol("shen.bindv") +reg306416 := PrimTail(V2046) +reg306417 := PrimHead(reg306416) +reg306418 := PrimTail(V2046) +reg306419 := PrimTail(reg306418) +reg306420 := PrimTail(reg306419) +reg306421 := PrimHead(reg306420) +reg306422 := __e.Call(__defun__shen_4chwild, reg306421) +reg306423 := MakeSymbol("ProcessN") +reg306424 := Nil; +reg306425 := PrimCons(reg306423, reg306424) +reg306426 := PrimCons(reg306422, reg306425) +reg306427 := PrimCons(reg306417, reg306426) +reg306428 := PrimCons(reg306415, reg306427) +reg306429 := MakeSymbol("let") +reg306430 := MakeSymbol("Result") +reg306431 := PrimTail(V2046) +reg306432 := PrimTail(reg306431) +reg306433 := PrimTail(reg306432) +reg306434 := PrimTail(reg306433) +reg306435 := PrimTail(reg306434) +reg306436 := PrimHead(reg306435) +reg306437 := __e.Call(__defun__shen_4aum__to__shen, reg306436) +reg306438 := MakeSymbol("do") +reg306439 := MakeSymbol("shen.unbindv") +reg306440 := PrimTail(V2046) +reg306441 := PrimHead(reg306440) +reg306442 := MakeSymbol("ProcessN") +reg306443 := Nil; +reg306444 := PrimCons(reg306442, reg306443) +reg306445 := PrimCons(reg306441, reg306444) +reg306446 := PrimCons(reg306439, reg306445) +reg306447 := MakeSymbol("Result") +reg306448 := Nil; +reg306449 := PrimCons(reg306447, reg306448) +reg306450 := PrimCons(reg306446, reg306449) +reg306451 := PrimCons(reg306438, reg306450) +reg306452 := Nil; +reg306453 := PrimCons(reg306451, reg306452) +reg306454 := PrimCons(reg306437, reg306453) +reg306455 := PrimCons(reg306430, reg306454) +reg306456 := PrimCons(reg306429, reg306455) +reg306457 := Nil; +reg306458 := PrimCons(reg306456, reg306457) +reg306459 := PrimCons(reg306428, reg306458) +reg306460 := PrimCons(reg306414, reg306459) +__ctx.Return(reg306460) +return +} else { +reg306461 := PrimIsPair(V2046) +var reg306537 Obj +if reg306461 == True { +reg306462 := PrimTail(V2046) +reg306463 := PrimIsPair(reg306462) +var reg306532 Obj +if reg306463 == True { +reg306464 := MakeSymbol("is") +reg306465 := PrimTail(V2046) +reg306466 := PrimHead(reg306465) +reg306467 := PrimEqual(reg306464, reg306466) +var reg306527 Obj +if reg306467 == True { +reg306468 := PrimTail(V2046) +reg306469 := PrimTail(reg306468) +reg306470 := PrimIsPair(reg306469) +var reg306522 Obj +if reg306470 == True { +reg306471 := MakeSymbol("identical") +reg306472 := PrimTail(V2046) +reg306473 := PrimTail(reg306472) +reg306474 := PrimHead(reg306473) +reg306475 := PrimEqual(reg306471, reg306474) +var reg306517 Obj +if reg306475 == True { +reg306476 := PrimTail(V2046) +reg306477 := PrimTail(reg306476) +reg306478 := PrimTail(reg306477) +reg306479 := PrimIsPair(reg306478) +var reg306512 Obj +if reg306479 == True { +reg306480 := MakeSymbol("shen.to") +reg306481 := PrimTail(V2046) +reg306482 := PrimTail(reg306481) +reg306483 := PrimTail(reg306482) +reg306484 := PrimHead(reg306483) +reg306485 := PrimEqual(reg306480, reg306484) +var reg306507 Obj +if reg306485 == True { +reg306486 := PrimTail(V2046) +reg306487 := PrimTail(reg306486) +reg306488 := PrimTail(reg306487) +reg306489 := PrimTail(reg306488) +reg306490 := PrimIsPair(reg306489) +var reg306502 Obj +if reg306490 == True { +reg306491 := Nil; +reg306492 := PrimTail(V2046) +reg306493 := PrimTail(reg306492) +reg306494 := PrimTail(reg306493) +reg306495 := PrimTail(reg306494) +reg306496 := PrimTail(reg306495) +reg306497 := PrimEqual(reg306491, reg306496) +var reg306500 Obj +if reg306497 == True { +reg306498 := True; +reg306500 = reg306498 +} else { +reg306499 := False; +reg306500 = reg306499 +} +reg306502 = reg306500 +} else { +reg306501 := False; +reg306502 = reg306501 +} +var reg306505 Obj +if reg306502 == True { +reg306503 := True; +reg306505 = reg306503 +} else { +reg306504 := False; +reg306505 = reg306504 +} +reg306507 = reg306505 +} else { +reg306506 := False; +reg306507 = reg306506 +} +var reg306510 Obj +if reg306507 == True { +reg306508 := True; +reg306510 = reg306508 +} else { +reg306509 := False; +reg306510 = reg306509 +} +reg306512 = reg306510 +} else { +reg306511 := False; +reg306512 = reg306511 +} +var reg306515 Obj +if reg306512 == True { +reg306513 := True; +reg306515 = reg306513 +} else { +reg306514 := False; +reg306515 = reg306514 +} +reg306517 = reg306515 +} else { +reg306516 := False; +reg306517 = reg306516 +} +var reg306520 Obj +if reg306517 == True { +reg306518 := True; +reg306520 = reg306518 +} else { +reg306519 := False; +reg306520 = reg306519 +} +reg306522 = reg306520 +} else { +reg306521 := False; +reg306522 = reg306521 +} +var reg306525 Obj +if reg306522 == True { +reg306523 := True; +reg306525 = reg306523 +} else { +reg306524 := False; +reg306525 = reg306524 +} +reg306527 = reg306525 +} else { +reg306526 := False; +reg306527 = reg306526 +} +var reg306530 Obj +if reg306527 == True { +reg306528 := True; +reg306530 = reg306528 +} else { +reg306529 := False; +reg306530 = reg306529 +} +reg306532 = reg306530 +} else { +reg306531 := False; +reg306532 = reg306531 +} +var reg306535 Obj +if reg306532 == True { +reg306533 := True; +reg306535 = reg306533 +} else { +reg306534 := False; +reg306535 = reg306534 +} +reg306537 = reg306535 +} else { +reg306536 := False; +reg306537 = reg306536 +} +if reg306537 == True { +reg306538 := MakeSymbol("=") +reg306539 := PrimTail(V2046) +reg306540 := PrimTail(reg306539) +reg306541 := PrimTail(reg306540) +reg306542 := PrimTail(reg306541) +reg306543 := PrimHead(reg306542) +reg306544 := PrimHead(V2046) +reg306545 := Nil; +reg306546 := PrimCons(reg306544, reg306545) +reg306547 := PrimCons(reg306543, reg306546) +reg306548 := PrimCons(reg306538, reg306547) +__ctx.Return(reg306548) +return +} else { +reg306549 := MakeSymbol("shen.failed!") +reg306550 := PrimEqual(reg306549, V2046) +if reg306550 == True { +reg306551 := False; +__ctx.Return(reg306551) +return +} else { +reg306552 := PrimIsPair(V2046) +var reg306614 Obj +if reg306552 == True { +reg306553 := MakeSymbol("shen.the") +reg306554 := PrimHead(V2046) +reg306555 := PrimEqual(reg306553, reg306554) +var reg306609 Obj +if reg306555 == True { +reg306556 := PrimTail(V2046) +reg306557 := PrimIsPair(reg306556) +var reg306604 Obj +if reg306557 == True { +reg306558 := MakeSymbol("head") +reg306559 := PrimTail(V2046) +reg306560 := PrimHead(reg306559) +reg306561 := PrimEqual(reg306558, reg306560) +var reg306599 Obj +if reg306561 == True { +reg306562 := PrimTail(V2046) +reg306563 := PrimTail(reg306562) +reg306564 := PrimIsPair(reg306563) +var reg306594 Obj +if reg306564 == True { +reg306565 := MakeSymbol("shen.of") +reg306566 := PrimTail(V2046) +reg306567 := PrimTail(reg306566) +reg306568 := PrimHead(reg306567) +reg306569 := PrimEqual(reg306565, reg306568) +var reg306589 Obj +if reg306569 == True { +reg306570 := PrimTail(V2046) +reg306571 := PrimTail(reg306570) +reg306572 := PrimTail(reg306571) +reg306573 := PrimIsPair(reg306572) +var reg306584 Obj +if reg306573 == True { +reg306574 := Nil; +reg306575 := PrimTail(V2046) +reg306576 := PrimTail(reg306575) +reg306577 := PrimTail(reg306576) +reg306578 := PrimTail(reg306577) +reg306579 := PrimEqual(reg306574, reg306578) +var reg306582 Obj +if reg306579 == True { +reg306580 := True; +reg306582 = reg306580 +} else { +reg306581 := False; +reg306582 = reg306581 +} +reg306584 = reg306582 +} else { +reg306583 := False; +reg306584 = reg306583 +} +var reg306587 Obj +if reg306584 == True { +reg306585 := True; +reg306587 = reg306585 +} else { +reg306586 := False; +reg306587 = reg306586 +} +reg306589 = reg306587 +} else { +reg306588 := False; +reg306589 = reg306588 +} +var reg306592 Obj +if reg306589 == True { +reg306590 := True; +reg306592 = reg306590 +} else { +reg306591 := False; +reg306592 = reg306591 +} +reg306594 = reg306592 +} else { +reg306593 := False; +reg306594 = reg306593 +} +var reg306597 Obj +if reg306594 == True { +reg306595 := True; +reg306597 = reg306595 +} else { +reg306596 := False; +reg306597 = reg306596 +} +reg306599 = reg306597 +} else { +reg306598 := False; +reg306599 = reg306598 +} +var reg306602 Obj +if reg306599 == True { +reg306600 := True; +reg306602 = reg306600 +} else { +reg306601 := False; +reg306602 = reg306601 +} +reg306604 = reg306602 +} else { +reg306603 := False; +reg306604 = reg306603 +} +var reg306607 Obj +if reg306604 == True { +reg306605 := True; +reg306607 = reg306605 +} else { +reg306606 := False; +reg306607 = reg306606 +} +reg306609 = reg306607 +} else { +reg306608 := False; +reg306609 = reg306608 +} +var reg306612 Obj +if reg306609 == True { +reg306610 := True; +reg306612 = reg306610 +} else { +reg306611 := False; +reg306612 = reg306611 +} +reg306614 = reg306612 +} else { +reg306613 := False; +reg306614 = reg306613 +} +if reg306614 == True { +reg306615 := MakeSymbol("hd") +reg306616 := PrimTail(V2046) +reg306617 := PrimTail(reg306616) +reg306618 := PrimTail(reg306617) +reg306619 := PrimCons(reg306615, reg306618) +__ctx.Return(reg306619) +return +} else { +reg306620 := PrimIsPair(V2046) +var reg306682 Obj +if reg306620 == True { +reg306621 := MakeSymbol("shen.the") +reg306622 := PrimHead(V2046) +reg306623 := PrimEqual(reg306621, reg306622) +var reg306677 Obj +if reg306623 == True { +reg306624 := PrimTail(V2046) +reg306625 := PrimIsPair(reg306624) +var reg306672 Obj +if reg306625 == True { +reg306626 := MakeSymbol("tail") +reg306627 := PrimTail(V2046) +reg306628 := PrimHead(reg306627) +reg306629 := PrimEqual(reg306626, reg306628) +var reg306667 Obj +if reg306629 == True { +reg306630 := PrimTail(V2046) +reg306631 := PrimTail(reg306630) +reg306632 := PrimIsPair(reg306631) +var reg306662 Obj +if reg306632 == True { +reg306633 := MakeSymbol("shen.of") +reg306634 := PrimTail(V2046) +reg306635 := PrimTail(reg306634) +reg306636 := PrimHead(reg306635) +reg306637 := PrimEqual(reg306633, reg306636) +var reg306657 Obj +if reg306637 == True { +reg306638 := PrimTail(V2046) +reg306639 := PrimTail(reg306638) +reg306640 := PrimTail(reg306639) +reg306641 := PrimIsPair(reg306640) +var reg306652 Obj +if reg306641 == True { +reg306642 := Nil; +reg306643 := PrimTail(V2046) +reg306644 := PrimTail(reg306643) +reg306645 := PrimTail(reg306644) +reg306646 := PrimTail(reg306645) +reg306647 := PrimEqual(reg306642, reg306646) +var reg306650 Obj +if reg306647 == True { +reg306648 := True; +reg306650 = reg306648 +} else { +reg306649 := False; +reg306650 = reg306649 +} +reg306652 = reg306650 +} else { +reg306651 := False; +reg306652 = reg306651 +} +var reg306655 Obj +if reg306652 == True { +reg306653 := True; +reg306655 = reg306653 +} else { +reg306654 := False; +reg306655 = reg306654 +} +reg306657 = reg306655 +} else { +reg306656 := False; +reg306657 = reg306656 +} +var reg306660 Obj +if reg306657 == True { +reg306658 := True; +reg306660 = reg306658 +} else { +reg306659 := False; +reg306660 = reg306659 +} +reg306662 = reg306660 +} else { +reg306661 := False; +reg306662 = reg306661 +} +var reg306665 Obj +if reg306662 == True { +reg306663 := True; +reg306665 = reg306663 +} else { +reg306664 := False; +reg306665 = reg306664 +} +reg306667 = reg306665 +} else { +reg306666 := False; +reg306667 = reg306666 +} +var reg306670 Obj +if reg306667 == True { +reg306668 := True; +reg306670 = reg306668 +} else { +reg306669 := False; +reg306670 = reg306669 +} +reg306672 = reg306670 +} else { +reg306671 := False; +reg306672 = reg306671 +} +var reg306675 Obj +if reg306672 == True { +reg306673 := True; +reg306675 = reg306673 +} else { +reg306674 := False; +reg306675 = reg306674 +} +reg306677 = reg306675 +} else { +reg306676 := False; +reg306677 = reg306676 +} +var reg306680 Obj +if reg306677 == True { +reg306678 := True; +reg306680 = reg306678 +} else { +reg306679 := False; +reg306680 = reg306679 +} +reg306682 = reg306680 +} else { +reg306681 := False; +reg306682 = reg306681 +} +if reg306682 == True { +reg306683 := MakeSymbol("tl") +reg306684 := PrimTail(V2046) +reg306685 := PrimTail(reg306684) +reg306686 := PrimTail(reg306685) +reg306687 := PrimCons(reg306683, reg306686) +__ctx.Return(reg306687) +return +} else { +reg306688 := PrimIsPair(V2046) +var reg306740 Obj +if reg306688 == True { +reg306689 := MakeSymbol("shen.pop") +reg306690 := PrimHead(V2046) +reg306691 := PrimEqual(reg306689, reg306690) +var reg306735 Obj +if reg306691 == True { +reg306692 := PrimTail(V2046) +reg306693 := PrimIsPair(reg306692) +var reg306730 Obj +if reg306693 == True { +reg306694 := MakeSymbol("shen.the") +reg306695 := PrimTail(V2046) +reg306696 := PrimHead(reg306695) +reg306697 := PrimEqual(reg306694, reg306696) +var reg306725 Obj +if reg306697 == True { +reg306698 := PrimTail(V2046) +reg306699 := PrimTail(reg306698) +reg306700 := PrimIsPair(reg306699) +var reg306720 Obj +if reg306700 == True { +reg306701 := MakeSymbol("shen.stack") +reg306702 := PrimTail(V2046) +reg306703 := PrimTail(reg306702) +reg306704 := PrimHead(reg306703) +reg306705 := PrimEqual(reg306701, reg306704) +var reg306715 Obj +if reg306705 == True { +reg306706 := Nil; +reg306707 := PrimTail(V2046) +reg306708 := PrimTail(reg306707) +reg306709 := PrimTail(reg306708) +reg306710 := PrimEqual(reg306706, reg306709) +var reg306713 Obj +if reg306710 == True { +reg306711 := True; +reg306713 = reg306711 +} else { +reg306712 := False; +reg306713 = reg306712 +} +reg306715 = reg306713 +} else { +reg306714 := False; +reg306715 = reg306714 +} +var reg306718 Obj +if reg306715 == True { +reg306716 := True; +reg306718 = reg306716 +} else { +reg306717 := False; +reg306718 = reg306717 +} +reg306720 = reg306718 +} else { +reg306719 := False; +reg306720 = reg306719 +} +var reg306723 Obj +if reg306720 == True { +reg306721 := True; +reg306723 = reg306721 +} else { +reg306722 := False; +reg306723 = reg306722 +} +reg306725 = reg306723 +} else { +reg306724 := False; +reg306725 = reg306724 +} +var reg306728 Obj +if reg306725 == True { +reg306726 := True; +reg306728 = reg306726 +} else { +reg306727 := False; +reg306728 = reg306727 +} +reg306730 = reg306728 +} else { +reg306729 := False; +reg306730 = reg306729 +} +var reg306733 Obj +if reg306730 == True { +reg306731 := True; +reg306733 = reg306731 +} else { +reg306732 := False; +reg306733 = reg306732 +} +reg306735 = reg306733 +} else { +reg306734 := False; +reg306735 = reg306734 +} +var reg306738 Obj +if reg306735 == True { +reg306736 := True; +reg306738 = reg306736 +} else { +reg306737 := False; +reg306738 = reg306737 +} +reg306740 = reg306738 +} else { +reg306739 := False; +reg306740 = reg306739 +} +if reg306740 == True { +reg306741 := MakeSymbol("do") +reg306742 := MakeSymbol("shen.incinfs") +reg306743 := Nil; +reg306744 := PrimCons(reg306742, reg306743) +reg306745 := MakeSymbol("thaw") +reg306746 := MakeSymbol("Continuation") +reg306747 := Nil; +reg306748 := PrimCons(reg306746, reg306747) +reg306749 := PrimCons(reg306745, reg306748) +reg306750 := Nil; +reg306751 := PrimCons(reg306749, reg306750) +reg306752 := PrimCons(reg306744, reg306751) +reg306753 := PrimCons(reg306741, reg306752) +__ctx.Return(reg306753) +return +} else { +reg306754 := PrimIsPair(V2046) +var reg306816 Obj +if reg306754 == True { +reg306755 := MakeSymbol("call") +reg306756 := PrimHead(V2046) +reg306757 := PrimEqual(reg306755, reg306756) +var reg306811 Obj +if reg306757 == True { +reg306758 := PrimTail(V2046) +reg306759 := PrimIsPair(reg306758) +var reg306806 Obj +if reg306759 == True { +reg306760 := MakeSymbol("shen.the") +reg306761 := PrimTail(V2046) +reg306762 := PrimHead(reg306761) +reg306763 := PrimEqual(reg306760, reg306762) +var reg306801 Obj +if reg306763 == True { +reg306764 := PrimTail(V2046) +reg306765 := PrimTail(reg306764) +reg306766 := PrimIsPair(reg306765) +var reg306796 Obj +if reg306766 == True { +reg306767 := MakeSymbol("shen.continuation") +reg306768 := PrimTail(V2046) +reg306769 := PrimTail(reg306768) +reg306770 := PrimHead(reg306769) +reg306771 := PrimEqual(reg306767, reg306770) +var reg306791 Obj +if reg306771 == True { +reg306772 := PrimTail(V2046) +reg306773 := PrimTail(reg306772) +reg306774 := PrimTail(reg306773) +reg306775 := PrimIsPair(reg306774) +var reg306786 Obj +if reg306775 == True { +reg306776 := Nil; +reg306777 := PrimTail(V2046) +reg306778 := PrimTail(reg306777) +reg306779 := PrimTail(reg306778) +reg306780 := PrimTail(reg306779) +reg306781 := PrimEqual(reg306776, reg306780) +var reg306784 Obj +if reg306781 == True { +reg306782 := True; +reg306784 = reg306782 +} else { +reg306783 := False; +reg306784 = reg306783 +} +reg306786 = reg306784 +} else { +reg306785 := False; +reg306786 = reg306785 +} +var reg306789 Obj +if reg306786 == True { +reg306787 := True; +reg306789 = reg306787 +} else { +reg306788 := False; +reg306789 = reg306788 +} +reg306791 = reg306789 +} else { +reg306790 := False; +reg306791 = reg306790 +} +var reg306794 Obj +if reg306791 == True { +reg306792 := True; +reg306794 = reg306792 +} else { +reg306793 := False; +reg306794 = reg306793 +} +reg306796 = reg306794 +} else { +reg306795 := False; +reg306796 = reg306795 +} +var reg306799 Obj +if reg306796 == True { +reg306797 := True; +reg306799 = reg306797 +} else { +reg306798 := False; +reg306799 = reg306798 +} +reg306801 = reg306799 +} else { +reg306800 := False; +reg306801 = reg306800 +} +var reg306804 Obj +if reg306801 == True { +reg306802 := True; +reg306804 = reg306802 +} else { +reg306803 := False; +reg306804 = reg306803 +} +reg306806 = reg306804 +} else { +reg306805 := False; +reg306806 = reg306805 +} +var reg306809 Obj +if reg306806 == True { +reg306807 := True; +reg306809 = reg306807 +} else { +reg306808 := False; +reg306809 = reg306808 +} +reg306811 = reg306809 +} else { +reg306810 := False; +reg306811 = reg306810 +} +var reg306814 Obj +if reg306811 == True { +reg306812 := True; +reg306814 = reg306812 +} else { +reg306813 := False; +reg306814 = reg306813 +} +reg306816 = reg306814 +} else { +reg306815 := False; +reg306816 = reg306815 +} +if reg306816 == True { +reg306817 := MakeSymbol("do") +reg306818 := MakeSymbol("shen.incinfs") +reg306819 := Nil; +reg306820 := PrimCons(reg306818, reg306819) +reg306821 := PrimTail(V2046) +reg306822 := PrimTail(reg306821) +reg306823 := PrimTail(reg306822) +reg306824 := PrimHead(reg306823) +reg306825 := __e.Call(__defun__shen_4chwild, reg306824) +reg306826 := MakeSymbol("ProcessN") +reg306827 := MakeSymbol("Continuation") +reg306828 := __e.Call(__defun__shen_4call__the__continuation, reg306825, reg306826, reg306827) +reg306829 := Nil; +reg306830 := PrimCons(reg306828, reg306829) +reg306831 := PrimCons(reg306820, reg306830) +reg306832 := PrimCons(reg306817, reg306831) +__ctx.Return(reg306832) +return +} else { +__ctx.Return(V2046) +return +} +} +} +} +} +} +} +} +} +} +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.aum_to_shen", value: __defun__shen_4aum__to__shen}) + +__defun__shen_4chwild = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2048 := __args[0] +_ = V2048 +reg306833 := MakeSymbol("_") +reg306834 := PrimEqual(V2048, reg306833) +if reg306834 == True { +reg306835 := MakeSymbol("shen.newpv") +reg306836 := MakeSymbol("ProcessN") +reg306837 := Nil; +reg306838 := PrimCons(reg306836, reg306837) +reg306839 := PrimCons(reg306835, reg306838) +__ctx.Return(reg306839) +return +} else { +reg306840 := PrimIsPair(V2048) +if reg306840 == True { +reg306841 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4chwild, Z) +return +}, 1) +__ctx.TailApply(__defun__map, reg306841, V2048) +return +} else { +__ctx.Return(V2048) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.chwild", value: __defun__shen_4chwild}) + +__defun__shen_4newpv = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2050 := __args[0] +_ = V2050 +reg306844 := MakeSymbol("shen.*varcounter*") +reg306845 := PrimValue(reg306844) +reg306846 := PrimVectorGet(reg306845, V2050) +reg306847 := MakeNumber(1) +reg306848 := PrimNumberAdd(reg306846, reg306847) +Count_71 := reg306848 +_ = Count_71 +reg306849 := MakeSymbol("shen.*varcounter*") +reg306850 := PrimValue(reg306849) +reg306851 := PrimVectorSet(reg306850, V2050, Count_71) +IncVar := reg306851 +_ = IncVar +reg306852 := MakeSymbol("shen.*prologvectors*") +reg306853 := PrimValue(reg306852) +reg306854 := PrimVectorGet(reg306853, V2050) +Vector := reg306854 +_ = Vector +reg306855 := __e.Call(__defun__limit, Vector) +reg306856 := PrimEqual(Count_71, reg306855) +var reg306859 Obj +if reg306856 == True { +reg306857 := __e.Call(__defun__shen_4resizeprocessvector, V2050, Count_71) +reg306859 = reg306857 +} else { +reg306858 := MakeSymbol("shen.skip") +reg306859 = reg306858 +} +ResizeVectorIfNeeded := reg306859 +_ = ResizeVectorIfNeeded +__ctx.TailApply(__defun__shen_4mk_1pvar, Count_71) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.newpv", value: __defun__shen_4newpv}) + +__defun__shen_4resizeprocessvector = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2053 := __args[0] +_ = V2053 +V2054 := __args[1] +_ = V2054 +reg306861 := MakeSymbol("shen.*prologvectors*") +reg306862 := PrimValue(reg306861) +reg306863 := PrimVectorGet(reg306862, V2053) +Vector := reg306863 +_ = Vector +reg306864 := PrimNumberAdd(V2054, V2054) +reg306865 := MakeSymbol("shen.-null-") +reg306866 := __e.Call(__defun__shen_4resize_1vector, Vector, reg306864, reg306865) +BigVector := reg306866 +_ = BigVector +reg306867 := MakeSymbol("shen.*prologvectors*") +reg306868 := PrimValue(reg306867) +reg306869 := PrimVectorSet(reg306868, V2053, BigVector) +__ctx.Return(reg306869) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.resizeprocessvector", value: __defun__shen_4resizeprocessvector}) + +__defun__shen_4resize_1vector = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2058 := __args[0] +_ = V2058 +V2059 := __args[1] +_ = V2059 +V2060 := __args[2] +_ = V2060 +reg306870 := MakeNumber(1) +reg306871 := PrimNumberAdd(reg306870, V2059) +reg306872 := PrimAbsvector(reg306871) +reg306873 := MakeNumber(0) +reg306874 := PrimVectorSet(reg306872, reg306873, V2059) +BigVector := reg306874 +_ = BigVector +reg306875 := __e.Call(__defun__limit, V2058) +__ctx.TailApply(__defun__shen_4copy_1vector, V2058, BigVector, reg306875, V2059, V2060) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.resize-vector", value: __defun__shen_4resize_1vector}) + +__defun__shen_4copy_1vector = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2066 := __args[0] +_ = V2066 +V2067 := __args[1] +_ = V2067 +V2068 := __args[2] +_ = V2068 +V2069 := __args[3] +_ = V2069 +V2070 := __args[4] +_ = V2070 +reg306877 := MakeNumber(1) +reg306878 := PrimNumberAdd(reg306877, V2068) +reg306879 := MakeNumber(1) +reg306880 := PrimNumberAdd(V2069, reg306879) +reg306881 := MakeNumber(1) +reg306882 := MakeNumber(1) +reg306883 := PrimNumberAdd(reg306882, V2068) +reg306884 := __e.Call(__defun__shen_4copy_1vector_1stage_11, reg306881, V2066, V2067, reg306883) +__ctx.TailApply(__defun__shen_4copy_1vector_1stage_12, reg306878, reg306880, V2070, reg306884) +return +}, 5) +__initDefs = append(__initDefs, defType{name: "shen.copy-vector", value: __defun__shen_4copy_1vector}) + +__defun__shen_4copy_1vector_1stage_11 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2078 := __args[0] +_ = V2078 +V2079 := __args[1] +_ = V2079 +V2080 := __args[2] +_ = V2080 +V2081 := __args[3] +_ = V2081 +reg306886 := PrimEqual(V2081, V2078) +if reg306886 == True { +__ctx.Return(V2080) +return +} else { +reg306887 := MakeNumber(1) +reg306888 := PrimNumberAdd(reg306887, V2078) +reg306889 := PrimVectorGet(V2079, V2078) +reg306890 := PrimVectorSet(V2080, V2078, reg306889) +__ctx.TailApply(__defun__shen_4copy_1vector_1stage_11, reg306888, V2079, reg306890, V2081) +return +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.copy-vector-stage-1", value: __defun__shen_4copy_1vector_1stage_11}) + +__defun__shen_4copy_1vector_1stage_12 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2089 := __args[0] +_ = V2089 +V2090 := __args[1] +_ = V2090 +V2091 := __args[2] +_ = V2091 +V2092 := __args[3] +_ = V2092 +reg306892 := PrimEqual(V2090, V2089) +if reg306892 == True { +__ctx.Return(V2092) +return +} else { +reg306893 := MakeNumber(1) +reg306894 := PrimNumberAdd(V2089, reg306893) +reg306895 := PrimVectorSet(V2092, V2089, V2091) +__ctx.TailApply(__defun__shen_4copy_1vector_1stage_12, reg306894, V2090, V2091, reg306895) +return +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.copy-vector-stage-2", value: __defun__shen_4copy_1vector_1stage_12}) + +__defun__shen_4mk_1pvar = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2094 := __args[0] +_ = V2094 +reg306897 := MakeNumber(2) +reg306898 := PrimAbsvector(reg306897) +reg306899 := MakeNumber(0) +reg306900 := MakeSymbol("shen.pvar") +reg306901 := PrimVectorSet(reg306898, reg306899, reg306900) +reg306902 := MakeNumber(1) +reg306903 := PrimVectorSet(reg306901, reg306902, V2094) +__ctx.Return(reg306903) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.mk-pvar", value: __defun__shen_4mk_1pvar}) + +__defun__shen_4pvar_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2096 := __args[0] +_ = V2096 +reg306904 := PrimIsVector(V2096) +if reg306904 == True { +reg306905 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg306906 := MakeNumber(0) +reg306907 := PrimVectorGet(V2096, reg306906) +__ctx.Return(reg306907) +return +}, 0) +reg306908 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg306909 := MakeSymbol("shen.not-pvar") +__ctx.Return(reg306909) +return +}, 1) +reg306910 := __e.Try(reg306905).Catch(reg306908) +reg306911 := MakeSymbol("shen.pvar") +reg306912 := PrimEqual(reg306910, reg306911) +if reg306912 == True { +reg306913 := True; +__ctx.Return(reg306913) +return +} else { +reg306914 := False; +__ctx.Return(reg306914) +return +} +} else { +reg306915 := False; +__ctx.Return(reg306915) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.pvar?", value: __defun__shen_4pvar_2}) + +__defun__shen_4bindv = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2100 := __args[0] +_ = V2100 +V2101 := __args[1] +_ = V2101 +V2102 := __args[2] +_ = V2102 +reg306916 := MakeSymbol("shen.*prologvectors*") +reg306917 := PrimValue(reg306916) +reg306918 := PrimVectorGet(reg306917, V2102) +Vector := reg306918 +_ = Vector +reg306919 := MakeNumber(1) +reg306920 := PrimVectorGet(V2100, reg306919) +reg306921 := PrimVectorSet(Vector, reg306920, V2101) +__ctx.Return(reg306921) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.bindv", value: __defun__shen_4bindv}) + +__defun__shen_4unbindv = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2105 := __args[0] +_ = V2105 +V2106 := __args[1] +_ = V2106 +reg306922 := MakeSymbol("shen.*prologvectors*") +reg306923 := PrimValue(reg306922) +reg306924 := PrimVectorGet(reg306923, V2106) +Vector := reg306924 +_ = Vector +reg306925 := MakeNumber(1) +reg306926 := PrimVectorGet(V2105, reg306925) +reg306927 := MakeSymbol("shen.-null-") +reg306928 := PrimVectorSet(Vector, reg306926, reg306927) +__ctx.Return(reg306928) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.unbindv", value: __defun__shen_4unbindv}) + +__defun__shen_4incinfs = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg306929 := MakeSymbol("shen.*infs*") +reg306930 := MakeNumber(1) +reg306931 := MakeSymbol("shen.*infs*") +reg306932 := PrimValue(reg306931) +reg306933 := PrimNumberAdd(reg306930, reg306932) +reg306934 := PrimSet(reg306929, reg306933) +__ctx.Return(reg306934) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.incinfs", value: __defun__shen_4incinfs}) + +__defun__shen_4call__the__continuation = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2110 := __args[0] +_ = V2110 +V2111 := __args[1] +_ = V2111 +V2112 := __args[2] +_ = V2112 +reg306935 := PrimIsPair(V2110) +var reg306950 Obj +if reg306935 == True { +reg306936 := PrimHead(V2110) +reg306937 := PrimIsPair(reg306936) +var reg306945 Obj +if reg306937 == True { +reg306938 := Nil; +reg306939 := PrimTail(V2110) +reg306940 := PrimEqual(reg306938, reg306939) +var reg306943 Obj +if reg306940 == True { +reg306941 := True; +reg306943 = reg306941 +} else { +reg306942 := False; +reg306943 = reg306942 +} +reg306945 = reg306943 +} else { +reg306944 := False; +reg306945 = reg306944 +} +var reg306948 Obj +if reg306945 == True { +reg306946 := True; +reg306948 = reg306946 +} else { +reg306947 := False; +reg306948 = reg306947 +} +reg306950 = reg306948 +} else { +reg306949 := False; +reg306950 = reg306949 +} +if reg306950 == True { +reg306951 := PrimHead(V2110) +reg306952 := PrimHead(reg306951) +reg306953 := PrimHead(V2110) +reg306954 := PrimTail(reg306953) +reg306955 := Nil; +reg306956 := PrimCons(V2112, reg306955) +reg306957 := PrimCons(V2111, reg306956) +reg306958 := __e.Call(__defun__append, reg306954, reg306957) +reg306959 := PrimCons(reg306952, reg306958) +__ctx.Return(reg306959) +return +} else { +reg306960 := PrimIsPair(V2110) +var reg306967 Obj +if reg306960 == True { +reg306961 := PrimHead(V2110) +reg306962 := PrimIsPair(reg306961) +var reg306965 Obj +if reg306962 == True { +reg306963 := True; +reg306965 = reg306963 +} else { +reg306964 := False; +reg306965 = reg306964 +} +reg306967 = reg306965 +} else { +reg306966 := False; +reg306967 = reg306966 +} +if reg306967 == True { +reg306968 := PrimTail(V2110) +reg306969 := __e.Call(__defun__shen_4newcontinuation, reg306968, V2111, V2112) +NewContinuation := reg306969 +_ = NewContinuation +reg306970 := PrimHead(V2110) +reg306971 := PrimHead(reg306970) +reg306972 := PrimHead(V2110) +reg306973 := PrimTail(reg306972) +reg306974 := Nil; +reg306975 := PrimCons(NewContinuation, reg306974) +reg306976 := PrimCons(V2111, reg306975) +reg306977 := __e.Call(__defun__append, reg306973, reg306976) +reg306978 := PrimCons(reg306971, reg306977) +__ctx.Return(reg306978) +return +} else { +reg306979 := MakeSymbol("shen.call_the_continuation") +__ctx.TailApply(__defun__shen_4f__error, reg306979) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.call_the_continuation", value: __defun__shen_4call__the__continuation}) + +__defun__shen_4newcontinuation = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2116 := __args[0] +_ = V2116 +V2117 := __args[1] +_ = V2117 +V2118 := __args[2] +_ = V2118 +reg306981 := Nil; +reg306982 := PrimEqual(reg306981, V2116) +if reg306982 == True { +__ctx.Return(V2118) +return +} else { +reg306983 := PrimIsPair(V2116) +var reg306990 Obj +if reg306983 == True { +reg306984 := PrimHead(V2116) +reg306985 := PrimIsPair(reg306984) +var reg306988 Obj +if reg306985 == True { +reg306986 := True; +reg306988 = reg306986 +} else { +reg306987 := False; +reg306988 = reg306987 +} +reg306990 = reg306988 +} else { +reg306989 := False; +reg306990 = reg306989 +} +if reg306990 == True { +reg306991 := MakeSymbol("freeze") +reg306992 := PrimHead(V2116) +reg306993 := PrimHead(reg306992) +reg306994 := PrimHead(V2116) +reg306995 := PrimTail(reg306994) +reg306996 := PrimTail(V2116) +reg306997 := __e.Call(__defun__shen_4newcontinuation, reg306996, V2117, V2118) +reg306998 := Nil; +reg306999 := PrimCons(reg306997, reg306998) +reg307000 := PrimCons(V2117, reg306999) +reg307001 := __e.Call(__defun__append, reg306995, reg307000) +reg307002 := PrimCons(reg306993, reg307001) +reg307003 := Nil; +reg307004 := PrimCons(reg307002, reg307003) +reg307005 := PrimCons(reg306991, reg307004) +__ctx.Return(reg307005) +return +} else { +reg307006 := MakeSymbol("shen.newcontinuation") +__ctx.TailApply(__defun__shen_4f__error, reg307006) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.newcontinuation", value: __defun__shen_4newcontinuation}) + +__defun__return = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2126 := __args[0] +_ = V2126 +V2127 := __args[1] +_ = V2127 +V2128 := __args[2] +_ = V2128 +__ctx.TailApply(__defun__shen_4deref, V2126, V2127) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "return", value: __defun__return}) + +__defun__shen_4measure_ereturn = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2136 := __args[0] +_ = V2136 +V2137 := __args[1] +_ = V2137 +V2138 := __args[2] +_ = V2138 +reg307009 := MakeSymbol("shen.*infs*") +reg307010 := PrimValue(reg307009) +reg307011 := MakeString(" inferences\n") +reg307012 := MakeSymbol("shen.a") +reg307013 := __e.Call(__defun__shen_4app, reg307010, reg307011, reg307012) +reg307014 := __e.Call(__defun__stoutput) +reg307015 := __e.Call(__defun__shen_4prhush, reg307013, reg307014) +_ = reg307015 +__ctx.TailApply(__defun__shen_4deref, V2136, V2137) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.measure&return", value: __defun__shen_4measure_ereturn}) + +__defun__unify = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2143 := __args[0] +_ = V2143 +V2144 := __args[1] +_ = V2144 +V2145 := __args[2] +_ = V2145 +V2146 := __args[3] +_ = V2146 +reg307017 := __e.Call(__defun__shen_4lazyderef, V2143, V2145) +reg307018 := __e.Call(__defun__shen_4lazyderef, V2144, V2145) +__ctx.TailApply(__defun__shen_4lzy_a, reg307017, reg307018, V2145, V2146) +return +}, 4) +__initDefs = append(__initDefs, defType{name: "unify", value: __defun__unify}) + +__defun__shen_4lzy_a = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2168 := __args[0] +_ = V2168 +V2169 := __args[1] +_ = V2169 +V2170 := __args[2] +_ = V2170 +V2171 := __args[3] +_ = V2171 +reg307020 := PrimEqual(V2169, V2168) +if reg307020 == True { +__ctx.TailApply(__defun__thaw, V2171) +return +} else { +reg307022 := __e.Call(__defun__shen_4pvar_2, V2168) +if reg307022 == True { +__ctx.TailApply(__defun__bind, V2168, V2169, V2170, V2171) +return +} else { +reg307024 := __e.Call(__defun__shen_4pvar_2, V2169) +if reg307024 == True { +__ctx.TailApply(__defun__bind, V2169, V2168, V2170, V2171) +return +} else { +reg307026 := PrimIsPair(V2168) +var reg307032 Obj +if reg307026 == True { +reg307027 := PrimIsPair(V2169) +var reg307030 Obj +if reg307027 == True { +reg307028 := True; +reg307030 = reg307028 +} else { +reg307029 := False; +reg307030 = reg307029 +} +reg307032 = reg307030 +} else { +reg307031 := False; +reg307032 = reg307031 +} +if reg307032 == True { +reg307033 := PrimHead(V2168) +reg307034 := __e.Call(__defun__shen_4lazyderef, reg307033, V2170) +reg307035 := PrimHead(V2169) +reg307036 := __e.Call(__defun__shen_4lazyderef, reg307035, V2170) +reg307037 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg307038 := PrimTail(V2168) +reg307039 := __e.Call(__defun__shen_4lazyderef, reg307038, V2170) +reg307040 := PrimTail(V2169) +reg307041 := __e.Call(__defun__shen_4lazyderef, reg307040, V2170) +__ctx.TailApply(__defun__shen_4lzy_a, reg307039, reg307041, V2170, V2171) +return +}, 0) +__ctx.TailApply(__defun__shen_4lzy_a, reg307034, reg307036, V2170, reg307037) +return +} else { +reg307044 := False; +__ctx.Return(reg307044) +return +} +} +} +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.lzy=", value: __defun__shen_4lzy_a}) + +__defun__shen_4deref = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2174 := __args[0] +_ = V2174 +V2175 := __args[1] +_ = V2175 +reg307045 := PrimIsPair(V2174) +if reg307045 == True { +reg307046 := PrimHead(V2174) +reg307047 := __e.Call(__defun__shen_4deref, reg307046, V2175) +reg307048 := PrimTail(V2174) +reg307049 := __e.Call(__defun__shen_4deref, reg307048, V2175) +reg307050 := PrimCons(reg307047, reg307049) +__ctx.Return(reg307050) +return +} else { +reg307051 := __e.Call(__defun__shen_4pvar_2, V2174) +if reg307051 == True { +reg307052 := __e.Call(__defun__shen_4valvector, V2174, V2175) +Value := reg307052 +_ = Value +reg307053 := MakeSymbol("shen.-null-") +reg307054 := PrimEqual(Value, reg307053) +if reg307054 == True { +__ctx.Return(V2174) +return +} else { +__ctx.TailApply(__defun__shen_4deref, Value, V2175) +return +} +} else { +__ctx.Return(V2174) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.deref", value: __defun__shen_4deref}) + +__defun__shen_4lazyderef = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2178 := __args[0] +_ = V2178 +V2179 := __args[1] +_ = V2179 +reg307056 := __e.Call(__defun__shen_4pvar_2, V2178) +if reg307056 == True { +reg307057 := __e.Call(__defun__shen_4valvector, V2178, V2179) +Value := reg307057 +_ = Value +reg307058 := MakeSymbol("shen.-null-") +reg307059 := PrimEqual(Value, reg307058) +if reg307059 == True { +__ctx.Return(V2178) +return +} else { +__ctx.TailApply(__defun__shen_4lazyderef, Value, V2179) +return +} +} else { +__ctx.Return(V2178) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.lazyderef", value: __defun__shen_4lazyderef}) + +__defun__shen_4valvector = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2182 := __args[0] +_ = V2182 +V2183 := __args[1] +_ = V2183 +reg307061 := MakeSymbol("shen.*prologvectors*") +reg307062 := PrimValue(reg307061) +reg307063 := PrimVectorGet(reg307062, V2183) +reg307064 := MakeNumber(1) +reg307065 := PrimVectorGet(V2182, reg307064) +reg307066 := PrimVectorGet(reg307063, reg307065) +__ctx.Return(reg307066) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.valvector", value: __defun__shen_4valvector}) + +__defun__unify_b = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2188 := __args[0] +_ = V2188 +V2189 := __args[1] +_ = V2189 +V2190 := __args[2] +_ = V2190 +V2191 := __args[3] +_ = V2191 +reg307067 := __e.Call(__defun__shen_4lazyderef, V2188, V2190) +reg307068 := __e.Call(__defun__shen_4lazyderef, V2189, V2190) +__ctx.TailApply(__defun__shen_4lzy_a_b, reg307067, reg307068, V2190, V2191) +return +}, 4) +__initDefs = append(__initDefs, defType{name: "unify!", value: __defun__unify_b}) + +__defun__shen_4lzy_a_b = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2213 := __args[0] +_ = V2213 +V2214 := __args[1] +_ = V2214 +V2215 := __args[2] +_ = V2215 +V2216 := __args[3] +_ = V2216 +reg307070 := PrimEqual(V2214, V2213) +if reg307070 == True { +__ctx.TailApply(__defun__thaw, V2216) +return +} else { +reg307072 := __e.Call(__defun__shen_4pvar_2, V2213) +var reg307080 Obj +if reg307072 == True { +reg307073 := __e.Call(__defun__shen_4deref, V2214, V2215) +reg307074 := __e.Call(__defun__shen_4occurs_2, V2213, reg307073) +reg307075 := PrimNot(reg307074) +var reg307078 Obj +if reg307075 == True { +reg307076 := True; +reg307078 = reg307076 +} else { +reg307077 := False; +reg307078 = reg307077 +} +reg307080 = reg307078 +} else { +reg307079 := False; +reg307080 = reg307079 +} +if reg307080 == True { +__ctx.TailApply(__defun__bind, V2213, V2214, V2215, V2216) +return +} else { +reg307082 := __e.Call(__defun__shen_4pvar_2, V2214) +var reg307090 Obj +if reg307082 == True { +reg307083 := __e.Call(__defun__shen_4deref, V2213, V2215) +reg307084 := __e.Call(__defun__shen_4occurs_2, V2214, reg307083) +reg307085 := PrimNot(reg307084) +var reg307088 Obj +if reg307085 == True { +reg307086 := True; +reg307088 = reg307086 +} else { +reg307087 := False; +reg307088 = reg307087 +} +reg307090 = reg307088 +} else { +reg307089 := False; +reg307090 = reg307089 +} +if reg307090 == True { +__ctx.TailApply(__defun__bind, V2214, V2213, V2215, V2216) +return +} else { +reg307092 := PrimIsPair(V2213) +var reg307098 Obj +if reg307092 == True { +reg307093 := PrimIsPair(V2214) +var reg307096 Obj +if reg307093 == True { +reg307094 := True; +reg307096 = reg307094 +} else { +reg307095 := False; +reg307096 = reg307095 +} +reg307098 = reg307096 +} else { +reg307097 := False; +reg307098 = reg307097 +} +if reg307098 == True { +reg307099 := PrimHead(V2213) +reg307100 := __e.Call(__defun__shen_4lazyderef, reg307099, V2215) +reg307101 := PrimHead(V2214) +reg307102 := __e.Call(__defun__shen_4lazyderef, reg307101, V2215) +reg307103 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg307104 := PrimTail(V2213) +reg307105 := __e.Call(__defun__shen_4lazyderef, reg307104, V2215) +reg307106 := PrimTail(V2214) +reg307107 := __e.Call(__defun__shen_4lazyderef, reg307106, V2215) +__ctx.TailApply(__defun__shen_4lzy_a_b, reg307105, reg307107, V2215, V2216) +return +}, 0) +__ctx.TailApply(__defun__shen_4lzy_a_b, reg307100, reg307102, V2215, reg307103) +return +} else { +reg307110 := False; +__ctx.Return(reg307110) +return +} +} +} +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.lzy=!", value: __defun__shen_4lzy_a_b}) + +__defun__shen_4occurs_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2228 := __args[0] +_ = V2228 +V2229 := __args[1] +_ = V2229 +reg307111 := PrimEqual(V2229, V2228) +if reg307111 == True { +reg307112 := True; +__ctx.Return(reg307112) +return +} else { +reg307113 := PrimIsPair(V2229) +if reg307113 == True { +reg307114 := PrimHead(V2229) +reg307115 := __e.Call(__defun__shen_4occurs_2, V2228, reg307114) +if reg307115 == True { +reg307116 := True; +__ctx.Return(reg307116) +return +} else { +reg307117 := PrimTail(V2229) +reg307118 := __e.Call(__defun__shen_4occurs_2, V2228, reg307117) +if reg307118 == True { +reg307119 := True; +__ctx.Return(reg307119) +return +} else { +reg307120 := False; +__ctx.Return(reg307120) +return +} +} +} else { +reg307121 := False; +__ctx.Return(reg307121) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.occurs?", value: __defun__shen_4occurs_2}) + +__defun__identical = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2234 := __args[0] +_ = V2234 +V2235 := __args[1] +_ = V2235 +V2236 := __args[2] +_ = V2236 +V2237 := __args[3] +_ = V2237 +reg307122 := __e.Call(__defun__shen_4lazyderef, V2234, V2236) +reg307123 := __e.Call(__defun__shen_4lazyderef, V2235, V2236) +__ctx.TailApply(__defun__shen_4lzy_a_a, reg307122, reg307123, V2236, V2237) +return +}, 4) +__initDefs = append(__initDefs, defType{name: "identical", value: __defun__identical}) + +__defun__shen_4lzy_a_a = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2259 := __args[0] +_ = V2259 +V2260 := __args[1] +_ = V2260 +V2261 := __args[2] +_ = V2261 +V2262 := __args[3] +_ = V2262 +reg307125 := PrimEqual(V2260, V2259) +if reg307125 == True { +__ctx.TailApply(__defun__thaw, V2262) +return +} else { +reg307127 := PrimIsPair(V2259) +var reg307133 Obj +if reg307127 == True { +reg307128 := PrimIsPair(V2260) +var reg307131 Obj +if reg307128 == True { +reg307129 := True; +reg307131 = reg307129 +} else { +reg307130 := False; +reg307131 = reg307130 +} +reg307133 = reg307131 +} else { +reg307132 := False; +reg307133 = reg307132 +} +if reg307133 == True { +reg307134 := PrimHead(V2259) +reg307135 := __e.Call(__defun__shen_4lazyderef, reg307134, V2261) +reg307136 := PrimHead(V2260) +reg307137 := __e.Call(__defun__shen_4lazyderef, reg307136, V2261) +reg307138 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg307139 := PrimTail(V2259) +reg307140 := PrimTail(V2260) +__ctx.TailApply(__defun__shen_4lzy_a_a, reg307139, reg307140, V2261, V2262) +return +}, 0) +__ctx.TailApply(__defun__shen_4lzy_a_a, reg307135, reg307137, V2261, reg307138) +return +} else { +reg307143 := False; +__ctx.Return(reg307143) +return +} +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.lzy==", value: __defun__shen_4lzy_a_a}) + +__defun__shen_4pvar = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2264 := __args[0] +_ = V2264 +reg307144 := MakeString("Var") +reg307145 := MakeNumber(1) +reg307146 := PrimVectorGet(V2264, reg307145) +reg307147 := MakeString("") +reg307148 := MakeSymbol("shen.a") +reg307149 := __e.Call(__defun__shen_4app, reg307146, reg307147, reg307148) +reg307150 := PrimStringConcat(reg307144, reg307149) +__ctx.Return(reg307150) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.pvar", value: __defun__shen_4pvar}) + +__defun__bind = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2269 := __args[0] +_ = V2269 +V2270 := __args[1] +_ = V2270 +V2271 := __args[2] +_ = V2271 +V2272 := __args[3] +_ = V2272 +reg307151 := __e.Call(__defun__shen_4bindv, V2269, V2270, V2271) +_ = reg307151 +reg307152 := __e.Call(__defun__thaw, V2272) +Result := reg307152 +_ = Result +reg307153 := __e.Call(__defun__shen_4unbindv, V2269, V2271) +_ = reg307153 +__ctx.Return(Result) +return +}, 4) +__initDefs = append(__initDefs, defType{name: "bind", value: __defun__bind}) + +__defun__fwhen = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2290 := __args[0] +_ = V2290 +V2291 := __args[1] +_ = V2291 +V2292 := __args[2] +_ = V2292 +reg307154 := True; +reg307155 := PrimEqual(reg307154, V2290) +if reg307155 == True { +__ctx.TailApply(__defun__thaw, V2292) +return +} else { +reg307157 := False; +reg307158 := PrimEqual(reg307157, V2290) +if reg307158 == True { +reg307159 := False; +__ctx.Return(reg307159) +return +} else { +reg307160 := MakeString("fwhen expects a boolean: not ") +reg307161 := MakeString("%") +reg307162 := MakeSymbol("shen.s") +reg307163 := __e.Call(__defun__shen_4app, V2290, reg307161, reg307162) +reg307164 := PrimStringConcat(reg307160, reg307163) +reg307165 := PrimSimpleError(reg307164) +__ctx.Return(reg307165) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "fwhen", value: __defun__fwhen}) + +__defun__call = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2308 := __args[0] +_ = V2308 +V2309 := __args[1] +_ = V2309 +V2310 := __args[2] +_ = V2310 +reg307166 := PrimIsPair(V2308) +if reg307166 == True { +reg307167 := PrimHead(V2308) +reg307168 := __e.Call(__defun__shen_4lazyderef, reg307167, V2309) +reg307169 := __e.Call(__defun__function, reg307168) +reg307170 := PrimTail(V2308) +__ctx.TailApply(__defun__shen_4call_1help, reg307169, reg307170, V2309, V2310) +return +} else { +reg307172 := False; +__ctx.Return(reg307172) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "call", value: __defun__call}) + +__defun__shen_4call_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2315 := __args[0] +_ = V2315 +V2316 := __args[1] +_ = V2316 +V2317 := __args[2] +_ = V2317 +V2318 := __args[3] +_ = V2318 +reg307173 := Nil; +reg307174 := PrimEqual(reg307173, V2316) +if reg307174 == True { +__ctx.TailApply(V2315, V2317, V2318) +return +} else { +reg307176 := PrimIsPair(V2316) +if reg307176 == True { +reg307177 := PrimHead(V2316) +reg307178 := __e.Call(V2315, reg307177) +reg307179 := PrimTail(V2316) +__ctx.TailApply(__defun__shen_4call_1help, reg307178, reg307179, V2317, V2318) +return +} else { +reg307181 := MakeSymbol("shen.call-help") +__ctx.TailApply(__defun__shen_4f__error, reg307181) +return +} +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.call-help", value: __defun__shen_4call_1help}) + +__defun__shen_4intprolog = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2320 := __args[0] +_ = V2320 +reg307183 := PrimIsPair(V2320) +var reg307190 Obj +if reg307183 == True { +reg307184 := PrimHead(V2320) +reg307185 := PrimIsPair(reg307184) +var reg307188 Obj +if reg307185 == True { +reg307186 := True; +reg307188 = reg307186 +} else { +reg307187 := False; +reg307188 = reg307187 +} +reg307190 = reg307188 +} else { +reg307189 := False; +reg307190 = reg307189 +} +if reg307190 == True { +reg307191 := __e.Call(__defun__shen_4start_1new_1prolog_1process) +ProcessN := reg307191 +_ = ProcessN +reg307192 := PrimHead(V2320) +reg307193 := PrimHead(reg307192) +reg307194 := PrimHead(V2320) +reg307195 := PrimTail(reg307194) +reg307196 := PrimTail(V2320) +reg307197 := Nil; +reg307198 := PrimCons(reg307196, reg307197) +reg307199 := PrimCons(reg307195, reg307198) +reg307200 := __e.Call(__defun__shen_4insert_1prolog_1variables, reg307199, ProcessN) +__ctx.TailApply(__defun__shen_4intprolog_1help, reg307193, reg307200, ProcessN) +return +} else { +reg307202 := MakeSymbol("shen.intprolog") +__ctx.TailApply(__defun__shen_4f__error, reg307202) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.intprolog", value: __defun__shen_4intprolog}) + +__defun__shen_4intprolog_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2324 := __args[0] +_ = V2324 +V2325 := __args[1] +_ = V2325 +V2326 := __args[2] +_ = V2326 +reg307204 := PrimIsPair(V2325) +var reg307220 Obj +if reg307204 == True { +reg307205 := PrimTail(V2325) +reg307206 := PrimIsPair(reg307205) +var reg307215 Obj +if reg307206 == True { +reg307207 := Nil; +reg307208 := PrimTail(V2325) +reg307209 := PrimTail(reg307208) +reg307210 := PrimEqual(reg307207, reg307209) +var reg307213 Obj +if reg307210 == True { +reg307211 := True; +reg307213 = reg307211 +} else { +reg307212 := False; +reg307213 = reg307212 +} +reg307215 = reg307213 +} else { +reg307214 := False; +reg307215 = reg307214 +} +var reg307218 Obj +if reg307215 == True { +reg307216 := True; +reg307218 = reg307216 +} else { +reg307217 := False; +reg307218 = reg307217 +} +reg307220 = reg307218 +} else { +reg307219 := False; +reg307220 = reg307219 +} +if reg307220 == True { +reg307221 := PrimHead(V2325) +reg307222 := PrimTail(V2325) +reg307223 := PrimHead(reg307222) +__ctx.TailApply(__defun__shen_4intprolog_1help_1help, V2324, reg307221, reg307223, V2326) +return +} else { +reg307225 := MakeSymbol("shen.intprolog-help") +__ctx.TailApply(__defun__shen_4f__error, reg307225) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.intprolog-help", value: __defun__shen_4intprolog_1help}) + +__defun__shen_4intprolog_1help_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2331 := __args[0] +_ = V2331 +V2332 := __args[1] +_ = V2332 +V2333 := __args[2] +_ = V2333 +V2334 := __args[3] +_ = V2334 +reg307227 := Nil; +reg307228 := PrimEqual(reg307227, V2332) +if reg307228 == True { +reg307229 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4call_1rest, V2333, V2334) +return +}, 0) +__ctx.TailApply(V2331, V2334, reg307229) +return +} else { +reg307232 := PrimIsPair(V2332) +if reg307232 == True { +reg307233 := PrimHead(V2332) +reg307234 := __e.Call(V2331, reg307233) +reg307235 := PrimTail(V2332) +__ctx.TailApply(__defun__shen_4intprolog_1help_1help, reg307234, reg307235, V2333, V2334) +return +} else { +reg307237 := MakeSymbol("shen.intprolog-help-help") +__ctx.TailApply(__defun__shen_4f__error, reg307237) +return +} +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.intprolog-help-help", value: __defun__shen_4intprolog_1help_1help}) + +__defun__shen_4call_1rest = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2339 := __args[0] +_ = V2339 +V2340 := __args[1] +_ = V2340 +reg307241 := Nil; +reg307242 := PrimEqual(reg307241, V2339) +if reg307242 == True { +reg307243 := True; +__ctx.Return(reg307243) +return +} else { +reg307244 := PrimIsPair(V2339) +var reg307259 Obj +if reg307244 == True { +reg307245 := PrimHead(V2339) +reg307246 := PrimIsPair(reg307245) +var reg307254 Obj +if reg307246 == True { +reg307247 := PrimHead(V2339) +reg307248 := PrimTail(reg307247) +reg307249 := PrimIsPair(reg307248) +var reg307252 Obj +if reg307249 == True { +reg307250 := True; +reg307252 = reg307250 +} else { +reg307251 := False; +reg307252 = reg307251 +} +reg307254 = reg307252 +} else { +reg307253 := False; +reg307254 = reg307253 +} +var reg307257 Obj +if reg307254 == True { +reg307255 := True; +reg307257 = reg307255 +} else { +reg307256 := False; +reg307257 = reg307256 +} +reg307259 = reg307257 +} else { +reg307258 := False; +reg307259 = reg307258 +} +if reg307259 == True { +reg307260 := PrimHead(V2339) +reg307261 := PrimHead(reg307260) +f307239 := reg307261 +_ = f307239 +reg307262 := PrimHead(V2339) +reg307263 := PrimTail(reg307262) +reg307264 := PrimHead(reg307263) +reg307265 := __e.Call(f307239, reg307264) +reg307266 := PrimHead(V2339) +reg307267 := PrimTail(reg307266) +reg307268 := PrimTail(reg307267) +reg307269 := PrimCons(reg307265, reg307268) +reg307270 := PrimTail(V2339) +reg307271 := PrimCons(reg307269, reg307270) +__ctx.TailApply(__defun__shen_4call_1rest, reg307271, V2340) +return +} else { +reg307273 := PrimIsPair(V2339) +var reg307289 Obj +if reg307273 == True { +reg307274 := PrimHead(V2339) +reg307275 := PrimIsPair(reg307274) +var reg307284 Obj +if reg307275 == True { +reg307276 := Nil; +reg307277 := PrimHead(V2339) +reg307278 := PrimTail(reg307277) +reg307279 := PrimEqual(reg307276, reg307278) +var reg307282 Obj +if reg307279 == True { +reg307280 := True; +reg307282 = reg307280 +} else { +reg307281 := False; +reg307282 = reg307281 +} +reg307284 = reg307282 +} else { +reg307283 := False; +reg307284 = reg307283 +} +var reg307287 Obj +if reg307284 == True { +reg307285 := True; +reg307287 = reg307285 +} else { +reg307286 := False; +reg307287 = reg307286 +} +reg307289 = reg307287 +} else { +reg307288 := False; +reg307289 = reg307288 +} +if reg307289 == True { +reg307290 := PrimHead(V2339) +reg307291 := PrimHead(reg307290) +f307240 := reg307291 +_ = f307240 +reg307292 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg307293 := PrimTail(V2339) +__ctx.TailApply(__defun__shen_4call_1rest, reg307293, V2340) +return +}, 0) +__ctx.TailApply(f307240, V2340, reg307292) +return +} else { +reg307296 := MakeSymbol("shen.call-rest") +__ctx.TailApply(__defun__shen_4f__error, reg307296) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.call-rest", value: __defun__shen_4call_1rest}) + +__defun__shen_4start_1new_1prolog_1process = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg307298 := MakeSymbol("shen.*process-counter*") +reg307299 := MakeNumber(1) +reg307300 := MakeSymbol("shen.*process-counter*") +reg307301 := PrimValue(reg307300) +reg307302 := PrimNumberAdd(reg307299, reg307301) +reg307303 := PrimSet(reg307298, reg307302) +IncrementProcessCounter := reg307303 +_ = IncrementProcessCounter +__ctx.TailApply(__defun__shen_4initialise_1prolog, IncrementProcessCounter) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.start-new-prolog-process", value: __defun__shen_4start_1new_1prolog_1process}) + +__defun__shen_4insert_1prolog_1variables = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2343 := __args[0] +_ = V2343 +V2344 := __args[1] +_ = V2344 +reg307305 := __e.Call(__defun__shen_4flatten, V2343) +__ctx.TailApply(__defun__shen_4insert_1prolog_1variables_1help, V2343, reg307305, V2344) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.insert-prolog-variables", value: __defun__shen_4insert_1prolog_1variables}) + +__defun__shen_4insert_1prolog_1variables_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2352 := __args[0] +_ = V2352 +V2353 := __args[1] +_ = V2353 +V2354 := __args[2] +_ = V2354 +reg307307 := Nil; +reg307308 := PrimEqual(reg307307, V2353) +if reg307308 == True { +__ctx.Return(V2352) +return +} else { +reg307309 := PrimIsPair(V2353) +var reg307316 Obj +if reg307309 == True { +reg307310 := PrimHead(V2353) +reg307311 := PrimIsVariable(reg307310) +var reg307314 Obj +if reg307311 == True { +reg307312 := True; +reg307314 = reg307312 +} else { +reg307313 := False; +reg307314 = reg307313 +} +reg307316 = reg307314 +} else { +reg307315 := False; +reg307316 = reg307315 +} +if reg307316 == True { +reg307317 := __e.Call(__defun__shen_4newpv, V2354) +V := reg307317 +_ = V +reg307318 := PrimHead(V2353) +reg307319 := __e.Call(__defun__subst, V, reg307318, V2352) +XV_cY := reg307319 +_ = XV_cY +reg307320 := PrimHead(V2353) +reg307321 := PrimTail(V2353) +reg307322 := __e.Call(__defun__remove, reg307320, reg307321) +Z_1Y := reg307322 +_ = Z_1Y +__ctx.TailApply(__defun__shen_4insert_1prolog_1variables_1help, XV_cY, Z_1Y, V2354) +return +} else { +reg307324 := PrimIsPair(V2353) +if reg307324 == True { +reg307325 := PrimTail(V2353) +__ctx.TailApply(__defun__shen_4insert_1prolog_1variables_1help, V2352, reg307325, V2354) +return +} else { +reg307327 := MakeSymbol("shen.insert-prolog-variables-help") +__ctx.TailApply(__defun__shen_4f__error, reg307327) +return +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.insert-prolog-variables-help", value: __defun__shen_4insert_1prolog_1variables_1help}) + +__defun__shen_4initialise_1prolog = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2356 := __args[0] +_ = V2356 +reg307329 := MakeSymbol("shen.*prologvectors*") +reg307330 := PrimValue(reg307329) +reg307331 := MakeNumber(10) +reg307332 := __e.Call(__defun__vector, reg307331) +reg307333 := MakeNumber(1) +reg307334 := MakeNumber(10) +reg307335 := MakeSymbol("shen.-null-") +reg307336 := __e.Call(__defun__shen_4fillvector, reg307332, reg307333, reg307334, reg307335) +reg307337 := PrimVectorSet(reg307330, V2356, reg307336) +Vector := reg307337 +_ = Vector +reg307338 := MakeSymbol("shen.*varcounter*") +reg307339 := PrimValue(reg307338) +reg307340 := MakeNumber(1) +reg307341 := PrimVectorSet(reg307339, V2356, reg307340) +Counter := reg307341 +_ = Counter +__ctx.Return(V2356) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.initialise-prolog", value: __defun__shen_4initialise_1prolog}) + +} diff --git a/cmd/shen/reader.go b/cmd/shen/reader.go new file mode 100644 index 0000000..406e931 --- /dev/null +++ b/cmd/shen/reader.go @@ -0,0 +1,5339 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__shen_4read_1char_1code Obj // shen.read-char-code +var __defun__read_1file_1as_1bytelist Obj // read-file-as-bytelist +var __defun__shen_4read_1file_1as_1charlist Obj // shen.read-file-as-charlist +var __defun__shen_4read_1file_1as_1Xlist Obj // shen.read-file-as-Xlist +var __defun__shen_4read_1file_1as_1Xlist_1help Obj // shen.read-file-as-Xlist-help +var __defun__read_1file_1as_1string Obj // read-file-as-string +var __defun__shen_4rfas_1h Obj // shen.rfas-h +var __defun__input Obj // input +var __defun__input_7 Obj // input+ +var __defun__shen_4monotype Obj // shen.monotype +var __defun__read Obj // read +var __defun__it Obj // it +var __defun__shen_4read_1loop Obj // shen.read-loop +var __defun__shen_4terminator_2 Obj // shen.terminator? +var __defun__lineread Obj // lineread +var __defun__shen_4lineread_1loop Obj // shen.lineread-loop +var __defun__shen_4record_1it Obj // shen.record-it +var __defun__shen_4trim_1whitespace Obj // shen.trim-whitespace +var __defun__shen_4record_1it_1h Obj // shen.record-it-h +var __defun__shen_4cn_1all Obj // shen.cn-all +var __defun__read_1file Obj // read-file +var __defun__read_1from_1string Obj // read-from-string +var __defun__shen_4read_1error Obj // shen.read-error +var __defun__shen_4compress_150 Obj // shen.compress-50 +var __defun__shen_4_5st__input_6 Obj // shen. +var __defun__shen_4_5lsb_6 Obj // shen. +var __defun__shen_4_5rsb_6 Obj // shen. +var __defun__shen_4_5lcurly_6 Obj // shen. +var __defun__shen_4_5rcurly_6 Obj // shen. +var __defun__shen_4_5bar_6 Obj // shen. +var __defun__shen_4_5semicolon_6 Obj // shen. +var __defun__shen_4_5colon_6 Obj // shen. +var __defun__shen_4_5comma_6 Obj // shen. +var __defun__shen_4_5equal_6 Obj // shen. +var __defun__shen_4_5minus_6 Obj // shen. +var __defun__shen_4_5lrb_6 Obj // shen. +var __defun__shen_4_5rrb_6 Obj // shen. +var __defun__shen_4_5atom_6 Obj // shen. +var __defun__shen_4control_1chars Obj // shen.control-chars +var __defun__shen_4code_1point Obj // shen.code-point +var __defun__shen_4after_1codepoint Obj // shen.after-codepoint +var __defun__shen_4decimalise Obj // shen.decimalise +var __defun__shen_4digits_1_6integers Obj // shen.digits->integers +var __defun__shen_4_5sym_6 Obj // shen. +var __defun__shen_4_5alphanums_6 Obj // shen. +var __defun__shen_4_5alphanum_6 Obj // shen. +var __defun__shen_4_5num_6 Obj // shen. +var __defun__shen_4numbyte_2 Obj // shen.numbyte? +var __defun__shen_4_5alpha_6 Obj // shen. +var __defun__shen_4symbol_1code_2 Obj // shen.symbol-code? +var __defun__shen_4_5str_6 Obj // shen. +var __defun__shen_4_5dbq_6 Obj // shen. +var __defun__shen_4_5strcontents_6 Obj // shen. +var __defun__shen_4_5byte_6 Obj // shen. +var __defun__shen_4_5strc_6 Obj // shen. +var __defun__shen_4_5number_6 Obj // shen. +var __defun__shen_4_5E_6 Obj // shen. +var __defun__shen_4_5log10_6 Obj // shen. +var __defun__shen_4_5plus_6 Obj // shen. +var __defun__shen_4_5stop_6 Obj // shen. +var __defun__shen_4_5predigits_6 Obj // shen. +var __defun__shen_4_5postdigits_6 Obj // shen. +var __defun__shen_4_5digits_6 Obj // shen. +var __defun__shen_4_5digit_6 Obj // shen. +var __defun__shen_4byte_1_6digit Obj // shen.byte->digit +var __defun__shen_4pre Obj // shen.pre +var __defun__shen_4post Obj // shen.post +var __defun__shen_4expt Obj // shen.expt +var __defun__shen_4_5st__input1_6 Obj // shen. +var __defun__shen_4_5st__input2_6 Obj // shen. +var __defun__shen_4_5comment_6 Obj // shen. +var __defun__shen_4_5singleline_6 Obj // shen. +var __defun__shen_4_5backslash_6 Obj // shen. +var __defun__shen_4_5anysingle_6 Obj // shen. +var __defun__shen_4_5non_1return_6 Obj // shen. +var __defun__shen_4_5return_6 Obj // shen. +var __defun__shen_4_5multiline_6 Obj // shen. +var __defun__shen_4_5times_6 Obj // shen. +var __defun__shen_4_5anymulti_6 Obj // shen. +var __defun__shen_4_5whitespaces_6 Obj // shen. +var __defun__shen_4_5whitespace_6 Obj // shen. +var __defun__shen_4cons__form Obj // shen.cons_form +var __defun__shen_4package_1macro Obj // shen.package-macro +var __defun__shen_4record_1exceptions Obj // shen.record-exceptions +var __defun__shen_4record_1internal Obj // shen.record-internal +var __defun__shen_4internal_1symbols Obj // shen.internal-symbols +var __defun__shen_4packageh Obj // shen.packageh + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg299875 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg299875) +return +}, 0)) +__defun__shen_4read_1char_1code = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2358 := __args[0] +_ = V2358 +reg299876 := PrimReadByte(V2358) +__ctx.Return(reg299876) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.read-char-code", value: __defun__shen_4read_1char_1code}) + +__defun__read_1file_1as_1bytelist = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2360 := __args[0] +_ = V2360 +reg299877 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +S := __args[0] +_ = S +reg299878 := PrimReadByte(S) +__ctx.Return(reg299878) +return +}, 1) +__ctx.TailApply(__defun__shen_4read_1file_1as_1Xlist, V2360, reg299877) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "read-file-as-bytelist", value: __defun__read_1file_1as_1bytelist}) + +__defun__shen_4read_1file_1as_1charlist = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2362 := __args[0] +_ = V2362 +reg299880 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +S := __args[0] +_ = S +__ctx.TailApply(__defun__shen_4read_1char_1code, S) +return +}, 1) +__ctx.TailApply(__defun__shen_4read_1file_1as_1Xlist, V2362, reg299880) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.read-file-as-charlist", value: __defun__shen_4read_1file_1as_1charlist}) + +__defun__shen_4read_1file_1as_1Xlist = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2365 := __args[0] +_ = V2365 +V2366 := __args[1] +_ = V2366 +reg299883 := MakeSymbol("in") +reg299884 := PrimOpenStream(V2365, reg299883) +Stream := reg299884 +_ = Stream +reg299885 := __e.Call(V2366, Stream) +X := reg299885 +_ = X +reg299886 := Nil; +reg299887 := __e.Call(__defun__shen_4read_1file_1as_1Xlist_1help, Stream, V2366, X, reg299886) +Xs := reg299887 +_ = Xs +reg299888 := PrimCloseStream(Stream) +Close := reg299888 +_ = Close +__ctx.TailApply(__defun__reverse, Xs) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.read-file-as-Xlist", value: __defun__shen_4read_1file_1as_1Xlist}) + +__defun__shen_4read_1file_1as_1Xlist_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2371 := __args[0] +_ = V2371 +V2372 := __args[1] +_ = V2372 +V2373 := __args[2] +_ = V2373 +V2374 := __args[3] +_ = V2374 +reg299890 := MakeNumber(-1) +reg299891 := PrimEqual(reg299890, V2373) +if reg299891 == True { +__ctx.Return(V2374) +return +} else { +reg299892 := __e.Call(V2372, V2371) +reg299893 := PrimCons(V2373, V2374) +__ctx.TailApply(__defun__shen_4read_1file_1as_1Xlist_1help, V2371, V2372, reg299892, reg299893) +return +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.read-file-as-Xlist-help", value: __defun__shen_4read_1file_1as_1Xlist_1help}) + +__defun__read_1file_1as_1string = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2376 := __args[0] +_ = V2376 +reg299895 := MakeSymbol("in") +reg299896 := PrimOpenStream(V2376, reg299895) +Stream := reg299896 +_ = Stream +reg299897 := __e.Call(__defun__shen_4read_1char_1code, Stream) +reg299898 := MakeString("") +__ctx.TailApply(__defun__shen_4rfas_1h, Stream, reg299897, reg299898) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "read-file-as-string", value: __defun__read_1file_1as_1string}) + +__defun__shen_4rfas_1h = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2380 := __args[0] +_ = V2380 +V2381 := __args[1] +_ = V2381 +V2382 := __args[2] +_ = V2382 +reg299900 := MakeNumber(-1) +reg299901 := PrimEqual(reg299900, V2381) +if reg299901 == True { +reg299902 := PrimCloseStream(V2380) +_ = reg299902 +__ctx.Return(V2382) +return +} else { +reg299903 := __e.Call(__defun__shen_4read_1char_1code, V2380) +reg299904 := PrimNumberToString(V2381) +reg299905 := PrimStringConcat(V2382, reg299904) +__ctx.TailApply(__defun__shen_4rfas_1h, V2380, reg299903, reg299905) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.rfas-h", value: __defun__shen_4rfas_1h}) + +__defun__input = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2384 := __args[0] +_ = V2384 +reg299907 := __e.Call(__defun__read, V2384) +reg299908 := PrimEvalKL(__e, reg299907) +__ctx.Return(reg299908) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "input", value: __defun__input}) + +__defun__input_7 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2387 := __args[0] +_ = V2387 +V2388 := __args[1] +_ = V2388 +reg299909 := __e.Call(__defun__shen_4monotype, V2387) +Mono_2 := reg299909 +_ = Mono_2 +reg299910 := __e.Call(__defun__read, V2388) +Input := reg299910 +_ = Input +reg299911 := False; +reg299912 := __e.Call(__defun__shen_4demodulate, V2387) +reg299913 := __e.Call(__defun__shen_4typecheck, Input, reg299912) +reg299914 := PrimEqual(reg299911, reg299913) +if reg299914 == True { +reg299915 := MakeString("type error: ") +reg299916 := MakeString(" is not of type ") +reg299917 := MakeString("\n") +reg299918 := MakeSymbol("shen.r") +reg299919 := __e.Call(__defun__shen_4app, V2387, reg299917, reg299918) +reg299920 := PrimStringConcat(reg299916, reg299919) +reg299921 := MakeSymbol("shen.r") +reg299922 := __e.Call(__defun__shen_4app, Input, reg299920, reg299921) +reg299923 := PrimStringConcat(reg299915, reg299922) +reg299924 := PrimSimpleError(reg299923) +__ctx.Return(reg299924) +return +} else { +reg299925 := PrimEvalKL(__e, Input) +__ctx.Return(reg299925) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "input+", value: __defun__input_7}) + +__defun__shen_4monotype = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2390 := __args[0] +_ = V2390 +reg299926 := PrimIsPair(V2390) +if reg299926 == True { +reg299927 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4monotype, Z) +return +}, 1) +__ctx.TailApply(__defun__map, reg299927, V2390) +return +} else { +reg299930 := PrimIsVariable(V2390) +if reg299930 == True { +reg299931 := MakeString("input+ expects a monotype: not ") +reg299932 := MakeString("\n") +reg299933 := MakeSymbol("shen.a") +reg299934 := __e.Call(__defun__shen_4app, V2390, reg299932, reg299933) +reg299935 := PrimStringConcat(reg299931, reg299934) +reg299936 := PrimSimpleError(reg299935) +__ctx.Return(reg299936) +return +} else { +__ctx.Return(V2390) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.monotype", value: __defun__shen_4monotype}) + +__defun__read = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2392 := __args[0] +_ = V2392 +reg299937 := __e.Call(__defun__shen_4read_1char_1code, V2392) +reg299938 := Nil; +reg299939 := __e.Call(__defun__shen_4read_1loop, V2392, reg299937, reg299938) +reg299940 := PrimHead(reg299939) +__ctx.Return(reg299940) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "read", value: __defun__read}) + +__defun__it = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg299941 := MakeSymbol("shen.*it*") +reg299942 := PrimValue(reg299941) +__ctx.Return(reg299942) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "it", value: __defun__it}) + +__defun__shen_4read_1loop = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2400 := __args[0] +_ = V2400 +V2401 := __args[1] +_ = V2401 +V2402 := __args[2] +_ = V2402 +reg299943 := MakeNumber(94) +reg299944 := PrimEqual(reg299943, V2401) +if reg299944 == True { +reg299945 := MakeString("read aborted") +reg299946 := PrimSimpleError(reg299945) +__ctx.Return(reg299946) +return +} else { +reg299947 := MakeNumber(-1) +reg299948 := PrimEqual(reg299947, V2401) +if reg299948 == True { +reg299949 := __e.Call(__defun__empty_2, V2402) +if reg299949 == True { +reg299950 := MakeString("error: empty stream") +reg299951 := PrimSimpleError(reg299950) +__ctx.Return(reg299951) +return +} else { +reg299952 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4_5st__input_6, X) +return +}, 1) +reg299954 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +__ctx.Return(E) +return +}, 1) +__ctx.TailApply(__defun__compile, reg299952, V2402, reg299954) +return +} +} else { +reg299956 := __e.Call(__defun__shen_4terminator_2, V2401) +if reg299956 == True { +reg299957 := Nil; +reg299958 := PrimCons(V2401, reg299957) +reg299959 := __e.Call(__defun__append, V2402, reg299958) +AllChars := reg299959 +_ = AllChars +reg299960 := __e.Call(__defun__shen_4record_1it, AllChars) +It := reg299960 +_ = It +reg299961 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4_5st__input_6, X) +return +}, 1) +reg299963 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg299964 := MakeSymbol("shen.nextbyte") +__ctx.Return(reg299964) +return +}, 1) +reg299965 := __e.Call(__defun__compile, reg299961, AllChars, reg299963) +Read := reg299965 +_ = Read +reg299966 := MakeSymbol("shen.nextbyte") +reg299967 := PrimEqual(Read, reg299966) +var reg299973 Obj +if reg299967 == True { +reg299968 := True; +reg299973 = reg299968 +} else { +reg299969 := __e.Call(__defun__empty_2, Read) +var reg299972 Obj +if reg299969 == True { +reg299970 := True; +reg299972 = reg299970 +} else { +reg299971 := False; +reg299972 = reg299971 +} +reg299973 = reg299972 +} +if reg299973 == True { +reg299974 := __e.Call(__defun__shen_4read_1char_1code, V2400) +__ctx.TailApply(__defun__shen_4read_1loop, V2400, reg299974, AllChars) +return +} else { +__ctx.Return(Read) +return +} +} else { +reg299976 := __e.Call(__defun__shen_4read_1char_1code, V2400) +reg299977 := Nil; +reg299978 := PrimCons(V2401, reg299977) +reg299979 := __e.Call(__defun__append, V2402, reg299978) +__ctx.TailApply(__defun__shen_4read_1loop, V2400, reg299976, reg299979) +return +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.read-loop", value: __defun__shen_4read_1loop}) + +__defun__shen_4terminator_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2404 := __args[0] +_ = V2404 +reg299981 := MakeNumber(9) +reg299982 := MakeNumber(10) +reg299983 := MakeNumber(13) +reg299984 := MakeNumber(32) +reg299985 := MakeNumber(34) +reg299986 := MakeNumber(41) +reg299987 := MakeNumber(93) +reg299988 := Nil; +reg299989 := PrimCons(reg299987, reg299988) +reg299990 := PrimCons(reg299986, reg299989) +reg299991 := PrimCons(reg299985, reg299990) +reg299992 := PrimCons(reg299984, reg299991) +reg299993 := PrimCons(reg299983, reg299992) +reg299994 := PrimCons(reg299982, reg299993) +reg299995 := PrimCons(reg299981, reg299994) +__ctx.TailApply(__defun__element_2, V2404, reg299995) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.terminator?", value: __defun__shen_4terminator_2}) + +__defun__lineread = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2406 := __args[0] +_ = V2406 +reg299997 := __e.Call(__defun__shen_4read_1char_1code, V2406) +reg299998 := Nil; +__ctx.TailApply(__defun__shen_4lineread_1loop, reg299997, reg299998, V2406) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "lineread", value: __defun__lineread}) + +__defun__shen_4lineread_1loop = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2411 := __args[0] +_ = V2411 +V2412 := __args[1] +_ = V2412 +V2413 := __args[2] +_ = V2413 +reg300000 := MakeNumber(-1) +reg300001 := PrimEqual(reg300000, V2411) +if reg300001 == True { +reg300002 := __e.Call(__defun__empty_2, V2412) +if reg300002 == True { +reg300003 := MakeString("empty stream") +reg300004 := PrimSimpleError(reg300003) +__ctx.Return(reg300004) +return +} else { +reg300005 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4_5st__input_6, X) +return +}, 1) +reg300007 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +__ctx.Return(E) +return +}, 1) +__ctx.TailApply(__defun__compile, reg300005, V2412, reg300007) +return +} +} else { +reg300009 := __e.Call(__defun__shen_4hat) +reg300010 := PrimEqual(V2411, reg300009) +if reg300010 == True { +reg300011 := MakeString("line read aborted") +reg300012 := PrimSimpleError(reg300011) +__ctx.Return(reg300012) +return +} else { +reg300013 := __e.Call(__defun__shen_4newline) +reg300014 := __e.Call(__defun__shen_4carriage_1return) +reg300015 := Nil; +reg300016 := PrimCons(reg300014, reg300015) +reg300017 := PrimCons(reg300013, reg300016) +reg300018 := __e.Call(__defun__element_2, V2411, reg300017) +if reg300018 == True { +reg300019 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4_5st__input_6, X) +return +}, 1) +reg300021 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg300022 := MakeSymbol("shen.nextline") +__ctx.Return(reg300022) +return +}, 1) +reg300023 := __e.Call(__defun__compile, reg300019, V2412, reg300021) +Line := reg300023 +_ = Line +reg300024 := __e.Call(__defun__shen_4record_1it, V2412) +It := reg300024 +_ = It +reg300025 := MakeSymbol("shen.nextline") +reg300026 := PrimEqual(Line, reg300025) +var reg300032 Obj +if reg300026 == True { +reg300027 := True; +reg300032 = reg300027 +} else { +reg300028 := __e.Call(__defun__empty_2, Line) +var reg300031 Obj +if reg300028 == True { +reg300029 := True; +reg300031 = reg300029 +} else { +reg300030 := False; +reg300031 = reg300030 +} +reg300032 = reg300031 +} +if reg300032 == True { +reg300033 := __e.Call(__defun__shen_4read_1char_1code, V2413) +reg300034 := Nil; +reg300035 := PrimCons(V2411, reg300034) +reg300036 := __e.Call(__defun__append, V2412, reg300035) +__ctx.TailApply(__defun__shen_4lineread_1loop, reg300033, reg300036, V2413) +return +} else { +__ctx.Return(Line) +return +} +} else { +reg300038 := __e.Call(__defun__shen_4read_1char_1code, V2413) +reg300039 := Nil; +reg300040 := PrimCons(V2411, reg300039) +reg300041 := __e.Call(__defun__append, V2412, reg300040) +__ctx.TailApply(__defun__shen_4lineread_1loop, reg300038, reg300041, V2413) +return +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.lineread-loop", value: __defun__shen_4lineread_1loop}) + +__defun__shen_4record_1it = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2415 := __args[0] +_ = V2415 +reg300043 := __e.Call(__defun__shen_4trim_1whitespace, V2415) +TrimLeft := reg300043 +_ = TrimLeft +reg300044 := __e.Call(__defun__reverse, TrimLeft) +reg300045 := __e.Call(__defun__shen_4trim_1whitespace, reg300044) +TrimRight := reg300045 +_ = TrimRight +reg300046 := __e.Call(__defun__reverse, TrimRight) +Trimmed := reg300046 +_ = Trimmed +__ctx.TailApply(__defun__shen_4record_1it_1h, Trimmed) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.record-it", value: __defun__shen_4record_1it}) + +__defun__shen_4trim_1whitespace = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2417 := __args[0] +_ = V2417 +reg300048 := PrimIsPair(V2417) +var reg300064 Obj +if reg300048 == True { +reg300049 := PrimHead(V2417) +reg300050 := MakeNumber(9) +reg300051 := MakeNumber(10) +reg300052 := MakeNumber(13) +reg300053 := MakeNumber(32) +reg300054 := Nil; +reg300055 := PrimCons(reg300053, reg300054) +reg300056 := PrimCons(reg300052, reg300055) +reg300057 := PrimCons(reg300051, reg300056) +reg300058 := PrimCons(reg300050, reg300057) +reg300059 := __e.Call(__defun__element_2, reg300049, reg300058) +var reg300062 Obj +if reg300059 == True { +reg300060 := True; +reg300062 = reg300060 +} else { +reg300061 := False; +reg300062 = reg300061 +} +reg300064 = reg300062 +} else { +reg300063 := False; +reg300064 = reg300063 +} +if reg300064 == True { +reg300065 := PrimTail(V2417) +__ctx.TailApply(__defun__shen_4trim_1whitespace, reg300065) +return +} else { +__ctx.Return(V2417) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.trim-whitespace", value: __defun__shen_4trim_1whitespace}) + +__defun__shen_4record_1it_1h = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2419 := __args[0] +_ = V2419 +reg300067 := MakeSymbol("shen.*it*") +reg300068 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +reg300069 := PrimNumberToString(X) +__ctx.Return(reg300069) +return +}, 1) +reg300070 := __e.Call(__defun__map, reg300068, V2419) +reg300071 := __e.Call(__defun__shen_4cn_1all, reg300070) +reg300072 := PrimSet(reg300067, reg300071) +_ = reg300072 +__ctx.Return(V2419) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.record-it-h", value: __defun__shen_4record_1it_1h}) + +__defun__shen_4cn_1all = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2421 := __args[0] +_ = V2421 +reg300073 := Nil; +reg300074 := PrimEqual(reg300073, V2421) +if reg300074 == True { +reg300075 := MakeString("") +__ctx.Return(reg300075) +return +} else { +reg300076 := PrimIsPair(V2421) +if reg300076 == True { +reg300077 := PrimHead(V2421) +reg300078 := PrimTail(V2421) +reg300079 := __e.Call(__defun__shen_4cn_1all, reg300078) +reg300080 := PrimStringConcat(reg300077, reg300079) +__ctx.Return(reg300080) +return +} else { +reg300081 := MakeSymbol("shen.cn-all") +__ctx.TailApply(__defun__shen_4f__error, reg300081) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.cn-all", value: __defun__shen_4cn_1all}) + +__defun__read_1file = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2423 := __args[0] +_ = V2423 +reg300083 := __e.Call(__defun__shen_4read_1file_1as_1charlist, V2423) +Charlist := reg300083 +_ = Charlist +reg300084 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4_5st__input_6, X) +return +}, 1) +reg300086 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4read_1error, X) +return +}, 1) +__ctx.TailApply(__defun__compile, reg300084, Charlist, reg300086) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "read-file", value: __defun__read_1file}) + +__defun__read_1from_1string = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2425 := __args[0] +_ = V2425 +reg300089 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +reg300090 := PrimStringToNumber(X) +__ctx.Return(reg300090) +return +}, 1) +reg300091 := __e.Call(__defun__explode, V2425) +reg300092 := __e.Call(__defun__map, reg300089, reg300091) +Ns := reg300092 +_ = Ns +reg300093 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4_5st__input_6, X) +return +}, 1) +reg300095 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4read_1error, X) +return +}, 1) +__ctx.TailApply(__defun__compile, reg300093, Ns, reg300095) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "read-from-string", value: __defun__read_1from_1string}) + +__defun__shen_4read_1error = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2433 := __args[0] +_ = V2433 +reg300098 := PrimIsPair(V2433) +var reg300121 Obj +if reg300098 == True { +reg300099 := PrimHead(V2433) +reg300100 := PrimIsPair(reg300099) +var reg300116 Obj +if reg300100 == True { +reg300101 := PrimTail(V2433) +reg300102 := PrimIsPair(reg300101) +var reg300111 Obj +if reg300102 == True { +reg300103 := Nil; +reg300104 := PrimTail(V2433) +reg300105 := PrimTail(reg300104) +reg300106 := PrimEqual(reg300103, reg300105) +var reg300109 Obj +if reg300106 == True { +reg300107 := True; +reg300109 = reg300107 +} else { +reg300108 := False; +reg300109 = reg300108 +} +reg300111 = reg300109 +} else { +reg300110 := False; +reg300111 = reg300110 +} +var reg300114 Obj +if reg300111 == True { +reg300112 := True; +reg300114 = reg300112 +} else { +reg300113 := False; +reg300114 = reg300113 +} +reg300116 = reg300114 +} else { +reg300115 := False; +reg300116 = reg300115 +} +var reg300119 Obj +if reg300116 == True { +reg300117 := True; +reg300119 = reg300117 +} else { +reg300118 := False; +reg300119 = reg300118 +} +reg300121 = reg300119 +} else { +reg300120 := False; +reg300121 = reg300120 +} +if reg300121 == True { +reg300122 := MakeString("read error here:\n\n ") +reg300123 := MakeNumber(50) +reg300124 := PrimHead(V2433) +reg300125 := __e.Call(__defun__shen_4compress_150, reg300123, reg300124) +reg300126 := MakeString("\n") +reg300127 := MakeSymbol("shen.a") +reg300128 := __e.Call(__defun__shen_4app, reg300125, reg300126, reg300127) +reg300129 := PrimStringConcat(reg300122, reg300128) +reg300130 := PrimSimpleError(reg300129) +__ctx.Return(reg300130) +return +} else { +reg300131 := MakeString("read error\n") +reg300132 := PrimSimpleError(reg300131) +__ctx.Return(reg300132) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.read-error", value: __defun__shen_4read_1error}) + +__defun__shen_4compress_150 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2440 := __args[0] +_ = V2440 +V2441 := __args[1] +_ = V2441 +reg300133 := Nil; +reg300134 := PrimEqual(reg300133, V2441) +if reg300134 == True { +reg300135 := MakeString("") +__ctx.Return(reg300135) +return +} else { +reg300136 := MakeNumber(0) +reg300137 := PrimEqual(reg300136, V2440) +if reg300137 == True { +reg300138 := MakeString("") +__ctx.Return(reg300138) +return +} else { +reg300139 := PrimIsPair(V2441) +if reg300139 == True { +reg300140 := PrimHead(V2441) +reg300141 := PrimNumberToString(reg300140) +reg300142 := MakeNumber(1) +reg300143 := PrimNumberSubtract(V2440, reg300142) +reg300144 := PrimTail(V2441) +reg300145 := __e.Call(__defun__shen_4compress_150, reg300143, reg300144) +reg300146 := PrimStringConcat(reg300141, reg300145) +__ctx.Return(reg300146) +return +} else { +reg300147 := MakeSymbol("shen.compress-50") +__ctx.TailApply(__defun__shen_4f__error, reg300147) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.compress-50", value: __defun__shen_4compress_150}) + +__defun__shen_4_5st__input_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2443 := __args[0] +_ = V2443 +reg300149 := __e.Call(__defun__shen_4_5lsb_6, V2443) +Parse__shen_4_5lsb_6 := reg300149 +_ = Parse__shen_4_5lsb_6 +reg300150 := __e.Call(__defun__fail) +reg300151 := PrimEqual(reg300150, Parse__shen_4_5lsb_6) +reg300152 := PrimNot(reg300151) +var reg300179 Obj +if reg300152 == True { +reg300153 := __e.Call(__defun__shen_4_5st__input1_6, Parse__shen_4_5lsb_6) +Parse__shen_4_5st__input1_6 := reg300153 +_ = Parse__shen_4_5st__input1_6 +reg300154 := __e.Call(__defun__fail) +reg300155 := PrimEqual(reg300154, Parse__shen_4_5st__input1_6) +reg300156 := PrimNot(reg300155) +var reg300177 Obj +if reg300156 == True { +reg300157 := __e.Call(__defun__shen_4_5rsb_6, Parse__shen_4_5st__input1_6) +Parse__shen_4_5rsb_6 := reg300157 +_ = Parse__shen_4_5rsb_6 +reg300158 := __e.Call(__defun__fail) +reg300159 := PrimEqual(reg300158, Parse__shen_4_5rsb_6) +reg300160 := PrimNot(reg300159) +var reg300175 Obj +if reg300160 == True { +reg300161 := __e.Call(__defun__shen_4_5st__input2_6, Parse__shen_4_5rsb_6) +Parse__shen_4_5st__input2_6 := reg300161 +_ = Parse__shen_4_5st__input2_6 +reg300162 := __e.Call(__defun__fail) +reg300163 := PrimEqual(reg300162, Parse__shen_4_5st__input2_6) +reg300164 := PrimNot(reg300163) +var reg300173 Obj +if reg300164 == True { +reg300165 := PrimHead(Parse__shen_4_5st__input2_6) +reg300166 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input1_6) +reg300167 := __e.Call(__defun__shen_4cons__form, reg300166) +reg300168 := __e.Call(__defun__macroexpand, reg300167) +reg300169 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input2_6) +reg300170 := PrimCons(reg300168, reg300169) +reg300171 := __e.Call(__defun__shen_4pair, reg300165, reg300170) +reg300173 = reg300171 +} else { +reg300172 := __e.Call(__defun__fail) +reg300173 = reg300172 +} +reg300175 = reg300173 +} else { +reg300174 := __e.Call(__defun__fail) +reg300175 = reg300174 +} +reg300177 = reg300175 +} else { +reg300176 := __e.Call(__defun__fail) +reg300177 = reg300176 +} +reg300179 = reg300177 +} else { +reg300178 := __e.Call(__defun__fail) +reg300179 = reg300178 +} +YaccParse := reg300179 +_ = YaccParse +reg300180 := __e.Call(__defun__fail) +reg300181 := PrimEqual(YaccParse, reg300180) +if reg300181 == True { +reg300182 := __e.Call(__defun__shen_4_5lrb_6, V2443) +Parse__shen_4_5lrb_6 := reg300182 +_ = Parse__shen_4_5lrb_6 +reg300183 := __e.Call(__defun__fail) +reg300184 := PrimEqual(reg300183, Parse__shen_4_5lrb_6) +reg300185 := PrimNot(reg300184) +var reg300211 Obj +if reg300185 == True { +reg300186 := __e.Call(__defun__shen_4_5st__input1_6, Parse__shen_4_5lrb_6) +Parse__shen_4_5st__input1_6 := reg300186 +_ = Parse__shen_4_5st__input1_6 +reg300187 := __e.Call(__defun__fail) +reg300188 := PrimEqual(reg300187, Parse__shen_4_5st__input1_6) +reg300189 := PrimNot(reg300188) +var reg300209 Obj +if reg300189 == True { +reg300190 := __e.Call(__defun__shen_4_5rrb_6, Parse__shen_4_5st__input1_6) +Parse__shen_4_5rrb_6 := reg300190 +_ = Parse__shen_4_5rrb_6 +reg300191 := __e.Call(__defun__fail) +reg300192 := PrimEqual(reg300191, Parse__shen_4_5rrb_6) +reg300193 := PrimNot(reg300192) +var reg300207 Obj +if reg300193 == True { +reg300194 := __e.Call(__defun__shen_4_5st__input2_6, Parse__shen_4_5rrb_6) +Parse__shen_4_5st__input2_6 := reg300194 +_ = Parse__shen_4_5st__input2_6 +reg300195 := __e.Call(__defun__fail) +reg300196 := PrimEqual(reg300195, Parse__shen_4_5st__input2_6) +reg300197 := PrimNot(reg300196) +var reg300205 Obj +if reg300197 == True { +reg300198 := PrimHead(Parse__shen_4_5st__input2_6) +reg300199 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input1_6) +reg300200 := __e.Call(__defun__macroexpand, reg300199) +reg300201 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input2_6) +reg300202 := __e.Call(__defun__shen_4package_1macro, reg300200, reg300201) +reg300203 := __e.Call(__defun__shen_4pair, reg300198, reg300202) +reg300205 = reg300203 +} else { +reg300204 := __e.Call(__defun__fail) +reg300205 = reg300204 +} +reg300207 = reg300205 +} else { +reg300206 := __e.Call(__defun__fail) +reg300207 = reg300206 +} +reg300209 = reg300207 +} else { +reg300208 := __e.Call(__defun__fail) +reg300209 = reg300208 +} +reg300211 = reg300209 +} else { +reg300210 := __e.Call(__defun__fail) +reg300211 = reg300210 +} +YaccParse := reg300211 +_ = YaccParse +reg300212 := __e.Call(__defun__fail) +reg300213 := PrimEqual(YaccParse, reg300212) +if reg300213 == True { +reg300214 := __e.Call(__defun__shen_4_5lcurly_6, V2443) +Parse__shen_4_5lcurly_6 := reg300214 +_ = Parse__shen_4_5lcurly_6 +reg300215 := __e.Call(__defun__fail) +reg300216 := PrimEqual(reg300215, Parse__shen_4_5lcurly_6) +reg300217 := PrimNot(reg300216) +var reg300230 Obj +if reg300217 == True { +reg300218 := __e.Call(__defun__shen_4_5st__input_6, Parse__shen_4_5lcurly_6) +Parse__shen_4_5st__input_6 := reg300218 +_ = Parse__shen_4_5st__input_6 +reg300219 := __e.Call(__defun__fail) +reg300220 := PrimEqual(reg300219, Parse__shen_4_5st__input_6) +reg300221 := PrimNot(reg300220) +var reg300228 Obj +if reg300221 == True { +reg300222 := PrimHead(Parse__shen_4_5st__input_6) +reg300223 := MakeSymbol("{") +reg300224 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +reg300225 := PrimCons(reg300223, reg300224) +reg300226 := __e.Call(__defun__shen_4pair, reg300222, reg300225) +reg300228 = reg300226 +} else { +reg300227 := __e.Call(__defun__fail) +reg300228 = reg300227 +} +reg300230 = reg300228 +} else { +reg300229 := __e.Call(__defun__fail) +reg300230 = reg300229 +} +YaccParse := reg300230 +_ = YaccParse +reg300231 := __e.Call(__defun__fail) +reg300232 := PrimEqual(YaccParse, reg300231) +if reg300232 == True { +reg300233 := __e.Call(__defun__shen_4_5rcurly_6, V2443) +Parse__shen_4_5rcurly_6 := reg300233 +_ = Parse__shen_4_5rcurly_6 +reg300234 := __e.Call(__defun__fail) +reg300235 := PrimEqual(reg300234, Parse__shen_4_5rcurly_6) +reg300236 := PrimNot(reg300235) +var reg300249 Obj +if reg300236 == True { +reg300237 := __e.Call(__defun__shen_4_5st__input_6, Parse__shen_4_5rcurly_6) +Parse__shen_4_5st__input_6 := reg300237 +_ = Parse__shen_4_5st__input_6 +reg300238 := __e.Call(__defun__fail) +reg300239 := PrimEqual(reg300238, Parse__shen_4_5st__input_6) +reg300240 := PrimNot(reg300239) +var reg300247 Obj +if reg300240 == True { +reg300241 := PrimHead(Parse__shen_4_5st__input_6) +reg300242 := MakeSymbol("}") +reg300243 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +reg300244 := PrimCons(reg300242, reg300243) +reg300245 := __e.Call(__defun__shen_4pair, reg300241, reg300244) +reg300247 = reg300245 +} else { +reg300246 := __e.Call(__defun__fail) +reg300247 = reg300246 +} +reg300249 = reg300247 +} else { +reg300248 := __e.Call(__defun__fail) +reg300249 = reg300248 +} +YaccParse := reg300249 +_ = YaccParse +reg300250 := __e.Call(__defun__fail) +reg300251 := PrimEqual(YaccParse, reg300250) +if reg300251 == True { +reg300252 := __e.Call(__defun__shen_4_5bar_6, V2443) +Parse__shen_4_5bar_6 := reg300252 +_ = Parse__shen_4_5bar_6 +reg300253 := __e.Call(__defun__fail) +reg300254 := PrimEqual(reg300253, Parse__shen_4_5bar_6) +reg300255 := PrimNot(reg300254) +var reg300268 Obj +if reg300255 == True { +reg300256 := __e.Call(__defun__shen_4_5st__input_6, Parse__shen_4_5bar_6) +Parse__shen_4_5st__input_6 := reg300256 +_ = Parse__shen_4_5st__input_6 +reg300257 := __e.Call(__defun__fail) +reg300258 := PrimEqual(reg300257, Parse__shen_4_5st__input_6) +reg300259 := PrimNot(reg300258) +var reg300266 Obj +if reg300259 == True { +reg300260 := PrimHead(Parse__shen_4_5st__input_6) +reg300261 := MakeSymbol("bar!") +reg300262 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +reg300263 := PrimCons(reg300261, reg300262) +reg300264 := __e.Call(__defun__shen_4pair, reg300260, reg300263) +reg300266 = reg300264 +} else { +reg300265 := __e.Call(__defun__fail) +reg300266 = reg300265 +} +reg300268 = reg300266 +} else { +reg300267 := __e.Call(__defun__fail) +reg300268 = reg300267 +} +YaccParse := reg300268 +_ = YaccParse +reg300269 := __e.Call(__defun__fail) +reg300270 := PrimEqual(YaccParse, reg300269) +if reg300270 == True { +reg300271 := __e.Call(__defun__shen_4_5semicolon_6, V2443) +Parse__shen_4_5semicolon_6 := reg300271 +_ = Parse__shen_4_5semicolon_6 +reg300272 := __e.Call(__defun__fail) +reg300273 := PrimEqual(reg300272, Parse__shen_4_5semicolon_6) +reg300274 := PrimNot(reg300273) +var reg300287 Obj +if reg300274 == True { +reg300275 := __e.Call(__defun__shen_4_5st__input_6, Parse__shen_4_5semicolon_6) +Parse__shen_4_5st__input_6 := reg300275 +_ = Parse__shen_4_5st__input_6 +reg300276 := __e.Call(__defun__fail) +reg300277 := PrimEqual(reg300276, Parse__shen_4_5st__input_6) +reg300278 := PrimNot(reg300277) +var reg300285 Obj +if reg300278 == True { +reg300279 := PrimHead(Parse__shen_4_5st__input_6) +reg300280 := MakeSymbol(";") +reg300281 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +reg300282 := PrimCons(reg300280, reg300281) +reg300283 := __e.Call(__defun__shen_4pair, reg300279, reg300282) +reg300285 = reg300283 +} else { +reg300284 := __e.Call(__defun__fail) +reg300285 = reg300284 +} +reg300287 = reg300285 +} else { +reg300286 := __e.Call(__defun__fail) +reg300287 = reg300286 +} +YaccParse := reg300287 +_ = YaccParse +reg300288 := __e.Call(__defun__fail) +reg300289 := PrimEqual(YaccParse, reg300288) +if reg300289 == True { +reg300290 := __e.Call(__defun__shen_4_5colon_6, V2443) +Parse__shen_4_5colon_6 := reg300290 +_ = Parse__shen_4_5colon_6 +reg300291 := __e.Call(__defun__fail) +reg300292 := PrimEqual(reg300291, Parse__shen_4_5colon_6) +reg300293 := PrimNot(reg300292) +var reg300312 Obj +if reg300293 == True { +reg300294 := __e.Call(__defun__shen_4_5equal_6, Parse__shen_4_5colon_6) +Parse__shen_4_5equal_6 := reg300294 +_ = Parse__shen_4_5equal_6 +reg300295 := __e.Call(__defun__fail) +reg300296 := PrimEqual(reg300295, Parse__shen_4_5equal_6) +reg300297 := PrimNot(reg300296) +var reg300310 Obj +if reg300297 == True { +reg300298 := __e.Call(__defun__shen_4_5st__input_6, Parse__shen_4_5equal_6) +Parse__shen_4_5st__input_6 := reg300298 +_ = Parse__shen_4_5st__input_6 +reg300299 := __e.Call(__defun__fail) +reg300300 := PrimEqual(reg300299, Parse__shen_4_5st__input_6) +reg300301 := PrimNot(reg300300) +var reg300308 Obj +if reg300301 == True { +reg300302 := PrimHead(Parse__shen_4_5st__input_6) +reg300303 := MakeSymbol(":=") +reg300304 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +reg300305 := PrimCons(reg300303, reg300304) +reg300306 := __e.Call(__defun__shen_4pair, reg300302, reg300305) +reg300308 = reg300306 +} else { +reg300307 := __e.Call(__defun__fail) +reg300308 = reg300307 +} +reg300310 = reg300308 +} else { +reg300309 := __e.Call(__defun__fail) +reg300310 = reg300309 +} +reg300312 = reg300310 +} else { +reg300311 := __e.Call(__defun__fail) +reg300312 = reg300311 +} +YaccParse := reg300312 +_ = YaccParse +reg300313 := __e.Call(__defun__fail) +reg300314 := PrimEqual(YaccParse, reg300313) +if reg300314 == True { +reg300315 := __e.Call(__defun__shen_4_5colon_6, V2443) +Parse__shen_4_5colon_6 := reg300315 +_ = Parse__shen_4_5colon_6 +reg300316 := __e.Call(__defun__fail) +reg300317 := PrimEqual(reg300316, Parse__shen_4_5colon_6) +reg300318 := PrimNot(reg300317) +var reg300337 Obj +if reg300318 == True { +reg300319 := __e.Call(__defun__shen_4_5minus_6, Parse__shen_4_5colon_6) +Parse__shen_4_5minus_6 := reg300319 +_ = Parse__shen_4_5minus_6 +reg300320 := __e.Call(__defun__fail) +reg300321 := PrimEqual(reg300320, Parse__shen_4_5minus_6) +reg300322 := PrimNot(reg300321) +var reg300335 Obj +if reg300322 == True { +reg300323 := __e.Call(__defun__shen_4_5st__input_6, Parse__shen_4_5minus_6) +Parse__shen_4_5st__input_6 := reg300323 +_ = Parse__shen_4_5st__input_6 +reg300324 := __e.Call(__defun__fail) +reg300325 := PrimEqual(reg300324, Parse__shen_4_5st__input_6) +reg300326 := PrimNot(reg300325) +var reg300333 Obj +if reg300326 == True { +reg300327 := PrimHead(Parse__shen_4_5st__input_6) +reg300328 := MakeSymbol(":-") +reg300329 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +reg300330 := PrimCons(reg300328, reg300329) +reg300331 := __e.Call(__defun__shen_4pair, reg300327, reg300330) +reg300333 = reg300331 +} else { +reg300332 := __e.Call(__defun__fail) +reg300333 = reg300332 +} +reg300335 = reg300333 +} else { +reg300334 := __e.Call(__defun__fail) +reg300335 = reg300334 +} +reg300337 = reg300335 +} else { +reg300336 := __e.Call(__defun__fail) +reg300337 = reg300336 +} +YaccParse := reg300337 +_ = YaccParse +reg300338 := __e.Call(__defun__fail) +reg300339 := PrimEqual(YaccParse, reg300338) +if reg300339 == True { +reg300340 := __e.Call(__defun__shen_4_5colon_6, V2443) +Parse__shen_4_5colon_6 := reg300340 +_ = Parse__shen_4_5colon_6 +reg300341 := __e.Call(__defun__fail) +reg300342 := PrimEqual(reg300341, Parse__shen_4_5colon_6) +reg300343 := PrimNot(reg300342) +var reg300356 Obj +if reg300343 == True { +reg300344 := __e.Call(__defun__shen_4_5st__input_6, Parse__shen_4_5colon_6) +Parse__shen_4_5st__input_6 := reg300344 +_ = Parse__shen_4_5st__input_6 +reg300345 := __e.Call(__defun__fail) +reg300346 := PrimEqual(reg300345, Parse__shen_4_5st__input_6) +reg300347 := PrimNot(reg300346) +var reg300354 Obj +if reg300347 == True { +reg300348 := PrimHead(Parse__shen_4_5st__input_6) +reg300349 := MakeSymbol(":") +reg300350 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +reg300351 := PrimCons(reg300349, reg300350) +reg300352 := __e.Call(__defun__shen_4pair, reg300348, reg300351) +reg300354 = reg300352 +} else { +reg300353 := __e.Call(__defun__fail) +reg300354 = reg300353 +} +reg300356 = reg300354 +} else { +reg300355 := __e.Call(__defun__fail) +reg300356 = reg300355 +} +YaccParse := reg300356 +_ = YaccParse +reg300357 := __e.Call(__defun__fail) +reg300358 := PrimEqual(YaccParse, reg300357) +if reg300358 == True { +reg300359 := __e.Call(__defun__shen_4_5comma_6, V2443) +Parse__shen_4_5comma_6 := reg300359 +_ = Parse__shen_4_5comma_6 +reg300360 := __e.Call(__defun__fail) +reg300361 := PrimEqual(reg300360, Parse__shen_4_5comma_6) +reg300362 := PrimNot(reg300361) +var reg300376 Obj +if reg300362 == True { +reg300363 := __e.Call(__defun__shen_4_5st__input_6, Parse__shen_4_5comma_6) +Parse__shen_4_5st__input_6 := reg300363 +_ = Parse__shen_4_5st__input_6 +reg300364 := __e.Call(__defun__fail) +reg300365 := PrimEqual(reg300364, Parse__shen_4_5st__input_6) +reg300366 := PrimNot(reg300365) +var reg300374 Obj +if reg300366 == True { +reg300367 := PrimHead(Parse__shen_4_5st__input_6) +reg300368 := MakeString(",") +reg300369 := PrimIntern(reg300368) +reg300370 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +reg300371 := PrimCons(reg300369, reg300370) +reg300372 := __e.Call(__defun__shen_4pair, reg300367, reg300371) +reg300374 = reg300372 +} else { +reg300373 := __e.Call(__defun__fail) +reg300374 = reg300373 +} +reg300376 = reg300374 +} else { +reg300375 := __e.Call(__defun__fail) +reg300376 = reg300375 +} +YaccParse := reg300376 +_ = YaccParse +reg300377 := __e.Call(__defun__fail) +reg300378 := PrimEqual(YaccParse, reg300377) +if reg300378 == True { +reg300379 := __e.Call(__defun__shen_4_5comment_6, V2443) +Parse__shen_4_5comment_6 := reg300379 +_ = Parse__shen_4_5comment_6 +reg300380 := __e.Call(__defun__fail) +reg300381 := PrimEqual(reg300380, Parse__shen_4_5comment_6) +reg300382 := PrimNot(reg300381) +var reg300393 Obj +if reg300382 == True { +reg300383 := __e.Call(__defun__shen_4_5st__input_6, Parse__shen_4_5comment_6) +Parse__shen_4_5st__input_6 := reg300383 +_ = Parse__shen_4_5st__input_6 +reg300384 := __e.Call(__defun__fail) +reg300385 := PrimEqual(reg300384, Parse__shen_4_5st__input_6) +reg300386 := PrimNot(reg300385) +var reg300391 Obj +if reg300386 == True { +reg300387 := PrimHead(Parse__shen_4_5st__input_6) +reg300388 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +reg300389 := __e.Call(__defun__shen_4pair, reg300387, reg300388) +reg300391 = reg300389 +} else { +reg300390 := __e.Call(__defun__fail) +reg300391 = reg300390 +} +reg300393 = reg300391 +} else { +reg300392 := __e.Call(__defun__fail) +reg300393 = reg300392 +} +YaccParse := reg300393 +_ = YaccParse +reg300394 := __e.Call(__defun__fail) +reg300395 := PrimEqual(YaccParse, reg300394) +if reg300395 == True { +reg300396 := __e.Call(__defun__shen_4_5atom_6, V2443) +Parse__shen_4_5atom_6 := reg300396 +_ = Parse__shen_4_5atom_6 +reg300397 := __e.Call(__defun__fail) +reg300398 := PrimEqual(reg300397, Parse__shen_4_5atom_6) +reg300399 := PrimNot(reg300398) +var reg300413 Obj +if reg300399 == True { +reg300400 := __e.Call(__defun__shen_4_5st__input_6, Parse__shen_4_5atom_6) +Parse__shen_4_5st__input_6 := reg300400 +_ = Parse__shen_4_5st__input_6 +reg300401 := __e.Call(__defun__fail) +reg300402 := PrimEqual(reg300401, Parse__shen_4_5st__input_6) +reg300403 := PrimNot(reg300402) +var reg300411 Obj +if reg300403 == True { +reg300404 := PrimHead(Parse__shen_4_5st__input_6) +reg300405 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5atom_6) +reg300406 := __e.Call(__defun__macroexpand, reg300405) +reg300407 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +reg300408 := PrimCons(reg300406, reg300407) +reg300409 := __e.Call(__defun__shen_4pair, reg300404, reg300408) +reg300411 = reg300409 +} else { +reg300410 := __e.Call(__defun__fail) +reg300411 = reg300410 +} +reg300413 = reg300411 +} else { +reg300412 := __e.Call(__defun__fail) +reg300413 = reg300412 +} +YaccParse := reg300413 +_ = YaccParse +reg300414 := __e.Call(__defun__fail) +reg300415 := PrimEqual(YaccParse, reg300414) +if reg300415 == True { +reg300416 := __e.Call(__defun__shen_4_5whitespaces_6, V2443) +Parse__shen_4_5whitespaces_6 := reg300416 +_ = Parse__shen_4_5whitespaces_6 +reg300417 := __e.Call(__defun__fail) +reg300418 := PrimEqual(reg300417, Parse__shen_4_5whitespaces_6) +reg300419 := PrimNot(reg300418) +var reg300430 Obj +if reg300419 == True { +reg300420 := __e.Call(__defun__shen_4_5st__input_6, Parse__shen_4_5whitespaces_6) +Parse__shen_4_5st__input_6 := reg300420 +_ = Parse__shen_4_5st__input_6 +reg300421 := __e.Call(__defun__fail) +reg300422 := PrimEqual(reg300421, Parse__shen_4_5st__input_6) +reg300423 := PrimNot(reg300422) +var reg300428 Obj +if reg300423 == True { +reg300424 := PrimHead(Parse__shen_4_5st__input_6) +reg300425 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +reg300426 := __e.Call(__defun__shen_4pair, reg300424, reg300425) +reg300428 = reg300426 +} else { +reg300427 := __e.Call(__defun__fail) +reg300428 = reg300427 +} +reg300430 = reg300428 +} else { +reg300429 := __e.Call(__defun__fail) +reg300430 = reg300429 +} +YaccParse := reg300430 +_ = YaccParse +reg300431 := __e.Call(__defun__fail) +reg300432 := PrimEqual(YaccParse, reg300431) +if reg300432 == True { +reg300433 := __e.Call(__defun___5e_6, V2443) +Parse___5e_6 := reg300433 +_ = Parse___5e_6 +reg300434 := __e.Call(__defun__fail) +reg300435 := PrimEqual(reg300434, Parse___5e_6) +reg300436 := PrimNot(reg300435) +if reg300436 == True { +reg300437 := PrimHead(Parse___5e_6) +reg300438 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg300437, reg300438) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5st__input_6}) + +__defun__shen_4_5lsb_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2445 := __args[0] +_ = V2445 +reg300441 := PrimHead(V2445) +reg300442 := PrimIsPair(reg300441) +var reg300451 Obj +if reg300442 == True { +reg300443 := MakeNumber(91) +reg300444 := PrimHead(V2445) +reg300445 := PrimHead(reg300444) +reg300446 := PrimEqual(reg300443, reg300445) +var reg300449 Obj +if reg300446 == True { +reg300447 := True; +reg300449 = reg300447 +} else { +reg300448 := False; +reg300449 = reg300448 +} +reg300451 = reg300449 +} else { +reg300450 := False; +reg300451 = reg300450 +} +if reg300451 == True { +reg300452 := PrimHead(V2445) +reg300453 := PrimTail(reg300452) +reg300454 := __e.Call(__defun__shen_4hdtl, V2445) +reg300455 := __e.Call(__defun__shen_4pair, reg300453, reg300454) +reg300456 := PrimHead(reg300455) +reg300457 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300456, reg300457) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5lsb_6}) + +__defun__shen_4_5rsb_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2447 := __args[0] +_ = V2447 +reg300460 := PrimHead(V2447) +reg300461 := PrimIsPair(reg300460) +var reg300470 Obj +if reg300461 == True { +reg300462 := MakeNumber(93) +reg300463 := PrimHead(V2447) +reg300464 := PrimHead(reg300463) +reg300465 := PrimEqual(reg300462, reg300464) +var reg300468 Obj +if reg300465 == True { +reg300466 := True; +reg300468 = reg300466 +} else { +reg300467 := False; +reg300468 = reg300467 +} +reg300470 = reg300468 +} else { +reg300469 := False; +reg300470 = reg300469 +} +if reg300470 == True { +reg300471 := PrimHead(V2447) +reg300472 := PrimTail(reg300471) +reg300473 := __e.Call(__defun__shen_4hdtl, V2447) +reg300474 := __e.Call(__defun__shen_4pair, reg300472, reg300473) +reg300475 := PrimHead(reg300474) +reg300476 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300475, reg300476) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5rsb_6}) + +__defun__shen_4_5lcurly_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2449 := __args[0] +_ = V2449 +reg300479 := PrimHead(V2449) +reg300480 := PrimIsPair(reg300479) +var reg300489 Obj +if reg300480 == True { +reg300481 := MakeNumber(123) +reg300482 := PrimHead(V2449) +reg300483 := PrimHead(reg300482) +reg300484 := PrimEqual(reg300481, reg300483) +var reg300487 Obj +if reg300484 == True { +reg300485 := True; +reg300487 = reg300485 +} else { +reg300486 := False; +reg300487 = reg300486 +} +reg300489 = reg300487 +} else { +reg300488 := False; +reg300489 = reg300488 +} +if reg300489 == True { +reg300490 := PrimHead(V2449) +reg300491 := PrimTail(reg300490) +reg300492 := __e.Call(__defun__shen_4hdtl, V2449) +reg300493 := __e.Call(__defun__shen_4pair, reg300491, reg300492) +reg300494 := PrimHead(reg300493) +reg300495 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300494, reg300495) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5lcurly_6}) + +__defun__shen_4_5rcurly_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2451 := __args[0] +_ = V2451 +reg300498 := PrimHead(V2451) +reg300499 := PrimIsPair(reg300498) +var reg300508 Obj +if reg300499 == True { +reg300500 := MakeNumber(125) +reg300501 := PrimHead(V2451) +reg300502 := PrimHead(reg300501) +reg300503 := PrimEqual(reg300500, reg300502) +var reg300506 Obj +if reg300503 == True { +reg300504 := True; +reg300506 = reg300504 +} else { +reg300505 := False; +reg300506 = reg300505 +} +reg300508 = reg300506 +} else { +reg300507 := False; +reg300508 = reg300507 +} +if reg300508 == True { +reg300509 := PrimHead(V2451) +reg300510 := PrimTail(reg300509) +reg300511 := __e.Call(__defun__shen_4hdtl, V2451) +reg300512 := __e.Call(__defun__shen_4pair, reg300510, reg300511) +reg300513 := PrimHead(reg300512) +reg300514 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300513, reg300514) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5rcurly_6}) + +__defun__shen_4_5bar_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2453 := __args[0] +_ = V2453 +reg300517 := PrimHead(V2453) +reg300518 := PrimIsPair(reg300517) +var reg300527 Obj +if reg300518 == True { +reg300519 := MakeNumber(124) +reg300520 := PrimHead(V2453) +reg300521 := PrimHead(reg300520) +reg300522 := PrimEqual(reg300519, reg300521) +var reg300525 Obj +if reg300522 == True { +reg300523 := True; +reg300525 = reg300523 +} else { +reg300524 := False; +reg300525 = reg300524 +} +reg300527 = reg300525 +} else { +reg300526 := False; +reg300527 = reg300526 +} +if reg300527 == True { +reg300528 := PrimHead(V2453) +reg300529 := PrimTail(reg300528) +reg300530 := __e.Call(__defun__shen_4hdtl, V2453) +reg300531 := __e.Call(__defun__shen_4pair, reg300529, reg300530) +reg300532 := PrimHead(reg300531) +reg300533 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300532, reg300533) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5bar_6}) + +__defun__shen_4_5semicolon_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2455 := __args[0] +_ = V2455 +reg300536 := PrimHead(V2455) +reg300537 := PrimIsPair(reg300536) +var reg300546 Obj +if reg300537 == True { +reg300538 := MakeNumber(59) +reg300539 := PrimHead(V2455) +reg300540 := PrimHead(reg300539) +reg300541 := PrimEqual(reg300538, reg300540) +var reg300544 Obj +if reg300541 == True { +reg300542 := True; +reg300544 = reg300542 +} else { +reg300543 := False; +reg300544 = reg300543 +} +reg300546 = reg300544 +} else { +reg300545 := False; +reg300546 = reg300545 +} +if reg300546 == True { +reg300547 := PrimHead(V2455) +reg300548 := PrimTail(reg300547) +reg300549 := __e.Call(__defun__shen_4hdtl, V2455) +reg300550 := __e.Call(__defun__shen_4pair, reg300548, reg300549) +reg300551 := PrimHead(reg300550) +reg300552 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300551, reg300552) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5semicolon_6}) + +__defun__shen_4_5colon_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2457 := __args[0] +_ = V2457 +reg300555 := PrimHead(V2457) +reg300556 := PrimIsPair(reg300555) +var reg300565 Obj +if reg300556 == True { +reg300557 := MakeNumber(58) +reg300558 := PrimHead(V2457) +reg300559 := PrimHead(reg300558) +reg300560 := PrimEqual(reg300557, reg300559) +var reg300563 Obj +if reg300560 == True { +reg300561 := True; +reg300563 = reg300561 +} else { +reg300562 := False; +reg300563 = reg300562 +} +reg300565 = reg300563 +} else { +reg300564 := False; +reg300565 = reg300564 +} +if reg300565 == True { +reg300566 := PrimHead(V2457) +reg300567 := PrimTail(reg300566) +reg300568 := __e.Call(__defun__shen_4hdtl, V2457) +reg300569 := __e.Call(__defun__shen_4pair, reg300567, reg300568) +reg300570 := PrimHead(reg300569) +reg300571 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300570, reg300571) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5colon_6}) + +__defun__shen_4_5comma_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2459 := __args[0] +_ = V2459 +reg300574 := PrimHead(V2459) +reg300575 := PrimIsPair(reg300574) +var reg300584 Obj +if reg300575 == True { +reg300576 := MakeNumber(44) +reg300577 := PrimHead(V2459) +reg300578 := PrimHead(reg300577) +reg300579 := PrimEqual(reg300576, reg300578) +var reg300582 Obj +if reg300579 == True { +reg300580 := True; +reg300582 = reg300580 +} else { +reg300581 := False; +reg300582 = reg300581 +} +reg300584 = reg300582 +} else { +reg300583 := False; +reg300584 = reg300583 +} +if reg300584 == True { +reg300585 := PrimHead(V2459) +reg300586 := PrimTail(reg300585) +reg300587 := __e.Call(__defun__shen_4hdtl, V2459) +reg300588 := __e.Call(__defun__shen_4pair, reg300586, reg300587) +reg300589 := PrimHead(reg300588) +reg300590 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300589, reg300590) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5comma_6}) + +__defun__shen_4_5equal_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2461 := __args[0] +_ = V2461 +reg300593 := PrimHead(V2461) +reg300594 := PrimIsPair(reg300593) +var reg300603 Obj +if reg300594 == True { +reg300595 := MakeNumber(61) +reg300596 := PrimHead(V2461) +reg300597 := PrimHead(reg300596) +reg300598 := PrimEqual(reg300595, reg300597) +var reg300601 Obj +if reg300598 == True { +reg300599 := True; +reg300601 = reg300599 +} else { +reg300600 := False; +reg300601 = reg300600 +} +reg300603 = reg300601 +} else { +reg300602 := False; +reg300603 = reg300602 +} +if reg300603 == True { +reg300604 := PrimHead(V2461) +reg300605 := PrimTail(reg300604) +reg300606 := __e.Call(__defun__shen_4hdtl, V2461) +reg300607 := __e.Call(__defun__shen_4pair, reg300605, reg300606) +reg300608 := PrimHead(reg300607) +reg300609 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300608, reg300609) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5equal_6}) + +__defun__shen_4_5minus_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2463 := __args[0] +_ = V2463 +reg300612 := PrimHead(V2463) +reg300613 := PrimIsPair(reg300612) +var reg300622 Obj +if reg300613 == True { +reg300614 := MakeNumber(45) +reg300615 := PrimHead(V2463) +reg300616 := PrimHead(reg300615) +reg300617 := PrimEqual(reg300614, reg300616) +var reg300620 Obj +if reg300617 == True { +reg300618 := True; +reg300620 = reg300618 +} else { +reg300619 := False; +reg300620 = reg300619 +} +reg300622 = reg300620 +} else { +reg300621 := False; +reg300622 = reg300621 +} +if reg300622 == True { +reg300623 := PrimHead(V2463) +reg300624 := PrimTail(reg300623) +reg300625 := __e.Call(__defun__shen_4hdtl, V2463) +reg300626 := __e.Call(__defun__shen_4pair, reg300624, reg300625) +reg300627 := PrimHead(reg300626) +reg300628 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300627, reg300628) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5minus_6}) + +__defun__shen_4_5lrb_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2465 := __args[0] +_ = V2465 +reg300631 := PrimHead(V2465) +reg300632 := PrimIsPair(reg300631) +var reg300641 Obj +if reg300632 == True { +reg300633 := MakeNumber(40) +reg300634 := PrimHead(V2465) +reg300635 := PrimHead(reg300634) +reg300636 := PrimEqual(reg300633, reg300635) +var reg300639 Obj +if reg300636 == True { +reg300637 := True; +reg300639 = reg300637 +} else { +reg300638 := False; +reg300639 = reg300638 +} +reg300641 = reg300639 +} else { +reg300640 := False; +reg300641 = reg300640 +} +if reg300641 == True { +reg300642 := PrimHead(V2465) +reg300643 := PrimTail(reg300642) +reg300644 := __e.Call(__defun__shen_4hdtl, V2465) +reg300645 := __e.Call(__defun__shen_4pair, reg300643, reg300644) +reg300646 := PrimHead(reg300645) +reg300647 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300646, reg300647) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5lrb_6}) + +__defun__shen_4_5rrb_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2467 := __args[0] +_ = V2467 +reg300650 := PrimHead(V2467) +reg300651 := PrimIsPair(reg300650) +var reg300660 Obj +if reg300651 == True { +reg300652 := MakeNumber(41) +reg300653 := PrimHead(V2467) +reg300654 := PrimHead(reg300653) +reg300655 := PrimEqual(reg300652, reg300654) +var reg300658 Obj +if reg300655 == True { +reg300656 := True; +reg300658 = reg300656 +} else { +reg300657 := False; +reg300658 = reg300657 +} +reg300660 = reg300658 +} else { +reg300659 := False; +reg300660 = reg300659 +} +if reg300660 == True { +reg300661 := PrimHead(V2467) +reg300662 := PrimTail(reg300661) +reg300663 := __e.Call(__defun__shen_4hdtl, V2467) +reg300664 := __e.Call(__defun__shen_4pair, reg300662, reg300663) +reg300665 := PrimHead(reg300664) +reg300666 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg300665, reg300666) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5rrb_6}) + +__defun__shen_4_5atom_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2469 := __args[0] +_ = V2469 +reg300669 := __e.Call(__defun__shen_4_5str_6, V2469) +Parse__shen_4_5str_6 := reg300669 +_ = Parse__shen_4_5str_6 +reg300670 := __e.Call(__defun__fail) +reg300671 := PrimEqual(reg300670, Parse__shen_4_5str_6) +reg300672 := PrimNot(reg300671) +var reg300678 Obj +if reg300672 == True { +reg300673 := PrimHead(Parse__shen_4_5str_6) +reg300674 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5str_6) +reg300675 := __e.Call(__defun__shen_4control_1chars, reg300674) +reg300676 := __e.Call(__defun__shen_4pair, reg300673, reg300675) +reg300678 = reg300676 +} else { +reg300677 := __e.Call(__defun__fail) +reg300678 = reg300677 +} +YaccParse := reg300678 +_ = YaccParse +reg300679 := __e.Call(__defun__fail) +reg300680 := PrimEqual(YaccParse, reg300679) +if reg300680 == True { +reg300681 := __e.Call(__defun__shen_4_5number_6, V2469) +Parse__shen_4_5number_6 := reg300681 +_ = Parse__shen_4_5number_6 +reg300682 := __e.Call(__defun__fail) +reg300683 := PrimEqual(reg300682, Parse__shen_4_5number_6) +reg300684 := PrimNot(reg300683) +var reg300689 Obj +if reg300684 == True { +reg300685 := PrimHead(Parse__shen_4_5number_6) +reg300686 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5number_6) +reg300687 := __e.Call(__defun__shen_4pair, reg300685, reg300686) +reg300689 = reg300687 +} else { +reg300688 := __e.Call(__defun__fail) +reg300689 = reg300688 +} +YaccParse := reg300689 +_ = YaccParse +reg300690 := __e.Call(__defun__fail) +reg300691 := PrimEqual(YaccParse, reg300690) +if reg300691 == True { +reg300692 := __e.Call(__defun__shen_4_5sym_6, V2469) +Parse__shen_4_5sym_6 := reg300692 +_ = Parse__shen_4_5sym_6 +reg300693 := __e.Call(__defun__fail) +reg300694 := PrimEqual(reg300693, Parse__shen_4_5sym_6) +reg300695 := PrimNot(reg300694) +if reg300695 == True { +reg300696 := PrimHead(Parse__shen_4_5sym_6) +reg300697 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5sym_6) +reg300698 := MakeString("<>") +reg300699 := PrimEqual(reg300697, reg300698) +var reg300707 Obj +if reg300699 == True { +reg300700 := MakeSymbol("vector") +reg300701 := MakeNumber(0) +reg300702 := Nil; +reg300703 := PrimCons(reg300701, reg300702) +reg300704 := PrimCons(reg300700, reg300703) +reg300707 = reg300704 +} else { +reg300705 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5sym_6) +reg300706 := PrimIntern(reg300705) +reg300707 = reg300706 +} +__ctx.TailApply(__defun__shen_4pair, reg300696, reg300707) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5atom_6}) + +__defun__shen_4control_1chars = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2471 := __args[0] +_ = V2471 +reg300710 := Nil; +reg300711 := PrimEqual(reg300710, V2471) +if reg300711 == True { +reg300712 := MakeString("") +__ctx.Return(reg300712) +return +} else { +reg300713 := PrimIsPair(V2471) +var reg300737 Obj +if reg300713 == True { +reg300714 := MakeString("c") +reg300715 := PrimHead(V2471) +reg300716 := PrimEqual(reg300714, reg300715) +var reg300732 Obj +if reg300716 == True { +reg300717 := PrimTail(V2471) +reg300718 := PrimIsPair(reg300717) +var reg300727 Obj +if reg300718 == True { +reg300719 := MakeString("#") +reg300720 := PrimTail(V2471) +reg300721 := PrimHead(reg300720) +reg300722 := PrimEqual(reg300719, reg300721) +var reg300725 Obj +if reg300722 == True { +reg300723 := True; +reg300725 = reg300723 +} else { +reg300724 := False; +reg300725 = reg300724 +} +reg300727 = reg300725 +} else { +reg300726 := False; +reg300727 = reg300726 +} +var reg300730 Obj +if reg300727 == True { +reg300728 := True; +reg300730 = reg300728 +} else { +reg300729 := False; +reg300730 = reg300729 +} +reg300732 = reg300730 +} else { +reg300731 := False; +reg300732 = reg300731 +} +var reg300735 Obj +if reg300732 == True { +reg300733 := True; +reg300735 = reg300733 +} else { +reg300734 := False; +reg300735 = reg300734 +} +reg300737 = reg300735 +} else { +reg300736 := False; +reg300737 = reg300736 +} +if reg300737 == True { +reg300738 := PrimTail(V2471) +reg300739 := PrimTail(reg300738) +reg300740 := __e.Call(__defun__shen_4code_1point, reg300739) +CodePoint := reg300740 +_ = CodePoint +reg300741 := PrimTail(V2471) +reg300742 := PrimTail(reg300741) +reg300743 := __e.Call(__defun__shen_4after_1codepoint, reg300742) +AfterCodePoint := reg300743 +_ = AfterCodePoint +reg300744 := __e.Call(__defun__shen_4decimalise, CodePoint) +reg300745 := PrimNumberToString(reg300744) +reg300746 := __e.Call(__defun__shen_4control_1chars, AfterCodePoint) +__ctx.TailApply(__defun___8s, reg300745, reg300746) +return +} else { +reg300748 := PrimIsPair(V2471) +if reg300748 == True { +reg300749 := PrimHead(V2471) +reg300750 := PrimTail(V2471) +reg300751 := __e.Call(__defun__shen_4control_1chars, reg300750) +__ctx.TailApply(__defun___8s, reg300749, reg300751) +return +} else { +reg300753 := MakeSymbol("shen.control-chars") +__ctx.TailApply(__defun__shen_4f__error, reg300753) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.control-chars", value: __defun__shen_4control_1chars}) + +__defun__shen_4code_1point = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2475 := __args[0] +_ = V2475 +reg300755 := PrimIsPair(V2475) +var reg300763 Obj +if reg300755 == True { +reg300756 := MakeString(";") +reg300757 := PrimHead(V2475) +reg300758 := PrimEqual(reg300756, reg300757) +var reg300761 Obj +if reg300758 == True { +reg300759 := True; +reg300761 = reg300759 +} else { +reg300760 := False; +reg300761 = reg300760 +} +reg300763 = reg300761 +} else { +reg300762 := False; +reg300763 = reg300762 +} +if reg300763 == True { +reg300764 := MakeString("") +__ctx.Return(reg300764) +return +} else { +reg300765 := PrimIsPair(V2475) +var reg300795 Obj +if reg300765 == True { +reg300766 := PrimHead(V2475) +reg300767 := MakeString("0") +reg300768 := MakeString("1") +reg300769 := MakeString("2") +reg300770 := MakeString("3") +reg300771 := MakeString("4") +reg300772 := MakeString("5") +reg300773 := MakeString("6") +reg300774 := MakeString("7") +reg300775 := MakeString("8") +reg300776 := MakeString("9") +reg300777 := MakeString("0") +reg300778 := Nil; +reg300779 := PrimCons(reg300777, reg300778) +reg300780 := PrimCons(reg300776, reg300779) +reg300781 := PrimCons(reg300775, reg300780) +reg300782 := PrimCons(reg300774, reg300781) +reg300783 := PrimCons(reg300773, reg300782) +reg300784 := PrimCons(reg300772, reg300783) +reg300785 := PrimCons(reg300771, reg300784) +reg300786 := PrimCons(reg300770, reg300785) +reg300787 := PrimCons(reg300769, reg300786) +reg300788 := PrimCons(reg300768, reg300787) +reg300789 := PrimCons(reg300767, reg300788) +reg300790 := __e.Call(__defun__element_2, reg300766, reg300789) +var reg300793 Obj +if reg300790 == True { +reg300791 := True; +reg300793 = reg300791 +} else { +reg300792 := False; +reg300793 = reg300792 +} +reg300795 = reg300793 +} else { +reg300794 := False; +reg300795 = reg300794 +} +if reg300795 == True { +reg300796 := PrimHead(V2475) +reg300797 := PrimTail(V2475) +reg300798 := __e.Call(__defun__shen_4code_1point, reg300797) +reg300799 := PrimCons(reg300796, reg300798) +__ctx.Return(reg300799) +return +} else { +reg300800 := MakeString("code point parse error ") +reg300801 := MakeString("\n") +reg300802 := MakeSymbol("shen.a") +reg300803 := __e.Call(__defun__shen_4app, V2475, reg300801, reg300802) +reg300804 := PrimStringConcat(reg300800, reg300803) +reg300805 := PrimSimpleError(reg300804) +__ctx.Return(reg300805) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.code-point", value: __defun__shen_4code_1point}) + +__defun__shen_4after_1codepoint = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2481 := __args[0] +_ = V2481 +reg300806 := Nil; +reg300807 := PrimEqual(reg300806, V2481) +if reg300807 == True { +reg300808 := Nil; +__ctx.Return(reg300808) +return +} else { +reg300809 := PrimIsPair(V2481) +var reg300817 Obj +if reg300809 == True { +reg300810 := MakeString(";") +reg300811 := PrimHead(V2481) +reg300812 := PrimEqual(reg300810, reg300811) +var reg300815 Obj +if reg300812 == True { +reg300813 := True; +reg300815 = reg300813 +} else { +reg300814 := False; +reg300815 = reg300814 +} +reg300817 = reg300815 +} else { +reg300816 := False; +reg300817 = reg300816 +} +if reg300817 == True { +reg300818 := PrimTail(V2481) +__ctx.Return(reg300818) +return +} else { +reg300819 := PrimIsPair(V2481) +if reg300819 == True { +reg300820 := PrimTail(V2481) +__ctx.TailApply(__defun__shen_4after_1codepoint, reg300820) +return +} else { +reg300822 := MakeSymbol("shen.after-codepoint") +__ctx.TailApply(__defun__shen_4f__error, reg300822) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.after-codepoint", value: __defun__shen_4after_1codepoint}) + +__defun__shen_4decimalise = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2483 := __args[0] +_ = V2483 +reg300824 := __e.Call(__defun__shen_4digits_1_6integers, V2483) +reg300825 := __e.Call(__defun__reverse, reg300824) +reg300826 := MakeNumber(0) +__ctx.TailApply(__defun__shen_4pre, reg300825, reg300826) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.decimalise", value: __defun__shen_4decimalise}) + +__defun__shen_4digits_1_6integers = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2489 := __args[0] +_ = V2489 +reg300828 := PrimIsPair(V2489) +var reg300836 Obj +if reg300828 == True { +reg300829 := MakeString("0") +reg300830 := PrimHead(V2489) +reg300831 := PrimEqual(reg300829, reg300830) +var reg300834 Obj +if reg300831 == True { +reg300832 := True; +reg300834 = reg300832 +} else { +reg300833 := False; +reg300834 = reg300833 +} +reg300836 = reg300834 +} else { +reg300835 := False; +reg300836 = reg300835 +} +if reg300836 == True { +reg300837 := MakeNumber(0) +reg300838 := PrimTail(V2489) +reg300839 := __e.Call(__defun__shen_4digits_1_6integers, reg300838) +reg300840 := PrimCons(reg300837, reg300839) +__ctx.Return(reg300840) +return +} else { +reg300841 := PrimIsPair(V2489) +var reg300849 Obj +if reg300841 == True { +reg300842 := MakeString("1") +reg300843 := PrimHead(V2489) +reg300844 := PrimEqual(reg300842, reg300843) +var reg300847 Obj +if reg300844 == True { +reg300845 := True; +reg300847 = reg300845 +} else { +reg300846 := False; +reg300847 = reg300846 +} +reg300849 = reg300847 +} else { +reg300848 := False; +reg300849 = reg300848 +} +if reg300849 == True { +reg300850 := MakeNumber(1) +reg300851 := PrimTail(V2489) +reg300852 := __e.Call(__defun__shen_4digits_1_6integers, reg300851) +reg300853 := PrimCons(reg300850, reg300852) +__ctx.Return(reg300853) +return +} else { +reg300854 := PrimIsPair(V2489) +var reg300862 Obj +if reg300854 == True { +reg300855 := MakeString("2") +reg300856 := PrimHead(V2489) +reg300857 := PrimEqual(reg300855, reg300856) +var reg300860 Obj +if reg300857 == True { +reg300858 := True; +reg300860 = reg300858 +} else { +reg300859 := False; +reg300860 = reg300859 +} +reg300862 = reg300860 +} else { +reg300861 := False; +reg300862 = reg300861 +} +if reg300862 == True { +reg300863 := MakeNumber(2) +reg300864 := PrimTail(V2489) +reg300865 := __e.Call(__defun__shen_4digits_1_6integers, reg300864) +reg300866 := PrimCons(reg300863, reg300865) +__ctx.Return(reg300866) +return +} else { +reg300867 := PrimIsPair(V2489) +var reg300875 Obj +if reg300867 == True { +reg300868 := MakeString("3") +reg300869 := PrimHead(V2489) +reg300870 := PrimEqual(reg300868, reg300869) +var reg300873 Obj +if reg300870 == True { +reg300871 := True; +reg300873 = reg300871 +} else { +reg300872 := False; +reg300873 = reg300872 +} +reg300875 = reg300873 +} else { +reg300874 := False; +reg300875 = reg300874 +} +if reg300875 == True { +reg300876 := MakeNumber(3) +reg300877 := PrimTail(V2489) +reg300878 := __e.Call(__defun__shen_4digits_1_6integers, reg300877) +reg300879 := PrimCons(reg300876, reg300878) +__ctx.Return(reg300879) +return +} else { +reg300880 := PrimIsPair(V2489) +var reg300888 Obj +if reg300880 == True { +reg300881 := MakeString("4") +reg300882 := PrimHead(V2489) +reg300883 := PrimEqual(reg300881, reg300882) +var reg300886 Obj +if reg300883 == True { +reg300884 := True; +reg300886 = reg300884 +} else { +reg300885 := False; +reg300886 = reg300885 +} +reg300888 = reg300886 +} else { +reg300887 := False; +reg300888 = reg300887 +} +if reg300888 == True { +reg300889 := MakeNumber(4) +reg300890 := PrimTail(V2489) +reg300891 := __e.Call(__defun__shen_4digits_1_6integers, reg300890) +reg300892 := PrimCons(reg300889, reg300891) +__ctx.Return(reg300892) +return +} else { +reg300893 := PrimIsPair(V2489) +var reg300901 Obj +if reg300893 == True { +reg300894 := MakeString("5") +reg300895 := PrimHead(V2489) +reg300896 := PrimEqual(reg300894, reg300895) +var reg300899 Obj +if reg300896 == True { +reg300897 := True; +reg300899 = reg300897 +} else { +reg300898 := False; +reg300899 = reg300898 +} +reg300901 = reg300899 +} else { +reg300900 := False; +reg300901 = reg300900 +} +if reg300901 == True { +reg300902 := MakeNumber(5) +reg300903 := PrimTail(V2489) +reg300904 := __e.Call(__defun__shen_4digits_1_6integers, reg300903) +reg300905 := PrimCons(reg300902, reg300904) +__ctx.Return(reg300905) +return +} else { +reg300906 := PrimIsPair(V2489) +var reg300914 Obj +if reg300906 == True { +reg300907 := MakeString("6") +reg300908 := PrimHead(V2489) +reg300909 := PrimEqual(reg300907, reg300908) +var reg300912 Obj +if reg300909 == True { +reg300910 := True; +reg300912 = reg300910 +} else { +reg300911 := False; +reg300912 = reg300911 +} +reg300914 = reg300912 +} else { +reg300913 := False; +reg300914 = reg300913 +} +if reg300914 == True { +reg300915 := MakeNumber(6) +reg300916 := PrimTail(V2489) +reg300917 := __e.Call(__defun__shen_4digits_1_6integers, reg300916) +reg300918 := PrimCons(reg300915, reg300917) +__ctx.Return(reg300918) +return +} else { +reg300919 := PrimIsPair(V2489) +var reg300927 Obj +if reg300919 == True { +reg300920 := MakeString("7") +reg300921 := PrimHead(V2489) +reg300922 := PrimEqual(reg300920, reg300921) +var reg300925 Obj +if reg300922 == True { +reg300923 := True; +reg300925 = reg300923 +} else { +reg300924 := False; +reg300925 = reg300924 +} +reg300927 = reg300925 +} else { +reg300926 := False; +reg300927 = reg300926 +} +if reg300927 == True { +reg300928 := MakeNumber(7) +reg300929 := PrimTail(V2489) +reg300930 := __e.Call(__defun__shen_4digits_1_6integers, reg300929) +reg300931 := PrimCons(reg300928, reg300930) +__ctx.Return(reg300931) +return +} else { +reg300932 := PrimIsPair(V2489) +var reg300940 Obj +if reg300932 == True { +reg300933 := MakeString("8") +reg300934 := PrimHead(V2489) +reg300935 := PrimEqual(reg300933, reg300934) +var reg300938 Obj +if reg300935 == True { +reg300936 := True; +reg300938 = reg300936 +} else { +reg300937 := False; +reg300938 = reg300937 +} +reg300940 = reg300938 +} else { +reg300939 := False; +reg300940 = reg300939 +} +if reg300940 == True { +reg300941 := MakeNumber(8) +reg300942 := PrimTail(V2489) +reg300943 := __e.Call(__defun__shen_4digits_1_6integers, reg300942) +reg300944 := PrimCons(reg300941, reg300943) +__ctx.Return(reg300944) +return +} else { +reg300945 := PrimIsPair(V2489) +var reg300953 Obj +if reg300945 == True { +reg300946 := MakeString("9") +reg300947 := PrimHead(V2489) +reg300948 := PrimEqual(reg300946, reg300947) +var reg300951 Obj +if reg300948 == True { +reg300949 := True; +reg300951 = reg300949 +} else { +reg300950 := False; +reg300951 = reg300950 +} +reg300953 = reg300951 +} else { +reg300952 := False; +reg300953 = reg300952 +} +if reg300953 == True { +reg300954 := MakeNumber(9) +reg300955 := PrimTail(V2489) +reg300956 := __e.Call(__defun__shen_4digits_1_6integers, reg300955) +reg300957 := PrimCons(reg300954, reg300956) +__ctx.Return(reg300957) +return +} else { +reg300958 := Nil; +__ctx.Return(reg300958) +return +} +} +} +} +} +} +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.digits->integers", value: __defun__shen_4digits_1_6integers}) + +__defun__shen_4_5sym_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2491 := __args[0] +_ = V2491 +reg300959 := __e.Call(__defun__shen_4_5alpha_6, V2491) +Parse__shen_4_5alpha_6 := reg300959 +_ = Parse__shen_4_5alpha_6 +reg300960 := __e.Call(__defun__fail) +reg300961 := PrimEqual(reg300960, Parse__shen_4_5alpha_6) +reg300962 := PrimNot(reg300961) +if reg300962 == True { +reg300963 := __e.Call(__defun__shen_4_5alphanums_6, Parse__shen_4_5alpha_6) +Parse__shen_4_5alphanums_6 := reg300963 +_ = Parse__shen_4_5alphanums_6 +reg300964 := __e.Call(__defun__fail) +reg300965 := PrimEqual(reg300964, Parse__shen_4_5alphanums_6) +reg300966 := PrimNot(reg300965) +if reg300966 == True { +reg300967 := PrimHead(Parse__shen_4_5alphanums_6) +reg300968 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5alpha_6) +reg300969 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5alphanums_6) +reg300970 := __e.Call(__defun___8s, reg300968, reg300969) +__ctx.TailApply(__defun__shen_4pair, reg300967, reg300970) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5sym_6}) + +__defun__shen_4_5alphanums_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2493 := __args[0] +_ = V2493 +reg300974 := __e.Call(__defun__shen_4_5alphanum_6, V2493) +Parse__shen_4_5alphanum_6 := reg300974 +_ = Parse__shen_4_5alphanum_6 +reg300975 := __e.Call(__defun__fail) +reg300976 := PrimEqual(reg300975, Parse__shen_4_5alphanum_6) +reg300977 := PrimNot(reg300976) +var reg300990 Obj +if reg300977 == True { +reg300978 := __e.Call(__defun__shen_4_5alphanums_6, Parse__shen_4_5alphanum_6) +Parse__shen_4_5alphanums_6 := reg300978 +_ = Parse__shen_4_5alphanums_6 +reg300979 := __e.Call(__defun__fail) +reg300980 := PrimEqual(reg300979, Parse__shen_4_5alphanums_6) +reg300981 := PrimNot(reg300980) +var reg300988 Obj +if reg300981 == True { +reg300982 := PrimHead(Parse__shen_4_5alphanums_6) +reg300983 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5alphanum_6) +reg300984 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5alphanums_6) +reg300985 := __e.Call(__defun___8s, reg300983, reg300984) +reg300986 := __e.Call(__defun__shen_4pair, reg300982, reg300985) +reg300988 = reg300986 +} else { +reg300987 := __e.Call(__defun__fail) +reg300988 = reg300987 +} +reg300990 = reg300988 +} else { +reg300989 := __e.Call(__defun__fail) +reg300990 = reg300989 +} +YaccParse := reg300990 +_ = YaccParse +reg300991 := __e.Call(__defun__fail) +reg300992 := PrimEqual(YaccParse, reg300991) +if reg300992 == True { +reg300993 := __e.Call(__defun___5e_6, V2493) +Parse___5e_6 := reg300993 +_ = Parse___5e_6 +reg300994 := __e.Call(__defun__fail) +reg300995 := PrimEqual(reg300994, Parse___5e_6) +reg300996 := PrimNot(reg300995) +if reg300996 == True { +reg300997 := PrimHead(Parse___5e_6) +reg300998 := MakeString("") +__ctx.TailApply(__defun__shen_4pair, reg300997, reg300998) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5alphanums_6}) + +__defun__shen_4_5alphanum_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2495 := __args[0] +_ = V2495 +reg301001 := __e.Call(__defun__shen_4_5alpha_6, V2495) +Parse__shen_4_5alpha_6 := reg301001 +_ = Parse__shen_4_5alpha_6 +reg301002 := __e.Call(__defun__fail) +reg301003 := PrimEqual(reg301002, Parse__shen_4_5alpha_6) +reg301004 := PrimNot(reg301003) +var reg301009 Obj +if reg301004 == True { +reg301005 := PrimHead(Parse__shen_4_5alpha_6) +reg301006 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5alpha_6) +reg301007 := __e.Call(__defun__shen_4pair, reg301005, reg301006) +reg301009 = reg301007 +} else { +reg301008 := __e.Call(__defun__fail) +reg301009 = reg301008 +} +YaccParse := reg301009 +_ = YaccParse +reg301010 := __e.Call(__defun__fail) +reg301011 := PrimEqual(YaccParse, reg301010) +if reg301011 == True { +reg301012 := __e.Call(__defun__shen_4_5num_6, V2495) +Parse__shen_4_5num_6 := reg301012 +_ = Parse__shen_4_5num_6 +reg301013 := __e.Call(__defun__fail) +reg301014 := PrimEqual(reg301013, Parse__shen_4_5num_6) +reg301015 := PrimNot(reg301014) +if reg301015 == True { +reg301016 := PrimHead(Parse__shen_4_5num_6) +reg301017 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5num_6) +__ctx.TailApply(__defun__shen_4pair, reg301016, reg301017) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5alphanum_6}) + +__defun__shen_4_5num_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2497 := __args[0] +_ = V2497 +reg301020 := PrimHead(V2497) +reg301021 := PrimIsPair(reg301020) +if reg301021 == True { +reg301022 := PrimHead(V2497) +reg301023 := PrimHead(reg301022) +Parse__Char := reg301023 +_ = Parse__Char +reg301024 := __e.Call(__defun__shen_4numbyte_2, Parse__Char) +if reg301024 == True { +reg301025 := PrimHead(V2497) +reg301026 := PrimTail(reg301025) +reg301027 := __e.Call(__defun__shen_4hdtl, V2497) +reg301028 := __e.Call(__defun__shen_4pair, reg301026, reg301027) +reg301029 := PrimHead(reg301028) +reg301030 := PrimNumberToString(Parse__Char) +__ctx.TailApply(__defun__shen_4pair, reg301029, reg301030) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5num_6}) + +__defun__shen_4numbyte_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2503 := __args[0] +_ = V2503 +reg301034 := MakeNumber(48) +reg301035 := PrimEqual(reg301034, V2503) +if reg301035 == True { +reg301036 := True; +__ctx.Return(reg301036) +return +} else { +reg301037 := MakeNumber(49) +reg301038 := PrimEqual(reg301037, V2503) +if reg301038 == True { +reg301039 := True; +__ctx.Return(reg301039) +return +} else { +reg301040 := MakeNumber(50) +reg301041 := PrimEqual(reg301040, V2503) +if reg301041 == True { +reg301042 := True; +__ctx.Return(reg301042) +return +} else { +reg301043 := MakeNumber(51) +reg301044 := PrimEqual(reg301043, V2503) +if reg301044 == True { +reg301045 := True; +__ctx.Return(reg301045) +return +} else { +reg301046 := MakeNumber(52) +reg301047 := PrimEqual(reg301046, V2503) +if reg301047 == True { +reg301048 := True; +__ctx.Return(reg301048) +return +} else { +reg301049 := MakeNumber(53) +reg301050 := PrimEqual(reg301049, V2503) +if reg301050 == True { +reg301051 := True; +__ctx.Return(reg301051) +return +} else { +reg301052 := MakeNumber(54) +reg301053 := PrimEqual(reg301052, V2503) +if reg301053 == True { +reg301054 := True; +__ctx.Return(reg301054) +return +} else { +reg301055 := MakeNumber(55) +reg301056 := PrimEqual(reg301055, V2503) +if reg301056 == True { +reg301057 := True; +__ctx.Return(reg301057) +return +} else { +reg301058 := MakeNumber(56) +reg301059 := PrimEqual(reg301058, V2503) +if reg301059 == True { +reg301060 := True; +__ctx.Return(reg301060) +return +} else { +reg301061 := MakeNumber(57) +reg301062 := PrimEqual(reg301061, V2503) +if reg301062 == True { +reg301063 := True; +__ctx.Return(reg301063) +return +} else { +reg301064 := False; +__ctx.Return(reg301064) +return +} +} +} +} +} +} +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.numbyte?", value: __defun__shen_4numbyte_2}) + +__defun__shen_4_5alpha_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2505 := __args[0] +_ = V2505 +reg301065 := PrimHead(V2505) +reg301066 := PrimIsPair(reg301065) +if reg301066 == True { +reg301067 := PrimHead(V2505) +reg301068 := PrimHead(reg301067) +Parse__Char := reg301068 +_ = Parse__Char +reg301069 := __e.Call(__defun__shen_4symbol_1code_2, Parse__Char) +if reg301069 == True { +reg301070 := PrimHead(V2505) +reg301071 := PrimTail(reg301070) +reg301072 := __e.Call(__defun__shen_4hdtl, V2505) +reg301073 := __e.Call(__defun__shen_4pair, reg301071, reg301072) +reg301074 := PrimHead(reg301073) +reg301075 := PrimNumberToString(Parse__Char) +__ctx.TailApply(__defun__shen_4pair, reg301074, reg301075) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5alpha_6}) + +__defun__shen_4symbol_1code_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2507 := __args[0] +_ = V2507 +reg301079 := MakeNumber(126) +reg301080 := PrimEqual(V2507, reg301079) +if reg301080 == True { +reg301081 := True; +__ctx.Return(reg301081) +return +} else { +reg301082 := MakeNumber(94) +reg301083 := PrimGreatThan(V2507, reg301082) +var reg301090 Obj +if reg301083 == True { +reg301084 := MakeNumber(123) +reg301085 := PrimLessThan(V2507, reg301084) +var reg301088 Obj +if reg301085 == True { +reg301086 := True; +reg301088 = reg301086 +} else { +reg301087 := False; +reg301088 = reg301087 +} +reg301090 = reg301088 +} else { +reg301089 := False; +reg301090 = reg301089 +} +var reg301147 Obj +if reg301090 == True { +reg301091 := True; +reg301147 = reg301091 +} else { +reg301092 := MakeNumber(59) +reg301093 := PrimGreatThan(V2507, reg301092) +var reg301100 Obj +if reg301093 == True { +reg301094 := MakeNumber(91) +reg301095 := PrimLessThan(V2507, reg301094) +var reg301098 Obj +if reg301095 == True { +reg301096 := True; +reg301098 = reg301096 +} else { +reg301097 := False; +reg301098 = reg301097 +} +reg301100 = reg301098 +} else { +reg301099 := False; +reg301100 = reg301099 +} +var reg301143 Obj +if reg301100 == True { +reg301101 := True; +reg301143 = reg301101 +} else { +reg301102 := MakeNumber(41) +reg301103 := PrimGreatThan(V2507, reg301102) +var reg301118 Obj +if reg301103 == True { +reg301104 := MakeNumber(58) +reg301105 := PrimLessThan(V2507, reg301104) +var reg301113 Obj +if reg301105 == True { +reg301106 := MakeNumber(44) +reg301107 := PrimEqual(V2507, reg301106) +reg301108 := PrimNot(reg301107) +var reg301111 Obj +if reg301108 == True { +reg301109 := True; +reg301111 = reg301109 +} else { +reg301110 := False; +reg301111 = reg301110 +} +reg301113 = reg301111 +} else { +reg301112 := False; +reg301113 = reg301112 +} +var reg301116 Obj +if reg301113 == True { +reg301114 := True; +reg301116 = reg301114 +} else { +reg301115 := False; +reg301116 = reg301115 +} +reg301118 = reg301116 +} else { +reg301117 := False; +reg301118 = reg301117 +} +var reg301139 Obj +if reg301118 == True { +reg301119 := True; +reg301139 = reg301119 +} else { +reg301120 := MakeNumber(34) +reg301121 := PrimGreatThan(V2507, reg301120) +var reg301128 Obj +if reg301121 == True { +reg301122 := MakeNumber(40) +reg301123 := PrimLessThan(V2507, reg301122) +var reg301126 Obj +if reg301123 == True { +reg301124 := True; +reg301126 = reg301124 +} else { +reg301125 := False; +reg301126 = reg301125 +} +reg301128 = reg301126 +} else { +reg301127 := False; +reg301128 = reg301127 +} +var reg301135 Obj +if reg301128 == True { +reg301129 := True; +reg301135 = reg301129 +} else { +reg301130 := MakeNumber(33) +reg301131 := PrimEqual(V2507, reg301130) +var reg301134 Obj +if reg301131 == True { +reg301132 := True; +reg301134 = reg301132 +} else { +reg301133 := False; +reg301134 = reg301133 +} +reg301135 = reg301134 +} +var reg301138 Obj +if reg301135 == True { +reg301136 := True; +reg301138 = reg301136 +} else { +reg301137 := False; +reg301138 = reg301137 +} +reg301139 = reg301138 +} +var reg301142 Obj +if reg301139 == True { +reg301140 := True; +reg301142 = reg301140 +} else { +reg301141 := False; +reg301142 = reg301141 +} +reg301143 = reg301142 +} +var reg301146 Obj +if reg301143 == True { +reg301144 := True; +reg301146 = reg301144 +} else { +reg301145 := False; +reg301146 = reg301145 +} +reg301147 = reg301146 +} +if reg301147 == True { +reg301148 := True; +__ctx.Return(reg301148) +return +} else { +reg301149 := False; +__ctx.Return(reg301149) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.symbol-code?", value: __defun__shen_4symbol_1code_2}) + +__defun__shen_4_5str_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2509 := __args[0] +_ = V2509 +reg301150 := __e.Call(__defun__shen_4_5dbq_6, V2509) +Parse__shen_4_5dbq_6 := reg301150 +_ = Parse__shen_4_5dbq_6 +reg301151 := __e.Call(__defun__fail) +reg301152 := PrimEqual(reg301151, Parse__shen_4_5dbq_6) +reg301153 := PrimNot(reg301152) +if reg301153 == True { +reg301154 := __e.Call(__defun__shen_4_5strcontents_6, Parse__shen_4_5dbq_6) +Parse__shen_4_5strcontents_6 := reg301154 +_ = Parse__shen_4_5strcontents_6 +reg301155 := __e.Call(__defun__fail) +reg301156 := PrimEqual(reg301155, Parse__shen_4_5strcontents_6) +reg301157 := PrimNot(reg301156) +if reg301157 == True { +reg301158 := __e.Call(__defun__shen_4_5dbq_6, Parse__shen_4_5strcontents_6) +Parse__shen_4_5dbq_6 := reg301158 +_ = Parse__shen_4_5dbq_6 +reg301159 := __e.Call(__defun__fail) +reg301160 := PrimEqual(reg301159, Parse__shen_4_5dbq_6) +reg301161 := PrimNot(reg301160) +if reg301161 == True { +reg301162 := PrimHead(Parse__shen_4_5dbq_6) +reg301163 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5strcontents_6) +__ctx.TailApply(__defun__shen_4pair, reg301162, reg301163) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5str_6}) + +__defun__shen_4_5dbq_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2511 := __args[0] +_ = V2511 +reg301168 := PrimHead(V2511) +reg301169 := PrimIsPair(reg301168) +if reg301169 == True { +reg301170 := PrimHead(V2511) +reg301171 := PrimHead(reg301170) +Parse__Char := reg301171 +_ = Parse__Char +reg301172 := MakeNumber(34) +reg301173 := PrimEqual(Parse__Char, reg301172) +if reg301173 == True { +reg301174 := PrimHead(V2511) +reg301175 := PrimTail(reg301174) +reg301176 := __e.Call(__defun__shen_4hdtl, V2511) +reg301177 := __e.Call(__defun__shen_4pair, reg301175, reg301176) +reg301178 := PrimHead(reg301177) +__ctx.TailApply(__defun__shen_4pair, reg301178, Parse__Char) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5dbq_6}) + +__defun__shen_4_5strcontents_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2513 := __args[0] +_ = V2513 +reg301182 := __e.Call(__defun__shen_4_5strc_6, V2513) +Parse__shen_4_5strc_6 := reg301182 +_ = Parse__shen_4_5strc_6 +reg301183 := __e.Call(__defun__fail) +reg301184 := PrimEqual(reg301183, Parse__shen_4_5strc_6) +reg301185 := PrimNot(reg301184) +var reg301198 Obj +if reg301185 == True { +reg301186 := __e.Call(__defun__shen_4_5strcontents_6, Parse__shen_4_5strc_6) +Parse__shen_4_5strcontents_6 := reg301186 +_ = Parse__shen_4_5strcontents_6 +reg301187 := __e.Call(__defun__fail) +reg301188 := PrimEqual(reg301187, Parse__shen_4_5strcontents_6) +reg301189 := PrimNot(reg301188) +var reg301196 Obj +if reg301189 == True { +reg301190 := PrimHead(Parse__shen_4_5strcontents_6) +reg301191 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5strc_6) +reg301192 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5strcontents_6) +reg301193 := PrimCons(reg301191, reg301192) +reg301194 := __e.Call(__defun__shen_4pair, reg301190, reg301193) +reg301196 = reg301194 +} else { +reg301195 := __e.Call(__defun__fail) +reg301196 = reg301195 +} +reg301198 = reg301196 +} else { +reg301197 := __e.Call(__defun__fail) +reg301198 = reg301197 +} +YaccParse := reg301198 +_ = YaccParse +reg301199 := __e.Call(__defun__fail) +reg301200 := PrimEqual(YaccParse, reg301199) +if reg301200 == True { +reg301201 := __e.Call(__defun___5e_6, V2513) +Parse___5e_6 := reg301201 +_ = Parse___5e_6 +reg301202 := __e.Call(__defun__fail) +reg301203 := PrimEqual(reg301202, Parse___5e_6) +reg301204 := PrimNot(reg301203) +if reg301204 == True { +reg301205 := PrimHead(Parse___5e_6) +reg301206 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg301205, reg301206) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5strcontents_6}) + +__defun__shen_4_5byte_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2515 := __args[0] +_ = V2515 +reg301209 := PrimHead(V2515) +reg301210 := PrimIsPair(reg301209) +if reg301210 == True { +reg301211 := PrimHead(V2515) +reg301212 := PrimHead(reg301211) +Parse__Char := reg301212 +_ = Parse__Char +reg301213 := PrimHead(V2515) +reg301214 := PrimTail(reg301213) +reg301215 := __e.Call(__defun__shen_4hdtl, V2515) +reg301216 := __e.Call(__defun__shen_4pair, reg301214, reg301215) +reg301217 := PrimHead(reg301216) +reg301218 := PrimNumberToString(Parse__Char) +__ctx.TailApply(__defun__shen_4pair, reg301217, reg301218) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5byte_6}) + +__defun__shen_4_5strc_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2517 := __args[0] +_ = V2517 +reg301221 := PrimHead(V2517) +reg301222 := PrimIsPair(reg301221) +if reg301222 == True { +reg301223 := PrimHead(V2517) +reg301224 := PrimHead(reg301223) +Parse__Char := reg301224 +_ = Parse__Char +reg301225 := MakeNumber(34) +reg301226 := PrimEqual(Parse__Char, reg301225) +reg301227 := PrimNot(reg301226) +if reg301227 == True { +reg301228 := PrimHead(V2517) +reg301229 := PrimTail(reg301228) +reg301230 := __e.Call(__defun__shen_4hdtl, V2517) +reg301231 := __e.Call(__defun__shen_4pair, reg301229, reg301230) +reg301232 := PrimHead(reg301231) +reg301233 := PrimNumberToString(Parse__Char) +__ctx.TailApply(__defun__shen_4pair, reg301232, reg301233) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5strc_6}) + +__defun__shen_4_5number_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2519 := __args[0] +_ = V2519 +reg301237 := __e.Call(__defun__shen_4_5minus_6, V2519) +Parse__shen_4_5minus_6 := reg301237 +_ = Parse__shen_4_5minus_6 +reg301238 := __e.Call(__defun__fail) +reg301239 := PrimEqual(reg301238, Parse__shen_4_5minus_6) +reg301240 := PrimNot(reg301239) +var reg301253 Obj +if reg301240 == True { +reg301241 := __e.Call(__defun__shen_4_5number_6, Parse__shen_4_5minus_6) +Parse__shen_4_5number_6 := reg301241 +_ = Parse__shen_4_5number_6 +reg301242 := __e.Call(__defun__fail) +reg301243 := PrimEqual(reg301242, Parse__shen_4_5number_6) +reg301244 := PrimNot(reg301243) +var reg301251 Obj +if reg301244 == True { +reg301245 := PrimHead(Parse__shen_4_5number_6) +reg301246 := MakeNumber(0) +reg301247 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5number_6) +reg301248 := PrimNumberSubtract(reg301246, reg301247) +reg301249 := __e.Call(__defun__shen_4pair, reg301245, reg301248) +reg301251 = reg301249 +} else { +reg301250 := __e.Call(__defun__fail) +reg301251 = reg301250 +} +reg301253 = reg301251 +} else { +reg301252 := __e.Call(__defun__fail) +reg301253 = reg301252 +} +YaccParse := reg301253 +_ = YaccParse +reg301254 := __e.Call(__defun__fail) +reg301255 := PrimEqual(YaccParse, reg301254) +if reg301255 == True { +reg301256 := __e.Call(__defun__shen_4_5plus_6, V2519) +Parse__shen_4_5plus_6 := reg301256 +_ = Parse__shen_4_5plus_6 +reg301257 := __e.Call(__defun__fail) +reg301258 := PrimEqual(reg301257, Parse__shen_4_5plus_6) +reg301259 := PrimNot(reg301258) +var reg301270 Obj +if reg301259 == True { +reg301260 := __e.Call(__defun__shen_4_5number_6, Parse__shen_4_5plus_6) +Parse__shen_4_5number_6 := reg301260 +_ = Parse__shen_4_5number_6 +reg301261 := __e.Call(__defun__fail) +reg301262 := PrimEqual(reg301261, Parse__shen_4_5number_6) +reg301263 := PrimNot(reg301262) +var reg301268 Obj +if reg301263 == True { +reg301264 := PrimHead(Parse__shen_4_5number_6) +reg301265 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5number_6) +reg301266 := __e.Call(__defun__shen_4pair, reg301264, reg301265) +reg301268 = reg301266 +} else { +reg301267 := __e.Call(__defun__fail) +reg301268 = reg301267 +} +reg301270 = reg301268 +} else { +reg301269 := __e.Call(__defun__fail) +reg301270 = reg301269 +} +YaccParse := reg301270 +_ = YaccParse +reg301271 := __e.Call(__defun__fail) +reg301272 := PrimEqual(YaccParse, reg301271) +if reg301272 == True { +reg301273 := __e.Call(__defun__shen_4_5predigits_6, V2519) +Parse__shen_4_5predigits_6 := reg301273 +_ = Parse__shen_4_5predigits_6 +reg301274 := __e.Call(__defun__fail) +reg301275 := PrimEqual(reg301274, Parse__shen_4_5predigits_6) +reg301276 := PrimNot(reg301275) +var reg301316 Obj +if reg301276 == True { +reg301277 := __e.Call(__defun__shen_4_5stop_6, Parse__shen_4_5predigits_6) +Parse__shen_4_5stop_6 := reg301277 +_ = Parse__shen_4_5stop_6 +reg301278 := __e.Call(__defun__fail) +reg301279 := PrimEqual(reg301278, Parse__shen_4_5stop_6) +reg301280 := PrimNot(reg301279) +var reg301314 Obj +if reg301280 == True { +reg301281 := __e.Call(__defun__shen_4_5postdigits_6, Parse__shen_4_5stop_6) +Parse__shen_4_5postdigits_6 := reg301281 +_ = Parse__shen_4_5postdigits_6 +reg301282 := __e.Call(__defun__fail) +reg301283 := PrimEqual(reg301282, Parse__shen_4_5postdigits_6) +reg301284 := PrimNot(reg301283) +var reg301312 Obj +if reg301284 == True { +reg301285 := __e.Call(__defun__shen_4_5E_6, Parse__shen_4_5postdigits_6) +Parse__shen_4_5E_6 := reg301285 +_ = Parse__shen_4_5E_6 +reg301286 := __e.Call(__defun__fail) +reg301287 := PrimEqual(reg301286, Parse__shen_4_5E_6) +reg301288 := PrimNot(reg301287) +var reg301310 Obj +if reg301288 == True { +reg301289 := __e.Call(__defun__shen_4_5log10_6, Parse__shen_4_5E_6) +Parse__shen_4_5log10_6 := reg301289 +_ = Parse__shen_4_5log10_6 +reg301290 := __e.Call(__defun__fail) +reg301291 := PrimEqual(reg301290, Parse__shen_4_5log10_6) +reg301292 := PrimNot(reg301291) +var reg301308 Obj +if reg301292 == True { +reg301293 := PrimHead(Parse__shen_4_5log10_6) +reg301294 := MakeNumber(10) +reg301295 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5log10_6) +reg301296 := __e.Call(__defun__shen_4expt, reg301294, reg301295) +reg301297 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5predigits_6) +reg301298 := __e.Call(__defun__reverse, reg301297) +reg301299 := MakeNumber(0) +reg301300 := __e.Call(__defun__shen_4pre, reg301298, reg301299) +reg301301 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5postdigits_6) +reg301302 := MakeNumber(1) +reg301303 := __e.Call(__defun__shen_4post, reg301301, reg301302) +reg301304 := PrimNumberAdd(reg301300, reg301303) +reg301305 := PrimNumberMultiply(reg301296, reg301304) +reg301306 := __e.Call(__defun__shen_4pair, reg301293, reg301305) +reg301308 = reg301306 +} else { +reg301307 := __e.Call(__defun__fail) +reg301308 = reg301307 +} +reg301310 = reg301308 +} else { +reg301309 := __e.Call(__defun__fail) +reg301310 = reg301309 +} +reg301312 = reg301310 +} else { +reg301311 := __e.Call(__defun__fail) +reg301312 = reg301311 +} +reg301314 = reg301312 +} else { +reg301313 := __e.Call(__defun__fail) +reg301314 = reg301313 +} +reg301316 = reg301314 +} else { +reg301315 := __e.Call(__defun__fail) +reg301316 = reg301315 +} +YaccParse := reg301316 +_ = YaccParse +reg301317 := __e.Call(__defun__fail) +reg301318 := PrimEqual(YaccParse, reg301317) +if reg301318 == True { +reg301319 := __e.Call(__defun__shen_4_5digits_6, V2519) +Parse__shen_4_5digits_6 := reg301319 +_ = Parse__shen_4_5digits_6 +reg301320 := __e.Call(__defun__fail) +reg301321 := PrimEqual(reg301320, Parse__shen_4_5digits_6) +reg301322 := PrimNot(reg301321) +var reg301346 Obj +if reg301322 == True { +reg301323 := __e.Call(__defun__shen_4_5E_6, Parse__shen_4_5digits_6) +Parse__shen_4_5E_6 := reg301323 +_ = Parse__shen_4_5E_6 +reg301324 := __e.Call(__defun__fail) +reg301325 := PrimEqual(reg301324, Parse__shen_4_5E_6) +reg301326 := PrimNot(reg301325) +var reg301344 Obj +if reg301326 == True { +reg301327 := __e.Call(__defun__shen_4_5log10_6, Parse__shen_4_5E_6) +Parse__shen_4_5log10_6 := reg301327 +_ = Parse__shen_4_5log10_6 +reg301328 := __e.Call(__defun__fail) +reg301329 := PrimEqual(reg301328, Parse__shen_4_5log10_6) +reg301330 := PrimNot(reg301329) +var reg301342 Obj +if reg301330 == True { +reg301331 := PrimHead(Parse__shen_4_5log10_6) +reg301332 := MakeNumber(10) +reg301333 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5log10_6) +reg301334 := __e.Call(__defun__shen_4expt, reg301332, reg301333) +reg301335 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5digits_6) +reg301336 := __e.Call(__defun__reverse, reg301335) +reg301337 := MakeNumber(0) +reg301338 := __e.Call(__defun__shen_4pre, reg301336, reg301337) +reg301339 := PrimNumberMultiply(reg301334, reg301338) +reg301340 := __e.Call(__defun__shen_4pair, reg301331, reg301339) +reg301342 = reg301340 +} else { +reg301341 := __e.Call(__defun__fail) +reg301342 = reg301341 +} +reg301344 = reg301342 +} else { +reg301343 := __e.Call(__defun__fail) +reg301344 = reg301343 +} +reg301346 = reg301344 +} else { +reg301345 := __e.Call(__defun__fail) +reg301346 = reg301345 +} +YaccParse := reg301346 +_ = YaccParse +reg301347 := __e.Call(__defun__fail) +reg301348 := PrimEqual(YaccParse, reg301347) +if reg301348 == True { +reg301349 := __e.Call(__defun__shen_4_5predigits_6, V2519) +Parse__shen_4_5predigits_6 := reg301349 +_ = Parse__shen_4_5predigits_6 +reg301350 := __e.Call(__defun__fail) +reg301351 := PrimEqual(reg301350, Parse__shen_4_5predigits_6) +reg301352 := PrimNot(reg301351) +var reg301376 Obj +if reg301352 == True { +reg301353 := __e.Call(__defun__shen_4_5stop_6, Parse__shen_4_5predigits_6) +Parse__shen_4_5stop_6 := reg301353 +_ = Parse__shen_4_5stop_6 +reg301354 := __e.Call(__defun__fail) +reg301355 := PrimEqual(reg301354, Parse__shen_4_5stop_6) +reg301356 := PrimNot(reg301355) +var reg301374 Obj +if reg301356 == True { +reg301357 := __e.Call(__defun__shen_4_5postdigits_6, Parse__shen_4_5stop_6) +Parse__shen_4_5postdigits_6 := reg301357 +_ = Parse__shen_4_5postdigits_6 +reg301358 := __e.Call(__defun__fail) +reg301359 := PrimEqual(reg301358, Parse__shen_4_5postdigits_6) +reg301360 := PrimNot(reg301359) +var reg301372 Obj +if reg301360 == True { +reg301361 := PrimHead(Parse__shen_4_5postdigits_6) +reg301362 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5predigits_6) +reg301363 := __e.Call(__defun__reverse, reg301362) +reg301364 := MakeNumber(0) +reg301365 := __e.Call(__defun__shen_4pre, reg301363, reg301364) +reg301366 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5postdigits_6) +reg301367 := MakeNumber(1) +reg301368 := __e.Call(__defun__shen_4post, reg301366, reg301367) +reg301369 := PrimNumberAdd(reg301365, reg301368) +reg301370 := __e.Call(__defun__shen_4pair, reg301361, reg301369) +reg301372 = reg301370 +} else { +reg301371 := __e.Call(__defun__fail) +reg301372 = reg301371 +} +reg301374 = reg301372 +} else { +reg301373 := __e.Call(__defun__fail) +reg301374 = reg301373 +} +reg301376 = reg301374 +} else { +reg301375 := __e.Call(__defun__fail) +reg301376 = reg301375 +} +YaccParse := reg301376 +_ = YaccParse +reg301377 := __e.Call(__defun__fail) +reg301378 := PrimEqual(YaccParse, reg301377) +if reg301378 == True { +reg301379 := __e.Call(__defun__shen_4_5digits_6, V2519) +Parse__shen_4_5digits_6 := reg301379 +_ = Parse__shen_4_5digits_6 +reg301380 := __e.Call(__defun__fail) +reg301381 := PrimEqual(reg301380, Parse__shen_4_5digits_6) +reg301382 := PrimNot(reg301381) +if reg301382 == True { +reg301383 := PrimHead(Parse__shen_4_5digits_6) +reg301384 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5digits_6) +reg301385 := __e.Call(__defun__reverse, reg301384) +reg301386 := MakeNumber(0) +reg301387 := __e.Call(__defun__shen_4pre, reg301385, reg301386) +__ctx.TailApply(__defun__shen_4pair, reg301383, reg301387) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5number_6}) + +__defun__shen_4_5E_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2521 := __args[0] +_ = V2521 +reg301390 := PrimHead(V2521) +reg301391 := PrimIsPair(reg301390) +var reg301400 Obj +if reg301391 == True { +reg301392 := MakeNumber(101) +reg301393 := PrimHead(V2521) +reg301394 := PrimHead(reg301393) +reg301395 := PrimEqual(reg301392, reg301394) +var reg301398 Obj +if reg301395 == True { +reg301396 := True; +reg301398 = reg301396 +} else { +reg301397 := False; +reg301398 = reg301397 +} +reg301400 = reg301398 +} else { +reg301399 := False; +reg301400 = reg301399 +} +if reg301400 == True { +reg301401 := PrimHead(V2521) +reg301402 := PrimTail(reg301401) +reg301403 := __e.Call(__defun__shen_4hdtl, V2521) +reg301404 := __e.Call(__defun__shen_4pair, reg301402, reg301403) +reg301405 := PrimHead(reg301404) +reg301406 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301405, reg301406) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5E_6}) + +__defun__shen_4_5log10_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2523 := __args[0] +_ = V2523 +reg301409 := __e.Call(__defun__shen_4_5minus_6, V2523) +Parse__shen_4_5minus_6 := reg301409 +_ = Parse__shen_4_5minus_6 +reg301410 := __e.Call(__defun__fail) +reg301411 := PrimEqual(reg301410, Parse__shen_4_5minus_6) +reg301412 := PrimNot(reg301411) +var reg301428 Obj +if reg301412 == True { +reg301413 := __e.Call(__defun__shen_4_5digits_6, Parse__shen_4_5minus_6) +Parse__shen_4_5digits_6 := reg301413 +_ = Parse__shen_4_5digits_6 +reg301414 := __e.Call(__defun__fail) +reg301415 := PrimEqual(reg301414, Parse__shen_4_5digits_6) +reg301416 := PrimNot(reg301415) +var reg301426 Obj +if reg301416 == True { +reg301417 := PrimHead(Parse__shen_4_5digits_6) +reg301418 := MakeNumber(0) +reg301419 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5digits_6) +reg301420 := __e.Call(__defun__reverse, reg301419) +reg301421 := MakeNumber(0) +reg301422 := __e.Call(__defun__shen_4pre, reg301420, reg301421) +reg301423 := PrimNumberSubtract(reg301418, reg301422) +reg301424 := __e.Call(__defun__shen_4pair, reg301417, reg301423) +reg301426 = reg301424 +} else { +reg301425 := __e.Call(__defun__fail) +reg301426 = reg301425 +} +reg301428 = reg301426 +} else { +reg301427 := __e.Call(__defun__fail) +reg301428 = reg301427 +} +YaccParse := reg301428 +_ = YaccParse +reg301429 := __e.Call(__defun__fail) +reg301430 := PrimEqual(YaccParse, reg301429) +if reg301430 == True { +reg301431 := __e.Call(__defun__shen_4_5digits_6, V2523) +Parse__shen_4_5digits_6 := reg301431 +_ = Parse__shen_4_5digits_6 +reg301432 := __e.Call(__defun__fail) +reg301433 := PrimEqual(reg301432, Parse__shen_4_5digits_6) +reg301434 := PrimNot(reg301433) +if reg301434 == True { +reg301435 := PrimHead(Parse__shen_4_5digits_6) +reg301436 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5digits_6) +reg301437 := __e.Call(__defun__reverse, reg301436) +reg301438 := MakeNumber(0) +reg301439 := __e.Call(__defun__shen_4pre, reg301437, reg301438) +__ctx.TailApply(__defun__shen_4pair, reg301435, reg301439) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5log10_6}) + +__defun__shen_4_5plus_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2525 := __args[0] +_ = V2525 +reg301442 := PrimHead(V2525) +reg301443 := PrimIsPair(reg301442) +if reg301443 == True { +reg301444 := PrimHead(V2525) +reg301445 := PrimHead(reg301444) +Parse__Char := reg301445 +_ = Parse__Char +reg301446 := MakeNumber(43) +reg301447 := PrimEqual(Parse__Char, reg301446) +if reg301447 == True { +reg301448 := PrimHead(V2525) +reg301449 := PrimTail(reg301448) +reg301450 := __e.Call(__defun__shen_4hdtl, V2525) +reg301451 := __e.Call(__defun__shen_4pair, reg301449, reg301450) +reg301452 := PrimHead(reg301451) +__ctx.TailApply(__defun__shen_4pair, reg301452, Parse__Char) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5plus_6}) + +__defun__shen_4_5stop_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2527 := __args[0] +_ = V2527 +reg301456 := PrimHead(V2527) +reg301457 := PrimIsPair(reg301456) +if reg301457 == True { +reg301458 := PrimHead(V2527) +reg301459 := PrimHead(reg301458) +Parse__Char := reg301459 +_ = Parse__Char +reg301460 := MakeNumber(46) +reg301461 := PrimEqual(Parse__Char, reg301460) +if reg301461 == True { +reg301462 := PrimHead(V2527) +reg301463 := PrimTail(reg301462) +reg301464 := __e.Call(__defun__shen_4hdtl, V2527) +reg301465 := __e.Call(__defun__shen_4pair, reg301463, reg301464) +reg301466 := PrimHead(reg301465) +__ctx.TailApply(__defun__shen_4pair, reg301466, Parse__Char) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5stop_6}) + +__defun__shen_4_5predigits_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2529 := __args[0] +_ = V2529 +reg301470 := __e.Call(__defun__shen_4_5digits_6, V2529) +Parse__shen_4_5digits_6 := reg301470 +_ = Parse__shen_4_5digits_6 +reg301471 := __e.Call(__defun__fail) +reg301472 := PrimEqual(reg301471, Parse__shen_4_5digits_6) +reg301473 := PrimNot(reg301472) +var reg301478 Obj +if reg301473 == True { +reg301474 := PrimHead(Parse__shen_4_5digits_6) +reg301475 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5digits_6) +reg301476 := __e.Call(__defun__shen_4pair, reg301474, reg301475) +reg301478 = reg301476 +} else { +reg301477 := __e.Call(__defun__fail) +reg301478 = reg301477 +} +YaccParse := reg301478 +_ = YaccParse +reg301479 := __e.Call(__defun__fail) +reg301480 := PrimEqual(YaccParse, reg301479) +if reg301480 == True { +reg301481 := __e.Call(__defun___5e_6, V2529) +Parse___5e_6 := reg301481 +_ = Parse___5e_6 +reg301482 := __e.Call(__defun__fail) +reg301483 := PrimEqual(reg301482, Parse___5e_6) +reg301484 := PrimNot(reg301483) +if reg301484 == True { +reg301485 := PrimHead(Parse___5e_6) +reg301486 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg301485, reg301486) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5predigits_6}) + +__defun__shen_4_5postdigits_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2531 := __args[0] +_ = V2531 +reg301489 := __e.Call(__defun__shen_4_5digits_6, V2531) +Parse__shen_4_5digits_6 := reg301489 +_ = Parse__shen_4_5digits_6 +reg301490 := __e.Call(__defun__fail) +reg301491 := PrimEqual(reg301490, Parse__shen_4_5digits_6) +reg301492 := PrimNot(reg301491) +if reg301492 == True { +reg301493 := PrimHead(Parse__shen_4_5digits_6) +reg301494 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5digits_6) +__ctx.TailApply(__defun__shen_4pair, reg301493, reg301494) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5postdigits_6}) + +__defun__shen_4_5digits_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2533 := __args[0] +_ = V2533 +reg301497 := __e.Call(__defun__shen_4_5digit_6, V2533) +Parse__shen_4_5digit_6 := reg301497 +_ = Parse__shen_4_5digit_6 +reg301498 := __e.Call(__defun__fail) +reg301499 := PrimEqual(reg301498, Parse__shen_4_5digit_6) +reg301500 := PrimNot(reg301499) +var reg301513 Obj +if reg301500 == True { +reg301501 := __e.Call(__defun__shen_4_5digits_6, Parse__shen_4_5digit_6) +Parse__shen_4_5digits_6 := reg301501 +_ = Parse__shen_4_5digits_6 +reg301502 := __e.Call(__defun__fail) +reg301503 := PrimEqual(reg301502, Parse__shen_4_5digits_6) +reg301504 := PrimNot(reg301503) +var reg301511 Obj +if reg301504 == True { +reg301505 := PrimHead(Parse__shen_4_5digits_6) +reg301506 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5digit_6) +reg301507 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5digits_6) +reg301508 := PrimCons(reg301506, reg301507) +reg301509 := __e.Call(__defun__shen_4pair, reg301505, reg301508) +reg301511 = reg301509 +} else { +reg301510 := __e.Call(__defun__fail) +reg301511 = reg301510 +} +reg301513 = reg301511 +} else { +reg301512 := __e.Call(__defun__fail) +reg301513 = reg301512 +} +YaccParse := reg301513 +_ = YaccParse +reg301514 := __e.Call(__defun__fail) +reg301515 := PrimEqual(YaccParse, reg301514) +if reg301515 == True { +reg301516 := __e.Call(__defun__shen_4_5digit_6, V2533) +Parse__shen_4_5digit_6 := reg301516 +_ = Parse__shen_4_5digit_6 +reg301517 := __e.Call(__defun__fail) +reg301518 := PrimEqual(reg301517, Parse__shen_4_5digit_6) +reg301519 := PrimNot(reg301518) +if reg301519 == True { +reg301520 := PrimHead(Parse__shen_4_5digit_6) +reg301521 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5digit_6) +reg301522 := Nil; +reg301523 := PrimCons(reg301521, reg301522) +__ctx.TailApply(__defun__shen_4pair, reg301520, reg301523) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5digits_6}) + +__defun__shen_4_5digit_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2535 := __args[0] +_ = V2535 +reg301526 := PrimHead(V2535) +reg301527 := PrimIsPair(reg301526) +if reg301527 == True { +reg301528 := PrimHead(V2535) +reg301529 := PrimHead(reg301528) +Parse__X := reg301529 +_ = Parse__X +reg301530 := __e.Call(__defun__shen_4numbyte_2, Parse__X) +if reg301530 == True { +reg301531 := PrimHead(V2535) +reg301532 := PrimTail(reg301531) +reg301533 := __e.Call(__defun__shen_4hdtl, V2535) +reg301534 := __e.Call(__defun__shen_4pair, reg301532, reg301533) +reg301535 := PrimHead(reg301534) +reg301536 := __e.Call(__defun__shen_4byte_1_6digit, Parse__X) +__ctx.TailApply(__defun__shen_4pair, reg301535, reg301536) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5digit_6}) + +__defun__shen_4byte_1_6digit = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2537 := __args[0] +_ = V2537 +reg301540 := MakeNumber(48) +reg301541 := PrimEqual(reg301540, V2537) +if reg301541 == True { +reg301542 := MakeNumber(0) +__ctx.Return(reg301542) +return +} else { +reg301543 := MakeNumber(49) +reg301544 := PrimEqual(reg301543, V2537) +if reg301544 == True { +reg301545 := MakeNumber(1) +__ctx.Return(reg301545) +return +} else { +reg301546 := MakeNumber(50) +reg301547 := PrimEqual(reg301546, V2537) +if reg301547 == True { +reg301548 := MakeNumber(2) +__ctx.Return(reg301548) +return +} else { +reg301549 := MakeNumber(51) +reg301550 := PrimEqual(reg301549, V2537) +if reg301550 == True { +reg301551 := MakeNumber(3) +__ctx.Return(reg301551) +return +} else { +reg301552 := MakeNumber(52) +reg301553 := PrimEqual(reg301552, V2537) +if reg301553 == True { +reg301554 := MakeNumber(4) +__ctx.Return(reg301554) +return +} else { +reg301555 := MakeNumber(53) +reg301556 := PrimEqual(reg301555, V2537) +if reg301556 == True { +reg301557 := MakeNumber(5) +__ctx.Return(reg301557) +return +} else { +reg301558 := MakeNumber(54) +reg301559 := PrimEqual(reg301558, V2537) +if reg301559 == True { +reg301560 := MakeNumber(6) +__ctx.Return(reg301560) +return +} else { +reg301561 := MakeNumber(55) +reg301562 := PrimEqual(reg301561, V2537) +if reg301562 == True { +reg301563 := MakeNumber(7) +__ctx.Return(reg301563) +return +} else { +reg301564 := MakeNumber(56) +reg301565 := PrimEqual(reg301564, V2537) +if reg301565 == True { +reg301566 := MakeNumber(8) +__ctx.Return(reg301566) +return +} else { +reg301567 := MakeNumber(57) +reg301568 := PrimEqual(reg301567, V2537) +if reg301568 == True { +reg301569 := MakeNumber(9) +__ctx.Return(reg301569) +return +} else { +reg301570 := MakeSymbol("shen.byte->digit") +__ctx.TailApply(__defun__shen_4f__error, reg301570) +return +} +} +} +} +} +} +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.byte->digit", value: __defun__shen_4byte_1_6digit}) + +__defun__shen_4pre = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2542 := __args[0] +_ = V2542 +V2543 := __args[1] +_ = V2543 +reg301572 := Nil; +reg301573 := PrimEqual(reg301572, V2542) +if reg301573 == True { +reg301574 := MakeNumber(0) +__ctx.Return(reg301574) +return +} else { +reg301575 := PrimIsPair(V2542) +if reg301575 == True { +reg301576 := MakeNumber(10) +reg301577 := __e.Call(__defun__shen_4expt, reg301576, V2543) +reg301578 := PrimHead(V2542) +reg301579 := PrimNumberMultiply(reg301577, reg301578) +reg301580 := PrimTail(V2542) +reg301581 := MakeNumber(1) +reg301582 := PrimNumberAdd(V2543, reg301581) +reg301583 := __e.Call(__defun__shen_4pre, reg301580, reg301582) +reg301584 := PrimNumberAdd(reg301579, reg301583) +__ctx.Return(reg301584) +return +} else { +reg301585 := MakeSymbol("shen.pre") +__ctx.TailApply(__defun__shen_4f__error, reg301585) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.pre", value: __defun__shen_4pre}) + +__defun__shen_4post = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2548 := __args[0] +_ = V2548 +V2549 := __args[1] +_ = V2549 +reg301587 := Nil; +reg301588 := PrimEqual(reg301587, V2548) +if reg301588 == True { +reg301589 := MakeNumber(0) +__ctx.Return(reg301589) +return +} else { +reg301590 := PrimIsPair(V2548) +if reg301590 == True { +reg301591 := MakeNumber(10) +reg301592 := MakeNumber(0) +reg301593 := PrimNumberSubtract(reg301592, V2549) +reg301594 := __e.Call(__defun__shen_4expt, reg301591, reg301593) +reg301595 := PrimHead(V2548) +reg301596 := PrimNumberMultiply(reg301594, reg301595) +reg301597 := PrimTail(V2548) +reg301598 := MakeNumber(1) +reg301599 := PrimNumberAdd(V2549, reg301598) +reg301600 := __e.Call(__defun__shen_4post, reg301597, reg301599) +reg301601 := PrimNumberAdd(reg301596, reg301600) +__ctx.Return(reg301601) +return +} else { +reg301602 := MakeSymbol("shen.post") +__ctx.TailApply(__defun__shen_4f__error, reg301602) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.post", value: __defun__shen_4post}) + +__defun__shen_4expt = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2554 := __args[0] +_ = V2554 +V2555 := __args[1] +_ = V2555 +reg301604 := MakeNumber(0) +reg301605 := PrimEqual(reg301604, V2555) +if reg301605 == True { +reg301606 := MakeNumber(1) +__ctx.Return(reg301606) +return +} else { +reg301607 := MakeNumber(0) +reg301608 := PrimGreatThan(V2555, reg301607) +if reg301608 == True { +reg301609 := MakeNumber(1) +reg301610 := PrimNumberSubtract(V2555, reg301609) +reg301611 := __e.Call(__defun__shen_4expt, V2554, reg301610) +reg301612 := PrimNumberMultiply(V2554, reg301611) +__ctx.Return(reg301612) +return +} else { +reg301613 := MakeNumber(1) +reg301614 := MakeNumber(1) +reg301615 := PrimNumberAdd(V2555, reg301614) +reg301616 := __e.Call(__defun__shen_4expt, V2554, reg301615) +reg301617 := PrimNumberDivide(reg301616, V2554) +reg301618 := PrimNumberMultiply(reg301613, reg301617) +__ctx.Return(reg301618) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.expt", value: __defun__shen_4expt}) + +__defun__shen_4_5st__input1_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2557 := __args[0] +_ = V2557 +reg301619 := __e.Call(__defun__shen_4_5st__input_6, V2557) +Parse__shen_4_5st__input_6 := reg301619 +_ = Parse__shen_4_5st__input_6 +reg301620 := __e.Call(__defun__fail) +reg301621 := PrimEqual(reg301620, Parse__shen_4_5st__input_6) +reg301622 := PrimNot(reg301621) +if reg301622 == True { +reg301623 := PrimHead(Parse__shen_4_5st__input_6) +reg301624 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +__ctx.TailApply(__defun__shen_4pair, reg301623, reg301624) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5st__input1_6}) + +__defun__shen_4_5st__input2_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2559 := __args[0] +_ = V2559 +reg301627 := __e.Call(__defun__shen_4_5st__input_6, V2559) +Parse__shen_4_5st__input_6 := reg301627 +_ = Parse__shen_4_5st__input_6 +reg301628 := __e.Call(__defun__fail) +reg301629 := PrimEqual(reg301628, Parse__shen_4_5st__input_6) +reg301630 := PrimNot(reg301629) +if reg301630 == True { +reg301631 := PrimHead(Parse__shen_4_5st__input_6) +reg301632 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5st__input_6) +__ctx.TailApply(__defun__shen_4pair, reg301631, reg301632) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5st__input2_6}) + +__defun__shen_4_5comment_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2561 := __args[0] +_ = V2561 +reg301635 := __e.Call(__defun__shen_4_5singleline_6, V2561) +Parse__shen_4_5singleline_6 := reg301635 +_ = Parse__shen_4_5singleline_6 +reg301636 := __e.Call(__defun__fail) +reg301637 := PrimEqual(reg301636, Parse__shen_4_5singleline_6) +reg301638 := PrimNot(reg301637) +var reg301643 Obj +if reg301638 == True { +reg301639 := PrimHead(Parse__shen_4_5singleline_6) +reg301640 := MakeSymbol("shen.skip") +reg301641 := __e.Call(__defun__shen_4pair, reg301639, reg301640) +reg301643 = reg301641 +} else { +reg301642 := __e.Call(__defun__fail) +reg301643 = reg301642 +} +YaccParse := reg301643 +_ = YaccParse +reg301644 := __e.Call(__defun__fail) +reg301645 := PrimEqual(YaccParse, reg301644) +if reg301645 == True { +reg301646 := __e.Call(__defun__shen_4_5multiline_6, V2561) +Parse__shen_4_5multiline_6 := reg301646 +_ = Parse__shen_4_5multiline_6 +reg301647 := __e.Call(__defun__fail) +reg301648 := PrimEqual(reg301647, Parse__shen_4_5multiline_6) +reg301649 := PrimNot(reg301648) +if reg301649 == True { +reg301650 := PrimHead(Parse__shen_4_5multiline_6) +reg301651 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301650, reg301651) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5comment_6}) + +__defun__shen_4_5singleline_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2563 := __args[0] +_ = V2563 +reg301654 := __e.Call(__defun__shen_4_5backslash_6, V2563) +Parse__shen_4_5backslash_6 := reg301654 +_ = Parse__shen_4_5backslash_6 +reg301655 := __e.Call(__defun__fail) +reg301656 := PrimEqual(reg301655, Parse__shen_4_5backslash_6) +reg301657 := PrimNot(reg301656) +if reg301657 == True { +reg301658 := __e.Call(__defun__shen_4_5backslash_6, Parse__shen_4_5backslash_6) +Parse__shen_4_5backslash_6 := reg301658 +_ = Parse__shen_4_5backslash_6 +reg301659 := __e.Call(__defun__fail) +reg301660 := PrimEqual(reg301659, Parse__shen_4_5backslash_6) +reg301661 := PrimNot(reg301660) +if reg301661 == True { +reg301662 := __e.Call(__defun__shen_4_5anysingle_6, Parse__shen_4_5backslash_6) +Parse__shen_4_5anysingle_6 := reg301662 +_ = Parse__shen_4_5anysingle_6 +reg301663 := __e.Call(__defun__fail) +reg301664 := PrimEqual(reg301663, Parse__shen_4_5anysingle_6) +reg301665 := PrimNot(reg301664) +if reg301665 == True { +reg301666 := __e.Call(__defun__shen_4_5return_6, Parse__shen_4_5anysingle_6) +Parse__shen_4_5return_6 := reg301666 +_ = Parse__shen_4_5return_6 +reg301667 := __e.Call(__defun__fail) +reg301668 := PrimEqual(reg301667, Parse__shen_4_5return_6) +reg301669 := PrimNot(reg301668) +if reg301669 == True { +reg301670 := PrimHead(Parse__shen_4_5return_6) +reg301671 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301670, reg301671) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5singleline_6}) + +__defun__shen_4_5backslash_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2565 := __args[0] +_ = V2565 +reg301677 := PrimHead(V2565) +reg301678 := PrimIsPair(reg301677) +var reg301687 Obj +if reg301678 == True { +reg301679 := MakeNumber(92) +reg301680 := PrimHead(V2565) +reg301681 := PrimHead(reg301680) +reg301682 := PrimEqual(reg301679, reg301681) +var reg301685 Obj +if reg301682 == True { +reg301683 := True; +reg301685 = reg301683 +} else { +reg301684 := False; +reg301685 = reg301684 +} +reg301687 = reg301685 +} else { +reg301686 := False; +reg301687 = reg301686 +} +if reg301687 == True { +reg301688 := PrimHead(V2565) +reg301689 := PrimTail(reg301688) +reg301690 := __e.Call(__defun__shen_4hdtl, V2565) +reg301691 := __e.Call(__defun__shen_4pair, reg301689, reg301690) +reg301692 := PrimHead(reg301691) +reg301693 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301692, reg301693) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5backslash_6}) + +__defun__shen_4_5anysingle_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2567 := __args[0] +_ = V2567 +reg301696 := __e.Call(__defun__shen_4_5non_1return_6, V2567) +Parse__shen_4_5non_1return_6 := reg301696 +_ = Parse__shen_4_5non_1return_6 +reg301697 := __e.Call(__defun__fail) +reg301698 := PrimEqual(reg301697, Parse__shen_4_5non_1return_6) +reg301699 := PrimNot(reg301698) +var reg301710 Obj +if reg301699 == True { +reg301700 := __e.Call(__defun__shen_4_5anysingle_6, Parse__shen_4_5non_1return_6) +Parse__shen_4_5anysingle_6 := reg301700 +_ = Parse__shen_4_5anysingle_6 +reg301701 := __e.Call(__defun__fail) +reg301702 := PrimEqual(reg301701, Parse__shen_4_5anysingle_6) +reg301703 := PrimNot(reg301702) +var reg301708 Obj +if reg301703 == True { +reg301704 := PrimHead(Parse__shen_4_5anysingle_6) +reg301705 := MakeSymbol("shen.skip") +reg301706 := __e.Call(__defun__shen_4pair, reg301704, reg301705) +reg301708 = reg301706 +} else { +reg301707 := __e.Call(__defun__fail) +reg301708 = reg301707 +} +reg301710 = reg301708 +} else { +reg301709 := __e.Call(__defun__fail) +reg301710 = reg301709 +} +YaccParse := reg301710 +_ = YaccParse +reg301711 := __e.Call(__defun__fail) +reg301712 := PrimEqual(YaccParse, reg301711) +if reg301712 == True { +reg301713 := __e.Call(__defun___5e_6, V2567) +Parse___5e_6 := reg301713 +_ = Parse___5e_6 +reg301714 := __e.Call(__defun__fail) +reg301715 := PrimEqual(reg301714, Parse___5e_6) +reg301716 := PrimNot(reg301715) +if reg301716 == True { +reg301717 := PrimHead(Parse___5e_6) +reg301718 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301717, reg301718) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5anysingle_6}) + +__defun__shen_4_5non_1return_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2569 := __args[0] +_ = V2569 +reg301721 := PrimHead(V2569) +reg301722 := PrimIsPair(reg301721) +if reg301722 == True { +reg301723 := PrimHead(V2569) +reg301724 := PrimHead(reg301723) +Parse__X := reg301724 +_ = Parse__X +reg301725 := MakeNumber(10) +reg301726 := MakeNumber(13) +reg301727 := Nil; +reg301728 := PrimCons(reg301726, reg301727) +reg301729 := PrimCons(reg301725, reg301728) +reg301730 := __e.Call(__defun__element_2, Parse__X, reg301729) +reg301731 := PrimNot(reg301730) +if reg301731 == True { +reg301732 := PrimHead(V2569) +reg301733 := PrimTail(reg301732) +reg301734 := __e.Call(__defun__shen_4hdtl, V2569) +reg301735 := __e.Call(__defun__shen_4pair, reg301733, reg301734) +reg301736 := PrimHead(reg301735) +reg301737 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301736, reg301737) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5non_1return_6}) + +__defun__shen_4_5return_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2571 := __args[0] +_ = V2571 +reg301741 := PrimHead(V2571) +reg301742 := PrimIsPair(reg301741) +if reg301742 == True { +reg301743 := PrimHead(V2571) +reg301744 := PrimHead(reg301743) +Parse__X := reg301744 +_ = Parse__X +reg301745 := MakeNumber(10) +reg301746 := MakeNumber(13) +reg301747 := Nil; +reg301748 := PrimCons(reg301746, reg301747) +reg301749 := PrimCons(reg301745, reg301748) +reg301750 := __e.Call(__defun__element_2, Parse__X, reg301749) +if reg301750 == True { +reg301751 := PrimHead(V2571) +reg301752 := PrimTail(reg301751) +reg301753 := __e.Call(__defun__shen_4hdtl, V2571) +reg301754 := __e.Call(__defun__shen_4pair, reg301752, reg301753) +reg301755 := PrimHead(reg301754) +reg301756 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301755, reg301756) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5return_6}) + +__defun__shen_4_5multiline_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2573 := __args[0] +_ = V2573 +reg301760 := __e.Call(__defun__shen_4_5backslash_6, V2573) +Parse__shen_4_5backslash_6 := reg301760 +_ = Parse__shen_4_5backslash_6 +reg301761 := __e.Call(__defun__fail) +reg301762 := PrimEqual(reg301761, Parse__shen_4_5backslash_6) +reg301763 := PrimNot(reg301762) +if reg301763 == True { +reg301764 := __e.Call(__defun__shen_4_5times_6, Parse__shen_4_5backslash_6) +Parse__shen_4_5times_6 := reg301764 +_ = Parse__shen_4_5times_6 +reg301765 := __e.Call(__defun__fail) +reg301766 := PrimEqual(reg301765, Parse__shen_4_5times_6) +reg301767 := PrimNot(reg301766) +if reg301767 == True { +reg301768 := __e.Call(__defun__shen_4_5anymulti_6, Parse__shen_4_5times_6) +Parse__shen_4_5anymulti_6 := reg301768 +_ = Parse__shen_4_5anymulti_6 +reg301769 := __e.Call(__defun__fail) +reg301770 := PrimEqual(reg301769, Parse__shen_4_5anymulti_6) +reg301771 := PrimNot(reg301770) +if reg301771 == True { +reg301772 := PrimHead(Parse__shen_4_5anymulti_6) +reg301773 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301772, reg301773) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5multiline_6}) + +__defun__shen_4_5times_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2575 := __args[0] +_ = V2575 +reg301778 := PrimHead(V2575) +reg301779 := PrimIsPair(reg301778) +var reg301788 Obj +if reg301779 == True { +reg301780 := MakeNumber(42) +reg301781 := PrimHead(V2575) +reg301782 := PrimHead(reg301781) +reg301783 := PrimEqual(reg301780, reg301782) +var reg301786 Obj +if reg301783 == True { +reg301784 := True; +reg301786 = reg301784 +} else { +reg301785 := False; +reg301786 = reg301785 +} +reg301788 = reg301786 +} else { +reg301787 := False; +reg301788 = reg301787 +} +if reg301788 == True { +reg301789 := PrimHead(V2575) +reg301790 := PrimTail(reg301789) +reg301791 := __e.Call(__defun__shen_4hdtl, V2575) +reg301792 := __e.Call(__defun__shen_4pair, reg301790, reg301791) +reg301793 := PrimHead(reg301792) +reg301794 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301793, reg301794) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5times_6}) + +__defun__shen_4_5anymulti_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2577 := __args[0] +_ = V2577 +reg301797 := __e.Call(__defun__shen_4_5comment_6, V2577) +Parse__shen_4_5comment_6 := reg301797 +_ = Parse__shen_4_5comment_6 +reg301798 := __e.Call(__defun__fail) +reg301799 := PrimEqual(reg301798, Parse__shen_4_5comment_6) +reg301800 := PrimNot(reg301799) +var reg301811 Obj +if reg301800 == True { +reg301801 := __e.Call(__defun__shen_4_5anymulti_6, Parse__shen_4_5comment_6) +Parse__shen_4_5anymulti_6 := reg301801 +_ = Parse__shen_4_5anymulti_6 +reg301802 := __e.Call(__defun__fail) +reg301803 := PrimEqual(reg301802, Parse__shen_4_5anymulti_6) +reg301804 := PrimNot(reg301803) +var reg301809 Obj +if reg301804 == True { +reg301805 := PrimHead(Parse__shen_4_5anymulti_6) +reg301806 := MakeSymbol("shen.skip") +reg301807 := __e.Call(__defun__shen_4pair, reg301805, reg301806) +reg301809 = reg301807 +} else { +reg301808 := __e.Call(__defun__fail) +reg301809 = reg301808 +} +reg301811 = reg301809 +} else { +reg301810 := __e.Call(__defun__fail) +reg301811 = reg301810 +} +YaccParse := reg301811 +_ = YaccParse +reg301812 := __e.Call(__defun__fail) +reg301813 := PrimEqual(YaccParse, reg301812) +if reg301813 == True { +reg301814 := __e.Call(__defun__shen_4_5times_6, V2577) +Parse__shen_4_5times_6 := reg301814 +_ = Parse__shen_4_5times_6 +reg301815 := __e.Call(__defun__fail) +reg301816 := PrimEqual(reg301815, Parse__shen_4_5times_6) +reg301817 := PrimNot(reg301816) +var reg301828 Obj +if reg301817 == True { +reg301818 := __e.Call(__defun__shen_4_5backslash_6, Parse__shen_4_5times_6) +Parse__shen_4_5backslash_6 := reg301818 +_ = Parse__shen_4_5backslash_6 +reg301819 := __e.Call(__defun__fail) +reg301820 := PrimEqual(reg301819, Parse__shen_4_5backslash_6) +reg301821 := PrimNot(reg301820) +var reg301826 Obj +if reg301821 == True { +reg301822 := PrimHead(Parse__shen_4_5backslash_6) +reg301823 := MakeSymbol("shen.skip") +reg301824 := __e.Call(__defun__shen_4pair, reg301822, reg301823) +reg301826 = reg301824 +} else { +reg301825 := __e.Call(__defun__fail) +reg301826 = reg301825 +} +reg301828 = reg301826 +} else { +reg301827 := __e.Call(__defun__fail) +reg301828 = reg301827 +} +YaccParse := reg301828 +_ = YaccParse +reg301829 := __e.Call(__defun__fail) +reg301830 := PrimEqual(YaccParse, reg301829) +if reg301830 == True { +reg301831 := PrimHead(V2577) +reg301832 := PrimIsPair(reg301831) +if reg301832 == True { +reg301833 := PrimHead(V2577) +reg301834 := PrimHead(reg301833) +Parse__X := reg301834 +_ = Parse__X +reg301835 := PrimHead(V2577) +reg301836 := PrimTail(reg301835) +reg301837 := __e.Call(__defun__shen_4hdtl, V2577) +reg301838 := __e.Call(__defun__shen_4pair, reg301836, reg301837) +reg301839 := __e.Call(__defun__shen_4_5anymulti_6, reg301838) +Parse__shen_4_5anymulti_6 := reg301839 +_ = Parse__shen_4_5anymulti_6 +reg301840 := __e.Call(__defun__fail) +reg301841 := PrimEqual(reg301840, Parse__shen_4_5anymulti_6) +reg301842 := PrimNot(reg301841) +if reg301842 == True { +reg301843 := PrimHead(Parse__shen_4_5anymulti_6) +reg301844 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301843, reg301844) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5anymulti_6}) + +__defun__shen_4_5whitespaces_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2579 := __args[0] +_ = V2579 +reg301848 := __e.Call(__defun__shen_4_5whitespace_6, V2579) +Parse__shen_4_5whitespace_6 := reg301848 +_ = Parse__shen_4_5whitespace_6 +reg301849 := __e.Call(__defun__fail) +reg301850 := PrimEqual(reg301849, Parse__shen_4_5whitespace_6) +reg301851 := PrimNot(reg301850) +var reg301862 Obj +if reg301851 == True { +reg301852 := __e.Call(__defun__shen_4_5whitespaces_6, Parse__shen_4_5whitespace_6) +Parse__shen_4_5whitespaces_6 := reg301852 +_ = Parse__shen_4_5whitespaces_6 +reg301853 := __e.Call(__defun__fail) +reg301854 := PrimEqual(reg301853, Parse__shen_4_5whitespaces_6) +reg301855 := PrimNot(reg301854) +var reg301860 Obj +if reg301855 == True { +reg301856 := PrimHead(Parse__shen_4_5whitespaces_6) +reg301857 := MakeSymbol("shen.skip") +reg301858 := __e.Call(__defun__shen_4pair, reg301856, reg301857) +reg301860 = reg301858 +} else { +reg301859 := __e.Call(__defun__fail) +reg301860 = reg301859 +} +reg301862 = reg301860 +} else { +reg301861 := __e.Call(__defun__fail) +reg301862 = reg301861 +} +YaccParse := reg301862 +_ = YaccParse +reg301863 := __e.Call(__defun__fail) +reg301864 := PrimEqual(YaccParse, reg301863) +if reg301864 == True { +reg301865 := __e.Call(__defun__shen_4_5whitespace_6, V2579) +Parse__shen_4_5whitespace_6 := reg301865 +_ = Parse__shen_4_5whitespace_6 +reg301866 := __e.Call(__defun__fail) +reg301867 := PrimEqual(reg301866, Parse__shen_4_5whitespace_6) +reg301868 := PrimNot(reg301867) +if reg301868 == True { +reg301869 := PrimHead(Parse__shen_4_5whitespace_6) +reg301870 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301869, reg301870) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5whitespaces_6}) + +__defun__shen_4_5whitespace_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2581 := __args[0] +_ = V2581 +reg301873 := PrimHead(V2581) +reg301874 := PrimIsPair(reg301873) +if reg301874 == True { +reg301875 := PrimHead(V2581) +reg301876 := PrimHead(reg301875) +Parse__X := reg301876 +_ = Parse__X +Parse__Case := Parse__X +_ = Parse__Case +reg301877 := MakeNumber(32) +reg301878 := PrimEqual(Parse__Case, reg301877) +var reg301899 Obj +if reg301878 == True { +reg301879 := True; +reg301899 = reg301879 +} else { +reg301880 := MakeNumber(13) +reg301881 := PrimEqual(Parse__Case, reg301880) +var reg301895 Obj +if reg301881 == True { +reg301882 := True; +reg301895 = reg301882 +} else { +reg301883 := MakeNumber(10) +reg301884 := PrimEqual(Parse__Case, reg301883) +var reg301891 Obj +if reg301884 == True { +reg301885 := True; +reg301891 = reg301885 +} else { +reg301886 := MakeNumber(9) +reg301887 := PrimEqual(Parse__Case, reg301886) +var reg301890 Obj +if reg301887 == True { +reg301888 := True; +reg301890 = reg301888 +} else { +reg301889 := False; +reg301890 = reg301889 +} +reg301891 = reg301890 +} +var reg301894 Obj +if reg301891 == True { +reg301892 := True; +reg301894 = reg301892 +} else { +reg301893 := False; +reg301894 = reg301893 +} +reg301895 = reg301894 +} +var reg301898 Obj +if reg301895 == True { +reg301896 := True; +reg301898 = reg301896 +} else { +reg301897 := False; +reg301898 = reg301897 +} +reg301899 = reg301898 +} +if reg301899 == True { +reg301900 := PrimHead(V2581) +reg301901 := PrimTail(reg301900) +reg301902 := __e.Call(__defun__shen_4hdtl, V2581) +reg301903 := __e.Call(__defun__shen_4pair, reg301901, reg301902) +reg301904 := PrimHead(reg301903) +reg301905 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg301904, reg301905) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5whitespace_6}) + +__defun__shen_4cons__form = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2583 := __args[0] +_ = V2583 +reg301909 := Nil; +reg301910 := PrimEqual(reg301909, V2583) +if reg301910 == True { +reg301911 := Nil; +__ctx.Return(reg301911) +return +} else { +reg301912 := PrimIsPair(V2583) +var reg301946 Obj +if reg301912 == True { +reg301913 := PrimTail(V2583) +reg301914 := PrimIsPair(reg301913) +var reg301941 Obj +if reg301914 == True { +reg301915 := PrimTail(V2583) +reg301916 := PrimTail(reg301915) +reg301917 := PrimIsPair(reg301916) +var reg301936 Obj +if reg301917 == True { +reg301918 := Nil; +reg301919 := PrimTail(V2583) +reg301920 := PrimTail(reg301919) +reg301921 := PrimTail(reg301920) +reg301922 := PrimEqual(reg301918, reg301921) +var reg301931 Obj +if reg301922 == True { +reg301923 := PrimTail(V2583) +reg301924 := PrimHead(reg301923) +reg301925 := MakeSymbol("bar!") +reg301926 := PrimEqual(reg301924, reg301925) +var reg301929 Obj +if reg301926 == True { +reg301927 := True; +reg301929 = reg301927 +} else { +reg301928 := False; +reg301929 = reg301928 +} +reg301931 = reg301929 +} else { +reg301930 := False; +reg301931 = reg301930 +} +var reg301934 Obj +if reg301931 == True { +reg301932 := True; +reg301934 = reg301932 +} else { +reg301933 := False; +reg301934 = reg301933 +} +reg301936 = reg301934 +} else { +reg301935 := False; +reg301936 = reg301935 +} +var reg301939 Obj +if reg301936 == True { +reg301937 := True; +reg301939 = reg301937 +} else { +reg301938 := False; +reg301939 = reg301938 +} +reg301941 = reg301939 +} else { +reg301940 := False; +reg301941 = reg301940 +} +var reg301944 Obj +if reg301941 == True { +reg301942 := True; +reg301944 = reg301942 +} else { +reg301943 := False; +reg301944 = reg301943 +} +reg301946 = reg301944 +} else { +reg301945 := False; +reg301946 = reg301945 +} +if reg301946 == True { +reg301947 := MakeSymbol("cons") +reg301948 := PrimHead(V2583) +reg301949 := PrimTail(V2583) +reg301950 := PrimTail(reg301949) +reg301951 := PrimCons(reg301948, reg301950) +reg301952 := PrimCons(reg301947, reg301951) +__ctx.Return(reg301952) +return +} else { +reg301953 := PrimIsPair(V2583) +if reg301953 == True { +reg301954 := MakeSymbol("cons") +reg301955 := PrimHead(V2583) +reg301956 := PrimTail(V2583) +reg301957 := __e.Call(__defun__shen_4cons__form, reg301956) +reg301958 := Nil; +reg301959 := PrimCons(reg301957, reg301958) +reg301960 := PrimCons(reg301955, reg301959) +reg301961 := PrimCons(reg301954, reg301960) +__ctx.Return(reg301961) +return +} else { +reg301962 := MakeSymbol("shen.cons_form") +__ctx.TailApply(__defun__shen_4f__error, reg301962) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.cons_form", value: __defun__shen_4cons__form}) + +__defun__shen_4package_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2588 := __args[0] +_ = V2588 +V2589 := __args[1] +_ = V2589 +reg301964 := PrimIsPair(V2588) +var reg301988 Obj +if reg301964 == True { +reg301965 := MakeSymbol("$") +reg301966 := PrimHead(V2588) +reg301967 := PrimEqual(reg301965, reg301966) +var reg301983 Obj +if reg301967 == True { +reg301968 := PrimTail(V2588) +reg301969 := PrimIsPair(reg301968) +var reg301978 Obj +if reg301969 == True { +reg301970 := Nil; +reg301971 := PrimTail(V2588) +reg301972 := PrimTail(reg301971) +reg301973 := PrimEqual(reg301970, reg301972) +var reg301976 Obj +if reg301973 == True { +reg301974 := True; +reg301976 = reg301974 +} else { +reg301975 := False; +reg301976 = reg301975 +} +reg301978 = reg301976 +} else { +reg301977 := False; +reg301978 = reg301977 +} +var reg301981 Obj +if reg301978 == True { +reg301979 := True; +reg301981 = reg301979 +} else { +reg301980 := False; +reg301981 = reg301980 +} +reg301983 = reg301981 +} else { +reg301982 := False; +reg301983 = reg301982 +} +var reg301986 Obj +if reg301983 == True { +reg301984 := True; +reg301986 = reg301984 +} else { +reg301985 := False; +reg301986 = reg301985 +} +reg301988 = reg301986 +} else { +reg301987 := False; +reg301988 = reg301987 +} +if reg301988 == True { +reg301989 := PrimTail(V2588) +reg301990 := PrimHead(reg301989) +reg301991 := __e.Call(__defun__explode, reg301990) +__ctx.TailApply(__defun__append, reg301991, V2589) +return +} else { +reg301993 := PrimIsPair(V2588) +var reg302025 Obj +if reg301993 == True { +reg301994 := MakeSymbol("package") +reg301995 := PrimHead(V2588) +reg301996 := PrimEqual(reg301994, reg301995) +var reg302020 Obj +if reg301996 == True { +reg301997 := PrimTail(V2588) +reg301998 := PrimIsPair(reg301997) +var reg302015 Obj +if reg301998 == True { +reg301999 := MakeSymbol("null") +reg302000 := PrimTail(V2588) +reg302001 := PrimHead(reg302000) +reg302002 := PrimEqual(reg301999, reg302001) +var reg302010 Obj +if reg302002 == True { +reg302003 := PrimTail(V2588) +reg302004 := PrimTail(reg302003) +reg302005 := PrimIsPair(reg302004) +var reg302008 Obj +if reg302005 == True { +reg302006 := True; +reg302008 = reg302006 +} else { +reg302007 := False; +reg302008 = reg302007 +} +reg302010 = reg302008 +} else { +reg302009 := False; +reg302010 = reg302009 +} +var reg302013 Obj +if reg302010 == True { +reg302011 := True; +reg302013 = reg302011 +} else { +reg302012 := False; +reg302013 = reg302012 +} +reg302015 = reg302013 +} else { +reg302014 := False; +reg302015 = reg302014 +} +var reg302018 Obj +if reg302015 == True { +reg302016 := True; +reg302018 = reg302016 +} else { +reg302017 := False; +reg302018 = reg302017 +} +reg302020 = reg302018 +} else { +reg302019 := False; +reg302020 = reg302019 +} +var reg302023 Obj +if reg302020 == True { +reg302021 := True; +reg302023 = reg302021 +} else { +reg302022 := False; +reg302023 = reg302022 +} +reg302025 = reg302023 +} else { +reg302024 := False; +reg302025 = reg302024 +} +if reg302025 == True { +reg302026 := PrimTail(V2588) +reg302027 := PrimTail(reg302026) +reg302028 := PrimTail(reg302027) +__ctx.TailApply(__defun__append, reg302028, V2589) +return +} else { +reg302030 := PrimIsPair(V2588) +var reg302053 Obj +if reg302030 == True { +reg302031 := MakeSymbol("package") +reg302032 := PrimHead(V2588) +reg302033 := PrimEqual(reg302031, reg302032) +var reg302048 Obj +if reg302033 == True { +reg302034 := PrimTail(V2588) +reg302035 := PrimIsPair(reg302034) +var reg302043 Obj +if reg302035 == True { +reg302036 := PrimTail(V2588) +reg302037 := PrimTail(reg302036) +reg302038 := PrimIsPair(reg302037) +var reg302041 Obj +if reg302038 == True { +reg302039 := True; +reg302041 = reg302039 +} else { +reg302040 := False; +reg302041 = reg302040 +} +reg302043 = reg302041 +} else { +reg302042 := False; +reg302043 = reg302042 +} +var reg302046 Obj +if reg302043 == True { +reg302044 := True; +reg302046 = reg302044 +} else { +reg302045 := False; +reg302046 = reg302045 +} +reg302048 = reg302046 +} else { +reg302047 := False; +reg302048 = reg302047 +} +var reg302051 Obj +if reg302048 == True { +reg302049 := True; +reg302051 = reg302049 +} else { +reg302050 := False; +reg302051 = reg302050 +} +reg302053 = reg302051 +} else { +reg302052 := False; +reg302053 = reg302052 +} +if reg302053 == True { +reg302054 := PrimTail(V2588) +reg302055 := PrimTail(reg302054) +reg302056 := PrimHead(reg302055) +reg302057 := __e.Call(__defun__shen_4eval_1without_1macros, reg302056) +ListofExceptions := reg302057 +_ = ListofExceptions +reg302058 := PrimTail(V2588) +reg302059 := PrimHead(reg302058) +reg302060 := __e.Call(__defun__shen_4record_1exceptions, ListofExceptions, reg302059) +External := reg302060 +_ = External +reg302061 := PrimTail(V2588) +reg302062 := PrimHead(reg302061) +reg302063 := PrimStr(reg302062) +reg302064 := MakeString(".") +reg302065 := PrimStringConcat(reg302063, reg302064) +reg302066 := PrimIntern(reg302065) +PackageNameDot := reg302066 +_ = PackageNameDot +reg302067 := __e.Call(__defun__explode, PackageNameDot) +ExpPackageNameDot := reg302067 +_ = ExpPackageNameDot +reg302068 := PrimTail(V2588) +reg302069 := PrimTail(reg302068) +reg302070 := PrimTail(reg302069) +reg302071 := __e.Call(__defun__shen_4packageh, PackageNameDot, ListofExceptions, reg302070, ExpPackageNameDot) +Packaged := reg302071 +_ = Packaged +reg302072 := PrimTail(V2588) +reg302073 := PrimHead(reg302072) +reg302074 := __e.Call(__defun__shen_4internal_1symbols, ExpPackageNameDot, Packaged) +reg302075 := __e.Call(__defun__shen_4record_1internal, reg302073, reg302074) +Internal := reg302075 +_ = Internal +__ctx.TailApply(__defun__append, Packaged, V2589) +return +} else { +reg302077 := PrimCons(V2588, V2589) +__ctx.Return(reg302077) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.package-macro", value: __defun__shen_4package_1macro}) + +__defun__shen_4record_1exceptions = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2592 := __args[0] +_ = V2592 +V2593 := __args[1] +_ = V2593 +reg302078 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg302079 := MakeSymbol("shen.external-symbols") +reg302080 := MakeSymbol("*property-vector*") +reg302081 := PrimValue(reg302080) +__ctx.TailApply(__defun__get, V2593, reg302079, reg302081) +return +}, 0) +reg302083 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg302084 := Nil; +__ctx.Return(reg302084) +return +}, 1) +reg302085 := __e.Try(reg302078).Catch(reg302083) +CurrExceptions := reg302085 +_ = CurrExceptions +reg302086 := __e.Call(__defun__union, V2592, CurrExceptions) +AllExceptions := reg302086 +_ = AllExceptions +reg302087 := MakeSymbol("shen.external-symbols") +reg302088 := MakeSymbol("*property-vector*") +reg302089 := PrimValue(reg302088) +__ctx.TailApply(__defun__put, V2593, reg302087, AllExceptions, reg302089) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.record-exceptions", value: __defun__shen_4record_1exceptions}) + +__defun__shen_4record_1internal = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2596 := __args[0] +_ = V2596 +V2597 := __args[1] +_ = V2597 +reg302091 := MakeSymbol("shen.internal-symbols") +reg302092 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg302093 := MakeSymbol("shen.internal-symbols") +reg302094 := MakeSymbol("*property-vector*") +reg302095 := PrimValue(reg302094) +__ctx.TailApply(__defun__get, V2596, reg302093, reg302095) +return +}, 0) +reg302097 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg302098 := Nil; +__ctx.Return(reg302098) +return +}, 1) +reg302099 := __e.Try(reg302092).Catch(reg302097) +reg302100 := __e.Call(__defun__union, V2597, reg302099) +reg302101 := MakeSymbol("*property-vector*") +reg302102 := PrimValue(reg302101) +__ctx.TailApply(__defun__put, V2596, reg302091, reg302100, reg302102) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.record-internal", value: __defun__shen_4record_1internal}) + +__defun__shen_4internal_1symbols = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2608 := __args[0] +_ = V2608 +V2609 := __args[1] +_ = V2609 +reg302104 := PrimIsSymbol(V2609) +var reg302111 Obj +if reg302104 == True { +reg302105 := __e.Call(__defun__explode, V2609) +reg302106 := __e.Call(__defun__shen_4prefix_2, V2608, reg302105) +var reg302109 Obj +if reg302106 == True { +reg302107 := True; +reg302109 = reg302107 +} else { +reg302108 := False; +reg302109 = reg302108 +} +reg302111 = reg302109 +} else { +reg302110 := False; +reg302111 = reg302110 +} +if reg302111 == True { +reg302112 := Nil; +reg302113 := PrimCons(V2609, reg302112) +__ctx.Return(reg302113) +return +} else { +reg302114 := PrimIsPair(V2609) +if reg302114 == True { +reg302115 := PrimHead(V2609) +reg302116 := __e.Call(__defun__shen_4internal_1symbols, V2608, reg302115) +reg302117 := PrimTail(V2609) +reg302118 := __e.Call(__defun__shen_4internal_1symbols, V2608, reg302117) +__ctx.TailApply(__defun__union, reg302116, reg302118) +return +} else { +reg302120 := Nil; +__ctx.Return(reg302120) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.internal-symbols", value: __defun__shen_4internal_1symbols}) + +__defun__shen_4packageh = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2626 := __args[0] +_ = V2626 +V2627 := __args[1] +_ = V2627 +V2628 := __args[2] +_ = V2628 +V2629 := __args[3] +_ = V2629 +reg302121 := PrimIsPair(V2628) +if reg302121 == True { +reg302122 := PrimHead(V2628) +reg302123 := __e.Call(__defun__shen_4packageh, V2626, V2627, reg302122, V2629) +reg302124 := PrimTail(V2628) +reg302125 := __e.Call(__defun__shen_4packageh, V2626, V2627, reg302124, V2629) +reg302126 := PrimCons(reg302123, reg302125) +__ctx.Return(reg302126) +return +} else { +reg302127 := __e.Call(__defun__shen_4sysfunc_2, V2628) +var reg302151 Obj +if reg302127 == True { +reg302128 := True; +reg302151 = reg302128 +} else { +reg302129 := PrimIsVariable(V2628) +var reg302147 Obj +if reg302129 == True { +reg302130 := True; +reg302147 = reg302130 +} else { +reg302131 := __e.Call(__defun__element_2, V2628, V2627) +var reg302143 Obj +if reg302131 == True { +reg302132 := True; +reg302143 = reg302132 +} else { +reg302133 := __e.Call(__defun__shen_4doubleunderline_2, V2628) +var reg302139 Obj +if reg302133 == True { +reg302134 := True; +reg302139 = reg302134 +} else { +reg302135 := __e.Call(__defun__shen_4singleunderline_2, V2628) +var reg302138 Obj +if reg302135 == True { +reg302136 := True; +reg302138 = reg302136 +} else { +reg302137 := False; +reg302138 = reg302137 +} +reg302139 = reg302138 +} +var reg302142 Obj +if reg302139 == True { +reg302140 := True; +reg302142 = reg302140 +} else { +reg302141 := False; +reg302142 = reg302141 +} +reg302143 = reg302142 +} +var reg302146 Obj +if reg302143 == True { +reg302144 := True; +reg302146 = reg302144 +} else { +reg302145 := False; +reg302146 = reg302145 +} +reg302147 = reg302146 +} +var reg302150 Obj +if reg302147 == True { +reg302148 := True; +reg302150 = reg302148 +} else { +reg302149 := False; +reg302150 = reg302149 +} +reg302151 = reg302150 +} +if reg302151 == True { +__ctx.Return(V2628) +return +} else { +reg302152 := PrimIsSymbol(V2628) +var reg302178 Obj +if reg302152 == True { +reg302153 := __e.Call(__defun__explode, V2628) +ExplodeX := reg302153 +_ = ExplodeX +reg302154 := MakeString("s") +reg302155 := MakeString("h") +reg302156 := MakeString("e") +reg302157 := MakeString("n") +reg302158 := MakeString(".") +reg302159 := Nil; +reg302160 := PrimCons(reg302158, reg302159) +reg302161 := PrimCons(reg302157, reg302160) +reg302162 := PrimCons(reg302156, reg302161) +reg302163 := PrimCons(reg302155, reg302162) +reg302164 := PrimCons(reg302154, reg302163) +reg302165 := __e.Call(__defun__shen_4prefix_2, reg302164, ExplodeX) +reg302166 := PrimNot(reg302165) +var reg302173 Obj +if reg302166 == True { +reg302167 := __e.Call(__defun__shen_4prefix_2, V2629, ExplodeX) +reg302168 := PrimNot(reg302167) +var reg302171 Obj +if reg302168 == True { +reg302169 := True; +reg302171 = reg302169 +} else { +reg302170 := False; +reg302171 = reg302170 +} +reg302173 = reg302171 +} else { +reg302172 := False; +reg302173 = reg302172 +} +var reg302176 Obj +if reg302173 == True { +reg302174 := True; +reg302176 = reg302174 +} else { +reg302175 := False; +reg302176 = reg302175 +} +reg302178 = reg302176 +} else { +reg302177 := False; +reg302178 = reg302177 +} +if reg302178 == True { +__ctx.TailApply(__defun__concat, V2626, V2628) +return +} else { +__ctx.Return(V2628) +return +} +} +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.packageh", value: __defun__shen_4packageh}) + +} diff --git a/cmd/shen/sequent.go b/cmd/shen/sequent.go new file mode 100644 index 0000000..b27d941 --- /dev/null +++ b/cmd/shen/sequent.go @@ -0,0 +1,3286 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__shen_4datatype_1error Obj // shen.datatype-error +var __defun__shen_4_5datatype_1rules_6 Obj // shen. +var __defun__shen_4_5datatype_1rule_6 Obj // shen. +var __defun__shen_4_5side_1conditions_6 Obj // shen. +var __defun__shen_4_5side_1condition_6 Obj // shen. +var __defun__shen_4_5variable_2_6 Obj // shen. +var __defun__shen_4_5expr_6 Obj // shen. +var __defun__shen_4remove_1bar Obj // shen.remove-bar +var __defun__shen_4_5premises_6 Obj // shen. +var __defun__shen_4_5semicolon_1symbol_6 Obj // shen. +var __defun__shen_4_5premise_6 Obj // shen. +var __defun__shen_4_5conclusion_6 Obj // shen. +var __defun__shen_4sequent Obj // shen.sequent +var __defun__shen_4_5formulae_6 Obj // shen. +var __defun__shen_4_5comma_1symbol_6 Obj // shen. +var __defun__shen_4_5formula_6 Obj // shen. +var __defun__shen_4_5type_6 Obj // shen. +var __defun__shen_4_5doubleunderline_6 Obj // shen. +var __defun__shen_4_5singleunderline_6 Obj // shen. +var __defun__shen_4singleunderline_2 Obj // shen.singleunderline? +var __defun__shen_4sh_2 Obj // shen.sh? +var __defun__shen_4doubleunderline_2 Obj // shen.doubleunderline? +var __defun__shen_4dh_2 Obj // shen.dh? +var __defun__shen_4process_1datatype Obj // shen.process-datatype +var __defun__shen_4remember_1datatype Obj // shen.remember-datatype +var __defun__shen_4rules_1_6horn_1clauses Obj // shen.rules->horn-clauses +var __defun__shen_4double_1_6singles Obj // shen.double->singles +var __defun__shen_4right_1rule Obj // shen.right-rule +var __defun__shen_4left_1rule Obj // shen.left-rule +var __defun__shen_4right_1_6left Obj // shen.right->left +var __defun__shen_4rule_1_6horn_1clause Obj // shen.rule->horn-clause +var __defun__shen_4rule_1_6horn_1clause_1head Obj // shen.rule->horn-clause-head +var __defun__shen_4mode_1ify Obj // shen.mode-ify +var __defun__shen_4rule_1_6horn_1clause_1body Obj // shen.rule->horn-clause-body +var __defun__shen_4construct_1search_1literals Obj // shen.construct-search-literals +var __defun__shen_4csl_1help Obj // shen.csl-help +var __defun__shen_4construct_1search_1clauses Obj // shen.construct-search-clauses +var __defun__shen_4construct_1search_1clause Obj // shen.construct-search-clause +var __defun__shen_4construct_1base_1search_1clause Obj // shen.construct-base-search-clause +var __defun__shen_4construct_1recursive_1search_1clause Obj // shen.construct-recursive-search-clause +var __defun__shen_4construct_1side_1literals Obj // shen.construct-side-literals +var __defun__shen_4construct_1premiss_1literal Obj // shen.construct-premiss-literal +var __defun__shen_4construct_1context Obj // shen.construct-context +var __defun__shen_4recursive__cons__form Obj // shen.recursive_cons_form +var __defun__preclude Obj // preclude +var __defun__shen_4preclude_1h Obj // shen.preclude-h +var __defun__include Obj // include +var __defun__shen_4include_1h Obj // shen.include-h +var __defun__preclude_1all_1but Obj // preclude-all-but +var __defun__include_1all_1but Obj // include-all-but +var __defun__shen_4synonyms_1help Obj // shen.synonyms-help +var __defun__shen_4pushnew Obj // shen.pushnew +var __defun__shen_4demod_1rule Obj // shen.demod-rule +var __defun__shen_4lambda_1of_1defun Obj // shen.lambda-of-defun +var __defun__shen_4update_1demodulation_1function Obj // shen.update-demodulation-function +var __defun__shen_4default_1rule Obj // shen.default-rule + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297444 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg297444) +return +}, 0)) +__defun__shen_4datatype_1error = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2635 := __args[0] +_ = V2635 +reg297445 := PrimIsPair(V2635) +var reg297461 Obj +if reg297445 == True { +reg297446 := PrimTail(V2635) +reg297447 := PrimIsPair(reg297446) +var reg297456 Obj +if reg297447 == True { +reg297448 := Nil; +reg297449 := PrimTail(V2635) +reg297450 := PrimTail(reg297449) +reg297451 := PrimEqual(reg297448, reg297450) +var reg297454 Obj +if reg297451 == True { +reg297452 := True; +reg297454 = reg297452 +} else { +reg297453 := False; +reg297454 = reg297453 +} +reg297456 = reg297454 +} else { +reg297455 := False; +reg297456 = reg297455 +} +var reg297459 Obj +if reg297456 == True { +reg297457 := True; +reg297459 = reg297457 +} else { +reg297458 := False; +reg297459 = reg297458 +} +reg297461 = reg297459 +} else { +reg297460 := False; +reg297461 = reg297460 +} +if reg297461 == True { +reg297462 := MakeString("datatype syntax error here:\n\n ") +reg297463 := MakeNumber(50) +reg297464 := PrimHead(V2635) +reg297465 := __e.Call(__defun__shen_4next_150, reg297463, reg297464) +reg297466 := MakeString("\n") +reg297467 := MakeSymbol("shen.a") +reg297468 := __e.Call(__defun__shen_4app, reg297465, reg297466, reg297467) +reg297469 := PrimStringConcat(reg297462, reg297468) +reg297470 := PrimSimpleError(reg297469) +__ctx.Return(reg297470) +return +} else { +reg297471 := MakeSymbol("shen.datatype-error") +__ctx.TailApply(__defun__shen_4f__error, reg297471) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.datatype-error", value: __defun__shen_4datatype_1error}) + +__defun__shen_4_5datatype_1rules_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2637 := __args[0] +_ = V2637 +reg297473 := __e.Call(__defun__shen_4_5datatype_1rule_6, V2637) +Parse__shen_4_5datatype_1rule_6 := reg297473 +_ = Parse__shen_4_5datatype_1rule_6 +reg297474 := __e.Call(__defun__fail) +reg297475 := PrimEqual(reg297474, Parse__shen_4_5datatype_1rule_6) +reg297476 := PrimNot(reg297475) +var reg297489 Obj +if reg297476 == True { +reg297477 := __e.Call(__defun__shen_4_5datatype_1rules_6, Parse__shen_4_5datatype_1rule_6) +Parse__shen_4_5datatype_1rules_6 := reg297477 +_ = Parse__shen_4_5datatype_1rules_6 +reg297478 := __e.Call(__defun__fail) +reg297479 := PrimEqual(reg297478, Parse__shen_4_5datatype_1rules_6) +reg297480 := PrimNot(reg297479) +var reg297487 Obj +if reg297480 == True { +reg297481 := PrimHead(Parse__shen_4_5datatype_1rules_6) +reg297482 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5datatype_1rule_6) +reg297483 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5datatype_1rules_6) +reg297484 := PrimCons(reg297482, reg297483) +reg297485 := __e.Call(__defun__shen_4pair, reg297481, reg297484) +reg297487 = reg297485 +} else { +reg297486 := __e.Call(__defun__fail) +reg297487 = reg297486 +} +reg297489 = reg297487 +} else { +reg297488 := __e.Call(__defun__fail) +reg297489 = reg297488 +} +YaccParse := reg297489 +_ = YaccParse +reg297490 := __e.Call(__defun__fail) +reg297491 := PrimEqual(YaccParse, reg297490) +if reg297491 == True { +reg297492 := __e.Call(__defun___5e_6, V2637) +Parse___5e_6 := reg297492 +_ = Parse___5e_6 +reg297493 := __e.Call(__defun__fail) +reg297494 := PrimEqual(reg297493, Parse___5e_6) +reg297495 := PrimNot(reg297494) +if reg297495 == True { +reg297496 := PrimHead(Parse___5e_6) +reg297497 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg297496, reg297497) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5datatype_1rules_6}) + +__defun__shen_4_5datatype_1rule_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2639 := __args[0] +_ = V2639 +reg297500 := __e.Call(__defun__shen_4_5side_1conditions_6, V2639) +Parse__shen_4_5side_1conditions_6 := reg297500 +_ = Parse__shen_4_5side_1conditions_6 +reg297501 := __e.Call(__defun__fail) +reg297502 := PrimEqual(reg297501, Parse__shen_4_5side_1conditions_6) +reg297503 := PrimNot(reg297502) +var reg297534 Obj +if reg297503 == True { +reg297504 := __e.Call(__defun__shen_4_5premises_6, Parse__shen_4_5side_1conditions_6) +Parse__shen_4_5premises_6 := reg297504 +_ = Parse__shen_4_5premises_6 +reg297505 := __e.Call(__defun__fail) +reg297506 := PrimEqual(reg297505, Parse__shen_4_5premises_6) +reg297507 := PrimNot(reg297506) +var reg297532 Obj +if reg297507 == True { +reg297508 := __e.Call(__defun__shen_4_5singleunderline_6, Parse__shen_4_5premises_6) +Parse__shen_4_5singleunderline_6 := reg297508 +_ = Parse__shen_4_5singleunderline_6 +reg297509 := __e.Call(__defun__fail) +reg297510 := PrimEqual(reg297509, Parse__shen_4_5singleunderline_6) +reg297511 := PrimNot(reg297510) +var reg297530 Obj +if reg297511 == True { +reg297512 := __e.Call(__defun__shen_4_5conclusion_6, Parse__shen_4_5singleunderline_6) +Parse__shen_4_5conclusion_6 := reg297512 +_ = Parse__shen_4_5conclusion_6 +reg297513 := __e.Call(__defun__fail) +reg297514 := PrimEqual(reg297513, Parse__shen_4_5conclusion_6) +reg297515 := PrimNot(reg297514) +var reg297528 Obj +if reg297515 == True { +reg297516 := PrimHead(Parse__shen_4_5conclusion_6) +reg297517 := MakeSymbol("shen.single") +reg297518 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5side_1conditions_6) +reg297519 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5premises_6) +reg297520 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5conclusion_6) +reg297521 := Nil; +reg297522 := PrimCons(reg297520, reg297521) +reg297523 := PrimCons(reg297519, reg297522) +reg297524 := PrimCons(reg297518, reg297523) +reg297525 := __e.Call(__defun__shen_4sequent, reg297517, reg297524) +reg297526 := __e.Call(__defun__shen_4pair, reg297516, reg297525) +reg297528 = reg297526 +} else { +reg297527 := __e.Call(__defun__fail) +reg297528 = reg297527 +} +reg297530 = reg297528 +} else { +reg297529 := __e.Call(__defun__fail) +reg297530 = reg297529 +} +reg297532 = reg297530 +} else { +reg297531 := __e.Call(__defun__fail) +reg297532 = reg297531 +} +reg297534 = reg297532 +} else { +reg297533 := __e.Call(__defun__fail) +reg297534 = reg297533 +} +YaccParse := reg297534 +_ = YaccParse +reg297535 := __e.Call(__defun__fail) +reg297536 := PrimEqual(YaccParse, reg297535) +if reg297536 == True { +reg297537 := __e.Call(__defun__shen_4_5side_1conditions_6, V2639) +Parse__shen_4_5side_1conditions_6 := reg297537 +_ = Parse__shen_4_5side_1conditions_6 +reg297538 := __e.Call(__defun__fail) +reg297539 := PrimEqual(reg297538, Parse__shen_4_5side_1conditions_6) +reg297540 := PrimNot(reg297539) +if reg297540 == True { +reg297541 := __e.Call(__defun__shen_4_5premises_6, Parse__shen_4_5side_1conditions_6) +Parse__shen_4_5premises_6 := reg297541 +_ = Parse__shen_4_5premises_6 +reg297542 := __e.Call(__defun__fail) +reg297543 := PrimEqual(reg297542, Parse__shen_4_5premises_6) +reg297544 := PrimNot(reg297543) +if reg297544 == True { +reg297545 := __e.Call(__defun__shen_4_5doubleunderline_6, Parse__shen_4_5premises_6) +Parse__shen_4_5doubleunderline_6 := reg297545 +_ = Parse__shen_4_5doubleunderline_6 +reg297546 := __e.Call(__defun__fail) +reg297547 := PrimEqual(reg297546, Parse__shen_4_5doubleunderline_6) +reg297548 := PrimNot(reg297547) +if reg297548 == True { +reg297549 := __e.Call(__defun__shen_4_5conclusion_6, Parse__shen_4_5doubleunderline_6) +Parse__shen_4_5conclusion_6 := reg297549 +_ = Parse__shen_4_5conclusion_6 +reg297550 := __e.Call(__defun__fail) +reg297551 := PrimEqual(reg297550, Parse__shen_4_5conclusion_6) +reg297552 := PrimNot(reg297551) +if reg297552 == True { +reg297553 := PrimHead(Parse__shen_4_5conclusion_6) +reg297554 := MakeSymbol("shen.double") +reg297555 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5side_1conditions_6) +reg297556 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5premises_6) +reg297557 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5conclusion_6) +reg297558 := Nil; +reg297559 := PrimCons(reg297557, reg297558) +reg297560 := PrimCons(reg297556, reg297559) +reg297561 := PrimCons(reg297555, reg297560) +reg297562 := __e.Call(__defun__shen_4sequent, reg297554, reg297561) +__ctx.TailApply(__defun__shen_4pair, reg297553, reg297562) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5datatype_1rule_6}) + +__defun__shen_4_5side_1conditions_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2641 := __args[0] +_ = V2641 +reg297568 := __e.Call(__defun__shen_4_5side_1condition_6, V2641) +Parse__shen_4_5side_1condition_6 := reg297568 +_ = Parse__shen_4_5side_1condition_6 +reg297569 := __e.Call(__defun__fail) +reg297570 := PrimEqual(reg297569, Parse__shen_4_5side_1condition_6) +reg297571 := PrimNot(reg297570) +var reg297584 Obj +if reg297571 == True { +reg297572 := __e.Call(__defun__shen_4_5side_1conditions_6, Parse__shen_4_5side_1condition_6) +Parse__shen_4_5side_1conditions_6 := reg297572 +_ = Parse__shen_4_5side_1conditions_6 +reg297573 := __e.Call(__defun__fail) +reg297574 := PrimEqual(reg297573, Parse__shen_4_5side_1conditions_6) +reg297575 := PrimNot(reg297574) +var reg297582 Obj +if reg297575 == True { +reg297576 := PrimHead(Parse__shen_4_5side_1conditions_6) +reg297577 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5side_1condition_6) +reg297578 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5side_1conditions_6) +reg297579 := PrimCons(reg297577, reg297578) +reg297580 := __e.Call(__defun__shen_4pair, reg297576, reg297579) +reg297582 = reg297580 +} else { +reg297581 := __e.Call(__defun__fail) +reg297582 = reg297581 +} +reg297584 = reg297582 +} else { +reg297583 := __e.Call(__defun__fail) +reg297584 = reg297583 +} +YaccParse := reg297584 +_ = YaccParse +reg297585 := __e.Call(__defun__fail) +reg297586 := PrimEqual(YaccParse, reg297585) +if reg297586 == True { +reg297587 := __e.Call(__defun___5e_6, V2641) +Parse___5e_6 := reg297587 +_ = Parse___5e_6 +reg297588 := __e.Call(__defun__fail) +reg297589 := PrimEqual(reg297588, Parse___5e_6) +reg297590 := PrimNot(reg297589) +if reg297590 == True { +reg297591 := PrimHead(Parse___5e_6) +reg297592 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg297591, reg297592) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5side_1conditions_6}) + +__defun__shen_4_5side_1condition_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2643 := __args[0] +_ = V2643 +reg297595 := PrimHead(V2643) +reg297596 := PrimIsPair(reg297595) +var reg297605 Obj +if reg297596 == True { +reg297597 := MakeSymbol("if") +reg297598 := PrimHead(V2643) +reg297599 := PrimHead(reg297598) +reg297600 := PrimEqual(reg297597, reg297599) +var reg297603 Obj +if reg297600 == True { +reg297601 := True; +reg297603 = reg297601 +} else { +reg297602 := False; +reg297603 = reg297602 +} +reg297605 = reg297603 +} else { +reg297604 := False; +reg297605 = reg297604 +} +var reg297624 Obj +if reg297605 == True { +reg297606 := PrimHead(V2643) +reg297607 := PrimTail(reg297606) +reg297608 := __e.Call(__defun__shen_4hdtl, V2643) +reg297609 := __e.Call(__defun__shen_4pair, reg297607, reg297608) +reg297610 := __e.Call(__defun__shen_4_5expr_6, reg297609) +Parse__shen_4_5expr_6 := reg297610 +_ = Parse__shen_4_5expr_6 +reg297611 := __e.Call(__defun__fail) +reg297612 := PrimEqual(reg297611, Parse__shen_4_5expr_6) +reg297613 := PrimNot(reg297612) +var reg297622 Obj +if reg297613 == True { +reg297614 := PrimHead(Parse__shen_4_5expr_6) +reg297615 := MakeSymbol("if") +reg297616 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5expr_6) +reg297617 := Nil; +reg297618 := PrimCons(reg297616, reg297617) +reg297619 := PrimCons(reg297615, reg297618) +reg297620 := __e.Call(__defun__shen_4pair, reg297614, reg297619) +reg297622 = reg297620 +} else { +reg297621 := __e.Call(__defun__fail) +reg297622 = reg297621 +} +reg297624 = reg297622 +} else { +reg297623 := __e.Call(__defun__fail) +reg297624 = reg297623 +} +YaccParse := reg297624 +_ = YaccParse +reg297625 := __e.Call(__defun__fail) +reg297626 := PrimEqual(YaccParse, reg297625) +if reg297626 == True { +reg297627 := PrimHead(V2643) +reg297628 := PrimIsPair(reg297627) +var reg297637 Obj +if reg297628 == True { +reg297629 := MakeSymbol("let") +reg297630 := PrimHead(V2643) +reg297631 := PrimHead(reg297630) +reg297632 := PrimEqual(reg297629, reg297631) +var reg297635 Obj +if reg297632 == True { +reg297633 := True; +reg297635 = reg297633 +} else { +reg297634 := False; +reg297635 = reg297634 +} +reg297637 = reg297635 +} else { +reg297636 := False; +reg297637 = reg297636 +} +if reg297637 == True { +reg297638 := PrimHead(V2643) +reg297639 := PrimTail(reg297638) +reg297640 := __e.Call(__defun__shen_4hdtl, V2643) +reg297641 := __e.Call(__defun__shen_4pair, reg297639, reg297640) +reg297642 := __e.Call(__defun__shen_4_5variable_2_6, reg297641) +Parse__shen_4_5variable_2_6 := reg297642 +_ = Parse__shen_4_5variable_2_6 +reg297643 := __e.Call(__defun__fail) +reg297644 := PrimEqual(reg297643, Parse__shen_4_5variable_2_6) +reg297645 := PrimNot(reg297644) +if reg297645 == True { +reg297646 := __e.Call(__defun__shen_4_5expr_6, Parse__shen_4_5variable_2_6) +Parse__shen_4_5expr_6 := reg297646 +_ = Parse__shen_4_5expr_6 +reg297647 := __e.Call(__defun__fail) +reg297648 := PrimEqual(reg297647, Parse__shen_4_5expr_6) +reg297649 := PrimNot(reg297648) +if reg297649 == True { +reg297650 := PrimHead(Parse__shen_4_5expr_6) +reg297651 := MakeSymbol("let") +reg297652 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5variable_2_6) +reg297653 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5expr_6) +reg297654 := Nil; +reg297655 := PrimCons(reg297653, reg297654) +reg297656 := PrimCons(reg297652, reg297655) +reg297657 := PrimCons(reg297651, reg297656) +__ctx.TailApply(__defun__shen_4pair, reg297650, reg297657) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5side_1condition_6}) + +__defun__shen_4_5variable_2_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2645 := __args[0] +_ = V2645 +reg297662 := PrimHead(V2645) +reg297663 := PrimIsPair(reg297662) +if reg297663 == True { +reg297664 := PrimHead(V2645) +reg297665 := PrimHead(reg297664) +Parse__X := reg297665 +_ = Parse__X +reg297666 := PrimIsVariable(Parse__X) +if reg297666 == True { +reg297667 := PrimHead(V2645) +reg297668 := PrimTail(reg297667) +reg297669 := __e.Call(__defun__shen_4hdtl, V2645) +reg297670 := __e.Call(__defun__shen_4pair, reg297668, reg297669) +reg297671 := PrimHead(reg297670) +__ctx.TailApply(__defun__shen_4pair, reg297671, Parse__X) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5variable_2_6}) + +__defun__shen_4_5expr_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2647 := __args[0] +_ = V2647 +reg297675 := PrimHead(V2647) +reg297676 := PrimIsPair(reg297675) +if reg297676 == True { +reg297677 := PrimHead(V2647) +reg297678 := PrimHead(reg297677) +Parse__X := reg297678 +_ = Parse__X +reg297679 := MakeSymbol(">>") +reg297680 := MakeSymbol(";") +reg297681 := Nil; +reg297682 := PrimCons(reg297680, reg297681) +reg297683 := PrimCons(reg297679, reg297682) +reg297684 := __e.Call(__defun__element_2, Parse__X, reg297683) +var reg297696 Obj +if reg297684 == True { +reg297685 := True; +reg297696 = reg297685 +} else { +reg297686 := __e.Call(__defun__shen_4singleunderline_2, Parse__X) +var reg297692 Obj +if reg297686 == True { +reg297687 := True; +reg297692 = reg297687 +} else { +reg297688 := __e.Call(__defun__shen_4doubleunderline_2, Parse__X) +var reg297691 Obj +if reg297688 == True { +reg297689 := True; +reg297691 = reg297689 +} else { +reg297690 := False; +reg297691 = reg297690 +} +reg297692 = reg297691 +} +var reg297695 Obj +if reg297692 == True { +reg297693 := True; +reg297695 = reg297693 +} else { +reg297694 := False; +reg297695 = reg297694 +} +reg297696 = reg297695 +} +reg297697 := PrimNot(reg297696) +if reg297697 == True { +reg297698 := PrimHead(V2647) +reg297699 := PrimTail(reg297698) +reg297700 := __e.Call(__defun__shen_4hdtl, V2647) +reg297701 := __e.Call(__defun__shen_4pair, reg297699, reg297700) +reg297702 := PrimHead(reg297701) +reg297703 := __e.Call(__defun__shen_4remove_1bar, Parse__X) +__ctx.TailApply(__defun__shen_4pair, reg297702, reg297703) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5expr_6}) + +__defun__shen_4remove_1bar = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2649 := __args[0] +_ = V2649 +reg297707 := PrimIsPair(V2649) +var reg297741 Obj +if reg297707 == True { +reg297708 := PrimTail(V2649) +reg297709 := PrimIsPair(reg297708) +var reg297736 Obj +if reg297709 == True { +reg297710 := PrimTail(V2649) +reg297711 := PrimTail(reg297710) +reg297712 := PrimIsPair(reg297711) +var reg297731 Obj +if reg297712 == True { +reg297713 := Nil; +reg297714 := PrimTail(V2649) +reg297715 := PrimTail(reg297714) +reg297716 := PrimTail(reg297715) +reg297717 := PrimEqual(reg297713, reg297716) +var reg297726 Obj +if reg297717 == True { +reg297718 := PrimTail(V2649) +reg297719 := PrimHead(reg297718) +reg297720 := MakeSymbol("bar!") +reg297721 := PrimEqual(reg297719, reg297720) +var reg297724 Obj +if reg297721 == True { +reg297722 := True; +reg297724 = reg297722 +} else { +reg297723 := False; +reg297724 = reg297723 +} +reg297726 = reg297724 +} else { +reg297725 := False; +reg297726 = reg297725 +} +var reg297729 Obj +if reg297726 == True { +reg297727 := True; +reg297729 = reg297727 +} else { +reg297728 := False; +reg297729 = reg297728 +} +reg297731 = reg297729 +} else { +reg297730 := False; +reg297731 = reg297730 +} +var reg297734 Obj +if reg297731 == True { +reg297732 := True; +reg297734 = reg297732 +} else { +reg297733 := False; +reg297734 = reg297733 +} +reg297736 = reg297734 +} else { +reg297735 := False; +reg297736 = reg297735 +} +var reg297739 Obj +if reg297736 == True { +reg297737 := True; +reg297739 = reg297737 +} else { +reg297738 := False; +reg297739 = reg297738 +} +reg297741 = reg297739 +} else { +reg297740 := False; +reg297741 = reg297740 +} +if reg297741 == True { +reg297742 := PrimHead(V2649) +reg297743 := PrimTail(V2649) +reg297744 := PrimTail(reg297743) +reg297745 := PrimHead(reg297744) +reg297746 := PrimCons(reg297742, reg297745) +__ctx.Return(reg297746) +return +} else { +reg297747 := PrimIsPair(V2649) +if reg297747 == True { +reg297748 := PrimHead(V2649) +reg297749 := __e.Call(__defun__shen_4remove_1bar, reg297748) +reg297750 := PrimTail(V2649) +reg297751 := __e.Call(__defun__shen_4remove_1bar, reg297750) +reg297752 := PrimCons(reg297749, reg297751) +__ctx.Return(reg297752) +return +} else { +__ctx.Return(V2649) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.remove-bar", value: __defun__shen_4remove_1bar}) + +__defun__shen_4_5premises_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2651 := __args[0] +_ = V2651 +reg297753 := __e.Call(__defun__shen_4_5premise_6, V2651) +Parse__shen_4_5premise_6 := reg297753 +_ = Parse__shen_4_5premise_6 +reg297754 := __e.Call(__defun__fail) +reg297755 := PrimEqual(reg297754, Parse__shen_4_5premise_6) +reg297756 := PrimNot(reg297755) +var reg297775 Obj +if reg297756 == True { +reg297757 := __e.Call(__defun__shen_4_5semicolon_1symbol_6, Parse__shen_4_5premise_6) +Parse__shen_4_5semicolon_1symbol_6 := reg297757 +_ = Parse__shen_4_5semicolon_1symbol_6 +reg297758 := __e.Call(__defun__fail) +reg297759 := PrimEqual(reg297758, Parse__shen_4_5semicolon_1symbol_6) +reg297760 := PrimNot(reg297759) +var reg297773 Obj +if reg297760 == True { +reg297761 := __e.Call(__defun__shen_4_5premises_6, Parse__shen_4_5semicolon_1symbol_6) +Parse__shen_4_5premises_6 := reg297761 +_ = Parse__shen_4_5premises_6 +reg297762 := __e.Call(__defun__fail) +reg297763 := PrimEqual(reg297762, Parse__shen_4_5premises_6) +reg297764 := PrimNot(reg297763) +var reg297771 Obj +if reg297764 == True { +reg297765 := PrimHead(Parse__shen_4_5premises_6) +reg297766 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5premise_6) +reg297767 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5premises_6) +reg297768 := PrimCons(reg297766, reg297767) +reg297769 := __e.Call(__defun__shen_4pair, reg297765, reg297768) +reg297771 = reg297769 +} else { +reg297770 := __e.Call(__defun__fail) +reg297771 = reg297770 +} +reg297773 = reg297771 +} else { +reg297772 := __e.Call(__defun__fail) +reg297773 = reg297772 +} +reg297775 = reg297773 +} else { +reg297774 := __e.Call(__defun__fail) +reg297775 = reg297774 +} +YaccParse := reg297775 +_ = YaccParse +reg297776 := __e.Call(__defun__fail) +reg297777 := PrimEqual(YaccParse, reg297776) +if reg297777 == True { +reg297778 := __e.Call(__defun___5e_6, V2651) +Parse___5e_6 := reg297778 +_ = Parse___5e_6 +reg297779 := __e.Call(__defun__fail) +reg297780 := PrimEqual(reg297779, Parse___5e_6) +reg297781 := PrimNot(reg297780) +if reg297781 == True { +reg297782 := PrimHead(Parse___5e_6) +reg297783 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg297782, reg297783) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5premises_6}) + +__defun__shen_4_5semicolon_1symbol_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2653 := __args[0] +_ = V2653 +reg297786 := PrimHead(V2653) +reg297787 := PrimIsPair(reg297786) +if reg297787 == True { +reg297788 := PrimHead(V2653) +reg297789 := PrimHead(reg297788) +Parse__X := reg297789 +_ = Parse__X +reg297790 := MakeSymbol(";") +reg297791 := PrimEqual(Parse__X, reg297790) +if reg297791 == True { +reg297792 := PrimHead(V2653) +reg297793 := PrimTail(reg297792) +reg297794 := __e.Call(__defun__shen_4hdtl, V2653) +reg297795 := __e.Call(__defun__shen_4pair, reg297793, reg297794) +reg297796 := PrimHead(reg297795) +reg297797 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg297796, reg297797) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5semicolon_1symbol_6}) + +__defun__shen_4_5premise_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2655 := __args[0] +_ = V2655 +reg297801 := PrimHead(V2655) +reg297802 := PrimIsPair(reg297801) +var reg297811 Obj +if reg297802 == True { +reg297803 := MakeSymbol("!") +reg297804 := PrimHead(V2655) +reg297805 := PrimHead(reg297804) +reg297806 := PrimEqual(reg297803, reg297805) +var reg297809 Obj +if reg297806 == True { +reg297807 := True; +reg297809 = reg297807 +} else { +reg297808 := False; +reg297809 = reg297808 +} +reg297811 = reg297809 +} else { +reg297810 := False; +reg297811 = reg297810 +} +var reg297820 Obj +if reg297811 == True { +reg297812 := PrimHead(V2655) +reg297813 := PrimTail(reg297812) +reg297814 := __e.Call(__defun__shen_4hdtl, V2655) +reg297815 := __e.Call(__defun__shen_4pair, reg297813, reg297814) +reg297816 := PrimHead(reg297815) +reg297817 := MakeSymbol("!") +reg297818 := __e.Call(__defun__shen_4pair, reg297816, reg297817) +reg297820 = reg297818 +} else { +reg297819 := __e.Call(__defun__fail) +reg297820 = reg297819 +} +YaccParse := reg297820 +_ = YaccParse +reg297821 := __e.Call(__defun__fail) +reg297822 := PrimEqual(YaccParse, reg297821) +if reg297822 == True { +reg297823 := __e.Call(__defun__shen_4_5formulae_6, V2655) +Parse__shen_4_5formulae_6 := reg297823 +_ = Parse__shen_4_5formulae_6 +reg297824 := __e.Call(__defun__fail) +reg297825 := PrimEqual(reg297824, Parse__shen_4_5formulae_6) +reg297826 := PrimNot(reg297825) +var reg297856 Obj +if reg297826 == True { +reg297827 := PrimHead(Parse__shen_4_5formulae_6) +reg297828 := PrimIsPair(reg297827) +var reg297837 Obj +if reg297828 == True { +reg297829 := MakeSymbol(">>") +reg297830 := PrimHead(Parse__shen_4_5formulae_6) +reg297831 := PrimHead(reg297830) +reg297832 := PrimEqual(reg297829, reg297831) +var reg297835 Obj +if reg297832 == True { +reg297833 := True; +reg297835 = reg297833 +} else { +reg297834 := False; +reg297835 = reg297834 +} +reg297837 = reg297835 +} else { +reg297836 := False; +reg297837 = reg297836 +} +var reg297854 Obj +if reg297837 == True { +reg297838 := PrimHead(Parse__shen_4_5formulae_6) +reg297839 := PrimTail(reg297838) +reg297840 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5formulae_6) +reg297841 := __e.Call(__defun__shen_4pair, reg297839, reg297840) +reg297842 := __e.Call(__defun__shen_4_5formula_6, reg297841) +Parse__shen_4_5formula_6 := reg297842 +_ = Parse__shen_4_5formula_6 +reg297843 := __e.Call(__defun__fail) +reg297844 := PrimEqual(reg297843, Parse__shen_4_5formula_6) +reg297845 := PrimNot(reg297844) +var reg297852 Obj +if reg297845 == True { +reg297846 := PrimHead(Parse__shen_4_5formula_6) +reg297847 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5formulae_6) +reg297848 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5formula_6) +reg297849 := __e.Call(__defun__shen_4sequent, reg297847, reg297848) +reg297850 := __e.Call(__defun__shen_4pair, reg297846, reg297849) +reg297852 = reg297850 +} else { +reg297851 := __e.Call(__defun__fail) +reg297852 = reg297851 +} +reg297854 = reg297852 +} else { +reg297853 := __e.Call(__defun__fail) +reg297854 = reg297853 +} +reg297856 = reg297854 +} else { +reg297855 := __e.Call(__defun__fail) +reg297856 = reg297855 +} +YaccParse := reg297856 +_ = YaccParse +reg297857 := __e.Call(__defun__fail) +reg297858 := PrimEqual(YaccParse, reg297857) +if reg297858 == True { +reg297859 := __e.Call(__defun__shen_4_5formula_6, V2655) +Parse__shen_4_5formula_6 := reg297859 +_ = Parse__shen_4_5formula_6 +reg297860 := __e.Call(__defun__fail) +reg297861 := PrimEqual(reg297860, Parse__shen_4_5formula_6) +reg297862 := PrimNot(reg297861) +if reg297862 == True { +reg297863 := PrimHead(Parse__shen_4_5formula_6) +reg297864 := Nil; +reg297865 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5formula_6) +reg297866 := __e.Call(__defun__shen_4sequent, reg297864, reg297865) +__ctx.TailApply(__defun__shen_4pair, reg297863, reg297866) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5premise_6}) + +__defun__shen_4_5conclusion_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2657 := __args[0] +_ = V2657 +reg297869 := __e.Call(__defun__shen_4_5formulae_6, V2657) +Parse__shen_4_5formulae_6 := reg297869 +_ = Parse__shen_4_5formulae_6 +reg297870 := __e.Call(__defun__fail) +reg297871 := PrimEqual(reg297870, Parse__shen_4_5formulae_6) +reg297872 := PrimNot(reg297871) +var reg297908 Obj +if reg297872 == True { +reg297873 := PrimHead(Parse__shen_4_5formulae_6) +reg297874 := PrimIsPair(reg297873) +var reg297883 Obj +if reg297874 == True { +reg297875 := MakeSymbol(">>") +reg297876 := PrimHead(Parse__shen_4_5formulae_6) +reg297877 := PrimHead(reg297876) +reg297878 := PrimEqual(reg297875, reg297877) +var reg297881 Obj +if reg297878 == True { +reg297879 := True; +reg297881 = reg297879 +} else { +reg297880 := False; +reg297881 = reg297880 +} +reg297883 = reg297881 +} else { +reg297882 := False; +reg297883 = reg297882 +} +var reg297906 Obj +if reg297883 == True { +reg297884 := PrimHead(Parse__shen_4_5formulae_6) +reg297885 := PrimTail(reg297884) +reg297886 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5formulae_6) +reg297887 := __e.Call(__defun__shen_4pair, reg297885, reg297886) +reg297888 := __e.Call(__defun__shen_4_5formula_6, reg297887) +Parse__shen_4_5formula_6 := reg297888 +_ = Parse__shen_4_5formula_6 +reg297889 := __e.Call(__defun__fail) +reg297890 := PrimEqual(reg297889, Parse__shen_4_5formula_6) +reg297891 := PrimNot(reg297890) +var reg297904 Obj +if reg297891 == True { +reg297892 := __e.Call(__defun__shen_4_5semicolon_1symbol_6, Parse__shen_4_5formula_6) +Parse__shen_4_5semicolon_1symbol_6 := reg297892 +_ = Parse__shen_4_5semicolon_1symbol_6 +reg297893 := __e.Call(__defun__fail) +reg297894 := PrimEqual(reg297893, Parse__shen_4_5semicolon_1symbol_6) +reg297895 := PrimNot(reg297894) +var reg297902 Obj +if reg297895 == True { +reg297896 := PrimHead(Parse__shen_4_5semicolon_1symbol_6) +reg297897 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5formulae_6) +reg297898 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5formula_6) +reg297899 := __e.Call(__defun__shen_4sequent, reg297897, reg297898) +reg297900 := __e.Call(__defun__shen_4pair, reg297896, reg297899) +reg297902 = reg297900 +} else { +reg297901 := __e.Call(__defun__fail) +reg297902 = reg297901 +} +reg297904 = reg297902 +} else { +reg297903 := __e.Call(__defun__fail) +reg297904 = reg297903 +} +reg297906 = reg297904 +} else { +reg297905 := __e.Call(__defun__fail) +reg297906 = reg297905 +} +reg297908 = reg297906 +} else { +reg297907 := __e.Call(__defun__fail) +reg297908 = reg297907 +} +YaccParse := reg297908 +_ = YaccParse +reg297909 := __e.Call(__defun__fail) +reg297910 := PrimEqual(YaccParse, reg297909) +if reg297910 == True { +reg297911 := __e.Call(__defun__shen_4_5formula_6, V2657) +Parse__shen_4_5formula_6 := reg297911 +_ = Parse__shen_4_5formula_6 +reg297912 := __e.Call(__defun__fail) +reg297913 := PrimEqual(reg297912, Parse__shen_4_5formula_6) +reg297914 := PrimNot(reg297913) +if reg297914 == True { +reg297915 := __e.Call(__defun__shen_4_5semicolon_1symbol_6, Parse__shen_4_5formula_6) +Parse__shen_4_5semicolon_1symbol_6 := reg297915 +_ = Parse__shen_4_5semicolon_1symbol_6 +reg297916 := __e.Call(__defun__fail) +reg297917 := PrimEqual(reg297916, Parse__shen_4_5semicolon_1symbol_6) +reg297918 := PrimNot(reg297917) +if reg297918 == True { +reg297919 := PrimHead(Parse__shen_4_5semicolon_1symbol_6) +reg297920 := Nil; +reg297921 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5formula_6) +reg297922 := __e.Call(__defun__shen_4sequent, reg297920, reg297921) +__ctx.TailApply(__defun__shen_4pair, reg297919, reg297922) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5conclusion_6}) + +__defun__shen_4sequent = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2660 := __args[0] +_ = V2660 +V2661 := __args[1] +_ = V2661 +__ctx.TailApply(__defun___8p, V2660, V2661) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.sequent", value: __defun__shen_4sequent}) + +__defun__shen_4_5formulae_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2663 := __args[0] +_ = V2663 +reg297927 := __e.Call(__defun__shen_4_5formula_6, V2663) +Parse__shen_4_5formula_6 := reg297927 +_ = Parse__shen_4_5formula_6 +reg297928 := __e.Call(__defun__fail) +reg297929 := PrimEqual(reg297928, Parse__shen_4_5formula_6) +reg297930 := PrimNot(reg297929) +var reg297949 Obj +if reg297930 == True { +reg297931 := __e.Call(__defun__shen_4_5comma_1symbol_6, Parse__shen_4_5formula_6) +Parse__shen_4_5comma_1symbol_6 := reg297931 +_ = Parse__shen_4_5comma_1symbol_6 +reg297932 := __e.Call(__defun__fail) +reg297933 := PrimEqual(reg297932, Parse__shen_4_5comma_1symbol_6) +reg297934 := PrimNot(reg297933) +var reg297947 Obj +if reg297934 == True { +reg297935 := __e.Call(__defun__shen_4_5formulae_6, Parse__shen_4_5comma_1symbol_6) +Parse__shen_4_5formulae_6 := reg297935 +_ = Parse__shen_4_5formulae_6 +reg297936 := __e.Call(__defun__fail) +reg297937 := PrimEqual(reg297936, Parse__shen_4_5formulae_6) +reg297938 := PrimNot(reg297937) +var reg297945 Obj +if reg297938 == True { +reg297939 := PrimHead(Parse__shen_4_5formulae_6) +reg297940 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5formula_6) +reg297941 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5formulae_6) +reg297942 := PrimCons(reg297940, reg297941) +reg297943 := __e.Call(__defun__shen_4pair, reg297939, reg297942) +reg297945 = reg297943 +} else { +reg297944 := __e.Call(__defun__fail) +reg297945 = reg297944 +} +reg297947 = reg297945 +} else { +reg297946 := __e.Call(__defun__fail) +reg297947 = reg297946 +} +reg297949 = reg297947 +} else { +reg297948 := __e.Call(__defun__fail) +reg297949 = reg297948 +} +YaccParse := reg297949 +_ = YaccParse +reg297950 := __e.Call(__defun__fail) +reg297951 := PrimEqual(YaccParse, reg297950) +if reg297951 == True { +reg297952 := __e.Call(__defun__shen_4_5formula_6, V2663) +Parse__shen_4_5formula_6 := reg297952 +_ = Parse__shen_4_5formula_6 +reg297953 := __e.Call(__defun__fail) +reg297954 := PrimEqual(reg297953, Parse__shen_4_5formula_6) +reg297955 := PrimNot(reg297954) +var reg297962 Obj +if reg297955 == True { +reg297956 := PrimHead(Parse__shen_4_5formula_6) +reg297957 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5formula_6) +reg297958 := Nil; +reg297959 := PrimCons(reg297957, reg297958) +reg297960 := __e.Call(__defun__shen_4pair, reg297956, reg297959) +reg297962 = reg297960 +} else { +reg297961 := __e.Call(__defun__fail) +reg297962 = reg297961 +} +YaccParse := reg297962 +_ = YaccParse +reg297963 := __e.Call(__defun__fail) +reg297964 := PrimEqual(YaccParse, reg297963) +if reg297964 == True { +reg297965 := __e.Call(__defun___5e_6, V2663) +Parse___5e_6 := reg297965 +_ = Parse___5e_6 +reg297966 := __e.Call(__defun__fail) +reg297967 := PrimEqual(reg297966, Parse___5e_6) +reg297968 := PrimNot(reg297967) +if reg297968 == True { +reg297969 := PrimHead(Parse___5e_6) +reg297970 := Nil; +__ctx.TailApply(__defun__shen_4pair, reg297969, reg297970) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5formulae_6}) + +__defun__shen_4_5comma_1symbol_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2665 := __args[0] +_ = V2665 +reg297973 := PrimHead(V2665) +reg297974 := PrimIsPair(reg297973) +if reg297974 == True { +reg297975 := PrimHead(V2665) +reg297976 := PrimHead(reg297975) +Parse__X := reg297976 +_ = Parse__X +reg297977 := MakeString(",") +reg297978 := PrimIntern(reg297977) +reg297979 := PrimEqual(Parse__X, reg297978) +if reg297979 == True { +reg297980 := PrimHead(V2665) +reg297981 := PrimTail(reg297980) +reg297982 := __e.Call(__defun__shen_4hdtl, V2665) +reg297983 := __e.Call(__defun__shen_4pair, reg297981, reg297982) +reg297984 := PrimHead(reg297983) +reg297985 := MakeSymbol("shen.skip") +__ctx.TailApply(__defun__shen_4pair, reg297984, reg297985) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5comma_1symbol_6}) + +__defun__shen_4_5formula_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2667 := __args[0] +_ = V2667 +reg297989 := __e.Call(__defun__shen_4_5expr_6, V2667) +Parse__shen_4_5expr_6 := reg297989 +_ = Parse__shen_4_5expr_6 +reg297990 := __e.Call(__defun__fail) +reg297991 := PrimEqual(reg297990, Parse__shen_4_5expr_6) +reg297992 := PrimNot(reg297991) +var reg298028 Obj +if reg297992 == True { +reg297993 := PrimHead(Parse__shen_4_5expr_6) +reg297994 := PrimIsPair(reg297993) +var reg298003 Obj +if reg297994 == True { +reg297995 := MakeSymbol(":") +reg297996 := PrimHead(Parse__shen_4_5expr_6) +reg297997 := PrimHead(reg297996) +reg297998 := PrimEqual(reg297995, reg297997) +var reg298001 Obj +if reg297998 == True { +reg297999 := True; +reg298001 = reg297999 +} else { +reg298000 := False; +reg298001 = reg298000 +} +reg298003 = reg298001 +} else { +reg298002 := False; +reg298003 = reg298002 +} +var reg298026 Obj +if reg298003 == True { +reg298004 := PrimHead(Parse__shen_4_5expr_6) +reg298005 := PrimTail(reg298004) +reg298006 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5expr_6) +reg298007 := __e.Call(__defun__shen_4pair, reg298005, reg298006) +reg298008 := __e.Call(__defun__shen_4_5type_6, reg298007) +Parse__shen_4_5type_6 := reg298008 +_ = Parse__shen_4_5type_6 +reg298009 := __e.Call(__defun__fail) +reg298010 := PrimEqual(reg298009, Parse__shen_4_5type_6) +reg298011 := PrimNot(reg298010) +var reg298024 Obj +if reg298011 == True { +reg298012 := PrimHead(Parse__shen_4_5type_6) +reg298013 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5expr_6) +reg298014 := __e.Call(__defun__shen_4curry, reg298013) +reg298015 := MakeSymbol(":") +reg298016 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5type_6) +reg298017 := __e.Call(__defun__shen_4demodulate, reg298016) +reg298018 := Nil; +reg298019 := PrimCons(reg298017, reg298018) +reg298020 := PrimCons(reg298015, reg298019) +reg298021 := PrimCons(reg298014, reg298020) +reg298022 := __e.Call(__defun__shen_4pair, reg298012, reg298021) +reg298024 = reg298022 +} else { +reg298023 := __e.Call(__defun__fail) +reg298024 = reg298023 +} +reg298026 = reg298024 +} else { +reg298025 := __e.Call(__defun__fail) +reg298026 = reg298025 +} +reg298028 = reg298026 +} else { +reg298027 := __e.Call(__defun__fail) +reg298028 = reg298027 +} +YaccParse := reg298028 +_ = YaccParse +reg298029 := __e.Call(__defun__fail) +reg298030 := PrimEqual(YaccParse, reg298029) +if reg298030 == True { +reg298031 := __e.Call(__defun__shen_4_5expr_6, V2667) +Parse__shen_4_5expr_6 := reg298031 +_ = Parse__shen_4_5expr_6 +reg298032 := __e.Call(__defun__fail) +reg298033 := PrimEqual(reg298032, Parse__shen_4_5expr_6) +reg298034 := PrimNot(reg298033) +if reg298034 == True { +reg298035 := PrimHead(Parse__shen_4_5expr_6) +reg298036 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5expr_6) +__ctx.TailApply(__defun__shen_4pair, reg298035, reg298036) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5formula_6}) + +__defun__shen_4_5type_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2669 := __args[0] +_ = V2669 +reg298039 := __e.Call(__defun__shen_4_5expr_6, V2669) +Parse__shen_4_5expr_6 := reg298039 +_ = Parse__shen_4_5expr_6 +reg298040 := __e.Call(__defun__fail) +reg298041 := PrimEqual(reg298040, Parse__shen_4_5expr_6) +reg298042 := PrimNot(reg298041) +if reg298042 == True { +reg298043 := PrimHead(Parse__shen_4_5expr_6) +reg298044 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5expr_6) +reg298045 := __e.Call(__defun__shen_4curry_1type, reg298044) +__ctx.TailApply(__defun__shen_4pair, reg298043, reg298045) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5type_6}) + +__defun__shen_4_5doubleunderline_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2671 := __args[0] +_ = V2671 +reg298048 := PrimHead(V2671) +reg298049 := PrimIsPair(reg298048) +if reg298049 == True { +reg298050 := PrimHead(V2671) +reg298051 := PrimHead(reg298050) +Parse__X := reg298051 +_ = Parse__X +reg298052 := __e.Call(__defun__shen_4doubleunderline_2, Parse__X) +if reg298052 == True { +reg298053 := PrimHead(V2671) +reg298054 := PrimTail(reg298053) +reg298055 := __e.Call(__defun__shen_4hdtl, V2671) +reg298056 := __e.Call(__defun__shen_4pair, reg298054, reg298055) +reg298057 := PrimHead(reg298056) +__ctx.TailApply(__defun__shen_4pair, reg298057, Parse__X) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5doubleunderline_6}) + +__defun__shen_4_5singleunderline_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2673 := __args[0] +_ = V2673 +reg298061 := PrimHead(V2673) +reg298062 := PrimIsPair(reg298061) +if reg298062 == True { +reg298063 := PrimHead(V2673) +reg298064 := PrimHead(reg298063) +Parse__X := reg298064 +_ = Parse__X +reg298065 := __e.Call(__defun__shen_4singleunderline_2, Parse__X) +if reg298065 == True { +reg298066 := PrimHead(V2673) +reg298067 := PrimTail(reg298066) +reg298068 := __e.Call(__defun__shen_4hdtl, V2673) +reg298069 := __e.Call(__defun__shen_4pair, reg298067, reg298068) +reg298070 := PrimHead(reg298069) +__ctx.TailApply(__defun__shen_4pair, reg298070, Parse__X) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5singleunderline_6}) + +__defun__shen_4singleunderline_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2675 := __args[0] +_ = V2675 +reg298074 := PrimIsSymbol(V2675) +if reg298074 == True { +reg298075 := PrimStr(V2675) +reg298076 := __e.Call(__defun__shen_4sh_2, reg298075) +if reg298076 == True { +reg298077 := True; +__ctx.Return(reg298077) +return +} else { +reg298078 := False; +__ctx.Return(reg298078) +return +} +} else { +reg298079 := False; +__ctx.Return(reg298079) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.singleunderline?", value: __defun__shen_4singleunderline_2}) + +__defun__shen_4sh_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2677 := __args[0] +_ = V2677 +reg298080 := MakeString("_") +reg298081 := PrimEqual(reg298080, V2677) +if reg298081 == True { +reg298082 := True; +__ctx.Return(reg298082) +return +} else { +reg298083 := MakeNumber(0) +reg298084 := PrimPos(V2677, reg298083) +reg298085 := MakeString("_") +reg298086 := PrimEqual(reg298084, reg298085) +if reg298086 == True { +reg298087 := PrimTailString(V2677) +reg298088 := __e.Call(__defun__shen_4sh_2, reg298087) +if reg298088 == True { +reg298089 := True; +__ctx.Return(reg298089) +return +} else { +reg298090 := False; +__ctx.Return(reg298090) +return +} +} else { +reg298091 := False; +__ctx.Return(reg298091) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.sh?", value: __defun__shen_4sh_2}) + +__defun__shen_4doubleunderline_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2679 := __args[0] +_ = V2679 +reg298092 := PrimIsSymbol(V2679) +if reg298092 == True { +reg298093 := PrimStr(V2679) +reg298094 := __e.Call(__defun__shen_4dh_2, reg298093) +if reg298094 == True { +reg298095 := True; +__ctx.Return(reg298095) +return +} else { +reg298096 := False; +__ctx.Return(reg298096) +return +} +} else { +reg298097 := False; +__ctx.Return(reg298097) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.doubleunderline?", value: __defun__shen_4doubleunderline_2}) + +__defun__shen_4dh_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2681 := __args[0] +_ = V2681 +reg298098 := MakeString("=") +reg298099 := PrimEqual(reg298098, V2681) +if reg298099 == True { +reg298100 := True; +__ctx.Return(reg298100) +return +} else { +reg298101 := MakeNumber(0) +reg298102 := PrimPos(V2681, reg298101) +reg298103 := MakeString("=") +reg298104 := PrimEqual(reg298102, reg298103) +if reg298104 == True { +reg298105 := PrimTailString(V2681) +reg298106 := __e.Call(__defun__shen_4dh_2, reg298105) +if reg298106 == True { +reg298107 := True; +__ctx.Return(reg298107) +return +} else { +reg298108 := False; +__ctx.Return(reg298108) +return +} +} else { +reg298109 := False; +__ctx.Return(reg298109) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.dh?", value: __defun__shen_4dh_2}) + +__defun__shen_4process_1datatype = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2684 := __args[0] +_ = V2684 +V2685 := __args[1] +_ = V2685 +reg298110 := __e.Call(__defun__shen_4rules_1_6horn_1clauses, V2684, V2685) +reg298111 := __e.Call(__defun__shen_4s_1prolog, reg298110) +__ctx.TailApply(__defun__shen_4remember_1datatype, reg298111) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.process-datatype", value: __defun__shen_4process_1datatype}) + +__defun__shen_4remember_1datatype = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2691 := __args[0] +_ = V2691 +reg298113 := PrimIsPair(V2691) +if reg298113 == True { +reg298114 := MakeSymbol("shen.*datatypes*") +reg298115 := PrimHead(V2691) +reg298116 := MakeSymbol("shen.*datatypes*") +reg298117 := PrimValue(reg298116) +reg298118 := __e.Call(__defun__adjoin, reg298115, reg298117) +reg298119 := PrimSet(reg298114, reg298118) +_ = reg298119 +reg298120 := MakeSymbol("shen.*alldatatypes*") +reg298121 := PrimHead(V2691) +reg298122 := MakeSymbol("shen.*alldatatypes*") +reg298123 := PrimValue(reg298122) +reg298124 := __e.Call(__defun__adjoin, reg298121, reg298123) +reg298125 := PrimSet(reg298120, reg298124) +_ = reg298125 +reg298126 := PrimHead(V2691) +__ctx.Return(reg298126) +return +} else { +reg298127 := MakeSymbol("shen.remember-datatype") +__ctx.TailApply(__defun__shen_4f__error, reg298127) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.remember-datatype", value: __defun__shen_4remember_1datatype}) + +__defun__shen_4rules_1_6horn_1clauses = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2696 := __args[0] +_ = V2696 +V2697 := __args[1] +_ = V2697 +reg298129 := Nil; +reg298130 := PrimEqual(reg298129, V2697) +if reg298130 == True { +reg298131 := Nil; +__ctx.Return(reg298131) +return +} else { +reg298132 := PrimIsPair(V2697) +var reg298148 Obj +if reg298132 == True { +reg298133 := PrimHead(V2697) +reg298134 := __e.Call(__defun__tuple_2, reg298133) +var reg298143 Obj +if reg298134 == True { +reg298135 := MakeSymbol("shen.single") +reg298136 := PrimHead(V2697) +reg298137 := __e.Call(__defun__fst, reg298136) +reg298138 := PrimEqual(reg298135, reg298137) +var reg298141 Obj +if reg298138 == True { +reg298139 := True; +reg298141 = reg298139 +} else { +reg298140 := False; +reg298141 = reg298140 +} +reg298143 = reg298141 +} else { +reg298142 := False; +reg298143 = reg298142 +} +var reg298146 Obj +if reg298143 == True { +reg298144 := True; +reg298146 = reg298144 +} else { +reg298145 := False; +reg298146 = reg298145 +} +reg298148 = reg298146 +} else { +reg298147 := False; +reg298148 = reg298147 +} +if reg298148 == True { +reg298149 := PrimHead(V2697) +reg298150 := __e.Call(__defun__snd, reg298149) +reg298151 := __e.Call(__defun__shen_4rule_1_6horn_1clause, V2696, reg298150) +reg298152 := PrimTail(V2697) +reg298153 := __e.Call(__defun__shen_4rules_1_6horn_1clauses, V2696, reg298152) +reg298154 := PrimCons(reg298151, reg298153) +__ctx.Return(reg298154) +return +} else { +reg298155 := PrimIsPair(V2697) +var reg298171 Obj +if reg298155 == True { +reg298156 := PrimHead(V2697) +reg298157 := __e.Call(__defun__tuple_2, reg298156) +var reg298166 Obj +if reg298157 == True { +reg298158 := MakeSymbol("shen.double") +reg298159 := PrimHead(V2697) +reg298160 := __e.Call(__defun__fst, reg298159) +reg298161 := PrimEqual(reg298158, reg298160) +var reg298164 Obj +if reg298161 == True { +reg298162 := True; +reg298164 = reg298162 +} else { +reg298163 := False; +reg298164 = reg298163 +} +reg298166 = reg298164 +} else { +reg298165 := False; +reg298166 = reg298165 +} +var reg298169 Obj +if reg298166 == True { +reg298167 := True; +reg298169 = reg298167 +} else { +reg298168 := False; +reg298169 = reg298168 +} +reg298171 = reg298169 +} else { +reg298170 := False; +reg298171 = reg298170 +} +if reg298171 == True { +reg298172 := PrimHead(V2697) +reg298173 := __e.Call(__defun__snd, reg298172) +reg298174 := __e.Call(__defun__shen_4double_1_6singles, reg298173) +reg298175 := PrimTail(V2697) +reg298176 := __e.Call(__defun__append, reg298174, reg298175) +__ctx.TailApply(__defun__shen_4rules_1_6horn_1clauses, V2696, reg298176) +return +} else { +reg298178 := MakeSymbol("shen.rules->horn-clauses") +__ctx.TailApply(__defun__shen_4f__error, reg298178) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.rules->horn-clauses", value: __defun__shen_4rules_1_6horn_1clauses}) + +__defun__shen_4double_1_6singles = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2699 := __args[0] +_ = V2699 +reg298180 := __e.Call(__defun__shen_4right_1rule, V2699) +reg298181 := __e.Call(__defun__shen_4left_1rule, V2699) +reg298182 := Nil; +reg298183 := PrimCons(reg298181, reg298182) +reg298184 := PrimCons(reg298180, reg298183) +__ctx.Return(reg298184) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.double->singles", value: __defun__shen_4double_1_6singles}) + +__defun__shen_4right_1rule = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2701 := __args[0] +_ = V2701 +reg298185 := MakeSymbol("shen.single") +__ctx.TailApply(__defun___8p, reg298185, V2701) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.right-rule", value: __defun__shen_4right_1rule}) + +__defun__shen_4left_1rule = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2703 := __args[0] +_ = V2703 +reg298187 := PrimIsPair(V2703) +var reg298232 Obj +if reg298187 == True { +reg298188 := PrimTail(V2703) +reg298189 := PrimIsPair(reg298188) +var reg298227 Obj +if reg298189 == True { +reg298190 := PrimTail(V2703) +reg298191 := PrimTail(reg298190) +reg298192 := PrimIsPair(reg298191) +var reg298222 Obj +if reg298192 == True { +reg298193 := PrimTail(V2703) +reg298194 := PrimTail(reg298193) +reg298195 := PrimHead(reg298194) +reg298196 := __e.Call(__defun__tuple_2, reg298195) +var reg298217 Obj +if reg298196 == True { +reg298197 := Nil; +reg298198 := PrimTail(V2703) +reg298199 := PrimTail(reg298198) +reg298200 := PrimHead(reg298199) +reg298201 := __e.Call(__defun__fst, reg298200) +reg298202 := PrimEqual(reg298197, reg298201) +var reg298212 Obj +if reg298202 == True { +reg298203 := Nil; +reg298204 := PrimTail(V2703) +reg298205 := PrimTail(reg298204) +reg298206 := PrimTail(reg298205) +reg298207 := PrimEqual(reg298203, reg298206) +var reg298210 Obj +if reg298207 == True { +reg298208 := True; +reg298210 = reg298208 +} else { +reg298209 := False; +reg298210 = reg298209 +} +reg298212 = reg298210 +} else { +reg298211 := False; +reg298212 = reg298211 +} +var reg298215 Obj +if reg298212 == True { +reg298213 := True; +reg298215 = reg298213 +} else { +reg298214 := False; +reg298215 = reg298214 +} +reg298217 = reg298215 +} else { +reg298216 := False; +reg298217 = reg298216 +} +var reg298220 Obj +if reg298217 == True { +reg298218 := True; +reg298220 = reg298218 +} else { +reg298219 := False; +reg298220 = reg298219 +} +reg298222 = reg298220 +} else { +reg298221 := False; +reg298222 = reg298221 +} +var reg298225 Obj +if reg298222 == True { +reg298223 := True; +reg298225 = reg298223 +} else { +reg298224 := False; +reg298225 = reg298224 +} +reg298227 = reg298225 +} else { +reg298226 := False; +reg298227 = reg298226 +} +var reg298230 Obj +if reg298227 == True { +reg298228 := True; +reg298230 = reg298228 +} else { +reg298229 := False; +reg298230 = reg298229 +} +reg298232 = reg298230 +} else { +reg298231 := False; +reg298232 = reg298231 +} +if reg298232 == True { +reg298233 := MakeSymbol("Qv") +reg298234 := __e.Call(__defun__gensym, reg298233) +Q := reg298234 +_ = Q +reg298235 := PrimTail(V2703) +reg298236 := PrimTail(reg298235) +reg298237 := PrimHead(reg298236) +reg298238 := __e.Call(__defun__snd, reg298237) +reg298239 := Nil; +reg298240 := PrimCons(reg298238, reg298239) +reg298241 := __e.Call(__defun___8p, reg298240, Q) +NewConclusion := reg298241 +_ = NewConclusion +reg298242 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4right_1_6left, X) +return +}, 1) +reg298244 := PrimTail(V2703) +reg298245 := PrimHead(reg298244) +reg298246 := __e.Call(__defun__map, reg298242, reg298245) +reg298247 := __e.Call(__defun___8p, reg298246, Q) +reg298248 := Nil; +reg298249 := PrimCons(reg298247, reg298248) +NewPremises := reg298249 +_ = NewPremises +reg298250 := MakeSymbol("shen.single") +reg298251 := PrimHead(V2703) +reg298252 := Nil; +reg298253 := PrimCons(NewConclusion, reg298252) +reg298254 := PrimCons(NewPremises, reg298253) +reg298255 := PrimCons(reg298251, reg298254) +__ctx.TailApply(__defun___8p, reg298250, reg298255) +return +} else { +reg298257 := MakeSymbol("shen.left-rule") +__ctx.TailApply(__defun__shen_4f__error, reg298257) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.left-rule", value: __defun__shen_4left_1rule}) + +__defun__shen_4right_1_6left = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2709 := __args[0] +_ = V2709 +reg298259 := __e.Call(__defun__tuple_2, V2709) +var reg298267 Obj +if reg298259 == True { +reg298260 := Nil; +reg298261 := __e.Call(__defun__fst, V2709) +reg298262 := PrimEqual(reg298260, reg298261) +var reg298265 Obj +if reg298262 == True { +reg298263 := True; +reg298265 = reg298263 +} else { +reg298264 := False; +reg298265 = reg298264 +} +reg298267 = reg298265 +} else { +reg298266 := False; +reg298267 = reg298266 +} +if reg298267 == True { +__ctx.TailApply(__defun__snd, V2709) +return +} else { +reg298269 := MakeString("syntax error with ==========\n") +reg298270 := PrimSimpleError(reg298269) +__ctx.Return(reg298270) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.right->left", value: __defun__shen_4right_1_6left}) + +__defun__shen_4rule_1_6horn_1clause = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2712 := __args[0] +_ = V2712 +V2713 := __args[1] +_ = V2713 +reg298271 := PrimIsPair(V2713) +var reg298305 Obj +if reg298271 == True { +reg298272 := PrimTail(V2713) +reg298273 := PrimIsPair(reg298272) +var reg298300 Obj +if reg298273 == True { +reg298274 := PrimTail(V2713) +reg298275 := PrimTail(reg298274) +reg298276 := PrimIsPair(reg298275) +var reg298295 Obj +if reg298276 == True { +reg298277 := PrimTail(V2713) +reg298278 := PrimTail(reg298277) +reg298279 := PrimHead(reg298278) +reg298280 := __e.Call(__defun__tuple_2, reg298279) +var reg298290 Obj +if reg298280 == True { +reg298281 := Nil; +reg298282 := PrimTail(V2713) +reg298283 := PrimTail(reg298282) +reg298284 := PrimTail(reg298283) +reg298285 := PrimEqual(reg298281, reg298284) +var reg298288 Obj +if reg298285 == True { +reg298286 := True; +reg298288 = reg298286 +} else { +reg298287 := False; +reg298288 = reg298287 +} +reg298290 = reg298288 +} else { +reg298289 := False; +reg298290 = reg298289 +} +var reg298293 Obj +if reg298290 == True { +reg298291 := True; +reg298293 = reg298291 +} else { +reg298292 := False; +reg298293 = reg298292 +} +reg298295 = reg298293 +} else { +reg298294 := False; +reg298295 = reg298294 +} +var reg298298 Obj +if reg298295 == True { +reg298296 := True; +reg298298 = reg298296 +} else { +reg298297 := False; +reg298298 = reg298297 +} +reg298300 = reg298298 +} else { +reg298299 := False; +reg298300 = reg298299 +} +var reg298303 Obj +if reg298300 == True { +reg298301 := True; +reg298303 = reg298301 +} else { +reg298302 := False; +reg298303 = reg298302 +} +reg298305 = reg298303 +} else { +reg298304 := False; +reg298305 = reg298304 +} +if reg298305 == True { +reg298306 := PrimTail(V2713) +reg298307 := PrimTail(reg298306) +reg298308 := PrimHead(reg298307) +reg298309 := __e.Call(__defun__snd, reg298308) +reg298310 := __e.Call(__defun__shen_4rule_1_6horn_1clause_1head, V2712, reg298309) +reg298311 := MakeSymbol(":-") +reg298312 := PrimHead(V2713) +reg298313 := PrimTail(V2713) +reg298314 := PrimHead(reg298313) +reg298315 := PrimTail(V2713) +reg298316 := PrimTail(reg298315) +reg298317 := PrimHead(reg298316) +reg298318 := __e.Call(__defun__fst, reg298317) +reg298319 := __e.Call(__defun__shen_4rule_1_6horn_1clause_1body, reg298312, reg298314, reg298318) +reg298320 := Nil; +reg298321 := PrimCons(reg298319, reg298320) +reg298322 := PrimCons(reg298311, reg298321) +reg298323 := PrimCons(reg298310, reg298322) +__ctx.Return(reg298323) +return +} else { +reg298324 := MakeSymbol("shen.rule->horn-clause") +__ctx.TailApply(__defun__shen_4f__error, reg298324) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.rule->horn-clause", value: __defun__shen_4rule_1_6horn_1clause}) + +__defun__shen_4rule_1_6horn_1clause_1head = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2716 := __args[0] +_ = V2716 +V2717 := __args[1] +_ = V2717 +reg298326 := __e.Call(__defun__shen_4mode_1ify, V2717) +reg298327 := MakeSymbol("Context_1957") +reg298328 := Nil; +reg298329 := PrimCons(reg298327, reg298328) +reg298330 := PrimCons(reg298326, reg298329) +reg298331 := PrimCons(V2716, reg298330) +__ctx.Return(reg298331) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.rule->horn-clause-head", value: __defun__shen_4rule_1_6horn_1clause_1head}) + +__defun__shen_4mode_1ify = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2719 := __args[0] +_ = V2719 +reg298332 := PrimIsPair(V2719) +var reg298366 Obj +if reg298332 == True { +reg298333 := PrimTail(V2719) +reg298334 := PrimIsPair(reg298333) +var reg298361 Obj +if reg298334 == True { +reg298335 := MakeSymbol(":") +reg298336 := PrimTail(V2719) +reg298337 := PrimHead(reg298336) +reg298338 := PrimEqual(reg298335, reg298337) +var reg298356 Obj +if reg298338 == True { +reg298339 := PrimTail(V2719) +reg298340 := PrimTail(reg298339) +reg298341 := PrimIsPair(reg298340) +var reg298351 Obj +if reg298341 == True { +reg298342 := Nil; +reg298343 := PrimTail(V2719) +reg298344 := PrimTail(reg298343) +reg298345 := PrimTail(reg298344) +reg298346 := PrimEqual(reg298342, reg298345) +var reg298349 Obj +if reg298346 == True { +reg298347 := True; +reg298349 = reg298347 +} else { +reg298348 := False; +reg298349 = reg298348 +} +reg298351 = reg298349 +} else { +reg298350 := False; +reg298351 = reg298350 +} +var reg298354 Obj +if reg298351 == True { +reg298352 := True; +reg298354 = reg298352 +} else { +reg298353 := False; +reg298354 = reg298353 +} +reg298356 = reg298354 +} else { +reg298355 := False; +reg298356 = reg298355 +} +var reg298359 Obj +if reg298356 == True { +reg298357 := True; +reg298359 = reg298357 +} else { +reg298358 := False; +reg298359 = reg298358 +} +reg298361 = reg298359 +} else { +reg298360 := False; +reg298361 = reg298360 +} +var reg298364 Obj +if reg298361 == True { +reg298362 := True; +reg298364 = reg298362 +} else { +reg298363 := False; +reg298364 = reg298363 +} +reg298366 = reg298364 +} else { +reg298365 := False; +reg298366 = reg298365 +} +if reg298366 == True { +reg298367 := MakeSymbol("mode") +reg298368 := PrimHead(V2719) +reg298369 := MakeSymbol(":") +reg298370 := MakeSymbol("mode") +reg298371 := PrimTail(V2719) +reg298372 := PrimTail(reg298371) +reg298373 := PrimHead(reg298372) +reg298374 := MakeSymbol("+") +reg298375 := Nil; +reg298376 := PrimCons(reg298374, reg298375) +reg298377 := PrimCons(reg298373, reg298376) +reg298378 := PrimCons(reg298370, reg298377) +reg298379 := Nil; +reg298380 := PrimCons(reg298378, reg298379) +reg298381 := PrimCons(reg298369, reg298380) +reg298382 := PrimCons(reg298368, reg298381) +reg298383 := MakeSymbol("-") +reg298384 := Nil; +reg298385 := PrimCons(reg298383, reg298384) +reg298386 := PrimCons(reg298382, reg298385) +reg298387 := PrimCons(reg298367, reg298386) +__ctx.Return(reg298387) +return +} else { +__ctx.Return(V2719) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.mode-ify", value: __defun__shen_4mode_1ify}) + +__defun__shen_4rule_1_6horn_1clause_1body = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2723 := __args[0] +_ = V2723 +V2724 := __args[1] +_ = V2724 +V2725 := __args[2] +_ = V2725 +reg298388 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4extract__vars, X) +return +}, 1) +reg298390 := __e.Call(__defun__map, reg298388, V2725) +Variables := reg298390 +_ = Variables +reg298391 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +reg298392 := MakeSymbol("shen.cl") +__ctx.TailApply(__defun__gensym, reg298392) +return +}, 1) +reg298394 := __e.Call(__defun__map, reg298391, V2725) +Predicates := reg298394 +_ = Predicates +reg298395 := MakeSymbol("Context_1957") +reg298396 := MakeSymbol("Context1_1957") +reg298397 := __e.Call(__defun__shen_4construct_1search_1literals, Predicates, Variables, reg298395, reg298396) +SearchLiterals := reg298397 +_ = SearchLiterals +reg298398 := __e.Call(__defun__shen_4construct_1search_1clauses, Predicates, V2725, Variables) +SearchClauses := reg298398 +_ = SearchClauses +reg298399 := __e.Call(__defun__shen_4construct_1side_1literals, V2723) +SideLiterals := reg298399 +_ = SideLiterals +reg298400 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +reg298401 := __e.Call(__defun__empty_2, V2725) +__ctx.TailApply(__defun__shen_4construct_1premiss_1literal, X, reg298401) +return +}, 1) +reg298403 := __e.Call(__defun__map, reg298400, V2724) +PremissLiterals := reg298403 +_ = PremissLiterals +reg298404 := __e.Call(__defun__append, SideLiterals, PremissLiterals) +__ctx.TailApply(__defun__append, SearchLiterals, reg298404) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.rule->horn-clause-body", value: __defun__shen_4rule_1_6horn_1clause_1body}) + +__defun__shen_4construct_1search_1literals = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2734 := __args[0] +_ = V2734 +V2735 := __args[1] +_ = V2735 +V2736 := __args[2] +_ = V2736 +V2737 := __args[3] +_ = V2737 +reg298406 := Nil; +reg298407 := PrimEqual(reg298406, V2734) +var reg298414 Obj +if reg298407 == True { +reg298408 := Nil; +reg298409 := PrimEqual(reg298408, V2735) +var reg298412 Obj +if reg298409 == True { +reg298410 := True; +reg298412 = reg298410 +} else { +reg298411 := False; +reg298412 = reg298411 +} +reg298414 = reg298412 +} else { +reg298413 := False; +reg298414 = reg298413 +} +if reg298414 == True { +reg298415 := Nil; +__ctx.Return(reg298415) +return +} else { +__ctx.TailApply(__defun__shen_4csl_1help, V2734, V2735, V2736, V2737) +return +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.construct-search-literals", value: __defun__shen_4construct_1search_1literals}) + +__defun__shen_4csl_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2744 := __args[0] +_ = V2744 +V2745 := __args[1] +_ = V2745 +V2746 := __args[2] +_ = V2746 +V2747 := __args[3] +_ = V2747 +reg298417 := Nil; +reg298418 := PrimEqual(reg298417, V2744) +var reg298425 Obj +if reg298418 == True { +reg298419 := Nil; +reg298420 := PrimEqual(reg298419, V2745) +var reg298423 Obj +if reg298420 == True { +reg298421 := True; +reg298423 = reg298421 +} else { +reg298422 := False; +reg298423 = reg298422 +} +reg298425 = reg298423 +} else { +reg298424 := False; +reg298425 = reg298424 +} +if reg298425 == True { +reg298426 := MakeSymbol("bind") +reg298427 := MakeSymbol("ContextOut_1957") +reg298428 := Nil; +reg298429 := PrimCons(V2746, reg298428) +reg298430 := PrimCons(reg298427, reg298429) +reg298431 := PrimCons(reg298426, reg298430) +reg298432 := Nil; +reg298433 := PrimCons(reg298431, reg298432) +__ctx.Return(reg298433) +return +} else { +reg298434 := PrimIsPair(V2744) +var reg298440 Obj +if reg298434 == True { +reg298435 := PrimIsPair(V2745) +var reg298438 Obj +if reg298435 == True { +reg298436 := True; +reg298438 = reg298436 +} else { +reg298437 := False; +reg298438 = reg298437 +} +reg298440 = reg298438 +} else { +reg298439 := False; +reg298440 = reg298439 +} +if reg298440 == True { +reg298441 := PrimHead(V2744) +reg298442 := PrimHead(V2745) +reg298443 := PrimCons(V2747, reg298442) +reg298444 := PrimCons(V2746, reg298443) +reg298445 := PrimCons(reg298441, reg298444) +reg298446 := PrimTail(V2744) +reg298447 := PrimTail(V2745) +reg298448 := MakeSymbol("Context") +reg298449 := __e.Call(__defun__gensym, reg298448) +reg298450 := __e.Call(__defun__shen_4csl_1help, reg298446, reg298447, V2747, reg298449) +reg298451 := PrimCons(reg298445, reg298450) +__ctx.Return(reg298451) +return +} else { +reg298452 := MakeSymbol("shen.csl-help") +__ctx.TailApply(__defun__shen_4f__error, reg298452) +return +} +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.csl-help", value: __defun__shen_4csl_1help}) + +__defun__shen_4construct_1search_1clauses = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2751 := __args[0] +_ = V2751 +V2752 := __args[1] +_ = V2752 +V2753 := __args[2] +_ = V2753 +reg298454 := Nil; +reg298455 := PrimEqual(reg298454, V2751) +var reg298469 Obj +if reg298455 == True { +reg298456 := Nil; +reg298457 := PrimEqual(reg298456, V2752) +var reg298464 Obj +if reg298457 == True { +reg298458 := Nil; +reg298459 := PrimEqual(reg298458, V2753) +var reg298462 Obj +if reg298459 == True { +reg298460 := True; +reg298462 = reg298460 +} else { +reg298461 := False; +reg298462 = reg298461 +} +reg298464 = reg298462 +} else { +reg298463 := False; +reg298464 = reg298463 +} +var reg298467 Obj +if reg298464 == True { +reg298465 := True; +reg298467 = reg298465 +} else { +reg298466 := False; +reg298467 = reg298466 +} +reg298469 = reg298467 +} else { +reg298468 := False; +reg298469 = reg298468 +} +if reg298469 == True { +reg298470 := MakeSymbol("shen.skip") +__ctx.Return(reg298470) +return +} else { +reg298471 := PrimIsPair(V2751) +var reg298483 Obj +if reg298471 == True { +reg298472 := PrimIsPair(V2752) +var reg298478 Obj +if reg298472 == True { +reg298473 := PrimIsPair(V2753) +var reg298476 Obj +if reg298473 == True { +reg298474 := True; +reg298476 = reg298474 +} else { +reg298475 := False; +reg298476 = reg298475 +} +reg298478 = reg298476 +} else { +reg298477 := False; +reg298478 = reg298477 +} +var reg298481 Obj +if reg298478 == True { +reg298479 := True; +reg298481 = reg298479 +} else { +reg298480 := False; +reg298481 = reg298480 +} +reg298483 = reg298481 +} else { +reg298482 := False; +reg298483 = reg298482 +} +if reg298483 == True { +reg298484 := PrimHead(V2751) +reg298485 := PrimHead(V2752) +reg298486 := PrimHead(V2753) +reg298487 := __e.Call(__defun__shen_4construct_1search_1clause, reg298484, reg298485, reg298486) +_ = reg298487 +reg298488 := PrimTail(V2751) +reg298489 := PrimTail(V2752) +reg298490 := PrimTail(V2753) +__ctx.TailApply(__defun__shen_4construct_1search_1clauses, reg298488, reg298489, reg298490) +return +} else { +reg298492 := MakeSymbol("shen.construct-search-clauses") +__ctx.TailApply(__defun__shen_4f__error, reg298492) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.construct-search-clauses", value: __defun__shen_4construct_1search_1clauses}) + +__defun__shen_4construct_1search_1clause = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2757 := __args[0] +_ = V2757 +V2758 := __args[1] +_ = V2758 +V2759 := __args[2] +_ = V2759 +reg298494 := __e.Call(__defun__shen_4construct_1base_1search_1clause, V2757, V2758, V2759) +reg298495 := __e.Call(__defun__shen_4construct_1recursive_1search_1clause, V2757, V2758, V2759) +reg298496 := Nil; +reg298497 := PrimCons(reg298495, reg298496) +reg298498 := PrimCons(reg298494, reg298497) +__ctx.TailApply(__defun__shen_4s_1prolog, reg298498) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.construct-search-clause", value: __defun__shen_4construct_1search_1clause}) + +__defun__shen_4construct_1base_1search_1clause = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2763 := __args[0] +_ = V2763 +V2764 := __args[1] +_ = V2764 +V2765 := __args[2] +_ = V2765 +reg298500 := __e.Call(__defun__shen_4mode_1ify, V2764) +reg298501 := MakeSymbol("In_1957") +reg298502 := PrimCons(reg298500, reg298501) +reg298503 := MakeSymbol("In_1957") +reg298504 := PrimCons(reg298503, V2765) +reg298505 := PrimCons(reg298502, reg298504) +reg298506 := PrimCons(V2763, reg298505) +reg298507 := MakeSymbol(":-") +reg298508 := Nil; +reg298509 := Nil; +reg298510 := PrimCons(reg298508, reg298509) +reg298511 := PrimCons(reg298507, reg298510) +reg298512 := PrimCons(reg298506, reg298511) +__ctx.Return(reg298512) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.construct-base-search-clause", value: __defun__shen_4construct_1base_1search_1clause}) + +__defun__shen_4construct_1recursive_1search_1clause = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2769 := __args[0] +_ = V2769 +V2770 := __args[1] +_ = V2770 +V2771 := __args[2] +_ = V2771 +reg298513 := MakeSymbol("Assumption_1957") +reg298514 := MakeSymbol("Assumptions_1957") +reg298515 := PrimCons(reg298513, reg298514) +reg298516 := MakeSymbol("Assumption_1957") +reg298517 := MakeSymbol("Out_1957") +reg298518 := PrimCons(reg298516, reg298517) +reg298519 := PrimCons(reg298518, V2771) +reg298520 := PrimCons(reg298515, reg298519) +reg298521 := PrimCons(V2769, reg298520) +reg298522 := MakeSymbol(":-") +reg298523 := MakeSymbol("Assumptions_1957") +reg298524 := MakeSymbol("Out_1957") +reg298525 := PrimCons(reg298524, V2771) +reg298526 := PrimCons(reg298523, reg298525) +reg298527 := PrimCons(V2769, reg298526) +reg298528 := Nil; +reg298529 := PrimCons(reg298527, reg298528) +reg298530 := Nil; +reg298531 := PrimCons(reg298529, reg298530) +reg298532 := PrimCons(reg298522, reg298531) +reg298533 := PrimCons(reg298521, reg298532) +__ctx.Return(reg298533) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.construct-recursive-search-clause", value: __defun__shen_4construct_1recursive_1search_1clause}) + +__defun__shen_4construct_1side_1literals = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2777 := __args[0] +_ = V2777 +reg298534 := Nil; +reg298535 := PrimEqual(reg298534, V2777) +if reg298535 == True { +reg298536 := Nil; +__ctx.Return(reg298536) +return +} else { +reg298537 := PrimIsPair(V2777) +var reg298571 Obj +if reg298537 == True { +reg298538 := PrimHead(V2777) +reg298539 := PrimIsPair(reg298538) +var reg298566 Obj +if reg298539 == True { +reg298540 := MakeSymbol("if") +reg298541 := PrimHead(V2777) +reg298542 := PrimHead(reg298541) +reg298543 := PrimEqual(reg298540, reg298542) +var reg298561 Obj +if reg298543 == True { +reg298544 := PrimHead(V2777) +reg298545 := PrimTail(reg298544) +reg298546 := PrimIsPair(reg298545) +var reg298556 Obj +if reg298546 == True { +reg298547 := Nil; +reg298548 := PrimHead(V2777) +reg298549 := PrimTail(reg298548) +reg298550 := PrimTail(reg298549) +reg298551 := PrimEqual(reg298547, reg298550) +var reg298554 Obj +if reg298551 == True { +reg298552 := True; +reg298554 = reg298552 +} else { +reg298553 := False; +reg298554 = reg298553 +} +reg298556 = reg298554 +} else { +reg298555 := False; +reg298556 = reg298555 +} +var reg298559 Obj +if reg298556 == True { +reg298557 := True; +reg298559 = reg298557 +} else { +reg298558 := False; +reg298559 = reg298558 +} +reg298561 = reg298559 +} else { +reg298560 := False; +reg298561 = reg298560 +} +var reg298564 Obj +if reg298561 == True { +reg298562 := True; +reg298564 = reg298562 +} else { +reg298563 := False; +reg298564 = reg298563 +} +reg298566 = reg298564 +} else { +reg298565 := False; +reg298566 = reg298565 +} +var reg298569 Obj +if reg298566 == True { +reg298567 := True; +reg298569 = reg298567 +} else { +reg298568 := False; +reg298569 = reg298568 +} +reg298571 = reg298569 +} else { +reg298570 := False; +reg298571 = reg298570 +} +if reg298571 == True { +reg298572 := MakeSymbol("when") +reg298573 := PrimHead(V2777) +reg298574 := PrimTail(reg298573) +reg298575 := PrimCons(reg298572, reg298574) +reg298576 := PrimTail(V2777) +reg298577 := __e.Call(__defun__shen_4construct_1side_1literals, reg298576) +reg298578 := PrimCons(reg298575, reg298577) +__ctx.Return(reg298578) +return +} else { +reg298579 := PrimIsPair(V2777) +var reg298623 Obj +if reg298579 == True { +reg298580 := PrimHead(V2777) +reg298581 := PrimIsPair(reg298580) +var reg298618 Obj +if reg298581 == True { +reg298582 := MakeSymbol("let") +reg298583 := PrimHead(V2777) +reg298584 := PrimHead(reg298583) +reg298585 := PrimEqual(reg298582, reg298584) +var reg298613 Obj +if reg298585 == True { +reg298586 := PrimHead(V2777) +reg298587 := PrimTail(reg298586) +reg298588 := PrimIsPair(reg298587) +var reg298608 Obj +if reg298588 == True { +reg298589 := PrimHead(V2777) +reg298590 := PrimTail(reg298589) +reg298591 := PrimTail(reg298590) +reg298592 := PrimIsPair(reg298591) +var reg298603 Obj +if reg298592 == True { +reg298593 := Nil; +reg298594 := PrimHead(V2777) +reg298595 := PrimTail(reg298594) +reg298596 := PrimTail(reg298595) +reg298597 := PrimTail(reg298596) +reg298598 := PrimEqual(reg298593, reg298597) +var reg298601 Obj +if reg298598 == True { +reg298599 := True; +reg298601 = reg298599 +} else { +reg298600 := False; +reg298601 = reg298600 +} +reg298603 = reg298601 +} else { +reg298602 := False; +reg298603 = reg298602 +} +var reg298606 Obj +if reg298603 == True { +reg298604 := True; +reg298606 = reg298604 +} else { +reg298605 := False; +reg298606 = reg298605 +} +reg298608 = reg298606 +} else { +reg298607 := False; +reg298608 = reg298607 +} +var reg298611 Obj +if reg298608 == True { +reg298609 := True; +reg298611 = reg298609 +} else { +reg298610 := False; +reg298611 = reg298610 +} +reg298613 = reg298611 +} else { +reg298612 := False; +reg298613 = reg298612 +} +var reg298616 Obj +if reg298613 == True { +reg298614 := True; +reg298616 = reg298614 +} else { +reg298615 := False; +reg298616 = reg298615 +} +reg298618 = reg298616 +} else { +reg298617 := False; +reg298618 = reg298617 +} +var reg298621 Obj +if reg298618 == True { +reg298619 := True; +reg298621 = reg298619 +} else { +reg298620 := False; +reg298621 = reg298620 +} +reg298623 = reg298621 +} else { +reg298622 := False; +reg298623 = reg298622 +} +if reg298623 == True { +reg298624 := MakeSymbol("is") +reg298625 := PrimHead(V2777) +reg298626 := PrimTail(reg298625) +reg298627 := PrimCons(reg298624, reg298626) +reg298628 := PrimTail(V2777) +reg298629 := __e.Call(__defun__shen_4construct_1side_1literals, reg298628) +reg298630 := PrimCons(reg298627, reg298629) +__ctx.Return(reg298630) +return +} else { +reg298631 := PrimIsPair(V2777) +if reg298631 == True { +reg298632 := PrimTail(V2777) +__ctx.TailApply(__defun__shen_4construct_1side_1literals, reg298632) +return +} else { +reg298634 := MakeSymbol("shen.construct-side-literals") +__ctx.TailApply(__defun__shen_4f__error, reg298634) +return +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.construct-side-literals", value: __defun__shen_4construct_1side_1literals}) + +__defun__shen_4construct_1premiss_1literal = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2784 := __args[0] +_ = V2784 +V2785 := __args[1] +_ = V2785 +reg298636 := __e.Call(__defun__tuple_2, V2784) +if reg298636 == True { +reg298637 := MakeSymbol("shen.t*") +reg298638 := __e.Call(__defun__snd, V2784) +reg298639 := __e.Call(__defun__shen_4recursive__cons__form, reg298638) +reg298640 := __e.Call(__defun__fst, V2784) +reg298641 := __e.Call(__defun__shen_4construct_1context, V2785, reg298640) +reg298642 := Nil; +reg298643 := PrimCons(reg298641, reg298642) +reg298644 := PrimCons(reg298639, reg298643) +reg298645 := PrimCons(reg298637, reg298644) +__ctx.Return(reg298645) +return +} else { +reg298646 := MakeSymbol("!") +reg298647 := PrimEqual(reg298646, V2784) +if reg298647 == True { +reg298648 := MakeSymbol("cut") +reg298649 := MakeSymbol("Throwcontrol") +reg298650 := Nil; +reg298651 := PrimCons(reg298649, reg298650) +reg298652 := PrimCons(reg298648, reg298651) +__ctx.Return(reg298652) +return +} else { +reg298653 := MakeSymbol("shen.construct-premiss-literal") +__ctx.TailApply(__defun__shen_4f__error, reg298653) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.construct-premiss-literal", value: __defun__shen_4construct_1premiss_1literal}) + +__defun__shen_4construct_1context = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2788 := __args[0] +_ = V2788 +V2789 := __args[1] +_ = V2789 +reg298655 := True; +reg298656 := PrimEqual(reg298655, V2788) +var reg298663 Obj +if reg298656 == True { +reg298657 := Nil; +reg298658 := PrimEqual(reg298657, V2789) +var reg298661 Obj +if reg298658 == True { +reg298659 := True; +reg298661 = reg298659 +} else { +reg298660 := False; +reg298661 = reg298660 +} +reg298663 = reg298661 +} else { +reg298662 := False; +reg298663 = reg298662 +} +if reg298663 == True { +reg298664 := MakeSymbol("Context_1957") +__ctx.Return(reg298664) +return +} else { +reg298665 := False; +reg298666 := PrimEqual(reg298665, V2788) +var reg298673 Obj +if reg298666 == True { +reg298667 := Nil; +reg298668 := PrimEqual(reg298667, V2789) +var reg298671 Obj +if reg298668 == True { +reg298669 := True; +reg298671 = reg298669 +} else { +reg298670 := False; +reg298671 = reg298670 +} +reg298673 = reg298671 +} else { +reg298672 := False; +reg298673 = reg298672 +} +if reg298673 == True { +reg298674 := MakeSymbol("ContextOut_1957") +__ctx.Return(reg298674) +return +} else { +reg298675 := PrimIsPair(V2789) +if reg298675 == True { +reg298676 := MakeSymbol("cons") +reg298677 := PrimHead(V2789) +reg298678 := __e.Call(__defun__shen_4recursive__cons__form, reg298677) +reg298679 := PrimTail(V2789) +reg298680 := __e.Call(__defun__shen_4construct_1context, V2788, reg298679) +reg298681 := Nil; +reg298682 := PrimCons(reg298680, reg298681) +reg298683 := PrimCons(reg298678, reg298682) +reg298684 := PrimCons(reg298676, reg298683) +__ctx.Return(reg298684) +return +} else { +reg298685 := MakeSymbol("shen.construct-context") +__ctx.TailApply(__defun__shen_4f__error, reg298685) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.construct-context", value: __defun__shen_4construct_1context}) + +__defun__shen_4recursive__cons__form = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2791 := __args[0] +_ = V2791 +reg298687 := PrimIsPair(V2791) +if reg298687 == True { +reg298688 := MakeSymbol("cons") +reg298689 := PrimHead(V2791) +reg298690 := __e.Call(__defun__shen_4recursive__cons__form, reg298689) +reg298691 := PrimTail(V2791) +reg298692 := __e.Call(__defun__shen_4recursive__cons__form, reg298691) +reg298693 := Nil; +reg298694 := PrimCons(reg298692, reg298693) +reg298695 := PrimCons(reg298690, reg298694) +reg298696 := PrimCons(reg298688, reg298695) +__ctx.Return(reg298696) +return +} else { +__ctx.Return(V2791) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.recursive_cons_form", value: __defun__shen_4recursive__cons__form}) + +__defun__preclude = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2793 := __args[0] +_ = V2793 +reg298697 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4intern_1type, X) +return +}, 1) +reg298699 := __e.Call(__defun__map, reg298697, V2793) +__ctx.TailApply(__defun__shen_4preclude_1h, reg298699) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "preclude", value: __defun__preclude}) + +__defun__shen_4preclude_1h = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2795 := __args[0] +_ = V2795 +reg298701 := MakeSymbol("shen.*datatypes*") +reg298702 := MakeSymbol("shen.*datatypes*") +reg298703 := PrimValue(reg298702) +reg298704 := __e.Call(__defun__difference, reg298703, V2795) +reg298705 := PrimSet(reg298701, reg298704) +FilterDatatypes := reg298705 +_ = FilterDatatypes +reg298706 := MakeSymbol("shen.*datatypes*") +reg298707 := PrimValue(reg298706) +__ctx.Return(reg298707) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.preclude-h", value: __defun__shen_4preclude_1h}) + +__defun__include = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2797 := __args[0] +_ = V2797 +reg298708 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4intern_1type, X) +return +}, 1) +reg298710 := __e.Call(__defun__map, reg298708, V2797) +__ctx.TailApply(__defun__shen_4include_1h, reg298710) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "include", value: __defun__include}) + +__defun__shen_4include_1h = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2799 := __args[0] +_ = V2799 +reg298712 := MakeSymbol("shen.*alldatatypes*") +reg298713 := PrimValue(reg298712) +reg298714 := __e.Call(__defun__intersection, V2799, reg298713) +ValidTypes := reg298714 +_ = ValidTypes +reg298715 := MakeSymbol("shen.*datatypes*") +reg298716 := MakeSymbol("shen.*datatypes*") +reg298717 := PrimValue(reg298716) +reg298718 := __e.Call(__defun__union, ValidTypes, reg298717) +reg298719 := PrimSet(reg298715, reg298718) +NewDatatypes := reg298719 +_ = NewDatatypes +reg298720 := MakeSymbol("shen.*datatypes*") +reg298721 := PrimValue(reg298720) +__ctx.Return(reg298721) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.include-h", value: __defun__shen_4include_1h}) + +__defun__preclude_1all_1but = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2801 := __args[0] +_ = V2801 +reg298722 := MakeSymbol("shen.*alldatatypes*") +reg298723 := PrimValue(reg298722) +reg298724 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4intern_1type, X) +return +}, 1) +reg298726 := __e.Call(__defun__map, reg298724, V2801) +reg298727 := __e.Call(__defun__difference, reg298723, reg298726) +__ctx.TailApply(__defun__shen_4preclude_1h, reg298727) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "preclude-all-but", value: __defun__preclude_1all_1but}) + +__defun__include_1all_1but = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2803 := __args[0] +_ = V2803 +reg298729 := MakeSymbol("shen.*alldatatypes*") +reg298730 := PrimValue(reg298729) +reg298731 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4intern_1type, X) +return +}, 1) +reg298733 := __e.Call(__defun__map, reg298731, V2803) +reg298734 := __e.Call(__defun__difference, reg298730, reg298733) +__ctx.TailApply(__defun__shen_4include_1h, reg298734) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "include-all-but", value: __defun__include_1all_1but}) + +__defun__shen_4synonyms_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2809 := __args[0] +_ = V2809 +reg298736 := Nil; +reg298737 := PrimEqual(reg298736, V2809) +if reg298737 == True { +reg298738 := MakeSymbol("shen.*tc*") +reg298739 := PrimValue(reg298738) +reg298740 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4demod_1rule, X) +return +}, 1) +reg298742 := MakeSymbol("shen.*synonyms*") +reg298743 := PrimValue(reg298742) +reg298744 := __e.Call(__defun__mapcan, reg298740, reg298743) +__ctx.TailApply(__defun__shen_4update_1demodulation_1function, reg298739, reg298744) +return +} else { +reg298746 := PrimIsPair(V2809) +var reg298753 Obj +if reg298746 == True { +reg298747 := PrimTail(V2809) +reg298748 := PrimIsPair(reg298747) +var reg298751 Obj +if reg298748 == True { +reg298749 := True; +reg298751 = reg298749 +} else { +reg298750 := False; +reg298751 = reg298750 +} +reg298753 = reg298751 +} else { +reg298752 := False; +reg298753 = reg298752 +} +if reg298753 == True { +reg298754 := PrimTail(V2809) +reg298755 := PrimHead(reg298754) +reg298756 := __e.Call(__defun__shen_4extract__vars, reg298755) +reg298757 := PrimHead(V2809) +reg298758 := __e.Call(__defun__shen_4extract__vars, reg298757) +reg298759 := __e.Call(__defun__difference, reg298756, reg298758) +Vs := reg298759 +_ = Vs +reg298760 := __e.Call(__defun__empty_2, Vs) +if reg298760 == True { +reg298761 := PrimHead(V2809) +reg298762 := PrimTail(V2809) +reg298763 := PrimHead(reg298762) +reg298764 := Nil; +reg298765 := PrimCons(reg298763, reg298764) +reg298766 := PrimCons(reg298761, reg298765) +reg298767 := MakeSymbol("shen.*synonyms*") +reg298768 := __e.Call(__defun__shen_4pushnew, reg298766, reg298767) +_ = reg298768 +reg298769 := PrimTail(V2809) +reg298770 := PrimTail(reg298769) +__ctx.TailApply(__defun__shen_4synonyms_1help, reg298770) +return +} else { +reg298772 := PrimTail(V2809) +reg298773 := PrimHead(reg298772) +__ctx.TailApply(__defun__shen_4free__variable__warnings, reg298773, Vs) +return +} +} else { +reg298775 := MakeString("odd number of synonyms\n") +reg298776 := PrimSimpleError(reg298775) +__ctx.Return(reg298776) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.synonyms-help", value: __defun__shen_4synonyms_1help}) + +__defun__shen_4pushnew = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2812 := __args[0] +_ = V2812 +V2813 := __args[1] +_ = V2813 +reg298777 := PrimValue(V2813) +reg298778 := __e.Call(__defun__element_2, V2812, reg298777) +if reg298778 == True { +reg298779 := PrimValue(V2813) +__ctx.Return(reg298779) +return +} else { +reg298780 := PrimValue(V2813) +reg298781 := PrimCons(V2812, reg298780) +reg298782 := PrimSet(V2813, reg298781) +__ctx.Return(reg298782) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.pushnew", value: __defun__shen_4pushnew}) + +__defun__shen_4demod_1rule = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2815 := __args[0] +_ = V2815 +reg298783 := PrimIsPair(V2815) +var reg298799 Obj +if reg298783 == True { +reg298784 := PrimTail(V2815) +reg298785 := PrimIsPair(reg298784) +var reg298794 Obj +if reg298785 == True { +reg298786 := Nil; +reg298787 := PrimTail(V2815) +reg298788 := PrimTail(reg298787) +reg298789 := PrimEqual(reg298786, reg298788) +var reg298792 Obj +if reg298789 == True { +reg298790 := True; +reg298792 = reg298790 +} else { +reg298791 := False; +reg298792 = reg298791 +} +reg298794 = reg298792 +} else { +reg298793 := False; +reg298794 = reg298793 +} +var reg298797 Obj +if reg298794 == True { +reg298795 := True; +reg298797 = reg298795 +} else { +reg298796 := False; +reg298797 = reg298796 +} +reg298799 = reg298797 +} else { +reg298798 := False; +reg298799 = reg298798 +} +if reg298799 == True { +reg298800 := PrimHead(V2815) +reg298801 := __e.Call(__defun__shen_4rcons__form, reg298800) +reg298802 := MakeSymbol("->") +reg298803 := PrimTail(V2815) +reg298804 := PrimHead(reg298803) +reg298805 := __e.Call(__defun__shen_4rcons__form, reg298804) +reg298806 := Nil; +reg298807 := PrimCons(reg298805, reg298806) +reg298808 := PrimCons(reg298802, reg298807) +reg298809 := PrimCons(reg298801, reg298808) +__ctx.Return(reg298809) +return +} else { +reg298810 := MakeSymbol("shen.demod-rule") +__ctx.TailApply(__defun__shen_4f__error, reg298810) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.demod-rule", value: __defun__shen_4demod_1rule}) + +__defun__shen_4lambda_1of_1defun = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2821 := __args[0] +_ = V2821 +reg298812 := PrimIsPair(V2821) +var reg298875 Obj +if reg298812 == True { +reg298813 := MakeSymbol("defun") +reg298814 := PrimHead(V2821) +reg298815 := PrimEqual(reg298813, reg298814) +var reg298870 Obj +if reg298815 == True { +reg298816 := PrimTail(V2821) +reg298817 := PrimIsPair(reg298816) +var reg298865 Obj +if reg298817 == True { +reg298818 := PrimTail(V2821) +reg298819 := PrimTail(reg298818) +reg298820 := PrimIsPair(reg298819) +var reg298860 Obj +if reg298820 == True { +reg298821 := PrimTail(V2821) +reg298822 := PrimTail(reg298821) +reg298823 := PrimHead(reg298822) +reg298824 := PrimIsPair(reg298823) +var reg298855 Obj +if reg298824 == True { +reg298825 := Nil; +reg298826 := PrimTail(V2821) +reg298827 := PrimTail(reg298826) +reg298828 := PrimHead(reg298827) +reg298829 := PrimTail(reg298828) +reg298830 := PrimEqual(reg298825, reg298829) +var reg298850 Obj +if reg298830 == True { +reg298831 := PrimTail(V2821) +reg298832 := PrimTail(reg298831) +reg298833 := PrimTail(reg298832) +reg298834 := PrimIsPair(reg298833) +var reg298845 Obj +if reg298834 == True { +reg298835 := Nil; +reg298836 := PrimTail(V2821) +reg298837 := PrimTail(reg298836) +reg298838 := PrimTail(reg298837) +reg298839 := PrimTail(reg298838) +reg298840 := PrimEqual(reg298835, reg298839) +var reg298843 Obj +if reg298840 == True { +reg298841 := True; +reg298843 = reg298841 +} else { +reg298842 := False; +reg298843 = reg298842 +} +reg298845 = reg298843 +} else { +reg298844 := False; +reg298845 = reg298844 +} +var reg298848 Obj +if reg298845 == True { +reg298846 := True; +reg298848 = reg298846 +} else { +reg298847 := False; +reg298848 = reg298847 +} +reg298850 = reg298848 +} else { +reg298849 := False; +reg298850 = reg298849 +} +var reg298853 Obj +if reg298850 == True { +reg298851 := True; +reg298853 = reg298851 +} else { +reg298852 := False; +reg298853 = reg298852 +} +reg298855 = reg298853 +} else { +reg298854 := False; +reg298855 = reg298854 +} +var reg298858 Obj +if reg298855 == True { +reg298856 := True; +reg298858 = reg298856 +} else { +reg298857 := False; +reg298858 = reg298857 +} +reg298860 = reg298858 +} else { +reg298859 := False; +reg298860 = reg298859 +} +var reg298863 Obj +if reg298860 == True { +reg298861 := True; +reg298863 = reg298861 +} else { +reg298862 := False; +reg298863 = reg298862 +} +reg298865 = reg298863 +} else { +reg298864 := False; +reg298865 = reg298864 +} +var reg298868 Obj +if reg298865 == True { +reg298866 := True; +reg298868 = reg298866 +} else { +reg298867 := False; +reg298868 = reg298867 +} +reg298870 = reg298868 +} else { +reg298869 := False; +reg298870 = reg298869 +} +var reg298873 Obj +if reg298870 == True { +reg298871 := True; +reg298873 = reg298871 +} else { +reg298872 := False; +reg298873 = reg298872 +} +reg298875 = reg298873 +} else { +reg298874 := False; +reg298875 = reg298874 +} +if reg298875 == True { +reg298876 := MakeSymbol("/.") +reg298877 := PrimTail(V2821) +reg298878 := PrimTail(reg298877) +reg298879 := PrimHead(reg298878) +reg298880 := PrimHead(reg298879) +reg298881 := PrimTail(V2821) +reg298882 := PrimTail(reg298881) +reg298883 := PrimTail(reg298882) +reg298884 := PrimCons(reg298880, reg298883) +reg298885 := PrimCons(reg298876, reg298884) +__ctx.TailApply(__defun__eval, reg298885) +return +} else { +reg298887 := MakeSymbol("shen.lambda-of-defun") +__ctx.TailApply(__defun__shen_4f__error, reg298887) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.lambda-of-defun", value: __defun__shen_4lambda_1of_1defun}) + +__defun__shen_4update_1demodulation_1function = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2824 := __args[0] +_ = V2824 +V2825 := __args[1] +_ = V2825 +reg298889 := MakeSymbol("-") +reg298890 := __e.Call(__defun__tc, reg298889) +_ = reg298890 +reg298891 := MakeSymbol("shen.*demodulation-function*") +reg298892 := MakeSymbol("define") +reg298893 := MakeSymbol("shen.demod") +reg298894 := __e.Call(__defun__shen_4default_1rule) +reg298895 := __e.Call(__defun__append, V2825, reg298894) +reg298896 := PrimCons(reg298893, reg298895) +reg298897 := PrimCons(reg298892, reg298896) +reg298898 := __e.Call(__defun__shen_4elim_1def, reg298897) +reg298899 := __e.Call(__defun__shen_4lambda_1of_1defun, reg298898) +reg298900 := PrimSet(reg298891, reg298899) +_ = reg298900 +var reg298904 Obj +if V2824 == True { +reg298901 := MakeSymbol("+") +reg298902 := __e.Call(__defun__tc, reg298901) +reg298904 = reg298902 +} else { +reg298903 := MakeSymbol("shen.skip") +reg298904 = reg298903 +} +_ = reg298904 +reg298905 := MakeSymbol("synonyms") +__ctx.Return(reg298905) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.update-demodulation-function", value: __defun__shen_4update_1demodulation_1function}) + +__defun__shen_4default_1rule = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg298906 := MakeSymbol("X") +reg298907 := MakeSymbol("->") +reg298908 := MakeSymbol("X") +reg298909 := Nil; +reg298910 := PrimCons(reg298908, reg298909) +reg298911 := PrimCons(reg298907, reg298910) +reg298912 := PrimCons(reg298906, reg298911) +__ctx.Return(reg298912) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.default-rule", value: __defun__shen_4default_1rule}) + +} diff --git a/cmd/shen/star.go b/cmd/shen/star.go new file mode 100644 index 0000000..e719ce2 --- /dev/null +++ b/cmd/shen/star.go @@ -0,0 +1,9636 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__shen_4typecheck Obj // shen.typecheck +var __defun__shen_4curry Obj // shen.curry +var __defun__shen_4special_2 Obj // shen.special? +var __defun__shen_4extraspecial_2 Obj // shen.extraspecial? +var __defun__shen_4t_d Obj // shen.t* +var __defun__shen_4type_1theory_1enabled_2 Obj // shen.type-theory-enabled? +var __defun__enable_1type_1theory Obj // enable-type-theory +var __defun__shen_4prolog_1failure Obj // shen.prolog-failure +var __defun__shen_4maxinfexceeded_2 Obj // shen.maxinfexceeded? +var __defun__shen_4errormaxinfs Obj // shen.errormaxinfs +var __defun__shen_4udefs_d Obj // shen.udefs* +var __defun__shen_4th_d Obj // shen.th* +var __defun__shen_4t_d_1hyps Obj // shen.t*-hyps +var __defun__shen_4show Obj // shen.show +var __defun__shen_4line Obj // shen.line +var __defun__shen_4show_1p Obj // shen.show-p +var __defun__shen_4show_1assumptions Obj // shen.show-assumptions +var __defun__shen_4pause_1for_1user Obj // shen.pause-for-user +var __defun__shen_4typedf_2 Obj // shen.typedf? +var __defun__shen_4sigf Obj // shen.sigf +var __defun__shen_4placeholder Obj // shen.placeholder +var __defun__shen_4base Obj // shen.base +var __defun__shen_4by__hypothesis Obj // shen.by_hypothesis +var __defun__shen_4t_d_1def Obj // shen.t*-def +var __defun__shen_4t_d_1defh Obj // shen.t*-defh +var __defun__shen_4t_d_1defhh Obj // shen.t*-defhh +var __defun__shen_4memo Obj // shen.memo +var __defun__shen_4_5sig_7rules_6 Obj // shen. +var __defun__shen_4_5non_1ll_1rules_6 Obj // shen. +var __defun__shen_4ue Obj // shen.ue +var __defun__shen_4ue_1sig Obj // shen.ue-sig +var __defun__shen_4ues Obj // shen.ues +var __defun__shen_4ue_2 Obj // shen.ue? +var __defun__shen_4ue_1h_2 Obj // shen.ue-h? +var __defun__shen_4t_d_1rules Obj // shen.t*-rules +var __defun__shen_4t_d_1rule Obj // shen.t*-rule +var __defun__shen_4placeholders Obj // shen.placeholders +var __defun__shen_4newhyps Obj // shen.newhyps +var __defun__shen_4patthyps Obj // shen.patthyps +var __defun__shen_4result_1type Obj // shen.result-type +var __defun__shen_4t_d_1patterns Obj // shen.t*-patterns +var __defun__shen_4t_d_1action Obj // shen.t*-action +var __defun__findall Obj // findall +var __defun__shen_4findallhelp Obj // shen.findallhelp +var __defun__shen_4remember Obj // shen.remember + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg311795 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg311795) +return +}, 0)) +__defun__shen_4typecheck = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3644 := __args[0] +_ = V3644 +V3645 := __args[1] +_ = V3645 +reg311796 := __e.Call(__defun__shen_4curry, V3644) +Curry := reg311796 +_ = Curry +reg311797 := __e.Call(__defun__shen_4start_1new_1prolog_1process) +ProcessN := reg311797 +_ = ProcessN +reg311798 := __e.Call(__defun__shen_4curry_1type, V3645) +reg311799 := __e.Call(__defun__shen_4demodulate, reg311798) +reg311800 := __e.Call(__defun__shen_4insert_1prolog_1variables, reg311799, ProcessN) +Type := reg311800 +_ = Type +reg311801 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg311802 := MakeSymbol("shen.void") +__ctx.TailApply(__defun__return, Type, ProcessN, reg311802) +return +}, 0) +Continuation := reg311801 +_ = Continuation +reg311804 := MakeSymbol(":") +reg311805 := Nil; +reg311806 := PrimCons(Type, reg311805) +reg311807 := PrimCons(reg311804, reg311806) +reg311808 := PrimCons(Curry, reg311807) +reg311809 := Nil; +__ctx.TailApply(__defun__shen_4t_d, reg311808, reg311809, ProcessN, Continuation) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.typecheck", value: __defun__shen_4typecheck}) + +__defun__shen_4curry = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3647 := __args[0] +_ = V3647 +reg311811 := PrimIsPair(V3647) +var reg311818 Obj +if reg311811 == True { +reg311812 := PrimHead(V3647) +reg311813 := __e.Call(__defun__shen_4special_2, reg311812) +var reg311816 Obj +if reg311813 == True { +reg311814 := True; +reg311816 = reg311814 +} else { +reg311815 := False; +reg311816 = reg311815 +} +reg311818 = reg311816 +} else { +reg311817 := False; +reg311818 = reg311817 +} +if reg311818 == True { +reg311819 := PrimHead(V3647) +reg311820 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Y := __args[0] +_ = Y +__ctx.TailApply(__defun__shen_4curry, Y) +return +}, 1) +reg311822 := PrimTail(V3647) +reg311823 := __e.Call(__defun__map, reg311820, reg311822) +reg311824 := PrimCons(reg311819, reg311823) +__ctx.Return(reg311824) +return +} else { +reg311825 := PrimIsPair(V3647) +var reg311839 Obj +if reg311825 == True { +reg311826 := PrimTail(V3647) +reg311827 := PrimIsPair(reg311826) +var reg311834 Obj +if reg311827 == True { +reg311828 := PrimHead(V3647) +reg311829 := __e.Call(__defun__shen_4extraspecial_2, reg311828) +var reg311832 Obj +if reg311829 == True { +reg311830 := True; +reg311832 = reg311830 +} else { +reg311831 := False; +reg311832 = reg311831 +} +reg311834 = reg311832 +} else { +reg311833 := False; +reg311834 = reg311833 +} +var reg311837 Obj +if reg311834 == True { +reg311835 := True; +reg311837 = reg311835 +} else { +reg311836 := False; +reg311837 = reg311836 +} +reg311839 = reg311837 +} else { +reg311838 := False; +reg311839 = reg311838 +} +if reg311839 == True { +__ctx.Return(V3647) +return +} else { +reg311840 := PrimIsPair(V3647) +var reg311873 Obj +if reg311840 == True { +reg311841 := MakeSymbol("type") +reg311842 := PrimHead(V3647) +reg311843 := PrimEqual(reg311841, reg311842) +var reg311868 Obj +if reg311843 == True { +reg311844 := PrimTail(V3647) +reg311845 := PrimIsPair(reg311844) +var reg311863 Obj +if reg311845 == True { +reg311846 := PrimTail(V3647) +reg311847 := PrimTail(reg311846) +reg311848 := PrimIsPair(reg311847) +var reg311858 Obj +if reg311848 == True { +reg311849 := Nil; +reg311850 := PrimTail(V3647) +reg311851 := PrimTail(reg311850) +reg311852 := PrimTail(reg311851) +reg311853 := PrimEqual(reg311849, reg311852) +var reg311856 Obj +if reg311853 == True { +reg311854 := True; +reg311856 = reg311854 +} else { +reg311855 := False; +reg311856 = reg311855 +} +reg311858 = reg311856 +} else { +reg311857 := False; +reg311858 = reg311857 +} +var reg311861 Obj +if reg311858 == True { +reg311859 := True; +reg311861 = reg311859 +} else { +reg311860 := False; +reg311861 = reg311860 +} +reg311863 = reg311861 +} else { +reg311862 := False; +reg311863 = reg311862 +} +var reg311866 Obj +if reg311863 == True { +reg311864 := True; +reg311866 = reg311864 +} else { +reg311865 := False; +reg311866 = reg311865 +} +reg311868 = reg311866 +} else { +reg311867 := False; +reg311868 = reg311867 +} +var reg311871 Obj +if reg311868 == True { +reg311869 := True; +reg311871 = reg311869 +} else { +reg311870 := False; +reg311871 = reg311870 +} +reg311873 = reg311871 +} else { +reg311872 := False; +reg311873 = reg311872 +} +if reg311873 == True { +reg311874 := MakeSymbol("type") +reg311875 := PrimTail(V3647) +reg311876 := PrimHead(reg311875) +reg311877 := __e.Call(__defun__shen_4curry, reg311876) +reg311878 := PrimTail(V3647) +reg311879 := PrimTail(reg311878) +reg311880 := PrimCons(reg311877, reg311879) +reg311881 := PrimCons(reg311874, reg311880) +__ctx.Return(reg311881) +return +} else { +reg311882 := PrimIsPair(V3647) +var reg311897 Obj +if reg311882 == True { +reg311883 := PrimTail(V3647) +reg311884 := PrimIsPair(reg311883) +var reg311892 Obj +if reg311884 == True { +reg311885 := PrimTail(V3647) +reg311886 := PrimTail(reg311885) +reg311887 := PrimIsPair(reg311886) +var reg311890 Obj +if reg311887 == True { +reg311888 := True; +reg311890 = reg311888 +} else { +reg311889 := False; +reg311890 = reg311889 +} +reg311892 = reg311890 +} else { +reg311891 := False; +reg311892 = reg311891 +} +var reg311895 Obj +if reg311892 == True { +reg311893 := True; +reg311895 = reg311893 +} else { +reg311894 := False; +reg311895 = reg311894 +} +reg311897 = reg311895 +} else { +reg311896 := False; +reg311897 = reg311896 +} +if reg311897 == True { +reg311898 := PrimHead(V3647) +reg311899 := PrimTail(V3647) +reg311900 := PrimHead(reg311899) +reg311901 := Nil; +reg311902 := PrimCons(reg311900, reg311901) +reg311903 := PrimCons(reg311898, reg311902) +reg311904 := PrimTail(V3647) +reg311905 := PrimTail(reg311904) +reg311906 := PrimCons(reg311903, reg311905) +__ctx.TailApply(__defun__shen_4curry, reg311906) +return +} else { +reg311908 := PrimIsPair(V3647) +var reg311924 Obj +if reg311908 == True { +reg311909 := PrimTail(V3647) +reg311910 := PrimIsPair(reg311909) +var reg311919 Obj +if reg311910 == True { +reg311911 := Nil; +reg311912 := PrimTail(V3647) +reg311913 := PrimTail(reg311912) +reg311914 := PrimEqual(reg311911, reg311913) +var reg311917 Obj +if reg311914 == True { +reg311915 := True; +reg311917 = reg311915 +} else { +reg311916 := False; +reg311917 = reg311916 +} +reg311919 = reg311917 +} else { +reg311918 := False; +reg311919 = reg311918 +} +var reg311922 Obj +if reg311919 == True { +reg311920 := True; +reg311922 = reg311920 +} else { +reg311921 := False; +reg311922 = reg311921 +} +reg311924 = reg311922 +} else { +reg311923 := False; +reg311924 = reg311923 +} +if reg311924 == True { +reg311925 := PrimHead(V3647) +reg311926 := __e.Call(__defun__shen_4curry, reg311925) +reg311927 := PrimTail(V3647) +reg311928 := PrimHead(reg311927) +reg311929 := __e.Call(__defun__shen_4curry, reg311928) +reg311930 := Nil; +reg311931 := PrimCons(reg311929, reg311930) +reg311932 := PrimCons(reg311926, reg311931) +__ctx.Return(reg311932) +return +} else { +__ctx.Return(V3647) +return +} +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.curry", value: __defun__shen_4curry}) + +__defun__shen_4special_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3649 := __args[0] +_ = V3649 +reg311933 := MakeSymbol("shen.*special*") +reg311934 := PrimValue(reg311933) +__ctx.TailApply(__defun__element_2, V3649, reg311934) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.special?", value: __defun__shen_4special_2}) + +__defun__shen_4extraspecial_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3651 := __args[0] +_ = V3651 +reg311936 := MakeSymbol("shen.*extraspecial*") +reg311937 := PrimValue(reg311936) +__ctx.TailApply(__defun__element_2, V3651, reg311937) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.extraspecial?", value: __defun__shen_4extraspecial_2}) + +__defun__shen_4t_d = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3656 := __args[0] +_ = V3656 +V3657 := __args[1] +_ = V3657 +V3658 := __args[2] +_ = V3658 +V3659 := __args[3] +_ = V3659 +reg311939 := __e.Call(__defun__shen_4catchpoint) +Throwcontrol := reg311939 +_ = Throwcontrol +reg311940 := __e.Call(__defun__shen_4newpv, V3658) +Error := reg311940 +_ = Error +reg311941 := __e.Call(__defun__shen_4incinfs) +_ = reg311941 +reg311942 := __e.Call(__defun__shen_4maxinfexceeded_2) +reg311943 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg311944 := __e.Call(__defun__shen_4errormaxinfs) +__ctx.TailApply(__defun__bind, Error, reg311944, V3658, V3659) +return +}, 0) +reg311946 := __e.Call(__defun__fwhen, reg311942, V3658, reg311943) +Case := reg311946 +_ = Case +reg311947 := False; +reg311948 := PrimEqual(Case, reg311947) +var reg312008 Obj +if reg311948 == True { +reg311949 := __e.Call(__defun__shen_4lazyderef, V3656, V3658) +V3636 := reg311949 +_ = V3636 +reg311950 := MakeSymbol("fail") +reg311951 := PrimEqual(reg311950, V3636) +var reg311957 Obj +if reg311951 == True { +reg311952 := __e.Call(__defun__shen_4incinfs) +_ = reg311952 +reg311953 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4prolog_1failure, V3658, V3659) +return +}, 0) +reg311955 := __e.Call(__defun__cut, Throwcontrol, V3658, reg311953) +reg311957 = reg311955 +} else { +reg311956 := False; +reg311957 = reg311956 +} +Case := reg311957 +_ = Case +reg311958 := False; +reg311959 := PrimEqual(Case, reg311958) +var reg312007 Obj +if reg311959 == True { +reg311960 := __e.Call(__defun__shen_4lazyderef, V3656, V3658) +V3637 := reg311960 +_ = V3637 +reg311961 := PrimIsPair(V3637) +var reg311994 Obj +if reg311961 == True { +reg311962 := PrimHead(V3637) +X := reg311962 +_ = X +reg311963 := PrimTail(V3637) +reg311964 := __e.Call(__defun__shen_4lazyderef, reg311963, V3658) +V3638 := reg311964 +_ = V3638 +reg311965 := PrimIsPair(V3638) +var reg311992 Obj +if reg311965 == True { +reg311966 := PrimHead(V3638) +reg311967 := __e.Call(__defun__shen_4lazyderef, reg311966, V3658) +V3639 := reg311967 +_ = V3639 +reg311968 := MakeSymbol(":") +reg311969 := PrimEqual(reg311968, V3639) +var reg311990 Obj +if reg311969 == True { +reg311970 := PrimTail(V3638) +reg311971 := __e.Call(__defun__shen_4lazyderef, reg311970, V3658) +V3640 := reg311971 +_ = V3640 +reg311972 := PrimIsPair(V3640) +var reg311988 Obj +if reg311972 == True { +reg311973 := PrimHead(V3640) +A := reg311973 +_ = A +reg311974 := PrimTail(V3640) +reg311975 := __e.Call(__defun__shen_4lazyderef, reg311974, V3658) +V3641 := reg311975 +_ = V3641 +reg311976 := Nil; +reg311977 := PrimEqual(reg311976, V3641) +var reg311986 Obj +if reg311977 == True { +reg311978 := __e.Call(__defun__shen_4incinfs) +_ = reg311978 +reg311979 := __e.Call(__defun__shen_4type_1theory_1enabled_2) +reg311980 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg311981 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, X, A, V3657, V3658, V3659) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3658, reg311981) +return +}, 0) +reg311984 := __e.Call(__defun__fwhen, reg311979, V3658, reg311980) +reg311986 = reg311984 +} else { +reg311985 := False; +reg311986 = reg311985 +} +reg311988 = reg311986 +} else { +reg311987 := False; +reg311988 = reg311987 +} +reg311990 = reg311988 +} else { +reg311989 := False; +reg311990 = reg311989 +} +reg311992 = reg311990 +} else { +reg311991 := False; +reg311992 = reg311991 +} +reg311994 = reg311992 +} else { +reg311993 := False; +reg311994 = reg311993 +} +Case := reg311994 +_ = Case +reg311995 := False; +reg311996 := PrimEqual(Case, reg311995) +var reg312006 Obj +if reg311996 == True { +reg311997 := __e.Call(__defun__shen_4newpv, V3658) +Datatypes := reg311997 +_ = Datatypes +reg311998 := __e.Call(__defun__shen_4incinfs) +_ = reg311998 +reg311999 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312000 := MakeSymbol("shen.*datatypes*") +reg312001 := PrimValue(reg312000) +reg312002 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4udefs_d, V3656, V3657, Datatypes, V3658, V3659) +return +}, 0) +__ctx.TailApply(__defun__bind, Datatypes, reg312001, V3658, reg312002) +return +}, 0) +reg312005 := __e.Call(__defun__shen_4show, V3656, V3657, V3658, reg311999) +reg312006 = reg312005 +} else { +reg312006 = Case +} +reg312007 = reg312006 +} else { +reg312007 = Case +} +reg312008 = reg312007 +} else { +reg312008 = Case +} +__ctx.TailApply(__defun__shen_4cutpoint, Throwcontrol, reg312008) +return +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.t*", value: __defun__shen_4t_d}) + +__defun__shen_4type_1theory_1enabled_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312010 := MakeSymbol("shen.*shen-type-theory-enabled?*") +reg312011 := PrimValue(reg312010) +__ctx.Return(reg312011) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.type-theory-enabled?", value: __defun__shen_4type_1theory_1enabled_2}) + +__defun__enable_1type_1theory = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3665 := __args[0] +_ = V3665 +reg312012 := MakeSymbol("+") +reg312013 := PrimEqual(reg312012, V3665) +if reg312013 == True { +reg312014 := MakeSymbol("shen.*shen-type-theory-enabled?*") +reg312015 := True; +reg312016 := PrimSet(reg312014, reg312015) +__ctx.Return(reg312016) +return +} else { +reg312017 := MakeSymbol("-") +reg312018 := PrimEqual(reg312017, V3665) +if reg312018 == True { +reg312019 := MakeSymbol("shen.*shen-type-theory-enabled?*") +reg312020 := False; +reg312021 := PrimSet(reg312019, reg312020) +__ctx.Return(reg312021) +return +} else { +reg312022 := MakeString("enable-type-theory expects a + or a -\n") +reg312023 := PrimSimpleError(reg312022) +__ctx.Return(reg312023) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "enable-type-theory", value: __defun__enable_1type_1theory}) + +__defun__shen_4prolog_1failure = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3676 := __args[0] +_ = V3676 +V3677 := __args[1] +_ = V3677 +reg312024 := False; +__ctx.Return(reg312024) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.prolog-failure", value: __defun__shen_4prolog_1failure}) + +__defun__shen_4maxinfexceeded_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312025 := __e.Call(__defun__inferences) +reg312026 := MakeSymbol("shen.*maxinferences*") +reg312027 := PrimValue(reg312026) +reg312028 := PrimGreatThan(reg312025, reg312027) +__ctx.Return(reg312028) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.maxinfexceeded?", value: __defun__shen_4maxinfexceeded_2}) + +__defun__shen_4errormaxinfs = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312029 := MakeString("maximum inferences exceeded~%") +reg312030 := PrimSimpleError(reg312029) +__ctx.Return(reg312030) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.errormaxinfs", value: __defun__shen_4errormaxinfs}) + +__defun__shen_4udefs_d = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3683 := __args[0] +_ = V3683 +V3684 := __args[1] +_ = V3684 +V3685 := __args[2] +_ = V3685 +V3686 := __args[3] +_ = V3686 +V3687 := __args[4] +_ = V3687 +reg312031 := __e.Call(__defun__shen_4lazyderef, V3685, V3686) +V3632 := reg312031 +_ = V3632 +reg312032 := PrimIsPair(V3632) +var reg312041 Obj +if reg312032 == True { +reg312033 := PrimHead(V3632) +D := reg312033 +_ = D +reg312034 := __e.Call(__defun__shen_4incinfs) +_ = reg312034 +reg312035 := Nil; +reg312036 := PrimCons(V3684, reg312035) +reg312037 := PrimCons(V3683, reg312036) +reg312038 := PrimCons(D, reg312037) +reg312039 := __e.Call(__defun__call, reg312038, V3686, V3687) +reg312041 = reg312039 +} else { +reg312040 := False; +reg312041 = reg312040 +} +Case := reg312041 +_ = Case +reg312042 := False; +reg312043 := PrimEqual(Case, reg312042) +if reg312043 == True { +reg312044 := __e.Call(__defun__shen_4lazyderef, V3685, V3686) +V3633 := reg312044 +_ = V3633 +reg312045 := PrimIsPair(V3633) +if reg312045 == True { +reg312046 := PrimTail(V3633) +Ds := reg312046 +_ = Ds +reg312047 := __e.Call(__defun__shen_4incinfs) +_ = reg312047 +__ctx.TailApply(__defun__shen_4udefs_d, V3683, V3684, Ds, V3686, V3687) +return +} else { +reg312049 := False; +__ctx.Return(reg312049) +return +} +} else { +__ctx.Return(Case) +return +} +}, 5) +__initDefs = append(__initDefs, defType{name: "shen.udefs*", value: __defun__shen_4udefs_d}) + +__defun__shen_4th_d = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3693 := __args[0] +_ = V3693 +V3694 := __args[1] +_ = V3694 +V3695 := __args[2] +_ = V3695 +V3696 := __args[3] +_ = V3696 +V3697 := __args[4] +_ = V3697 +reg312050 := __e.Call(__defun__shen_4catchpoint) +Throwcontrol := reg312050 +_ = Throwcontrol +reg312051 := __e.Call(__defun__shen_4incinfs) +_ = reg312051 +reg312052 := MakeSymbol(":") +reg312053 := Nil; +reg312054 := PrimCons(V3694, reg312053) +reg312055 := PrimCons(reg312052, reg312054) +reg312056 := PrimCons(V3693, reg312055) +reg312057 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312058 := False; +__ctx.TailApply(__defun__fwhen, reg312058, V3696, V3697) +return +}, 0) +reg312060 := __e.Call(__defun__shen_4show, reg312056, V3695, V3696, reg312057) +Case := reg312060 +_ = Case +reg312061 := False; +reg312062 := PrimEqual(Case, reg312061) +var reg313481 Obj +if reg312062 == True { +reg312063 := __e.Call(__defun__shen_4newpv, V3696) +F := reg312063 +_ = F +reg312064 := __e.Call(__defun__shen_4incinfs) +_ = reg312064 +reg312065 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +reg312066 := __e.Call(__defun__shen_4typedf_2, reg312065) +reg312067 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312068 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +reg312069 := __e.Call(__defun__shen_4sigf, reg312068) +reg312070 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312071 := Nil; +reg312072 := PrimCons(V3694, reg312071) +reg312073 := PrimCons(F, reg312072) +__ctx.TailApply(__defun__call, reg312073, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__bind, F, reg312069, V3696, reg312070) +return +}, 0) +reg312076 := __e.Call(__defun__fwhen, reg312066, V3696, reg312067) +Case := reg312076 +_ = Case +reg312077 := False; +reg312078 := PrimEqual(Case, reg312077) +var reg313480 Obj +if reg312078 == True { +reg312079 := __e.Call(__defun__shen_4incinfs) +_ = reg312079 +reg312080 := __e.Call(__defun__shen_4base, V3693, V3694, V3696, V3697) +Case := reg312080 +_ = Case +reg312081 := False; +reg312082 := PrimEqual(Case, reg312081) +var reg313479 Obj +if reg312082 == True { +reg312083 := __e.Call(__defun__shen_4incinfs) +_ = reg312083 +reg312084 := __e.Call(__defun__shen_4by__hypothesis, V3693, V3694, V3695, V3696, V3697) +Case := reg312084 +_ = Case +reg312085 := False; +reg312086 := PrimEqual(Case, reg312085) +var reg313478 Obj +if reg312086 == True { +reg312087 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3528 := reg312087 +_ = V3528 +reg312088 := PrimIsPair(V3528) +var reg312103 Obj +if reg312088 == True { +reg312089 := PrimHead(V3528) +F := reg312089 +_ = F +reg312090 := PrimTail(V3528) +reg312091 := __e.Call(__defun__shen_4lazyderef, reg312090, V3696) +V3529 := reg312091 +_ = V3529 +reg312092 := Nil; +reg312093 := PrimEqual(reg312092, V3529) +var reg312101 Obj +if reg312093 == True { +reg312094 := __e.Call(__defun__shen_4incinfs) +_ = reg312094 +reg312095 := MakeSymbol("-->") +reg312096 := Nil; +reg312097 := PrimCons(V3694, reg312096) +reg312098 := PrimCons(reg312095, reg312097) +reg312099 := __e.Call(__defun__shen_4th_d, F, reg312098, V3695, V3696, V3697) +reg312101 = reg312099 +} else { +reg312100 := False; +reg312101 = reg312100 +} +reg312103 = reg312101 +} else { +reg312102 := False; +reg312103 = reg312102 +} +Case := reg312103 +_ = Case +reg312104 := False; +reg312105 := PrimEqual(Case, reg312104) +var reg313477 Obj +if reg312105 == True { +reg312106 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3530 := reg312106 +_ = V3530 +reg312107 := PrimIsPair(V3530) +var reg312132 Obj +if reg312107 == True { +reg312108 := PrimHead(V3530) +F := reg312108 +_ = F +reg312109 := PrimTail(V3530) +reg312110 := __e.Call(__defun__shen_4lazyderef, reg312109, V3696) +V3531 := reg312110 +_ = V3531 +reg312111 := PrimIsPair(V3531) +var reg312130 Obj +if reg312111 == True { +reg312112 := PrimHead(V3531) +X := reg312112 +_ = X +reg312113 := PrimTail(V3531) +reg312114 := __e.Call(__defun__shen_4lazyderef, reg312113, V3696) +V3532 := reg312114 +_ = V3532 +reg312115 := Nil; +reg312116 := PrimEqual(reg312115, V3532) +var reg312128 Obj +if reg312116 == True { +reg312117 := __e.Call(__defun__shen_4newpv, V3696) +B := reg312117 +_ = B +reg312118 := __e.Call(__defun__shen_4incinfs) +_ = reg312118 +reg312119 := MakeSymbol("-->") +reg312120 := Nil; +reg312121 := PrimCons(V3694, reg312120) +reg312122 := PrimCons(reg312119, reg312121) +reg312123 := PrimCons(B, reg312122) +reg312124 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, X, B, V3695, V3696, V3697) +return +}, 0) +reg312126 := __e.Call(__defun__shen_4th_d, F, reg312123, V3695, V3696, reg312124) +reg312128 = reg312126 +} else { +reg312127 := False; +reg312128 = reg312127 +} +reg312130 = reg312128 +} else { +reg312129 := False; +reg312130 = reg312129 +} +reg312132 = reg312130 +} else { +reg312131 := False; +reg312132 = reg312131 +} +Case := reg312132 +_ = Case +reg312133 := False; +reg312134 := PrimEqual(Case, reg312133) +var reg313476 Obj +if reg312134 == True { +reg312135 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3533 := reg312135 +_ = V3533 +reg312136 := PrimIsPair(V3533) +var reg312290 Obj +if reg312136 == True { +reg312137 := PrimHead(V3533) +reg312138 := __e.Call(__defun__shen_4lazyderef, reg312137, V3696) +V3534 := reg312138 +_ = V3534 +reg312139 := MakeSymbol("cons") +reg312140 := PrimEqual(reg312139, V3534) +var reg312288 Obj +if reg312140 == True { +reg312141 := PrimTail(V3533) +reg312142 := __e.Call(__defun__shen_4lazyderef, reg312141, V3696) +V3535 := reg312142 +_ = V3535 +reg312143 := PrimIsPair(V3535) +var reg312286 Obj +if reg312143 == True { +reg312144 := PrimHead(V3535) +X := reg312144 +_ = X +reg312145 := PrimTail(V3535) +reg312146 := __e.Call(__defun__shen_4lazyderef, reg312145, V3696) +V3536 := reg312146 +_ = V3536 +reg312147 := PrimIsPair(V3536) +var reg312284 Obj +if reg312147 == True { +reg312148 := PrimHead(V3536) +Y := reg312148 +_ = Y +reg312149 := PrimTail(V3536) +reg312150 := __e.Call(__defun__shen_4lazyderef, reg312149, V3696) +V3537 := reg312150 +_ = V3537 +reg312151 := Nil; +reg312152 := PrimEqual(reg312151, V3537) +var reg312282 Obj +if reg312152 == True { +reg312153 := __e.Call(__defun__shen_4lazyderef, V3694, V3696) +V3538 := reg312153 +_ = V3538 +reg312154 := PrimIsPair(V3538) +var reg312280 Obj +if reg312154 == True { +reg312155 := PrimHead(V3538) +reg312156 := __e.Call(__defun__shen_4lazyderef, reg312155, V3696) +V3539 := reg312156 +_ = V3539 +reg312157 := MakeSymbol("list") +reg312158 := PrimEqual(reg312157, V3539) +var reg312261 Obj +if reg312158 == True { +reg312159 := PrimTail(V3538) +reg312160 := __e.Call(__defun__shen_4lazyderef, reg312159, V3696) +V3540 := reg312160 +_ = V3540 +reg312161 := PrimIsPair(V3540) +var reg312206 Obj +if reg312161 == True { +reg312162 := PrimHead(V3540) +A := reg312162 +_ = A +reg312163 := PrimTail(V3540) +reg312164 := __e.Call(__defun__shen_4lazyderef, reg312163, V3696) +V3541 := reg312164 +_ = V3541 +reg312165 := Nil; +reg312166 := PrimEqual(reg312165, V3541) +var reg312189 Obj +if reg312166 == True { +reg312167 := __e.Call(__defun__shen_4incinfs) +_ = reg312167 +reg312168 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312169 := MakeSymbol("list") +reg312170 := Nil; +reg312171 := PrimCons(A, reg312170) +reg312172 := PrimCons(reg312169, reg312171) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312172, V3695, V3696, V3697) +return +}, 0) +reg312174 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312168) +reg312189 = reg312174 +} else { +reg312175 := __e.Call(__defun__shen_4pvar_2, V3541) +var reg312188 Obj +if reg312175 == True { +reg312176 := Nil; +reg312177 := __e.Call(__defun__shen_4bindv, V3541, reg312176, V3696) +_ = reg312177 +reg312178 := __e.Call(__defun__shen_4incinfs) +_ = reg312178 +reg312179 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312180 := MakeSymbol("list") +reg312181 := Nil; +reg312182 := PrimCons(A, reg312181) +reg312183 := PrimCons(reg312180, reg312182) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312183, V3695, V3696, V3697) +return +}, 0) +reg312185 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312179) +Result := reg312185 +_ = Result +reg312186 := __e.Call(__defun__shen_4unbindv, V3541, V3696) +_ = reg312186 +reg312188 = Result +} else { +reg312187 := False; +reg312188 = reg312187 +} +reg312189 = reg312188 +} +reg312206 = reg312189 +} else { +reg312190 := __e.Call(__defun__shen_4pvar_2, V3540) +var reg312205 Obj +if reg312190 == True { +reg312191 := __e.Call(__defun__shen_4newpv, V3696) +A := reg312191 +_ = A +reg312192 := Nil; +reg312193 := PrimCons(A, reg312192) +reg312194 := __e.Call(__defun__shen_4bindv, V3540, reg312193, V3696) +_ = reg312194 +reg312195 := __e.Call(__defun__shen_4incinfs) +_ = reg312195 +reg312196 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312197 := MakeSymbol("list") +reg312198 := Nil; +reg312199 := PrimCons(A, reg312198) +reg312200 := PrimCons(reg312197, reg312199) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312200, V3695, V3696, V3697) +return +}, 0) +reg312202 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312196) +Result := reg312202 +_ = Result +reg312203 := __e.Call(__defun__shen_4unbindv, V3540, V3696) +_ = reg312203 +reg312205 = Result +} else { +reg312204 := False; +reg312205 = reg312204 +} +reg312206 = reg312205 +} +reg312261 = reg312206 +} else { +reg312207 := __e.Call(__defun__shen_4pvar_2, V3539) +var reg312260 Obj +if reg312207 == True { +reg312208 := MakeSymbol("list") +reg312209 := __e.Call(__defun__shen_4bindv, V3539, reg312208, V3696) +_ = reg312209 +reg312210 := PrimTail(V3538) +reg312211 := __e.Call(__defun__shen_4lazyderef, reg312210, V3696) +V3542 := reg312211 +_ = V3542 +reg312212 := PrimIsPair(V3542) +var reg312257 Obj +if reg312212 == True { +reg312213 := PrimHead(V3542) +A := reg312213 +_ = A +reg312214 := PrimTail(V3542) +reg312215 := __e.Call(__defun__shen_4lazyderef, reg312214, V3696) +V3543 := reg312215 +_ = V3543 +reg312216 := Nil; +reg312217 := PrimEqual(reg312216, V3543) +var reg312240 Obj +if reg312217 == True { +reg312218 := __e.Call(__defun__shen_4incinfs) +_ = reg312218 +reg312219 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312220 := MakeSymbol("list") +reg312221 := Nil; +reg312222 := PrimCons(A, reg312221) +reg312223 := PrimCons(reg312220, reg312222) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312223, V3695, V3696, V3697) +return +}, 0) +reg312225 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312219) +reg312240 = reg312225 +} else { +reg312226 := __e.Call(__defun__shen_4pvar_2, V3543) +var reg312239 Obj +if reg312226 == True { +reg312227 := Nil; +reg312228 := __e.Call(__defun__shen_4bindv, V3543, reg312227, V3696) +_ = reg312228 +reg312229 := __e.Call(__defun__shen_4incinfs) +_ = reg312229 +reg312230 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312231 := MakeSymbol("list") +reg312232 := Nil; +reg312233 := PrimCons(A, reg312232) +reg312234 := PrimCons(reg312231, reg312233) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312234, V3695, V3696, V3697) +return +}, 0) +reg312236 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312230) +Result := reg312236 +_ = Result +reg312237 := __e.Call(__defun__shen_4unbindv, V3543, V3696) +_ = reg312237 +reg312239 = Result +} else { +reg312238 := False; +reg312239 = reg312238 +} +reg312240 = reg312239 +} +reg312257 = reg312240 +} else { +reg312241 := __e.Call(__defun__shen_4pvar_2, V3542) +var reg312256 Obj +if reg312241 == True { +reg312242 := __e.Call(__defun__shen_4newpv, V3696) +A := reg312242 +_ = A +reg312243 := Nil; +reg312244 := PrimCons(A, reg312243) +reg312245 := __e.Call(__defun__shen_4bindv, V3542, reg312244, V3696) +_ = reg312245 +reg312246 := __e.Call(__defun__shen_4incinfs) +_ = reg312246 +reg312247 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312248 := MakeSymbol("list") +reg312249 := Nil; +reg312250 := PrimCons(A, reg312249) +reg312251 := PrimCons(reg312248, reg312250) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312251, V3695, V3696, V3697) +return +}, 0) +reg312253 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312247) +Result := reg312253 +_ = Result +reg312254 := __e.Call(__defun__shen_4unbindv, V3542, V3696) +_ = reg312254 +reg312256 = Result +} else { +reg312255 := False; +reg312256 = reg312255 +} +reg312257 = reg312256 +} +Result := reg312257 +_ = Result +reg312258 := __e.Call(__defun__shen_4unbindv, V3539, V3696) +_ = reg312258 +reg312260 = Result +} else { +reg312259 := False; +reg312260 = reg312259 +} +reg312261 = reg312260 +} +reg312280 = reg312261 +} else { +reg312262 := __e.Call(__defun__shen_4pvar_2, V3538) +var reg312279 Obj +if reg312262 == True { +reg312263 := __e.Call(__defun__shen_4newpv, V3696) +A := reg312263 +_ = A +reg312264 := MakeSymbol("list") +reg312265 := Nil; +reg312266 := PrimCons(A, reg312265) +reg312267 := PrimCons(reg312264, reg312266) +reg312268 := __e.Call(__defun__shen_4bindv, V3538, reg312267, V3696) +_ = reg312268 +reg312269 := __e.Call(__defun__shen_4incinfs) +_ = reg312269 +reg312270 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312271 := MakeSymbol("list") +reg312272 := Nil; +reg312273 := PrimCons(A, reg312272) +reg312274 := PrimCons(reg312271, reg312273) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312274, V3695, V3696, V3697) +return +}, 0) +reg312276 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312270) +Result := reg312276 +_ = Result +reg312277 := __e.Call(__defun__shen_4unbindv, V3538, V3696) +_ = reg312277 +reg312279 = Result +} else { +reg312278 := False; +reg312279 = reg312278 +} +reg312280 = reg312279 +} +reg312282 = reg312280 +} else { +reg312281 := False; +reg312282 = reg312281 +} +reg312284 = reg312282 +} else { +reg312283 := False; +reg312284 = reg312283 +} +reg312286 = reg312284 +} else { +reg312285 := False; +reg312286 = reg312285 +} +reg312288 = reg312286 +} else { +reg312287 := False; +reg312288 = reg312287 +} +reg312290 = reg312288 +} else { +reg312289 := False; +reg312290 = reg312289 +} +Case := reg312290 +_ = Case +reg312291 := False; +reg312292 := PrimEqual(Case, reg312291) +var reg313475 Obj +if reg312292 == True { +reg312293 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3544 := reg312293 +_ = V3544 +reg312294 := PrimIsPair(V3544) +var reg312441 Obj +if reg312294 == True { +reg312295 := PrimHead(V3544) +reg312296 := __e.Call(__defun__shen_4lazyderef, reg312295, V3696) +V3545 := reg312296 +_ = V3545 +reg312297 := MakeSymbol("@p") +reg312298 := PrimEqual(reg312297, V3545) +var reg312439 Obj +if reg312298 == True { +reg312299 := PrimTail(V3544) +reg312300 := __e.Call(__defun__shen_4lazyderef, reg312299, V3696) +V3546 := reg312300 +_ = V3546 +reg312301 := PrimIsPair(V3546) +var reg312437 Obj +if reg312301 == True { +reg312302 := PrimHead(V3546) +X := reg312302 +_ = X +reg312303 := PrimTail(V3546) +reg312304 := __e.Call(__defun__shen_4lazyderef, reg312303, V3696) +V3547 := reg312304 +_ = V3547 +reg312305 := PrimIsPair(V3547) +var reg312435 Obj +if reg312305 == True { +reg312306 := PrimHead(V3547) +Y := reg312306 +_ = Y +reg312307 := PrimTail(V3547) +reg312308 := __e.Call(__defun__shen_4lazyderef, reg312307, V3696) +V3548 := reg312308 +_ = V3548 +reg312309 := Nil; +reg312310 := PrimEqual(reg312309, V3548) +var reg312433 Obj +if reg312310 == True { +reg312311 := __e.Call(__defun__shen_4lazyderef, V3694, V3696) +V3549 := reg312311 +_ = V3549 +reg312312 := PrimIsPair(V3549) +var reg312431 Obj +if reg312312 == True { +reg312313 := PrimHead(V3549) +A := reg312313 +_ = A +reg312314 := PrimTail(V3549) +reg312315 := __e.Call(__defun__shen_4lazyderef, reg312314, V3696) +V3550 := reg312315 +_ = V3550 +reg312316 := PrimIsPair(V3550) +var reg312414 Obj +if reg312316 == True { +reg312317 := PrimHead(V3550) +reg312318 := __e.Call(__defun__shen_4lazyderef, reg312317, V3696) +V3551 := reg312318 +_ = V3551 +reg312319 := MakeSymbol("*") +reg312320 := PrimEqual(reg312319, V3551) +var reg312399 Obj +if reg312320 == True { +reg312321 := PrimTail(V3550) +reg312322 := __e.Call(__defun__shen_4lazyderef, reg312321, V3696) +V3552 := reg312322 +_ = V3552 +reg312323 := PrimIsPair(V3552) +var reg312356 Obj +if reg312323 == True { +reg312324 := PrimHead(V3552) +B := reg312324 +_ = B +reg312325 := PrimTail(V3552) +reg312326 := __e.Call(__defun__shen_4lazyderef, reg312325, V3696) +V3553 := reg312326 +_ = V3553 +reg312327 := Nil; +reg312328 := PrimEqual(reg312327, V3553) +var reg312343 Obj +if reg312328 == True { +reg312329 := __e.Call(__defun__shen_4incinfs) +_ = reg312329 +reg312330 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, Y, B, V3695, V3696, V3697) +return +}, 0) +reg312332 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312330) +reg312343 = reg312332 +} else { +reg312333 := __e.Call(__defun__shen_4pvar_2, V3553) +var reg312342 Obj +if reg312333 == True { +reg312334 := Nil; +reg312335 := __e.Call(__defun__shen_4bindv, V3553, reg312334, V3696) +_ = reg312335 +reg312336 := __e.Call(__defun__shen_4incinfs) +_ = reg312336 +reg312337 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, Y, B, V3695, V3696, V3697) +return +}, 0) +reg312339 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312337) +Result := reg312339 +_ = Result +reg312340 := __e.Call(__defun__shen_4unbindv, V3553, V3696) +_ = reg312340 +reg312342 = Result +} else { +reg312341 := False; +reg312342 = reg312341 +} +reg312343 = reg312342 +} +reg312356 = reg312343 +} else { +reg312344 := __e.Call(__defun__shen_4pvar_2, V3552) +var reg312355 Obj +if reg312344 == True { +reg312345 := __e.Call(__defun__shen_4newpv, V3696) +B := reg312345 +_ = B +reg312346 := Nil; +reg312347 := PrimCons(B, reg312346) +reg312348 := __e.Call(__defun__shen_4bindv, V3552, reg312347, V3696) +_ = reg312348 +reg312349 := __e.Call(__defun__shen_4incinfs) +_ = reg312349 +reg312350 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, Y, B, V3695, V3696, V3697) +return +}, 0) +reg312352 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312350) +Result := reg312352 +_ = Result +reg312353 := __e.Call(__defun__shen_4unbindv, V3552, V3696) +_ = reg312353 +reg312355 = Result +} else { +reg312354 := False; +reg312355 = reg312354 +} +reg312356 = reg312355 +} +reg312399 = reg312356 +} else { +reg312357 := __e.Call(__defun__shen_4pvar_2, V3551) +var reg312398 Obj +if reg312357 == True { +reg312358 := MakeSymbol("*") +reg312359 := __e.Call(__defun__shen_4bindv, V3551, reg312358, V3696) +_ = reg312359 +reg312360 := PrimTail(V3550) +reg312361 := __e.Call(__defun__shen_4lazyderef, reg312360, V3696) +V3554 := reg312361 +_ = V3554 +reg312362 := PrimIsPair(V3554) +var reg312395 Obj +if reg312362 == True { +reg312363 := PrimHead(V3554) +B := reg312363 +_ = B +reg312364 := PrimTail(V3554) +reg312365 := __e.Call(__defun__shen_4lazyderef, reg312364, V3696) +V3555 := reg312365 +_ = V3555 +reg312366 := Nil; +reg312367 := PrimEqual(reg312366, V3555) +var reg312382 Obj +if reg312367 == True { +reg312368 := __e.Call(__defun__shen_4incinfs) +_ = reg312368 +reg312369 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, Y, B, V3695, V3696, V3697) +return +}, 0) +reg312371 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312369) +reg312382 = reg312371 +} else { +reg312372 := __e.Call(__defun__shen_4pvar_2, V3555) +var reg312381 Obj +if reg312372 == True { +reg312373 := Nil; +reg312374 := __e.Call(__defun__shen_4bindv, V3555, reg312373, V3696) +_ = reg312374 +reg312375 := __e.Call(__defun__shen_4incinfs) +_ = reg312375 +reg312376 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, Y, B, V3695, V3696, V3697) +return +}, 0) +reg312378 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312376) +Result := reg312378 +_ = Result +reg312379 := __e.Call(__defun__shen_4unbindv, V3555, V3696) +_ = reg312379 +reg312381 = Result +} else { +reg312380 := False; +reg312381 = reg312380 +} +reg312382 = reg312381 +} +reg312395 = reg312382 +} else { +reg312383 := __e.Call(__defun__shen_4pvar_2, V3554) +var reg312394 Obj +if reg312383 == True { +reg312384 := __e.Call(__defun__shen_4newpv, V3696) +B := reg312384 +_ = B +reg312385 := Nil; +reg312386 := PrimCons(B, reg312385) +reg312387 := __e.Call(__defun__shen_4bindv, V3554, reg312386, V3696) +_ = reg312387 +reg312388 := __e.Call(__defun__shen_4incinfs) +_ = reg312388 +reg312389 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, Y, B, V3695, V3696, V3697) +return +}, 0) +reg312391 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312389) +Result := reg312391 +_ = Result +reg312392 := __e.Call(__defun__shen_4unbindv, V3554, V3696) +_ = reg312392 +reg312394 = Result +} else { +reg312393 := False; +reg312394 = reg312393 +} +reg312395 = reg312394 +} +Result := reg312395 +_ = Result +reg312396 := __e.Call(__defun__shen_4unbindv, V3551, V3696) +_ = reg312396 +reg312398 = Result +} else { +reg312397 := False; +reg312398 = reg312397 +} +reg312399 = reg312398 +} +reg312414 = reg312399 +} else { +reg312400 := __e.Call(__defun__shen_4pvar_2, V3550) +var reg312413 Obj +if reg312400 == True { +reg312401 := __e.Call(__defun__shen_4newpv, V3696) +B := reg312401 +_ = B +reg312402 := MakeSymbol("*") +reg312403 := Nil; +reg312404 := PrimCons(B, reg312403) +reg312405 := PrimCons(reg312402, reg312404) +reg312406 := __e.Call(__defun__shen_4bindv, V3550, reg312405, V3696) +_ = reg312406 +reg312407 := __e.Call(__defun__shen_4incinfs) +_ = reg312407 +reg312408 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, Y, B, V3695, V3696, V3697) +return +}, 0) +reg312410 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312408) +Result := reg312410 +_ = Result +reg312411 := __e.Call(__defun__shen_4unbindv, V3550, V3696) +_ = reg312411 +reg312413 = Result +} else { +reg312412 := False; +reg312413 = reg312412 +} +reg312414 = reg312413 +} +reg312431 = reg312414 +} else { +reg312415 := __e.Call(__defun__shen_4pvar_2, V3549) +var reg312430 Obj +if reg312415 == True { +reg312416 := __e.Call(__defun__shen_4newpv, V3696) +A := reg312416 +_ = A +reg312417 := __e.Call(__defun__shen_4newpv, V3696) +B := reg312417 +_ = B +reg312418 := MakeSymbol("*") +reg312419 := Nil; +reg312420 := PrimCons(B, reg312419) +reg312421 := PrimCons(reg312418, reg312420) +reg312422 := PrimCons(A, reg312421) +reg312423 := __e.Call(__defun__shen_4bindv, V3549, reg312422, V3696) +_ = reg312423 +reg312424 := __e.Call(__defun__shen_4incinfs) +_ = reg312424 +reg312425 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, Y, B, V3695, V3696, V3697) +return +}, 0) +reg312427 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312425) +Result := reg312427 +_ = Result +reg312428 := __e.Call(__defun__shen_4unbindv, V3549, V3696) +_ = reg312428 +reg312430 = Result +} else { +reg312429 := False; +reg312430 = reg312429 +} +reg312431 = reg312430 +} +reg312433 = reg312431 +} else { +reg312432 := False; +reg312433 = reg312432 +} +reg312435 = reg312433 +} else { +reg312434 := False; +reg312435 = reg312434 +} +reg312437 = reg312435 +} else { +reg312436 := False; +reg312437 = reg312436 +} +reg312439 = reg312437 +} else { +reg312438 := False; +reg312439 = reg312438 +} +reg312441 = reg312439 +} else { +reg312440 := False; +reg312441 = reg312440 +} +Case := reg312441 +_ = Case +reg312442 := False; +reg312443 := PrimEqual(Case, reg312442) +var reg313474 Obj +if reg312443 == True { +reg312444 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3556 := reg312444 +_ = V3556 +reg312445 := PrimIsPair(V3556) +var reg312599 Obj +if reg312445 == True { +reg312446 := PrimHead(V3556) +reg312447 := __e.Call(__defun__shen_4lazyderef, reg312446, V3696) +V3557 := reg312447 +_ = V3557 +reg312448 := MakeSymbol("@v") +reg312449 := PrimEqual(reg312448, V3557) +var reg312597 Obj +if reg312449 == True { +reg312450 := PrimTail(V3556) +reg312451 := __e.Call(__defun__shen_4lazyderef, reg312450, V3696) +V3558 := reg312451 +_ = V3558 +reg312452 := PrimIsPair(V3558) +var reg312595 Obj +if reg312452 == True { +reg312453 := PrimHead(V3558) +X := reg312453 +_ = X +reg312454 := PrimTail(V3558) +reg312455 := __e.Call(__defun__shen_4lazyderef, reg312454, V3696) +V3559 := reg312455 +_ = V3559 +reg312456 := PrimIsPair(V3559) +var reg312593 Obj +if reg312456 == True { +reg312457 := PrimHead(V3559) +Y := reg312457 +_ = Y +reg312458 := PrimTail(V3559) +reg312459 := __e.Call(__defun__shen_4lazyderef, reg312458, V3696) +V3560 := reg312459 +_ = V3560 +reg312460 := Nil; +reg312461 := PrimEqual(reg312460, V3560) +var reg312591 Obj +if reg312461 == True { +reg312462 := __e.Call(__defun__shen_4lazyderef, V3694, V3696) +V3561 := reg312462 +_ = V3561 +reg312463 := PrimIsPair(V3561) +var reg312589 Obj +if reg312463 == True { +reg312464 := PrimHead(V3561) +reg312465 := __e.Call(__defun__shen_4lazyderef, reg312464, V3696) +V3562 := reg312465 +_ = V3562 +reg312466 := MakeSymbol("vector") +reg312467 := PrimEqual(reg312466, V3562) +var reg312570 Obj +if reg312467 == True { +reg312468 := PrimTail(V3561) +reg312469 := __e.Call(__defun__shen_4lazyderef, reg312468, V3696) +V3563 := reg312469 +_ = V3563 +reg312470 := PrimIsPair(V3563) +var reg312515 Obj +if reg312470 == True { +reg312471 := PrimHead(V3563) +A := reg312471 +_ = A +reg312472 := PrimTail(V3563) +reg312473 := __e.Call(__defun__shen_4lazyderef, reg312472, V3696) +V3564 := reg312473 +_ = V3564 +reg312474 := Nil; +reg312475 := PrimEqual(reg312474, V3564) +var reg312498 Obj +if reg312475 == True { +reg312476 := __e.Call(__defun__shen_4incinfs) +_ = reg312476 +reg312477 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312478 := MakeSymbol("vector") +reg312479 := Nil; +reg312480 := PrimCons(A, reg312479) +reg312481 := PrimCons(reg312478, reg312480) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312481, V3695, V3696, V3697) +return +}, 0) +reg312483 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312477) +reg312498 = reg312483 +} else { +reg312484 := __e.Call(__defun__shen_4pvar_2, V3564) +var reg312497 Obj +if reg312484 == True { +reg312485 := Nil; +reg312486 := __e.Call(__defun__shen_4bindv, V3564, reg312485, V3696) +_ = reg312486 +reg312487 := __e.Call(__defun__shen_4incinfs) +_ = reg312487 +reg312488 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312489 := MakeSymbol("vector") +reg312490 := Nil; +reg312491 := PrimCons(A, reg312490) +reg312492 := PrimCons(reg312489, reg312491) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312492, V3695, V3696, V3697) +return +}, 0) +reg312494 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312488) +Result := reg312494 +_ = Result +reg312495 := __e.Call(__defun__shen_4unbindv, V3564, V3696) +_ = reg312495 +reg312497 = Result +} else { +reg312496 := False; +reg312497 = reg312496 +} +reg312498 = reg312497 +} +reg312515 = reg312498 +} else { +reg312499 := __e.Call(__defun__shen_4pvar_2, V3563) +var reg312514 Obj +if reg312499 == True { +reg312500 := __e.Call(__defun__shen_4newpv, V3696) +A := reg312500 +_ = A +reg312501 := Nil; +reg312502 := PrimCons(A, reg312501) +reg312503 := __e.Call(__defun__shen_4bindv, V3563, reg312502, V3696) +_ = reg312503 +reg312504 := __e.Call(__defun__shen_4incinfs) +_ = reg312504 +reg312505 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312506 := MakeSymbol("vector") +reg312507 := Nil; +reg312508 := PrimCons(A, reg312507) +reg312509 := PrimCons(reg312506, reg312508) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312509, V3695, V3696, V3697) +return +}, 0) +reg312511 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312505) +Result := reg312511 +_ = Result +reg312512 := __e.Call(__defun__shen_4unbindv, V3563, V3696) +_ = reg312512 +reg312514 = Result +} else { +reg312513 := False; +reg312514 = reg312513 +} +reg312515 = reg312514 +} +reg312570 = reg312515 +} else { +reg312516 := __e.Call(__defun__shen_4pvar_2, V3562) +var reg312569 Obj +if reg312516 == True { +reg312517 := MakeSymbol("vector") +reg312518 := __e.Call(__defun__shen_4bindv, V3562, reg312517, V3696) +_ = reg312518 +reg312519 := PrimTail(V3561) +reg312520 := __e.Call(__defun__shen_4lazyderef, reg312519, V3696) +V3565 := reg312520 +_ = V3565 +reg312521 := PrimIsPair(V3565) +var reg312566 Obj +if reg312521 == True { +reg312522 := PrimHead(V3565) +A := reg312522 +_ = A +reg312523 := PrimTail(V3565) +reg312524 := __e.Call(__defun__shen_4lazyderef, reg312523, V3696) +V3566 := reg312524 +_ = V3566 +reg312525 := Nil; +reg312526 := PrimEqual(reg312525, V3566) +var reg312549 Obj +if reg312526 == True { +reg312527 := __e.Call(__defun__shen_4incinfs) +_ = reg312527 +reg312528 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312529 := MakeSymbol("vector") +reg312530 := Nil; +reg312531 := PrimCons(A, reg312530) +reg312532 := PrimCons(reg312529, reg312531) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312532, V3695, V3696, V3697) +return +}, 0) +reg312534 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312528) +reg312549 = reg312534 +} else { +reg312535 := __e.Call(__defun__shen_4pvar_2, V3566) +var reg312548 Obj +if reg312535 == True { +reg312536 := Nil; +reg312537 := __e.Call(__defun__shen_4bindv, V3566, reg312536, V3696) +_ = reg312537 +reg312538 := __e.Call(__defun__shen_4incinfs) +_ = reg312538 +reg312539 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312540 := MakeSymbol("vector") +reg312541 := Nil; +reg312542 := PrimCons(A, reg312541) +reg312543 := PrimCons(reg312540, reg312542) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312543, V3695, V3696, V3697) +return +}, 0) +reg312545 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312539) +Result := reg312545 +_ = Result +reg312546 := __e.Call(__defun__shen_4unbindv, V3566, V3696) +_ = reg312546 +reg312548 = Result +} else { +reg312547 := False; +reg312548 = reg312547 +} +reg312549 = reg312548 +} +reg312566 = reg312549 +} else { +reg312550 := __e.Call(__defun__shen_4pvar_2, V3565) +var reg312565 Obj +if reg312550 == True { +reg312551 := __e.Call(__defun__shen_4newpv, V3696) +A := reg312551 +_ = A +reg312552 := Nil; +reg312553 := PrimCons(A, reg312552) +reg312554 := __e.Call(__defun__shen_4bindv, V3565, reg312553, V3696) +_ = reg312554 +reg312555 := __e.Call(__defun__shen_4incinfs) +_ = reg312555 +reg312556 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312557 := MakeSymbol("vector") +reg312558 := Nil; +reg312559 := PrimCons(A, reg312558) +reg312560 := PrimCons(reg312557, reg312559) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312560, V3695, V3696, V3697) +return +}, 0) +reg312562 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312556) +Result := reg312562 +_ = Result +reg312563 := __e.Call(__defun__shen_4unbindv, V3565, V3696) +_ = reg312563 +reg312565 = Result +} else { +reg312564 := False; +reg312565 = reg312564 +} +reg312566 = reg312565 +} +Result := reg312566 +_ = Result +reg312567 := __e.Call(__defun__shen_4unbindv, V3562, V3696) +_ = reg312567 +reg312569 = Result +} else { +reg312568 := False; +reg312569 = reg312568 +} +reg312570 = reg312569 +} +reg312589 = reg312570 +} else { +reg312571 := __e.Call(__defun__shen_4pvar_2, V3561) +var reg312588 Obj +if reg312571 == True { +reg312572 := __e.Call(__defun__shen_4newpv, V3696) +A := reg312572 +_ = A +reg312573 := MakeSymbol("vector") +reg312574 := Nil; +reg312575 := PrimCons(A, reg312574) +reg312576 := PrimCons(reg312573, reg312575) +reg312577 := __e.Call(__defun__shen_4bindv, V3561, reg312576, V3696) +_ = reg312577 +reg312578 := __e.Call(__defun__shen_4incinfs) +_ = reg312578 +reg312579 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312580 := MakeSymbol("vector") +reg312581 := Nil; +reg312582 := PrimCons(A, reg312581) +reg312583 := PrimCons(reg312580, reg312582) +__ctx.TailApply(__defun__shen_4th_d, Y, reg312583, V3695, V3696, V3697) +return +}, 0) +reg312585 := __e.Call(__defun__shen_4th_d, X, A, V3695, V3696, reg312579) +Result := reg312585 +_ = Result +reg312586 := __e.Call(__defun__shen_4unbindv, V3561, V3696) +_ = reg312586 +reg312588 = Result +} else { +reg312587 := False; +reg312588 = reg312587 +} +reg312589 = reg312588 +} +reg312591 = reg312589 +} else { +reg312590 := False; +reg312591 = reg312590 +} +reg312593 = reg312591 +} else { +reg312592 := False; +reg312593 = reg312592 +} +reg312595 = reg312593 +} else { +reg312594 := False; +reg312595 = reg312594 +} +reg312597 = reg312595 +} else { +reg312596 := False; +reg312597 = reg312596 +} +reg312599 = reg312597 +} else { +reg312598 := False; +reg312599 = reg312598 +} +Case := reg312599 +_ = Case +reg312600 := False; +reg312601 := PrimEqual(Case, reg312600) +var reg313473 Obj +if reg312601 == True { +reg312602 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3567 := reg312602 +_ = V3567 +reg312603 := PrimIsPair(V3567) +var reg312651 Obj +if reg312603 == True { +reg312604 := PrimHead(V3567) +reg312605 := __e.Call(__defun__shen_4lazyderef, reg312604, V3696) +V3568 := reg312605 +_ = V3568 +reg312606 := MakeSymbol("@s") +reg312607 := PrimEqual(reg312606, V3568) +var reg312649 Obj +if reg312607 == True { +reg312608 := PrimTail(V3567) +reg312609 := __e.Call(__defun__shen_4lazyderef, reg312608, V3696) +V3569 := reg312609 +_ = V3569 +reg312610 := PrimIsPair(V3569) +var reg312647 Obj +if reg312610 == True { +reg312611 := PrimHead(V3569) +X := reg312611 +_ = X +reg312612 := PrimTail(V3569) +reg312613 := __e.Call(__defun__shen_4lazyderef, reg312612, V3696) +V3570 := reg312613 +_ = V3570 +reg312614 := PrimIsPair(V3570) +var reg312645 Obj +if reg312614 == True { +reg312615 := PrimHead(V3570) +Y := reg312615 +_ = Y +reg312616 := PrimTail(V3570) +reg312617 := __e.Call(__defun__shen_4lazyderef, reg312616, V3696) +V3571 := reg312617 +_ = V3571 +reg312618 := Nil; +reg312619 := PrimEqual(reg312618, V3571) +var reg312643 Obj +if reg312619 == True { +reg312620 := __e.Call(__defun__shen_4lazyderef, V3694, V3696) +V3572 := reg312620 +_ = V3572 +reg312621 := MakeSymbol("string") +reg312622 := PrimEqual(reg312621, V3572) +var reg312641 Obj +if reg312622 == True { +reg312623 := __e.Call(__defun__shen_4incinfs) +_ = reg312623 +reg312624 := MakeSymbol("string") +reg312625 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312626 := MakeSymbol("string") +__ctx.TailApply(__defun__shen_4th_d, Y, reg312626, V3695, V3696, V3697) +return +}, 0) +reg312628 := __e.Call(__defun__shen_4th_d, X, reg312624, V3695, V3696, reg312625) +reg312641 = reg312628 +} else { +reg312629 := __e.Call(__defun__shen_4pvar_2, V3572) +var reg312640 Obj +if reg312629 == True { +reg312630 := MakeSymbol("string") +reg312631 := __e.Call(__defun__shen_4bindv, V3572, reg312630, V3696) +_ = reg312631 +reg312632 := __e.Call(__defun__shen_4incinfs) +_ = reg312632 +reg312633 := MakeSymbol("string") +reg312634 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312635 := MakeSymbol("string") +__ctx.TailApply(__defun__shen_4th_d, Y, reg312635, V3695, V3696, V3697) +return +}, 0) +reg312637 := __e.Call(__defun__shen_4th_d, X, reg312633, V3695, V3696, reg312634) +Result := reg312637 +_ = Result +reg312638 := __e.Call(__defun__shen_4unbindv, V3572, V3696) +_ = reg312638 +reg312640 = Result +} else { +reg312639 := False; +reg312640 = reg312639 +} +reg312641 = reg312640 +} +reg312643 = reg312641 +} else { +reg312642 := False; +reg312643 = reg312642 +} +reg312645 = reg312643 +} else { +reg312644 := False; +reg312645 = reg312644 +} +reg312647 = reg312645 +} else { +reg312646 := False; +reg312647 = reg312646 +} +reg312649 = reg312647 +} else { +reg312648 := False; +reg312649 = reg312648 +} +reg312651 = reg312649 +} else { +reg312650 := False; +reg312651 = reg312650 +} +Case := reg312651 +_ = Case +reg312652 := False; +reg312653 := PrimEqual(Case, reg312652) +var reg313472 Obj +if reg312653 == True { +reg312654 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3573 := reg312654 +_ = V3573 +reg312655 := PrimIsPair(V3573) +var reg312938 Obj +if reg312655 == True { +reg312656 := PrimHead(V3573) +reg312657 := __e.Call(__defun__shen_4lazyderef, reg312656, V3696) +V3574 := reg312657 +_ = V3574 +reg312658 := MakeSymbol("lambda") +reg312659 := PrimEqual(reg312658, V3574) +var reg312936 Obj +if reg312659 == True { +reg312660 := PrimTail(V3573) +reg312661 := __e.Call(__defun__shen_4lazyderef, reg312660, V3696) +V3575 := reg312661 +_ = V3575 +reg312662 := PrimIsPair(V3575) +var reg312934 Obj +if reg312662 == True { +reg312663 := PrimHead(V3575) +X := reg312663 +_ = X +reg312664 := PrimTail(V3575) +reg312665 := __e.Call(__defun__shen_4lazyderef, reg312664, V3696) +V3576 := reg312665 +_ = V3576 +reg312666 := PrimIsPair(V3576) +var reg312932 Obj +if reg312666 == True { +reg312667 := PrimHead(V3576) +Y := reg312667 +_ = Y +reg312668 := PrimTail(V3576) +reg312669 := __e.Call(__defun__shen_4lazyderef, reg312668, V3696) +V3577 := reg312669 +_ = V3577 +reg312670 := Nil; +reg312671 := PrimEqual(reg312670, V3577) +var reg312930 Obj +if reg312671 == True { +reg312672 := __e.Call(__defun__shen_4lazyderef, V3694, V3696) +V3578 := reg312672 +_ = V3578 +reg312673 := PrimIsPair(V3578) +var reg312928 Obj +if reg312673 == True { +reg312674 := PrimHead(V3578) +A := reg312674 +_ = A +reg312675 := PrimTail(V3578) +reg312676 := __e.Call(__defun__shen_4lazyderef, reg312675, V3696) +V3579 := reg312676 +_ = V3579 +reg312677 := PrimIsPair(V3579) +var reg312894 Obj +if reg312677 == True { +reg312678 := PrimHead(V3579) +reg312679 := __e.Call(__defun__shen_4lazyderef, reg312678, V3696) +V3580 := reg312679 +_ = V3580 +reg312680 := MakeSymbol("-->") +reg312681 := PrimEqual(reg312680, V3580) +var reg312862 Obj +if reg312681 == True { +reg312682 := PrimTail(V3579) +reg312683 := __e.Call(__defun__shen_4lazyderef, reg312682, V3696) +V3581 := reg312683 +_ = V3581 +reg312684 := PrimIsPair(V3581) +var reg312768 Obj +if reg312684 == True { +reg312685 := PrimHead(V3581) +B := reg312685 +_ = B +reg312686 := PrimTail(V3581) +reg312687 := __e.Call(__defun__shen_4lazyderef, reg312686, V3696) +V3582 := reg312687 +_ = V3582 +reg312688 := Nil; +reg312689 := PrimEqual(reg312688, V3582) +var reg312738 Obj +if reg312689 == True { +reg312690 := __e.Call(__defun__shen_4newpv, V3696) +Z := reg312690 +_ = Z +reg312691 := __e.Call(__defun__shen_4newpv, V3696) +X_e_e := reg312691 +_ = X_e_e +reg312692 := __e.Call(__defun__shen_4incinfs) +_ = reg312692 +reg312693 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312694 := __e.Call(__defun__shen_4placeholder) +reg312695 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312696 := __e.Call(__defun__shen_4lazyderef, X_e_e, V3696) +reg312697 := __e.Call(__defun__shen_4lazyderef, X, V3696) +reg312698 := __e.Call(__defun__shen_4lazyderef, Y, V3696) +reg312699 := __e.Call(__defun__shen_4ebr, reg312696, reg312697, reg312698) +reg312700 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312701 := MakeSymbol(":") +reg312702 := Nil; +reg312703 := PrimCons(A, reg312702) +reg312704 := PrimCons(reg312701, reg312703) +reg312705 := PrimCons(X_e_e, reg312704) +reg312706 := PrimCons(reg312705, V3695) +__ctx.TailApply(__defun__shen_4th_d, Z, B, reg312706, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__bind, Z, reg312699, V3696, reg312700) +return +}, 0) +__ctx.TailApply(__defun__bind, X_e_e, reg312694, V3696, reg312695) +return +}, 0) +reg312710 := __e.Call(__defun__cut, Throwcontrol, V3696, reg312693) +reg312738 = reg312710 +} else { +reg312711 := __e.Call(__defun__shen_4pvar_2, V3582) +var reg312737 Obj +if reg312711 == True { +reg312712 := Nil; +reg312713 := __e.Call(__defun__shen_4bindv, V3582, reg312712, V3696) +_ = reg312713 +reg312714 := __e.Call(__defun__shen_4newpv, V3696) +Z := reg312714 +_ = Z +reg312715 := __e.Call(__defun__shen_4newpv, V3696) +X_e_e := reg312715 +_ = X_e_e +reg312716 := __e.Call(__defun__shen_4incinfs) +_ = reg312716 +reg312717 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312718 := __e.Call(__defun__shen_4placeholder) +reg312719 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312720 := __e.Call(__defun__shen_4lazyderef, X_e_e, V3696) +reg312721 := __e.Call(__defun__shen_4lazyderef, X, V3696) +reg312722 := __e.Call(__defun__shen_4lazyderef, Y, V3696) +reg312723 := __e.Call(__defun__shen_4ebr, reg312720, reg312721, reg312722) +reg312724 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312725 := MakeSymbol(":") +reg312726 := Nil; +reg312727 := PrimCons(A, reg312726) +reg312728 := PrimCons(reg312725, reg312727) +reg312729 := PrimCons(X_e_e, reg312728) +reg312730 := PrimCons(reg312729, V3695) +__ctx.TailApply(__defun__shen_4th_d, Z, B, reg312730, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__bind, Z, reg312723, V3696, reg312724) +return +}, 0) +__ctx.TailApply(__defun__bind, X_e_e, reg312718, V3696, reg312719) +return +}, 0) +reg312734 := __e.Call(__defun__cut, Throwcontrol, V3696, reg312717) +Result := reg312734 +_ = Result +reg312735 := __e.Call(__defun__shen_4unbindv, V3582, V3696) +_ = reg312735 +reg312737 = Result +} else { +reg312736 := False; +reg312737 = reg312736 +} +reg312738 = reg312737 +} +reg312768 = reg312738 +} else { +reg312739 := __e.Call(__defun__shen_4pvar_2, V3581) +var reg312767 Obj +if reg312739 == True { +reg312740 := __e.Call(__defun__shen_4newpv, V3696) +B := reg312740 +_ = B +reg312741 := Nil; +reg312742 := PrimCons(B, reg312741) +reg312743 := __e.Call(__defun__shen_4bindv, V3581, reg312742, V3696) +_ = reg312743 +reg312744 := __e.Call(__defun__shen_4newpv, V3696) +Z := reg312744 +_ = Z +reg312745 := __e.Call(__defun__shen_4newpv, V3696) +X_e_e := reg312745 +_ = X_e_e +reg312746 := __e.Call(__defun__shen_4incinfs) +_ = reg312746 +reg312747 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312748 := __e.Call(__defun__shen_4placeholder) +reg312749 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312750 := __e.Call(__defun__shen_4lazyderef, X_e_e, V3696) +reg312751 := __e.Call(__defun__shen_4lazyderef, X, V3696) +reg312752 := __e.Call(__defun__shen_4lazyderef, Y, V3696) +reg312753 := __e.Call(__defun__shen_4ebr, reg312750, reg312751, reg312752) +reg312754 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312755 := MakeSymbol(":") +reg312756 := Nil; +reg312757 := PrimCons(A, reg312756) +reg312758 := PrimCons(reg312755, reg312757) +reg312759 := PrimCons(X_e_e, reg312758) +reg312760 := PrimCons(reg312759, V3695) +__ctx.TailApply(__defun__shen_4th_d, Z, B, reg312760, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__bind, Z, reg312753, V3696, reg312754) +return +}, 0) +__ctx.TailApply(__defun__bind, X_e_e, reg312748, V3696, reg312749) +return +}, 0) +reg312764 := __e.Call(__defun__cut, Throwcontrol, V3696, reg312747) +Result := reg312764 +_ = Result +reg312765 := __e.Call(__defun__shen_4unbindv, V3581, V3696) +_ = reg312765 +reg312767 = Result +} else { +reg312766 := False; +reg312767 = reg312766 +} +reg312768 = reg312767 +} +reg312862 = reg312768 +} else { +reg312769 := __e.Call(__defun__shen_4pvar_2, V3580) +var reg312861 Obj +if reg312769 == True { +reg312770 := MakeSymbol("-->") +reg312771 := __e.Call(__defun__shen_4bindv, V3580, reg312770, V3696) +_ = reg312771 +reg312772 := PrimTail(V3579) +reg312773 := __e.Call(__defun__shen_4lazyderef, reg312772, V3696) +V3583 := reg312773 +_ = V3583 +reg312774 := PrimIsPair(V3583) +var reg312858 Obj +if reg312774 == True { +reg312775 := PrimHead(V3583) +B := reg312775 +_ = B +reg312776 := PrimTail(V3583) +reg312777 := __e.Call(__defun__shen_4lazyderef, reg312776, V3696) +V3584 := reg312777 +_ = V3584 +reg312778 := Nil; +reg312779 := PrimEqual(reg312778, V3584) +var reg312828 Obj +if reg312779 == True { +reg312780 := __e.Call(__defun__shen_4newpv, V3696) +Z := reg312780 +_ = Z +reg312781 := __e.Call(__defun__shen_4newpv, V3696) +X_e_e := reg312781 +_ = X_e_e +reg312782 := __e.Call(__defun__shen_4incinfs) +_ = reg312782 +reg312783 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312784 := __e.Call(__defun__shen_4placeholder) +reg312785 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312786 := __e.Call(__defun__shen_4lazyderef, X_e_e, V3696) +reg312787 := __e.Call(__defun__shen_4lazyderef, X, V3696) +reg312788 := __e.Call(__defun__shen_4lazyderef, Y, V3696) +reg312789 := __e.Call(__defun__shen_4ebr, reg312786, reg312787, reg312788) +reg312790 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312791 := MakeSymbol(":") +reg312792 := Nil; +reg312793 := PrimCons(A, reg312792) +reg312794 := PrimCons(reg312791, reg312793) +reg312795 := PrimCons(X_e_e, reg312794) +reg312796 := PrimCons(reg312795, V3695) +__ctx.TailApply(__defun__shen_4th_d, Z, B, reg312796, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__bind, Z, reg312789, V3696, reg312790) +return +}, 0) +__ctx.TailApply(__defun__bind, X_e_e, reg312784, V3696, reg312785) +return +}, 0) +reg312800 := __e.Call(__defun__cut, Throwcontrol, V3696, reg312783) +reg312828 = reg312800 +} else { +reg312801 := __e.Call(__defun__shen_4pvar_2, V3584) +var reg312827 Obj +if reg312801 == True { +reg312802 := Nil; +reg312803 := __e.Call(__defun__shen_4bindv, V3584, reg312802, V3696) +_ = reg312803 +reg312804 := __e.Call(__defun__shen_4newpv, V3696) +Z := reg312804 +_ = Z +reg312805 := __e.Call(__defun__shen_4newpv, V3696) +X_e_e := reg312805 +_ = X_e_e +reg312806 := __e.Call(__defun__shen_4incinfs) +_ = reg312806 +reg312807 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312808 := __e.Call(__defun__shen_4placeholder) +reg312809 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312810 := __e.Call(__defun__shen_4lazyderef, X_e_e, V3696) +reg312811 := __e.Call(__defun__shen_4lazyderef, X, V3696) +reg312812 := __e.Call(__defun__shen_4lazyderef, Y, V3696) +reg312813 := __e.Call(__defun__shen_4ebr, reg312810, reg312811, reg312812) +reg312814 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312815 := MakeSymbol(":") +reg312816 := Nil; +reg312817 := PrimCons(A, reg312816) +reg312818 := PrimCons(reg312815, reg312817) +reg312819 := PrimCons(X_e_e, reg312818) +reg312820 := PrimCons(reg312819, V3695) +__ctx.TailApply(__defun__shen_4th_d, Z, B, reg312820, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__bind, Z, reg312813, V3696, reg312814) +return +}, 0) +__ctx.TailApply(__defun__bind, X_e_e, reg312808, V3696, reg312809) +return +}, 0) +reg312824 := __e.Call(__defun__cut, Throwcontrol, V3696, reg312807) +Result := reg312824 +_ = Result +reg312825 := __e.Call(__defun__shen_4unbindv, V3584, V3696) +_ = reg312825 +reg312827 = Result +} else { +reg312826 := False; +reg312827 = reg312826 +} +reg312828 = reg312827 +} +reg312858 = reg312828 +} else { +reg312829 := __e.Call(__defun__shen_4pvar_2, V3583) +var reg312857 Obj +if reg312829 == True { +reg312830 := __e.Call(__defun__shen_4newpv, V3696) +B := reg312830 +_ = B +reg312831 := Nil; +reg312832 := PrimCons(B, reg312831) +reg312833 := __e.Call(__defun__shen_4bindv, V3583, reg312832, V3696) +_ = reg312833 +reg312834 := __e.Call(__defun__shen_4newpv, V3696) +Z := reg312834 +_ = Z +reg312835 := __e.Call(__defun__shen_4newpv, V3696) +X_e_e := reg312835 +_ = X_e_e +reg312836 := __e.Call(__defun__shen_4incinfs) +_ = reg312836 +reg312837 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312838 := __e.Call(__defun__shen_4placeholder) +reg312839 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312840 := __e.Call(__defun__shen_4lazyderef, X_e_e, V3696) +reg312841 := __e.Call(__defun__shen_4lazyderef, X, V3696) +reg312842 := __e.Call(__defun__shen_4lazyderef, Y, V3696) +reg312843 := __e.Call(__defun__shen_4ebr, reg312840, reg312841, reg312842) +reg312844 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312845 := MakeSymbol(":") +reg312846 := Nil; +reg312847 := PrimCons(A, reg312846) +reg312848 := PrimCons(reg312845, reg312847) +reg312849 := PrimCons(X_e_e, reg312848) +reg312850 := PrimCons(reg312849, V3695) +__ctx.TailApply(__defun__shen_4th_d, Z, B, reg312850, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__bind, Z, reg312843, V3696, reg312844) +return +}, 0) +__ctx.TailApply(__defun__bind, X_e_e, reg312838, V3696, reg312839) +return +}, 0) +reg312854 := __e.Call(__defun__cut, Throwcontrol, V3696, reg312837) +Result := reg312854 +_ = Result +reg312855 := __e.Call(__defun__shen_4unbindv, V3583, V3696) +_ = reg312855 +reg312857 = Result +} else { +reg312856 := False; +reg312857 = reg312856 +} +reg312858 = reg312857 +} +Result := reg312858 +_ = Result +reg312859 := __e.Call(__defun__shen_4unbindv, V3580, V3696) +_ = reg312859 +reg312861 = Result +} else { +reg312860 := False; +reg312861 = reg312860 +} +reg312862 = reg312861 +} +reg312894 = reg312862 +} else { +reg312863 := __e.Call(__defun__shen_4pvar_2, V3579) +var reg312893 Obj +if reg312863 == True { +reg312864 := __e.Call(__defun__shen_4newpv, V3696) +B := reg312864 +_ = B +reg312865 := MakeSymbol("-->") +reg312866 := Nil; +reg312867 := PrimCons(B, reg312866) +reg312868 := PrimCons(reg312865, reg312867) +reg312869 := __e.Call(__defun__shen_4bindv, V3579, reg312868, V3696) +_ = reg312869 +reg312870 := __e.Call(__defun__shen_4newpv, V3696) +Z := reg312870 +_ = Z +reg312871 := __e.Call(__defun__shen_4newpv, V3696) +X_e_e := reg312871 +_ = X_e_e +reg312872 := __e.Call(__defun__shen_4incinfs) +_ = reg312872 +reg312873 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312874 := __e.Call(__defun__shen_4placeholder) +reg312875 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312876 := __e.Call(__defun__shen_4lazyderef, X_e_e, V3696) +reg312877 := __e.Call(__defun__shen_4lazyderef, X, V3696) +reg312878 := __e.Call(__defun__shen_4lazyderef, Y, V3696) +reg312879 := __e.Call(__defun__shen_4ebr, reg312876, reg312877, reg312878) +reg312880 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312881 := MakeSymbol(":") +reg312882 := Nil; +reg312883 := PrimCons(A, reg312882) +reg312884 := PrimCons(reg312881, reg312883) +reg312885 := PrimCons(X_e_e, reg312884) +reg312886 := PrimCons(reg312885, V3695) +__ctx.TailApply(__defun__shen_4th_d, Z, B, reg312886, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__bind, Z, reg312879, V3696, reg312880) +return +}, 0) +__ctx.TailApply(__defun__bind, X_e_e, reg312874, V3696, reg312875) +return +}, 0) +reg312890 := __e.Call(__defun__cut, Throwcontrol, V3696, reg312873) +Result := reg312890 +_ = Result +reg312891 := __e.Call(__defun__shen_4unbindv, V3579, V3696) +_ = reg312891 +reg312893 = Result +} else { +reg312892 := False; +reg312893 = reg312892 +} +reg312894 = reg312893 +} +reg312928 = reg312894 +} else { +reg312895 := __e.Call(__defun__shen_4pvar_2, V3578) +var reg312927 Obj +if reg312895 == True { +reg312896 := __e.Call(__defun__shen_4newpv, V3696) +A := reg312896 +_ = A +reg312897 := __e.Call(__defun__shen_4newpv, V3696) +B := reg312897 +_ = B +reg312898 := MakeSymbol("-->") +reg312899 := Nil; +reg312900 := PrimCons(B, reg312899) +reg312901 := PrimCons(reg312898, reg312900) +reg312902 := PrimCons(A, reg312901) +reg312903 := __e.Call(__defun__shen_4bindv, V3578, reg312902, V3696) +_ = reg312903 +reg312904 := __e.Call(__defun__shen_4newpv, V3696) +Z := reg312904 +_ = Z +reg312905 := __e.Call(__defun__shen_4newpv, V3696) +X_e_e := reg312905 +_ = X_e_e +reg312906 := __e.Call(__defun__shen_4incinfs) +_ = reg312906 +reg312907 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312908 := __e.Call(__defun__shen_4placeholder) +reg312909 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312910 := __e.Call(__defun__shen_4lazyderef, X_e_e, V3696) +reg312911 := __e.Call(__defun__shen_4lazyderef, X, V3696) +reg312912 := __e.Call(__defun__shen_4lazyderef, Y, V3696) +reg312913 := __e.Call(__defun__shen_4ebr, reg312910, reg312911, reg312912) +reg312914 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312915 := MakeSymbol(":") +reg312916 := Nil; +reg312917 := PrimCons(A, reg312916) +reg312918 := PrimCons(reg312915, reg312917) +reg312919 := PrimCons(X_e_e, reg312918) +reg312920 := PrimCons(reg312919, V3695) +__ctx.TailApply(__defun__shen_4th_d, Z, B, reg312920, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__bind, Z, reg312913, V3696, reg312914) +return +}, 0) +__ctx.TailApply(__defun__bind, X_e_e, reg312908, V3696, reg312909) +return +}, 0) +reg312924 := __e.Call(__defun__cut, Throwcontrol, V3696, reg312907) +Result := reg312924 +_ = Result +reg312925 := __e.Call(__defun__shen_4unbindv, V3578, V3696) +_ = reg312925 +reg312927 = Result +} else { +reg312926 := False; +reg312927 = reg312926 +} +reg312928 = reg312927 +} +reg312930 = reg312928 +} else { +reg312929 := False; +reg312930 = reg312929 +} +reg312932 = reg312930 +} else { +reg312931 := False; +reg312932 = reg312931 +} +reg312934 = reg312932 +} else { +reg312933 := False; +reg312934 = reg312933 +} +reg312936 = reg312934 +} else { +reg312935 := False; +reg312936 = reg312935 +} +reg312938 = reg312936 +} else { +reg312937 := False; +reg312938 = reg312937 +} +Case := reg312938 +_ = Case +reg312939 := False; +reg312940 := PrimEqual(Case, reg312939) +var reg313471 Obj +if reg312940 == True { +reg312941 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3585 := reg312941 +_ = V3585 +reg312942 := PrimIsPair(V3585) +var reg312996 Obj +if reg312942 == True { +reg312943 := PrimHead(V3585) +reg312944 := __e.Call(__defun__shen_4lazyderef, reg312943, V3696) +V3586 := reg312944 +_ = V3586 +reg312945 := MakeSymbol("let") +reg312946 := PrimEqual(reg312945, V3586) +var reg312994 Obj +if reg312946 == True { +reg312947 := PrimTail(V3585) +reg312948 := __e.Call(__defun__shen_4lazyderef, reg312947, V3696) +V3587 := reg312948 +_ = V3587 +reg312949 := PrimIsPair(V3587) +var reg312992 Obj +if reg312949 == True { +reg312950 := PrimHead(V3587) +X := reg312950 +_ = X +reg312951 := PrimTail(V3587) +reg312952 := __e.Call(__defun__shen_4lazyderef, reg312951, V3696) +V3588 := reg312952 +_ = V3588 +reg312953 := PrimIsPair(V3588) +var reg312990 Obj +if reg312953 == True { +reg312954 := PrimHead(V3588) +Y := reg312954 +_ = Y +reg312955 := PrimTail(V3588) +reg312956 := __e.Call(__defun__shen_4lazyderef, reg312955, V3696) +V3589 := reg312956 +_ = V3589 +reg312957 := PrimIsPair(V3589) +var reg312988 Obj +if reg312957 == True { +reg312958 := PrimHead(V3589) +Z := reg312958 +_ = Z +reg312959 := PrimTail(V3589) +reg312960 := __e.Call(__defun__shen_4lazyderef, reg312959, V3696) +V3590 := reg312960 +_ = V3590 +reg312961 := Nil; +reg312962 := PrimEqual(reg312961, V3590) +var reg312986 Obj +if reg312962 == True { +reg312963 := __e.Call(__defun__shen_4newpv, V3696) +W := reg312963 +_ = W +reg312964 := __e.Call(__defun__shen_4newpv, V3696) +X_e_e := reg312964 +_ = X_e_e +reg312965 := __e.Call(__defun__shen_4newpv, V3696) +B := reg312965 +_ = B +reg312966 := __e.Call(__defun__shen_4incinfs) +_ = reg312966 +reg312967 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312968 := __e.Call(__defun__shen_4placeholder) +reg312969 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312970 := __e.Call(__defun__shen_4lazyderef, X_e_e, V3696) +reg312971 := __e.Call(__defun__shen_4lazyderef, X, V3696) +reg312972 := __e.Call(__defun__shen_4lazyderef, Z, V3696) +reg312973 := __e.Call(__defun__shen_4ebr, reg312970, reg312971, reg312972) +reg312974 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg312975 := MakeSymbol(":") +reg312976 := Nil; +reg312977 := PrimCons(B, reg312976) +reg312978 := PrimCons(reg312975, reg312977) +reg312979 := PrimCons(X_e_e, reg312978) +reg312980 := PrimCons(reg312979, V3695) +__ctx.TailApply(__defun__shen_4th_d, W, V3694, reg312980, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__bind, W, reg312973, V3696, reg312974) +return +}, 0) +__ctx.TailApply(__defun__bind, X_e_e, reg312968, V3696, reg312969) +return +}, 0) +reg312984 := __e.Call(__defun__shen_4th_d, Y, B, V3695, V3696, reg312967) +reg312986 = reg312984 +} else { +reg312985 := False; +reg312986 = reg312985 +} +reg312988 = reg312986 +} else { +reg312987 := False; +reg312988 = reg312987 +} +reg312990 = reg312988 +} else { +reg312989 := False; +reg312990 = reg312989 +} +reg312992 = reg312990 +} else { +reg312991 := False; +reg312992 = reg312991 +} +reg312994 = reg312992 +} else { +reg312993 := False; +reg312994 = reg312993 +} +reg312996 = reg312994 +} else { +reg312995 := False; +reg312996 = reg312995 +} +Case := reg312996 +_ = Case +reg312997 := False; +reg312998 := PrimEqual(Case, reg312997) +var reg313470 Obj +if reg312998 == True { +reg312999 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3591 := reg312999 +_ = V3591 +reg313000 := PrimIsPair(V3591) +var reg313210 Obj +if reg313000 == True { +reg313001 := PrimHead(V3591) +reg313002 := __e.Call(__defun__shen_4lazyderef, reg313001, V3696) +V3592 := reg313002 +_ = V3592 +reg313003 := MakeSymbol("open") +reg313004 := PrimEqual(reg313003, V3592) +var reg313208 Obj +if reg313004 == True { +reg313005 := PrimTail(V3591) +reg313006 := __e.Call(__defun__shen_4lazyderef, reg313005, V3696) +V3593 := reg313006 +_ = V3593 +reg313007 := PrimIsPair(V3593) +var reg313206 Obj +if reg313007 == True { +reg313008 := PrimHead(V3593) +FileName := reg313008 +_ = FileName +reg313009 := PrimTail(V3593) +reg313010 := __e.Call(__defun__shen_4lazyderef, reg313009, V3696) +V3594 := reg313010 +_ = V3594 +reg313011 := PrimIsPair(V3594) +var reg313204 Obj +if reg313011 == True { +reg313012 := PrimHead(V3594) +Direction3524 := reg313012 +_ = Direction3524 +reg313013 := PrimTail(V3594) +reg313014 := __e.Call(__defun__shen_4lazyderef, reg313013, V3696) +V3595 := reg313014 +_ = V3595 +reg313015 := Nil; +reg313016 := PrimEqual(reg313015, V3595) +var reg313202 Obj +if reg313016 == True { +reg313017 := __e.Call(__defun__shen_4lazyderef, V3694, V3696) +V3596 := reg313017 +_ = V3596 +reg313018 := PrimIsPair(V3596) +var reg313200 Obj +if reg313018 == True { +reg313019 := PrimHead(V3596) +reg313020 := __e.Call(__defun__shen_4lazyderef, reg313019, V3696) +V3597 := reg313020 +_ = V3597 +reg313021 := MakeSymbol("stream") +reg313022 := PrimEqual(reg313021, V3597) +var reg313173 Obj +if reg313022 == True { +reg313023 := PrimTail(V3596) +reg313024 := __e.Call(__defun__shen_4lazyderef, reg313023, V3696) +V3598 := reg313024 +_ = V3598 +reg313025 := PrimIsPair(V3598) +var reg313094 Obj +if reg313025 == True { +reg313026 := PrimHead(V3598) +Direction := reg313026 +_ = Direction +reg313027 := PrimTail(V3598) +reg313028 := __e.Call(__defun__shen_4lazyderef, reg313027, V3696) +V3599 := reg313028 +_ = V3599 +reg313029 := Nil; +reg313030 := PrimEqual(reg313029, V3599) +var reg313069 Obj +if reg313030 == True { +reg313031 := __e.Call(__defun__shen_4incinfs) +_ = reg313031 +reg313032 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313033 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313034 := __e.Call(__defun__shen_4lazyderef, Direction, V3696) +reg313035 := MakeSymbol("in") +reg313036 := MakeSymbol("out") +reg313037 := Nil; +reg313038 := PrimCons(reg313036, reg313037) +reg313039 := PrimCons(reg313035, reg313038) +reg313040 := __e.Call(__defun__element_2, reg313034, reg313039) +reg313041 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313042 := MakeSymbol("string") +__ctx.TailApply(__defun__shen_4th_d, FileName, reg313042, V3695, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__fwhen, reg313040, V3696, reg313041) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3696, reg313033) +return +}, 0) +reg313046 := __e.Call(__defun__unify_b, Direction, Direction3524, V3696, reg313032) +reg313069 = reg313046 +} else { +reg313047 := __e.Call(__defun__shen_4pvar_2, V3599) +var reg313068 Obj +if reg313047 == True { +reg313048 := Nil; +reg313049 := __e.Call(__defun__shen_4bindv, V3599, reg313048, V3696) +_ = reg313049 +reg313050 := __e.Call(__defun__shen_4incinfs) +_ = reg313050 +reg313051 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313052 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313053 := __e.Call(__defun__shen_4lazyderef, Direction, V3696) +reg313054 := MakeSymbol("in") +reg313055 := MakeSymbol("out") +reg313056 := Nil; +reg313057 := PrimCons(reg313055, reg313056) +reg313058 := PrimCons(reg313054, reg313057) +reg313059 := __e.Call(__defun__element_2, reg313053, reg313058) +reg313060 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313061 := MakeSymbol("string") +__ctx.TailApply(__defun__shen_4th_d, FileName, reg313061, V3695, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__fwhen, reg313059, V3696, reg313060) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3696, reg313052) +return +}, 0) +reg313065 := __e.Call(__defun__unify_b, Direction, Direction3524, V3696, reg313051) +Result := reg313065 +_ = Result +reg313066 := __e.Call(__defun__shen_4unbindv, V3599, V3696) +_ = reg313066 +reg313068 = Result +} else { +reg313067 := False; +reg313068 = reg313067 +} +reg313069 = reg313068 +} +reg313094 = reg313069 +} else { +reg313070 := __e.Call(__defun__shen_4pvar_2, V3598) +var reg313093 Obj +if reg313070 == True { +reg313071 := __e.Call(__defun__shen_4newpv, V3696) +Direction := reg313071 +_ = Direction +reg313072 := Nil; +reg313073 := PrimCons(Direction, reg313072) +reg313074 := __e.Call(__defun__shen_4bindv, V3598, reg313073, V3696) +_ = reg313074 +reg313075 := __e.Call(__defun__shen_4incinfs) +_ = reg313075 +reg313076 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313077 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313078 := __e.Call(__defun__shen_4lazyderef, Direction, V3696) +reg313079 := MakeSymbol("in") +reg313080 := MakeSymbol("out") +reg313081 := Nil; +reg313082 := PrimCons(reg313080, reg313081) +reg313083 := PrimCons(reg313079, reg313082) +reg313084 := __e.Call(__defun__element_2, reg313078, reg313083) +reg313085 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313086 := MakeSymbol("string") +__ctx.TailApply(__defun__shen_4th_d, FileName, reg313086, V3695, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__fwhen, reg313084, V3696, reg313085) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3696, reg313077) +return +}, 0) +reg313090 := __e.Call(__defun__unify_b, Direction, Direction3524, V3696, reg313076) +Result := reg313090 +_ = Result +reg313091 := __e.Call(__defun__shen_4unbindv, V3598, V3696) +_ = reg313091 +reg313093 = Result +} else { +reg313092 := False; +reg313093 = reg313092 +} +reg313094 = reg313093 +} +reg313173 = reg313094 +} else { +reg313095 := __e.Call(__defun__shen_4pvar_2, V3597) +var reg313172 Obj +if reg313095 == True { +reg313096 := MakeSymbol("stream") +reg313097 := __e.Call(__defun__shen_4bindv, V3597, reg313096, V3696) +_ = reg313097 +reg313098 := PrimTail(V3596) +reg313099 := __e.Call(__defun__shen_4lazyderef, reg313098, V3696) +V3600 := reg313099 +_ = V3600 +reg313100 := PrimIsPair(V3600) +var reg313169 Obj +if reg313100 == True { +reg313101 := PrimHead(V3600) +Direction := reg313101 +_ = Direction +reg313102 := PrimTail(V3600) +reg313103 := __e.Call(__defun__shen_4lazyderef, reg313102, V3696) +V3601 := reg313103 +_ = V3601 +reg313104 := Nil; +reg313105 := PrimEqual(reg313104, V3601) +var reg313144 Obj +if reg313105 == True { +reg313106 := __e.Call(__defun__shen_4incinfs) +_ = reg313106 +reg313107 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313108 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313109 := __e.Call(__defun__shen_4lazyderef, Direction, V3696) +reg313110 := MakeSymbol("in") +reg313111 := MakeSymbol("out") +reg313112 := Nil; +reg313113 := PrimCons(reg313111, reg313112) +reg313114 := PrimCons(reg313110, reg313113) +reg313115 := __e.Call(__defun__element_2, reg313109, reg313114) +reg313116 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313117 := MakeSymbol("string") +__ctx.TailApply(__defun__shen_4th_d, FileName, reg313117, V3695, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__fwhen, reg313115, V3696, reg313116) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3696, reg313108) +return +}, 0) +reg313121 := __e.Call(__defun__unify_b, Direction, Direction3524, V3696, reg313107) +reg313144 = reg313121 +} else { +reg313122 := __e.Call(__defun__shen_4pvar_2, V3601) +var reg313143 Obj +if reg313122 == True { +reg313123 := Nil; +reg313124 := __e.Call(__defun__shen_4bindv, V3601, reg313123, V3696) +_ = reg313124 +reg313125 := __e.Call(__defun__shen_4incinfs) +_ = reg313125 +reg313126 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313127 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313128 := __e.Call(__defun__shen_4lazyderef, Direction, V3696) +reg313129 := MakeSymbol("in") +reg313130 := MakeSymbol("out") +reg313131 := Nil; +reg313132 := PrimCons(reg313130, reg313131) +reg313133 := PrimCons(reg313129, reg313132) +reg313134 := __e.Call(__defun__element_2, reg313128, reg313133) +reg313135 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313136 := MakeSymbol("string") +__ctx.TailApply(__defun__shen_4th_d, FileName, reg313136, V3695, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__fwhen, reg313134, V3696, reg313135) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3696, reg313127) +return +}, 0) +reg313140 := __e.Call(__defun__unify_b, Direction, Direction3524, V3696, reg313126) +Result := reg313140 +_ = Result +reg313141 := __e.Call(__defun__shen_4unbindv, V3601, V3696) +_ = reg313141 +reg313143 = Result +} else { +reg313142 := False; +reg313143 = reg313142 +} +reg313144 = reg313143 +} +reg313169 = reg313144 +} else { +reg313145 := __e.Call(__defun__shen_4pvar_2, V3600) +var reg313168 Obj +if reg313145 == True { +reg313146 := __e.Call(__defun__shen_4newpv, V3696) +Direction := reg313146 +_ = Direction +reg313147 := Nil; +reg313148 := PrimCons(Direction, reg313147) +reg313149 := __e.Call(__defun__shen_4bindv, V3600, reg313148, V3696) +_ = reg313149 +reg313150 := __e.Call(__defun__shen_4incinfs) +_ = reg313150 +reg313151 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313152 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313153 := __e.Call(__defun__shen_4lazyderef, Direction, V3696) +reg313154 := MakeSymbol("in") +reg313155 := MakeSymbol("out") +reg313156 := Nil; +reg313157 := PrimCons(reg313155, reg313156) +reg313158 := PrimCons(reg313154, reg313157) +reg313159 := __e.Call(__defun__element_2, reg313153, reg313158) +reg313160 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313161 := MakeSymbol("string") +__ctx.TailApply(__defun__shen_4th_d, FileName, reg313161, V3695, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__fwhen, reg313159, V3696, reg313160) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3696, reg313152) +return +}, 0) +reg313165 := __e.Call(__defun__unify_b, Direction, Direction3524, V3696, reg313151) +Result := reg313165 +_ = Result +reg313166 := __e.Call(__defun__shen_4unbindv, V3600, V3696) +_ = reg313166 +reg313168 = Result +} else { +reg313167 := False; +reg313168 = reg313167 +} +reg313169 = reg313168 +} +Result := reg313169 +_ = Result +reg313170 := __e.Call(__defun__shen_4unbindv, V3597, V3696) +_ = reg313170 +reg313172 = Result +} else { +reg313171 := False; +reg313172 = reg313171 +} +reg313173 = reg313172 +} +reg313200 = reg313173 +} else { +reg313174 := __e.Call(__defun__shen_4pvar_2, V3596) +var reg313199 Obj +if reg313174 == True { +reg313175 := __e.Call(__defun__shen_4newpv, V3696) +Direction := reg313175 +_ = Direction +reg313176 := MakeSymbol("stream") +reg313177 := Nil; +reg313178 := PrimCons(Direction, reg313177) +reg313179 := PrimCons(reg313176, reg313178) +reg313180 := __e.Call(__defun__shen_4bindv, V3596, reg313179, V3696) +_ = reg313180 +reg313181 := __e.Call(__defun__shen_4incinfs) +_ = reg313181 +reg313182 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313183 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313184 := __e.Call(__defun__shen_4lazyderef, Direction, V3696) +reg313185 := MakeSymbol("in") +reg313186 := MakeSymbol("out") +reg313187 := Nil; +reg313188 := PrimCons(reg313186, reg313187) +reg313189 := PrimCons(reg313185, reg313188) +reg313190 := __e.Call(__defun__element_2, reg313184, reg313189) +reg313191 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313192 := MakeSymbol("string") +__ctx.TailApply(__defun__shen_4th_d, FileName, reg313192, V3695, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__fwhen, reg313190, V3696, reg313191) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3696, reg313183) +return +}, 0) +reg313196 := __e.Call(__defun__unify_b, Direction, Direction3524, V3696, reg313182) +Result := reg313196 +_ = Result +reg313197 := __e.Call(__defun__shen_4unbindv, V3596, V3696) +_ = reg313197 +reg313199 = Result +} else { +reg313198 := False; +reg313199 = reg313198 +} +reg313200 = reg313199 +} +reg313202 = reg313200 +} else { +reg313201 := False; +reg313202 = reg313201 +} +reg313204 = reg313202 +} else { +reg313203 := False; +reg313204 = reg313203 +} +reg313206 = reg313204 +} else { +reg313205 := False; +reg313206 = reg313205 +} +reg313208 = reg313206 +} else { +reg313207 := False; +reg313208 = reg313207 +} +reg313210 = reg313208 +} else { +reg313209 := False; +reg313210 = reg313209 +} +Case := reg313210 +_ = Case +reg313211 := False; +reg313212 := PrimEqual(Case, reg313211) +var reg313469 Obj +if reg313212 == True { +reg313213 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3602 := reg313213 +_ = V3602 +reg313214 := PrimIsPair(V3602) +var reg313246 Obj +if reg313214 == True { +reg313215 := PrimHead(V3602) +reg313216 := __e.Call(__defun__shen_4lazyderef, reg313215, V3696) +V3603 := reg313216 +_ = V3603 +reg313217 := MakeSymbol("type") +reg313218 := PrimEqual(reg313217, V3603) +var reg313244 Obj +if reg313218 == True { +reg313219 := PrimTail(V3602) +reg313220 := __e.Call(__defun__shen_4lazyderef, reg313219, V3696) +V3604 := reg313220 +_ = V3604 +reg313221 := PrimIsPair(V3604) +var reg313242 Obj +if reg313221 == True { +reg313222 := PrimHead(V3604) +X := reg313222 +_ = X +reg313223 := PrimTail(V3604) +reg313224 := __e.Call(__defun__shen_4lazyderef, reg313223, V3696) +V3605 := reg313224 +_ = V3605 +reg313225 := PrimIsPair(V3605) +var reg313240 Obj +if reg313225 == True { +reg313226 := PrimHead(V3605) +A := reg313226 +_ = A +reg313227 := PrimTail(V3605) +reg313228 := __e.Call(__defun__shen_4lazyderef, reg313227, V3696) +V3606 := reg313228 +_ = V3606 +reg313229 := Nil; +reg313230 := PrimEqual(reg313229, V3606) +var reg313238 Obj +if reg313230 == True { +reg313231 := __e.Call(__defun__shen_4incinfs) +_ = reg313231 +reg313232 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313233 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, X, A, V3695, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__unify, A, V3694, V3696, reg313233) +return +}, 0) +reg313236 := __e.Call(__defun__cut, Throwcontrol, V3696, reg313232) +reg313238 = reg313236 +} else { +reg313237 := False; +reg313238 = reg313237 +} +reg313240 = reg313238 +} else { +reg313239 := False; +reg313240 = reg313239 +} +reg313242 = reg313240 +} else { +reg313241 := False; +reg313242 = reg313241 +} +reg313244 = reg313242 +} else { +reg313243 := False; +reg313244 = reg313243 +} +reg313246 = reg313244 +} else { +reg313245 := False; +reg313246 = reg313245 +} +Case := reg313246 +_ = Case +reg313247 := False; +reg313248 := PrimEqual(Case, reg313247) +var reg313468 Obj +if reg313248 == True { +reg313249 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3607 := reg313249 +_ = V3607 +reg313250 := PrimIsPair(V3607) +var reg313290 Obj +if reg313250 == True { +reg313251 := PrimHead(V3607) +reg313252 := __e.Call(__defun__shen_4lazyderef, reg313251, V3696) +V3608 := reg313252 +_ = V3608 +reg313253 := MakeSymbol("input+") +reg313254 := PrimEqual(reg313253, V3608) +var reg313288 Obj +if reg313254 == True { +reg313255 := PrimTail(V3607) +reg313256 := __e.Call(__defun__shen_4lazyderef, reg313255, V3696) +V3609 := reg313256 +_ = V3609 +reg313257 := PrimIsPair(V3609) +var reg313286 Obj +if reg313257 == True { +reg313258 := PrimHead(V3609) +A := reg313258 +_ = A +reg313259 := PrimTail(V3609) +reg313260 := __e.Call(__defun__shen_4lazyderef, reg313259, V3696) +V3610 := reg313260 +_ = V3610 +reg313261 := PrimIsPair(V3610) +var reg313284 Obj +if reg313261 == True { +reg313262 := PrimHead(V3610) +Stream := reg313262 +_ = Stream +reg313263 := PrimTail(V3610) +reg313264 := __e.Call(__defun__shen_4lazyderef, reg313263, V3696) +V3611 := reg313264 +_ = V3611 +reg313265 := Nil; +reg313266 := PrimEqual(reg313265, V3611) +var reg313282 Obj +if reg313266 == True { +reg313267 := __e.Call(__defun__shen_4newpv, V3696) +C := reg313267 +_ = C +reg313268 := __e.Call(__defun__shen_4incinfs) +_ = reg313268 +reg313269 := __e.Call(__defun__shen_4lazyderef, A, V3696) +reg313270 := __e.Call(__defun__shen_4demodulate, reg313269) +reg313271 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313272 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313273 := MakeSymbol("stream") +reg313274 := MakeSymbol("in") +reg313275 := Nil; +reg313276 := PrimCons(reg313274, reg313275) +reg313277 := PrimCons(reg313273, reg313276) +__ctx.TailApply(__defun__shen_4th_d, Stream, reg313277, V3695, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__unify, V3694, C, V3696, reg313272) +return +}, 0) +reg313280 := __e.Call(__defun__bind, C, reg313270, V3696, reg313271) +reg313282 = reg313280 +} else { +reg313281 := False; +reg313282 = reg313281 +} +reg313284 = reg313282 +} else { +reg313283 := False; +reg313284 = reg313283 +} +reg313286 = reg313284 +} else { +reg313285 := False; +reg313286 = reg313285 +} +reg313288 = reg313286 +} else { +reg313287 := False; +reg313288 = reg313287 +} +reg313290 = reg313288 +} else { +reg313289 := False; +reg313290 = reg313289 +} +Case := reg313290 +_ = Case +reg313291 := False; +reg313292 := PrimEqual(Case, reg313291) +var reg313467 Obj +if reg313292 == True { +reg313293 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3612 := reg313293 +_ = V3612 +reg313294 := PrimIsPair(V3612) +var reg313335 Obj +if reg313294 == True { +reg313295 := PrimHead(V3612) +reg313296 := __e.Call(__defun__shen_4lazyderef, reg313295, V3696) +V3613 := reg313296 +_ = V3613 +reg313297 := MakeSymbol("set") +reg313298 := PrimEqual(reg313297, V3613) +var reg313333 Obj +if reg313298 == True { +reg313299 := PrimTail(V3612) +reg313300 := __e.Call(__defun__shen_4lazyderef, reg313299, V3696) +V3614 := reg313300 +_ = V3614 +reg313301 := PrimIsPair(V3614) +var reg313331 Obj +if reg313301 == True { +reg313302 := PrimHead(V3614) +Var := reg313302 +_ = Var +reg313303 := PrimTail(V3614) +reg313304 := __e.Call(__defun__shen_4lazyderef, reg313303, V3696) +V3615 := reg313304 +_ = V3615 +reg313305 := PrimIsPair(V3615) +var reg313329 Obj +if reg313305 == True { +reg313306 := PrimHead(V3615) +Val := reg313306 +_ = Val +reg313307 := PrimTail(V3615) +reg313308 := __e.Call(__defun__shen_4lazyderef, reg313307, V3696) +V3616 := reg313308 +_ = V3616 +reg313309 := Nil; +reg313310 := PrimEqual(reg313309, V3616) +var reg313327 Obj +if reg313310 == True { +reg313311 := __e.Call(__defun__shen_4incinfs) +_ = reg313311 +reg313312 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313313 := MakeSymbol("symbol") +reg313314 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313315 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313316 := MakeSymbol("value") +reg313317 := Nil; +reg313318 := PrimCons(Var, reg313317) +reg313319 := PrimCons(reg313316, reg313318) +reg313320 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, Val, V3694, V3695, V3696, V3697) +return +}, 0) +__ctx.TailApply(__defun__shen_4th_d, reg313319, V3694, V3695, V3696, reg313320) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3696, reg313315) +return +}, 0) +__ctx.TailApply(__defun__shen_4th_d, Var, reg313313, V3695, V3696, reg313314) +return +}, 0) +reg313325 := __e.Call(__defun__cut, Throwcontrol, V3696, reg313312) +reg313327 = reg313325 +} else { +reg313326 := False; +reg313327 = reg313326 +} +reg313329 = reg313327 +} else { +reg313328 := False; +reg313329 = reg313328 +} +reg313331 = reg313329 +} else { +reg313330 := False; +reg313331 = reg313330 +} +reg313333 = reg313331 +} else { +reg313332 := False; +reg313333 = reg313332 +} +reg313335 = reg313333 +} else { +reg313334 := False; +reg313335 = reg313334 +} +Case := reg313335 +_ = Case +reg313336 := False; +reg313337 := PrimEqual(Case, reg313336) +var reg313466 Obj +if reg313337 == True { +reg313338 := __e.Call(__defun__shen_4newpv, V3696) +NewHyp := reg313338 +_ = NewHyp +reg313339 := __e.Call(__defun__shen_4incinfs) +_ = reg313339 +reg313340 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4th_d, V3693, V3694, NewHyp, V3696, V3697) +return +}, 0) +reg313342 := __e.Call(__defun__shen_4t_d_1hyps, V3695, NewHyp, V3696, reg313340) +Case := reg313342 +_ = Case +reg313343 := False; +reg313344 := PrimEqual(Case, reg313343) +var reg313465 Obj +if reg313344 == True { +reg313345 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3617 := reg313345 +_ = V3617 +reg313346 := PrimIsPair(V3617) +var reg313368 Obj +if reg313346 == True { +reg313347 := PrimHead(V3617) +reg313348 := __e.Call(__defun__shen_4lazyderef, reg313347, V3696) +V3618 := reg313348 +_ = V3618 +reg313349 := MakeSymbol("define") +reg313350 := PrimEqual(reg313349, V3618) +var reg313366 Obj +if reg313350 == True { +reg313351 := PrimTail(V3617) +reg313352 := __e.Call(__defun__shen_4lazyderef, reg313351, V3696) +V3619 := reg313352 +_ = V3619 +reg313353 := PrimIsPair(V3619) +var reg313364 Obj +if reg313353 == True { +reg313354 := PrimHead(V3619) +F := reg313354 +_ = F +reg313355 := PrimTail(V3619) +X := reg313355 +_ = X +reg313356 := __e.Call(__defun__shen_4incinfs) +_ = reg313356 +reg313357 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313358 := MakeSymbol("define") +reg313359 := PrimCons(F, X) +reg313360 := PrimCons(reg313358, reg313359) +__ctx.TailApply(__defun__shen_4t_d_1def, reg313360, V3694, V3695, V3696, V3697) +return +}, 0) +reg313362 := __e.Call(__defun__cut, Throwcontrol, V3696, reg313357) +reg313364 = reg313362 +} else { +reg313363 := False; +reg313364 = reg313363 +} +reg313366 = reg313364 +} else { +reg313365 := False; +reg313366 = reg313365 +} +reg313368 = reg313366 +} else { +reg313367 := False; +reg313368 = reg313367 +} +Case := reg313368 +_ = Case +reg313369 := False; +reg313370 := PrimEqual(Case, reg313369) +var reg313464 Obj +if reg313370 == True { +reg313371 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3620 := reg313371 +_ = V3620 +reg313372 := PrimIsPair(V3620) +var reg313394 Obj +if reg313372 == True { +reg313373 := PrimHead(V3620) +reg313374 := __e.Call(__defun__shen_4lazyderef, reg313373, V3696) +V3621 := reg313374 +_ = V3621 +reg313375 := MakeSymbol("defmacro") +reg313376 := PrimEqual(reg313375, V3621) +var reg313392 Obj +if reg313376 == True { +reg313377 := __e.Call(__defun__shen_4lazyderef, V3694, V3696) +V3622 := reg313377 +_ = V3622 +reg313378 := MakeSymbol("unit") +reg313379 := PrimEqual(reg313378, V3622) +var reg313390 Obj +if reg313379 == True { +reg313380 := __e.Call(__defun__shen_4incinfs) +_ = reg313380 +reg313381 := __e.Call(__defun__cut, Throwcontrol, V3696, V3697) +reg313390 = reg313381 +} else { +reg313382 := __e.Call(__defun__shen_4pvar_2, V3622) +var reg313389 Obj +if reg313382 == True { +reg313383 := MakeSymbol("unit") +reg313384 := __e.Call(__defun__shen_4bindv, V3622, reg313383, V3696) +_ = reg313384 +reg313385 := __e.Call(__defun__shen_4incinfs) +_ = reg313385 +reg313386 := __e.Call(__defun__cut, Throwcontrol, V3696, V3697) +Result := reg313386 +_ = Result +reg313387 := __e.Call(__defun__shen_4unbindv, V3622, V3696) +_ = reg313387 +reg313389 = Result +} else { +reg313388 := False; +reg313389 = reg313388 +} +reg313390 = reg313389 +} +reg313392 = reg313390 +} else { +reg313391 := False; +reg313392 = reg313391 +} +reg313394 = reg313392 +} else { +reg313393 := False; +reg313394 = reg313393 +} +Case := reg313394 +_ = Case +reg313395 := False; +reg313396 := PrimEqual(Case, reg313395) +var reg313463 Obj +if reg313396 == True { +reg313397 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3623 := reg313397 +_ = V3623 +reg313398 := PrimIsPair(V3623) +var reg313420 Obj +if reg313398 == True { +reg313399 := PrimHead(V3623) +reg313400 := __e.Call(__defun__shen_4lazyderef, reg313399, V3696) +V3624 := reg313400 +_ = V3624 +reg313401 := MakeSymbol("shen.process-datatype") +reg313402 := PrimEqual(reg313401, V3624) +var reg313418 Obj +if reg313402 == True { +reg313403 := __e.Call(__defun__shen_4lazyderef, V3694, V3696) +V3625 := reg313403 +_ = V3625 +reg313404 := MakeSymbol("symbol") +reg313405 := PrimEqual(reg313404, V3625) +var reg313416 Obj +if reg313405 == True { +reg313406 := __e.Call(__defun__shen_4incinfs) +_ = reg313406 +reg313407 := __e.Call(__defun__thaw, V3697) +reg313416 = reg313407 +} else { +reg313408 := __e.Call(__defun__shen_4pvar_2, V3625) +var reg313415 Obj +if reg313408 == True { +reg313409 := MakeSymbol("symbol") +reg313410 := __e.Call(__defun__shen_4bindv, V3625, reg313409, V3696) +_ = reg313410 +reg313411 := __e.Call(__defun__shen_4incinfs) +_ = reg313411 +reg313412 := __e.Call(__defun__thaw, V3697) +Result := reg313412 +_ = Result +reg313413 := __e.Call(__defun__shen_4unbindv, V3625, V3696) +_ = reg313413 +reg313415 = Result +} else { +reg313414 := False; +reg313415 = reg313414 +} +reg313416 = reg313415 +} +reg313418 = reg313416 +} else { +reg313417 := False; +reg313418 = reg313417 +} +reg313420 = reg313418 +} else { +reg313419 := False; +reg313420 = reg313419 +} +Case := reg313420 +_ = Case +reg313421 := False; +reg313422 := PrimEqual(Case, reg313421) +var reg313462 Obj +if reg313422 == True { +reg313423 := __e.Call(__defun__shen_4lazyderef, V3693, V3696) +V3626 := reg313423 +_ = V3626 +reg313424 := PrimIsPair(V3626) +var reg313446 Obj +if reg313424 == True { +reg313425 := PrimHead(V3626) +reg313426 := __e.Call(__defun__shen_4lazyderef, reg313425, V3696) +V3627 := reg313426 +_ = V3627 +reg313427 := MakeSymbol("shen.synonyms-help") +reg313428 := PrimEqual(reg313427, V3627) +var reg313444 Obj +if reg313428 == True { +reg313429 := __e.Call(__defun__shen_4lazyderef, V3694, V3696) +V3628 := reg313429 +_ = V3628 +reg313430 := MakeSymbol("symbol") +reg313431 := PrimEqual(reg313430, V3628) +var reg313442 Obj +if reg313431 == True { +reg313432 := __e.Call(__defun__shen_4incinfs) +_ = reg313432 +reg313433 := __e.Call(__defun__thaw, V3697) +reg313442 = reg313433 +} else { +reg313434 := __e.Call(__defun__shen_4pvar_2, V3628) +var reg313441 Obj +if reg313434 == True { +reg313435 := MakeSymbol("symbol") +reg313436 := __e.Call(__defun__shen_4bindv, V3628, reg313435, V3696) +_ = reg313436 +reg313437 := __e.Call(__defun__shen_4incinfs) +_ = reg313437 +reg313438 := __e.Call(__defun__thaw, V3697) +Result := reg313438 +_ = Result +reg313439 := __e.Call(__defun__shen_4unbindv, V3628, V3696) +_ = reg313439 +reg313441 = Result +} else { +reg313440 := False; +reg313441 = reg313440 +} +reg313442 = reg313441 +} +reg313444 = reg313442 +} else { +reg313443 := False; +reg313444 = reg313443 +} +reg313446 = reg313444 +} else { +reg313445 := False; +reg313446 = reg313445 +} +Case := reg313446 +_ = Case +reg313447 := False; +reg313448 := PrimEqual(Case, reg313447) +var reg313461 Obj +if reg313448 == True { +reg313449 := __e.Call(__defun__shen_4newpv, V3696) +Datatypes := reg313449 +_ = Datatypes +reg313450 := __e.Call(__defun__shen_4incinfs) +_ = reg313450 +reg313451 := MakeSymbol("shen.*datatypes*") +reg313452 := PrimValue(reg313451) +reg313453 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg313454 := MakeSymbol(":") +reg313455 := Nil; +reg313456 := PrimCons(V3694, reg313455) +reg313457 := PrimCons(reg313454, reg313456) +reg313458 := PrimCons(V3693, reg313457) +__ctx.TailApply(__defun__shen_4udefs_d, reg313458, V3695, Datatypes, V3696, V3697) +return +}, 0) +reg313460 := __e.Call(__defun__bind, Datatypes, reg313452, V3696, reg313453) +reg313461 = reg313460 +} else { +reg313461 = Case +} +reg313462 = reg313461 +} else { +reg313462 = Case +} +reg313463 = reg313462 +} else { +reg313463 = Case +} +reg313464 = reg313463 +} else { +reg313464 = Case +} +reg313465 = reg313464 +} else { +reg313465 = Case +} +reg313466 = reg313465 +} else { +reg313466 = Case +} +reg313467 = reg313466 +} else { +reg313467 = Case +} +reg313468 = reg313467 +} else { +reg313468 = Case +} +reg313469 = reg313468 +} else { +reg313469 = Case +} +reg313470 = reg313469 +} else { +reg313470 = Case +} +reg313471 = reg313470 +} else { +reg313471 = Case +} +reg313472 = reg313471 +} else { +reg313472 = Case +} +reg313473 = reg313472 +} else { +reg313473 = Case +} +reg313474 = reg313473 +} else { +reg313474 = Case +} +reg313475 = reg313474 +} else { +reg313475 = Case +} +reg313476 = reg313475 +} else { +reg313476 = Case +} +reg313477 = reg313476 +} else { +reg313477 = Case +} +reg313478 = reg313477 +} else { +reg313478 = Case +} +reg313479 = reg313478 +} else { +reg313479 = Case +} +reg313480 = reg313479 +} else { +reg313480 = Case +} +reg313481 = reg313480 +} else { +reg313481 = Case +} +__ctx.TailApply(__defun__shen_4cutpoint, Throwcontrol, reg313481) +return +}, 5) +__initDefs = append(__initDefs, defType{name: "shen.th*", value: __defun__shen_4th_d}) + +__defun__shen_4t_d_1hyps = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3702 := __args[0] +_ = V3702 +V3703 := __args[1] +_ = V3703 +V3704 := __args[2] +_ = V3704 +V3705 := __args[3] +_ = V3705 +reg313483 := __e.Call(__defun__shen_4lazyderef, V3702, V3704) +V3439 := reg313483 +_ = V3439 +reg313484 := PrimIsPair(V3439) +var reg314022 Obj +if reg313484 == True { +reg313485 := PrimHead(V3439) +reg313486 := __e.Call(__defun__shen_4lazyderef, reg313485, V3704) +V3440 := reg313486 +_ = V3440 +reg313487 := PrimIsPair(V3440) +var reg314020 Obj +if reg313487 == True { +reg313488 := PrimHead(V3440) +reg313489 := __e.Call(__defun__shen_4lazyderef, reg313488, V3704) +V3441 := reg313489 +_ = V3441 +reg313490 := PrimIsPair(V3441) +var reg314018 Obj +if reg313490 == True { +reg313491 := PrimHead(V3441) +reg313492 := __e.Call(__defun__shen_4lazyderef, reg313491, V3704) +V3442 := reg313492 +_ = V3442 +reg313493 := MakeSymbol("cons") +reg313494 := PrimEqual(reg313493, V3442) +var reg314016 Obj +if reg313494 == True { +reg313495 := PrimTail(V3441) +reg313496 := __e.Call(__defun__shen_4lazyderef, reg313495, V3704) +V3443 := reg313496 +_ = V3443 +reg313497 := PrimIsPair(V3443) +var reg314014 Obj +if reg313497 == True { +reg313498 := PrimHead(V3443) +X := reg313498 +_ = X +reg313499 := PrimTail(V3443) +reg313500 := __e.Call(__defun__shen_4lazyderef, reg313499, V3704) +V3444 := reg313500 +_ = V3444 +reg313501 := PrimIsPair(V3444) +var reg314012 Obj +if reg313501 == True { +reg313502 := PrimHead(V3444) +Y := reg313502 +_ = Y +reg313503 := PrimTail(V3444) +reg313504 := __e.Call(__defun__shen_4lazyderef, reg313503, V3704) +V3445 := reg313504 +_ = V3445 +reg313505 := Nil; +reg313506 := PrimEqual(reg313505, V3445) +var reg314010 Obj +if reg313506 == True { +reg313507 := PrimTail(V3440) +reg313508 := __e.Call(__defun__shen_4lazyderef, reg313507, V3704) +V3446 := reg313508 +_ = V3446 +reg313509 := PrimIsPair(V3446) +var reg314008 Obj +if reg313509 == True { +reg313510 := PrimHead(V3446) +reg313511 := __e.Call(__defun__shen_4lazyderef, reg313510, V3704) +V3447 := reg313511 +_ = V3447 +reg313512 := MakeSymbol(":") +reg313513 := PrimEqual(reg313512, V3447) +var reg314006 Obj +if reg313513 == True { +reg313514 := PrimTail(V3446) +reg313515 := __e.Call(__defun__shen_4lazyderef, reg313514, V3704) +V3448 := reg313515 +_ = V3448 +reg313516 := PrimIsPair(V3448) +var reg314004 Obj +if reg313516 == True { +reg313517 := PrimHead(V3448) +reg313518 := __e.Call(__defun__shen_4lazyderef, reg313517, V3704) +V3449 := reg313518 +_ = V3449 +reg313519 := PrimIsPair(V3449) +var reg314002 Obj +if reg313519 == True { +reg313520 := PrimHead(V3449) +reg313521 := __e.Call(__defun__shen_4lazyderef, reg313520, V3704) +V3450 := reg313521 +_ = V3450 +reg313522 := MakeSymbol("list") +reg313523 := PrimEqual(reg313522, V3450) +var reg313932 Obj +if reg313523 == True { +reg313524 := PrimTail(V3449) +reg313525 := __e.Call(__defun__shen_4lazyderef, reg313524, V3704) +V3451 := reg313525 +_ = V3451 +reg313526 := PrimIsPair(V3451) +var reg313724 Obj +if reg313526 == True { +reg313527 := PrimHead(V3451) +A := reg313527 +_ = A +reg313528 := PrimTail(V3451) +reg313529 := __e.Call(__defun__shen_4lazyderef, reg313528, V3704) +V3452 := reg313529 +_ = V3452 +reg313530 := Nil; +reg313531 := PrimEqual(reg313530, V3452) +var reg313656 Obj +if reg313531 == True { +reg313532 := PrimTail(V3448) +reg313533 := __e.Call(__defun__shen_4lazyderef, reg313532, V3704) +V3453 := reg313533 +_ = V3453 +reg313534 := Nil; +reg313535 := PrimEqual(reg313534, V3453) +var reg313590 Obj +if reg313535 == True { +reg313536 := PrimTail(V3439) +Hyp := reg313536 +_ = Hyp +reg313537 := __e.Call(__defun__shen_4incinfs) +_ = reg313537 +reg313538 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313539 := MakeSymbol(":") +reg313540 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313541 := Nil; +reg313542 := PrimCons(reg313540, reg313541) +reg313543 := PrimCons(reg313539, reg313542) +reg313544 := PrimCons(reg313538, reg313543) +reg313545 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313546 := MakeSymbol(":") +reg313547 := MakeSymbol("list") +reg313548 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313549 := Nil; +reg313550 := PrimCons(reg313548, reg313549) +reg313551 := PrimCons(reg313547, reg313550) +reg313552 := Nil; +reg313553 := PrimCons(reg313551, reg313552) +reg313554 := PrimCons(reg313546, reg313553) +reg313555 := PrimCons(reg313545, reg313554) +reg313556 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313557 := PrimCons(reg313555, reg313556) +reg313558 := PrimCons(reg313544, reg313557) +reg313559 := __e.Call(__defun__bind, V3703, reg313558, V3704, V3705) +reg313590 = reg313559 +} else { +reg313560 := __e.Call(__defun__shen_4pvar_2, V3453) +var reg313589 Obj +if reg313560 == True { +reg313561 := Nil; +reg313562 := __e.Call(__defun__shen_4bindv, V3453, reg313561, V3704) +_ = reg313562 +reg313563 := PrimTail(V3439) +Hyp := reg313563 +_ = Hyp +reg313564 := __e.Call(__defun__shen_4incinfs) +_ = reg313564 +reg313565 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313566 := MakeSymbol(":") +reg313567 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313568 := Nil; +reg313569 := PrimCons(reg313567, reg313568) +reg313570 := PrimCons(reg313566, reg313569) +reg313571 := PrimCons(reg313565, reg313570) +reg313572 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313573 := MakeSymbol(":") +reg313574 := MakeSymbol("list") +reg313575 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313576 := Nil; +reg313577 := PrimCons(reg313575, reg313576) +reg313578 := PrimCons(reg313574, reg313577) +reg313579 := Nil; +reg313580 := PrimCons(reg313578, reg313579) +reg313581 := PrimCons(reg313573, reg313580) +reg313582 := PrimCons(reg313572, reg313581) +reg313583 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313584 := PrimCons(reg313582, reg313583) +reg313585 := PrimCons(reg313571, reg313584) +reg313586 := __e.Call(__defun__bind, V3703, reg313585, V3704, V3705) +Result := reg313586 +_ = Result +reg313587 := __e.Call(__defun__shen_4unbindv, V3453, V3704) +_ = reg313587 +reg313589 = Result +} else { +reg313588 := False; +reg313589 = reg313588 +} +reg313590 = reg313589 +} +reg313656 = reg313590 +} else { +reg313591 := __e.Call(__defun__shen_4pvar_2, V3452) +var reg313655 Obj +if reg313591 == True { +reg313592 := Nil; +reg313593 := __e.Call(__defun__shen_4bindv, V3452, reg313592, V3704) +_ = reg313593 +reg313594 := PrimTail(V3448) +reg313595 := __e.Call(__defun__shen_4lazyderef, reg313594, V3704) +V3454 := reg313595 +_ = V3454 +reg313596 := Nil; +reg313597 := PrimEqual(reg313596, V3454) +var reg313652 Obj +if reg313597 == True { +reg313598 := PrimTail(V3439) +Hyp := reg313598 +_ = Hyp +reg313599 := __e.Call(__defun__shen_4incinfs) +_ = reg313599 +reg313600 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313601 := MakeSymbol(":") +reg313602 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313603 := Nil; +reg313604 := PrimCons(reg313602, reg313603) +reg313605 := PrimCons(reg313601, reg313604) +reg313606 := PrimCons(reg313600, reg313605) +reg313607 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313608 := MakeSymbol(":") +reg313609 := MakeSymbol("list") +reg313610 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313611 := Nil; +reg313612 := PrimCons(reg313610, reg313611) +reg313613 := PrimCons(reg313609, reg313612) +reg313614 := Nil; +reg313615 := PrimCons(reg313613, reg313614) +reg313616 := PrimCons(reg313608, reg313615) +reg313617 := PrimCons(reg313607, reg313616) +reg313618 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313619 := PrimCons(reg313617, reg313618) +reg313620 := PrimCons(reg313606, reg313619) +reg313621 := __e.Call(__defun__bind, V3703, reg313620, V3704, V3705) +reg313652 = reg313621 +} else { +reg313622 := __e.Call(__defun__shen_4pvar_2, V3454) +var reg313651 Obj +if reg313622 == True { +reg313623 := Nil; +reg313624 := __e.Call(__defun__shen_4bindv, V3454, reg313623, V3704) +_ = reg313624 +reg313625 := PrimTail(V3439) +Hyp := reg313625 +_ = Hyp +reg313626 := __e.Call(__defun__shen_4incinfs) +_ = reg313626 +reg313627 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313628 := MakeSymbol(":") +reg313629 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313630 := Nil; +reg313631 := PrimCons(reg313629, reg313630) +reg313632 := PrimCons(reg313628, reg313631) +reg313633 := PrimCons(reg313627, reg313632) +reg313634 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313635 := MakeSymbol(":") +reg313636 := MakeSymbol("list") +reg313637 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313638 := Nil; +reg313639 := PrimCons(reg313637, reg313638) +reg313640 := PrimCons(reg313636, reg313639) +reg313641 := Nil; +reg313642 := PrimCons(reg313640, reg313641) +reg313643 := PrimCons(reg313635, reg313642) +reg313644 := PrimCons(reg313634, reg313643) +reg313645 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313646 := PrimCons(reg313644, reg313645) +reg313647 := PrimCons(reg313633, reg313646) +reg313648 := __e.Call(__defun__bind, V3703, reg313647, V3704, V3705) +Result := reg313648 +_ = Result +reg313649 := __e.Call(__defun__shen_4unbindv, V3454, V3704) +_ = reg313649 +reg313651 = Result +} else { +reg313650 := False; +reg313651 = reg313650 +} +reg313652 = reg313651 +} +Result := reg313652 +_ = Result +reg313653 := __e.Call(__defun__shen_4unbindv, V3452, V3704) +_ = reg313653 +reg313655 = Result +} else { +reg313654 := False; +reg313655 = reg313654 +} +reg313656 = reg313655 +} +reg313724 = reg313656 +} else { +reg313657 := __e.Call(__defun__shen_4pvar_2, V3451) +var reg313723 Obj +if reg313657 == True { +reg313658 := __e.Call(__defun__shen_4newpv, V3704) +A := reg313658 +_ = A +reg313659 := Nil; +reg313660 := PrimCons(A, reg313659) +reg313661 := __e.Call(__defun__shen_4bindv, V3451, reg313660, V3704) +_ = reg313661 +reg313662 := PrimTail(V3448) +reg313663 := __e.Call(__defun__shen_4lazyderef, reg313662, V3704) +V3455 := reg313663 +_ = V3455 +reg313664 := Nil; +reg313665 := PrimEqual(reg313664, V3455) +var reg313720 Obj +if reg313665 == True { +reg313666 := PrimTail(V3439) +Hyp := reg313666 +_ = Hyp +reg313667 := __e.Call(__defun__shen_4incinfs) +_ = reg313667 +reg313668 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313669 := MakeSymbol(":") +reg313670 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313671 := Nil; +reg313672 := PrimCons(reg313670, reg313671) +reg313673 := PrimCons(reg313669, reg313672) +reg313674 := PrimCons(reg313668, reg313673) +reg313675 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313676 := MakeSymbol(":") +reg313677 := MakeSymbol("list") +reg313678 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313679 := Nil; +reg313680 := PrimCons(reg313678, reg313679) +reg313681 := PrimCons(reg313677, reg313680) +reg313682 := Nil; +reg313683 := PrimCons(reg313681, reg313682) +reg313684 := PrimCons(reg313676, reg313683) +reg313685 := PrimCons(reg313675, reg313684) +reg313686 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313687 := PrimCons(reg313685, reg313686) +reg313688 := PrimCons(reg313674, reg313687) +reg313689 := __e.Call(__defun__bind, V3703, reg313688, V3704, V3705) +reg313720 = reg313689 +} else { +reg313690 := __e.Call(__defun__shen_4pvar_2, V3455) +var reg313719 Obj +if reg313690 == True { +reg313691 := Nil; +reg313692 := __e.Call(__defun__shen_4bindv, V3455, reg313691, V3704) +_ = reg313692 +reg313693 := PrimTail(V3439) +Hyp := reg313693 +_ = Hyp +reg313694 := __e.Call(__defun__shen_4incinfs) +_ = reg313694 +reg313695 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313696 := MakeSymbol(":") +reg313697 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313698 := Nil; +reg313699 := PrimCons(reg313697, reg313698) +reg313700 := PrimCons(reg313696, reg313699) +reg313701 := PrimCons(reg313695, reg313700) +reg313702 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313703 := MakeSymbol(":") +reg313704 := MakeSymbol("list") +reg313705 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313706 := Nil; +reg313707 := PrimCons(reg313705, reg313706) +reg313708 := PrimCons(reg313704, reg313707) +reg313709 := Nil; +reg313710 := PrimCons(reg313708, reg313709) +reg313711 := PrimCons(reg313703, reg313710) +reg313712 := PrimCons(reg313702, reg313711) +reg313713 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313714 := PrimCons(reg313712, reg313713) +reg313715 := PrimCons(reg313701, reg313714) +reg313716 := __e.Call(__defun__bind, V3703, reg313715, V3704, V3705) +Result := reg313716 +_ = Result +reg313717 := __e.Call(__defun__shen_4unbindv, V3455, V3704) +_ = reg313717 +reg313719 = Result +} else { +reg313718 := False; +reg313719 = reg313718 +} +reg313720 = reg313719 +} +Result := reg313720 +_ = Result +reg313721 := __e.Call(__defun__shen_4unbindv, V3451, V3704) +_ = reg313721 +reg313723 = Result +} else { +reg313722 := False; +reg313723 = reg313722 +} +reg313724 = reg313723 +} +reg313932 = reg313724 +} else { +reg313725 := __e.Call(__defun__shen_4pvar_2, V3450) +var reg313931 Obj +if reg313725 == True { +reg313726 := MakeSymbol("list") +reg313727 := __e.Call(__defun__shen_4bindv, V3450, reg313726, V3704) +_ = reg313727 +reg313728 := PrimTail(V3449) +reg313729 := __e.Call(__defun__shen_4lazyderef, reg313728, V3704) +V3456 := reg313729 +_ = V3456 +reg313730 := PrimIsPair(V3456) +var reg313928 Obj +if reg313730 == True { +reg313731 := PrimHead(V3456) +A := reg313731 +_ = A +reg313732 := PrimTail(V3456) +reg313733 := __e.Call(__defun__shen_4lazyderef, reg313732, V3704) +V3457 := reg313733 +_ = V3457 +reg313734 := Nil; +reg313735 := PrimEqual(reg313734, V3457) +var reg313860 Obj +if reg313735 == True { +reg313736 := PrimTail(V3448) +reg313737 := __e.Call(__defun__shen_4lazyderef, reg313736, V3704) +V3458 := reg313737 +_ = V3458 +reg313738 := Nil; +reg313739 := PrimEqual(reg313738, V3458) +var reg313794 Obj +if reg313739 == True { +reg313740 := PrimTail(V3439) +Hyp := reg313740 +_ = Hyp +reg313741 := __e.Call(__defun__shen_4incinfs) +_ = reg313741 +reg313742 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313743 := MakeSymbol(":") +reg313744 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313745 := Nil; +reg313746 := PrimCons(reg313744, reg313745) +reg313747 := PrimCons(reg313743, reg313746) +reg313748 := PrimCons(reg313742, reg313747) +reg313749 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313750 := MakeSymbol(":") +reg313751 := MakeSymbol("list") +reg313752 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313753 := Nil; +reg313754 := PrimCons(reg313752, reg313753) +reg313755 := PrimCons(reg313751, reg313754) +reg313756 := Nil; +reg313757 := PrimCons(reg313755, reg313756) +reg313758 := PrimCons(reg313750, reg313757) +reg313759 := PrimCons(reg313749, reg313758) +reg313760 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313761 := PrimCons(reg313759, reg313760) +reg313762 := PrimCons(reg313748, reg313761) +reg313763 := __e.Call(__defun__bind, V3703, reg313762, V3704, V3705) +reg313794 = reg313763 +} else { +reg313764 := __e.Call(__defun__shen_4pvar_2, V3458) +var reg313793 Obj +if reg313764 == True { +reg313765 := Nil; +reg313766 := __e.Call(__defun__shen_4bindv, V3458, reg313765, V3704) +_ = reg313766 +reg313767 := PrimTail(V3439) +Hyp := reg313767 +_ = Hyp +reg313768 := __e.Call(__defun__shen_4incinfs) +_ = reg313768 +reg313769 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313770 := MakeSymbol(":") +reg313771 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313772 := Nil; +reg313773 := PrimCons(reg313771, reg313772) +reg313774 := PrimCons(reg313770, reg313773) +reg313775 := PrimCons(reg313769, reg313774) +reg313776 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313777 := MakeSymbol(":") +reg313778 := MakeSymbol("list") +reg313779 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313780 := Nil; +reg313781 := PrimCons(reg313779, reg313780) +reg313782 := PrimCons(reg313778, reg313781) +reg313783 := Nil; +reg313784 := PrimCons(reg313782, reg313783) +reg313785 := PrimCons(reg313777, reg313784) +reg313786 := PrimCons(reg313776, reg313785) +reg313787 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313788 := PrimCons(reg313786, reg313787) +reg313789 := PrimCons(reg313775, reg313788) +reg313790 := __e.Call(__defun__bind, V3703, reg313789, V3704, V3705) +Result := reg313790 +_ = Result +reg313791 := __e.Call(__defun__shen_4unbindv, V3458, V3704) +_ = reg313791 +reg313793 = Result +} else { +reg313792 := False; +reg313793 = reg313792 +} +reg313794 = reg313793 +} +reg313860 = reg313794 +} else { +reg313795 := __e.Call(__defun__shen_4pvar_2, V3457) +var reg313859 Obj +if reg313795 == True { +reg313796 := Nil; +reg313797 := __e.Call(__defun__shen_4bindv, V3457, reg313796, V3704) +_ = reg313797 +reg313798 := PrimTail(V3448) +reg313799 := __e.Call(__defun__shen_4lazyderef, reg313798, V3704) +V3459 := reg313799 +_ = V3459 +reg313800 := Nil; +reg313801 := PrimEqual(reg313800, V3459) +var reg313856 Obj +if reg313801 == True { +reg313802 := PrimTail(V3439) +Hyp := reg313802 +_ = Hyp +reg313803 := __e.Call(__defun__shen_4incinfs) +_ = reg313803 +reg313804 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313805 := MakeSymbol(":") +reg313806 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313807 := Nil; +reg313808 := PrimCons(reg313806, reg313807) +reg313809 := PrimCons(reg313805, reg313808) +reg313810 := PrimCons(reg313804, reg313809) +reg313811 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313812 := MakeSymbol(":") +reg313813 := MakeSymbol("list") +reg313814 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313815 := Nil; +reg313816 := PrimCons(reg313814, reg313815) +reg313817 := PrimCons(reg313813, reg313816) +reg313818 := Nil; +reg313819 := PrimCons(reg313817, reg313818) +reg313820 := PrimCons(reg313812, reg313819) +reg313821 := PrimCons(reg313811, reg313820) +reg313822 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313823 := PrimCons(reg313821, reg313822) +reg313824 := PrimCons(reg313810, reg313823) +reg313825 := __e.Call(__defun__bind, V3703, reg313824, V3704, V3705) +reg313856 = reg313825 +} else { +reg313826 := __e.Call(__defun__shen_4pvar_2, V3459) +var reg313855 Obj +if reg313826 == True { +reg313827 := Nil; +reg313828 := __e.Call(__defun__shen_4bindv, V3459, reg313827, V3704) +_ = reg313828 +reg313829 := PrimTail(V3439) +Hyp := reg313829 +_ = Hyp +reg313830 := __e.Call(__defun__shen_4incinfs) +_ = reg313830 +reg313831 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313832 := MakeSymbol(":") +reg313833 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313834 := Nil; +reg313835 := PrimCons(reg313833, reg313834) +reg313836 := PrimCons(reg313832, reg313835) +reg313837 := PrimCons(reg313831, reg313836) +reg313838 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313839 := MakeSymbol(":") +reg313840 := MakeSymbol("list") +reg313841 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313842 := Nil; +reg313843 := PrimCons(reg313841, reg313842) +reg313844 := PrimCons(reg313840, reg313843) +reg313845 := Nil; +reg313846 := PrimCons(reg313844, reg313845) +reg313847 := PrimCons(reg313839, reg313846) +reg313848 := PrimCons(reg313838, reg313847) +reg313849 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313850 := PrimCons(reg313848, reg313849) +reg313851 := PrimCons(reg313837, reg313850) +reg313852 := __e.Call(__defun__bind, V3703, reg313851, V3704, V3705) +Result := reg313852 +_ = Result +reg313853 := __e.Call(__defun__shen_4unbindv, V3459, V3704) +_ = reg313853 +reg313855 = Result +} else { +reg313854 := False; +reg313855 = reg313854 +} +reg313856 = reg313855 +} +Result := reg313856 +_ = Result +reg313857 := __e.Call(__defun__shen_4unbindv, V3457, V3704) +_ = reg313857 +reg313859 = Result +} else { +reg313858 := False; +reg313859 = reg313858 +} +reg313860 = reg313859 +} +reg313928 = reg313860 +} else { +reg313861 := __e.Call(__defun__shen_4pvar_2, V3456) +var reg313927 Obj +if reg313861 == True { +reg313862 := __e.Call(__defun__shen_4newpv, V3704) +A := reg313862 +_ = A +reg313863 := Nil; +reg313864 := PrimCons(A, reg313863) +reg313865 := __e.Call(__defun__shen_4bindv, V3456, reg313864, V3704) +_ = reg313865 +reg313866 := PrimTail(V3448) +reg313867 := __e.Call(__defun__shen_4lazyderef, reg313866, V3704) +V3460 := reg313867 +_ = V3460 +reg313868 := Nil; +reg313869 := PrimEqual(reg313868, V3460) +var reg313924 Obj +if reg313869 == True { +reg313870 := PrimTail(V3439) +Hyp := reg313870 +_ = Hyp +reg313871 := __e.Call(__defun__shen_4incinfs) +_ = reg313871 +reg313872 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313873 := MakeSymbol(":") +reg313874 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313875 := Nil; +reg313876 := PrimCons(reg313874, reg313875) +reg313877 := PrimCons(reg313873, reg313876) +reg313878 := PrimCons(reg313872, reg313877) +reg313879 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313880 := MakeSymbol(":") +reg313881 := MakeSymbol("list") +reg313882 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313883 := Nil; +reg313884 := PrimCons(reg313882, reg313883) +reg313885 := PrimCons(reg313881, reg313884) +reg313886 := Nil; +reg313887 := PrimCons(reg313885, reg313886) +reg313888 := PrimCons(reg313880, reg313887) +reg313889 := PrimCons(reg313879, reg313888) +reg313890 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313891 := PrimCons(reg313889, reg313890) +reg313892 := PrimCons(reg313878, reg313891) +reg313893 := __e.Call(__defun__bind, V3703, reg313892, V3704, V3705) +reg313924 = reg313893 +} else { +reg313894 := __e.Call(__defun__shen_4pvar_2, V3460) +var reg313923 Obj +if reg313894 == True { +reg313895 := Nil; +reg313896 := __e.Call(__defun__shen_4bindv, V3460, reg313895, V3704) +_ = reg313896 +reg313897 := PrimTail(V3439) +Hyp := reg313897 +_ = Hyp +reg313898 := __e.Call(__defun__shen_4incinfs) +_ = reg313898 +reg313899 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313900 := MakeSymbol(":") +reg313901 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313902 := Nil; +reg313903 := PrimCons(reg313901, reg313902) +reg313904 := PrimCons(reg313900, reg313903) +reg313905 := PrimCons(reg313899, reg313904) +reg313906 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313907 := MakeSymbol(":") +reg313908 := MakeSymbol("list") +reg313909 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313910 := Nil; +reg313911 := PrimCons(reg313909, reg313910) +reg313912 := PrimCons(reg313908, reg313911) +reg313913 := Nil; +reg313914 := PrimCons(reg313912, reg313913) +reg313915 := PrimCons(reg313907, reg313914) +reg313916 := PrimCons(reg313906, reg313915) +reg313917 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313918 := PrimCons(reg313916, reg313917) +reg313919 := PrimCons(reg313905, reg313918) +reg313920 := __e.Call(__defun__bind, V3703, reg313919, V3704, V3705) +Result := reg313920 +_ = Result +reg313921 := __e.Call(__defun__shen_4unbindv, V3460, V3704) +_ = reg313921 +reg313923 = Result +} else { +reg313922 := False; +reg313923 = reg313922 +} +reg313924 = reg313923 +} +Result := reg313924 +_ = Result +reg313925 := __e.Call(__defun__shen_4unbindv, V3456, V3704) +_ = reg313925 +reg313927 = Result +} else { +reg313926 := False; +reg313927 = reg313926 +} +reg313928 = reg313927 +} +Result := reg313928 +_ = Result +reg313929 := __e.Call(__defun__shen_4unbindv, V3450, V3704) +_ = reg313929 +reg313931 = Result +} else { +reg313930 := False; +reg313931 = reg313930 +} +reg313932 = reg313931 +} +reg314002 = reg313932 +} else { +reg313933 := __e.Call(__defun__shen_4pvar_2, V3449) +var reg314001 Obj +if reg313933 == True { +reg313934 := __e.Call(__defun__shen_4newpv, V3704) +A := reg313934 +_ = A +reg313935 := MakeSymbol("list") +reg313936 := Nil; +reg313937 := PrimCons(A, reg313936) +reg313938 := PrimCons(reg313935, reg313937) +reg313939 := __e.Call(__defun__shen_4bindv, V3449, reg313938, V3704) +_ = reg313939 +reg313940 := PrimTail(V3448) +reg313941 := __e.Call(__defun__shen_4lazyderef, reg313940, V3704) +V3461 := reg313941 +_ = V3461 +reg313942 := Nil; +reg313943 := PrimEqual(reg313942, V3461) +var reg313998 Obj +if reg313943 == True { +reg313944 := PrimTail(V3439) +Hyp := reg313944 +_ = Hyp +reg313945 := __e.Call(__defun__shen_4incinfs) +_ = reg313945 +reg313946 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313947 := MakeSymbol(":") +reg313948 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313949 := Nil; +reg313950 := PrimCons(reg313948, reg313949) +reg313951 := PrimCons(reg313947, reg313950) +reg313952 := PrimCons(reg313946, reg313951) +reg313953 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313954 := MakeSymbol(":") +reg313955 := MakeSymbol("list") +reg313956 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313957 := Nil; +reg313958 := PrimCons(reg313956, reg313957) +reg313959 := PrimCons(reg313955, reg313958) +reg313960 := Nil; +reg313961 := PrimCons(reg313959, reg313960) +reg313962 := PrimCons(reg313954, reg313961) +reg313963 := PrimCons(reg313953, reg313962) +reg313964 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313965 := PrimCons(reg313963, reg313964) +reg313966 := PrimCons(reg313952, reg313965) +reg313967 := __e.Call(__defun__bind, V3703, reg313966, V3704, V3705) +reg313998 = reg313967 +} else { +reg313968 := __e.Call(__defun__shen_4pvar_2, V3461) +var reg313997 Obj +if reg313968 == True { +reg313969 := Nil; +reg313970 := __e.Call(__defun__shen_4bindv, V3461, reg313969, V3704) +_ = reg313970 +reg313971 := PrimTail(V3439) +Hyp := reg313971 +_ = Hyp +reg313972 := __e.Call(__defun__shen_4incinfs) +_ = reg313972 +reg313973 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg313974 := MakeSymbol(":") +reg313975 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313976 := Nil; +reg313977 := PrimCons(reg313975, reg313976) +reg313978 := PrimCons(reg313974, reg313977) +reg313979 := PrimCons(reg313973, reg313978) +reg313980 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg313981 := MakeSymbol(":") +reg313982 := MakeSymbol("list") +reg313983 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg313984 := Nil; +reg313985 := PrimCons(reg313983, reg313984) +reg313986 := PrimCons(reg313982, reg313985) +reg313987 := Nil; +reg313988 := PrimCons(reg313986, reg313987) +reg313989 := PrimCons(reg313981, reg313988) +reg313990 := PrimCons(reg313980, reg313989) +reg313991 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg313992 := PrimCons(reg313990, reg313991) +reg313993 := PrimCons(reg313979, reg313992) +reg313994 := __e.Call(__defun__bind, V3703, reg313993, V3704, V3705) +Result := reg313994 +_ = Result +reg313995 := __e.Call(__defun__shen_4unbindv, V3461, V3704) +_ = reg313995 +reg313997 = Result +} else { +reg313996 := False; +reg313997 = reg313996 +} +reg313998 = reg313997 +} +Result := reg313998 +_ = Result +reg313999 := __e.Call(__defun__shen_4unbindv, V3449, V3704) +_ = reg313999 +reg314001 = Result +} else { +reg314000 := False; +reg314001 = reg314000 +} +reg314002 = reg314001 +} +reg314004 = reg314002 +} else { +reg314003 := False; +reg314004 = reg314003 +} +reg314006 = reg314004 +} else { +reg314005 := False; +reg314006 = reg314005 +} +reg314008 = reg314006 +} else { +reg314007 := False; +reg314008 = reg314007 +} +reg314010 = reg314008 +} else { +reg314009 := False; +reg314010 = reg314009 +} +reg314012 = reg314010 +} else { +reg314011 := False; +reg314012 = reg314011 +} +reg314014 = reg314012 +} else { +reg314013 := False; +reg314014 = reg314013 +} +reg314016 = reg314014 +} else { +reg314015 := False; +reg314016 = reg314015 +} +reg314018 = reg314016 +} else { +reg314017 := False; +reg314018 = reg314017 +} +reg314020 = reg314018 +} else { +reg314019 := False; +reg314020 = reg314019 +} +reg314022 = reg314020 +} else { +reg314021 := False; +reg314022 = reg314021 +} +Case := reg314022 +_ = Case +reg314023 := False; +reg314024 := PrimEqual(Case, reg314023) +if reg314024 == True { +reg314025 := __e.Call(__defun__shen_4lazyderef, V3702, V3704) +V3462 := reg314025 +_ = V3462 +reg314026 := PrimIsPair(V3462) +var reg314576 Obj +if reg314026 == True { +reg314027 := PrimHead(V3462) +reg314028 := __e.Call(__defun__shen_4lazyderef, reg314027, V3704) +V3463 := reg314028 +_ = V3463 +reg314029 := PrimIsPair(V3463) +var reg314574 Obj +if reg314029 == True { +reg314030 := PrimHead(V3463) +reg314031 := __e.Call(__defun__shen_4lazyderef, reg314030, V3704) +V3464 := reg314031 +_ = V3464 +reg314032 := PrimIsPair(V3464) +var reg314572 Obj +if reg314032 == True { +reg314033 := PrimHead(V3464) +reg314034 := __e.Call(__defun__shen_4lazyderef, reg314033, V3704) +V3465 := reg314034 +_ = V3465 +reg314035 := MakeSymbol("@p") +reg314036 := PrimEqual(reg314035, V3465) +var reg314570 Obj +if reg314036 == True { +reg314037 := PrimTail(V3464) +reg314038 := __e.Call(__defun__shen_4lazyderef, reg314037, V3704) +V3466 := reg314038 +_ = V3466 +reg314039 := PrimIsPair(V3466) +var reg314568 Obj +if reg314039 == True { +reg314040 := PrimHead(V3466) +X := reg314040 +_ = X +reg314041 := PrimTail(V3466) +reg314042 := __e.Call(__defun__shen_4lazyderef, reg314041, V3704) +V3467 := reg314042 +_ = V3467 +reg314043 := PrimIsPair(V3467) +var reg314566 Obj +if reg314043 == True { +reg314044 := PrimHead(V3467) +Y := reg314044 +_ = Y +reg314045 := PrimTail(V3467) +reg314046 := __e.Call(__defun__shen_4lazyderef, reg314045, V3704) +V3468 := reg314046 +_ = V3468 +reg314047 := Nil; +reg314048 := PrimEqual(reg314047, V3468) +var reg314564 Obj +if reg314048 == True { +reg314049 := PrimTail(V3463) +reg314050 := __e.Call(__defun__shen_4lazyderef, reg314049, V3704) +V3469 := reg314050 +_ = V3469 +reg314051 := PrimIsPair(V3469) +var reg314562 Obj +if reg314051 == True { +reg314052 := PrimHead(V3469) +reg314053 := __e.Call(__defun__shen_4lazyderef, reg314052, V3704) +V3470 := reg314053 +_ = V3470 +reg314054 := MakeSymbol(":") +reg314055 := PrimEqual(reg314054, V3470) +var reg314560 Obj +if reg314055 == True { +reg314056 := PrimTail(V3469) +reg314057 := __e.Call(__defun__shen_4lazyderef, reg314056, V3704) +V3471 := reg314057 +_ = V3471 +reg314058 := PrimIsPair(V3471) +var reg314558 Obj +if reg314058 == True { +reg314059 := PrimHead(V3471) +reg314060 := __e.Call(__defun__shen_4lazyderef, reg314059, V3704) +V3472 := reg314060 +_ = V3472 +reg314061 := PrimIsPair(V3472) +var reg314556 Obj +if reg314061 == True { +reg314062 := PrimHead(V3472) +A := reg314062 +_ = A +reg314063 := PrimTail(V3472) +reg314064 := __e.Call(__defun__shen_4lazyderef, reg314063, V3704) +V3473 := reg314064 +_ = V3473 +reg314065 := PrimIsPair(V3473) +var reg314492 Obj +if reg314065 == True { +reg314066 := PrimHead(V3473) +reg314067 := __e.Call(__defun__shen_4lazyderef, reg314066, V3704) +V3474 := reg314067 +_ = V3474 +reg314068 := MakeSymbol("*") +reg314069 := PrimEqual(reg314068, V3474) +var reg314430 Obj +if reg314069 == True { +reg314070 := PrimTail(V3473) +reg314071 := __e.Call(__defun__shen_4lazyderef, reg314070, V3704) +V3475 := reg314071 +_ = V3475 +reg314072 := PrimIsPair(V3475) +var reg314246 Obj +if reg314072 == True { +reg314073 := PrimHead(V3475) +B := reg314073 +_ = B +reg314074 := PrimTail(V3475) +reg314075 := __e.Call(__defun__shen_4lazyderef, reg314074, V3704) +V3476 := reg314075 +_ = V3476 +reg314076 := Nil; +reg314077 := PrimEqual(reg314076, V3476) +var reg314186 Obj +if reg314077 == True { +reg314078 := PrimTail(V3471) +reg314079 := __e.Call(__defun__shen_4lazyderef, reg314078, V3704) +V3477 := reg314079 +_ = V3477 +reg314080 := Nil; +reg314081 := PrimEqual(reg314080, V3477) +var reg314128 Obj +if reg314081 == True { +reg314082 := PrimTail(V3462) +Hyp := reg314082 +_ = Hyp +reg314083 := __e.Call(__defun__shen_4incinfs) +_ = reg314083 +reg314084 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314085 := MakeSymbol(":") +reg314086 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314087 := Nil; +reg314088 := PrimCons(reg314086, reg314087) +reg314089 := PrimCons(reg314085, reg314088) +reg314090 := PrimCons(reg314084, reg314089) +reg314091 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314092 := MakeSymbol(":") +reg314093 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314094 := Nil; +reg314095 := PrimCons(reg314093, reg314094) +reg314096 := PrimCons(reg314092, reg314095) +reg314097 := PrimCons(reg314091, reg314096) +reg314098 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314099 := PrimCons(reg314097, reg314098) +reg314100 := PrimCons(reg314090, reg314099) +reg314101 := __e.Call(__defun__bind, V3703, reg314100, V3704, V3705) +reg314128 = reg314101 +} else { +reg314102 := __e.Call(__defun__shen_4pvar_2, V3477) +var reg314127 Obj +if reg314102 == True { +reg314103 := Nil; +reg314104 := __e.Call(__defun__shen_4bindv, V3477, reg314103, V3704) +_ = reg314104 +reg314105 := PrimTail(V3462) +Hyp := reg314105 +_ = Hyp +reg314106 := __e.Call(__defun__shen_4incinfs) +_ = reg314106 +reg314107 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314108 := MakeSymbol(":") +reg314109 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314110 := Nil; +reg314111 := PrimCons(reg314109, reg314110) +reg314112 := PrimCons(reg314108, reg314111) +reg314113 := PrimCons(reg314107, reg314112) +reg314114 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314115 := MakeSymbol(":") +reg314116 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314117 := Nil; +reg314118 := PrimCons(reg314116, reg314117) +reg314119 := PrimCons(reg314115, reg314118) +reg314120 := PrimCons(reg314114, reg314119) +reg314121 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314122 := PrimCons(reg314120, reg314121) +reg314123 := PrimCons(reg314113, reg314122) +reg314124 := __e.Call(__defun__bind, V3703, reg314123, V3704, V3705) +Result := reg314124 +_ = Result +reg314125 := __e.Call(__defun__shen_4unbindv, V3477, V3704) +_ = reg314125 +reg314127 = Result +} else { +reg314126 := False; +reg314127 = reg314126 +} +reg314128 = reg314127 +} +reg314186 = reg314128 +} else { +reg314129 := __e.Call(__defun__shen_4pvar_2, V3476) +var reg314185 Obj +if reg314129 == True { +reg314130 := Nil; +reg314131 := __e.Call(__defun__shen_4bindv, V3476, reg314130, V3704) +_ = reg314131 +reg314132 := PrimTail(V3471) +reg314133 := __e.Call(__defun__shen_4lazyderef, reg314132, V3704) +V3478 := reg314133 +_ = V3478 +reg314134 := Nil; +reg314135 := PrimEqual(reg314134, V3478) +var reg314182 Obj +if reg314135 == True { +reg314136 := PrimTail(V3462) +Hyp := reg314136 +_ = Hyp +reg314137 := __e.Call(__defun__shen_4incinfs) +_ = reg314137 +reg314138 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314139 := MakeSymbol(":") +reg314140 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314141 := Nil; +reg314142 := PrimCons(reg314140, reg314141) +reg314143 := PrimCons(reg314139, reg314142) +reg314144 := PrimCons(reg314138, reg314143) +reg314145 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314146 := MakeSymbol(":") +reg314147 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314148 := Nil; +reg314149 := PrimCons(reg314147, reg314148) +reg314150 := PrimCons(reg314146, reg314149) +reg314151 := PrimCons(reg314145, reg314150) +reg314152 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314153 := PrimCons(reg314151, reg314152) +reg314154 := PrimCons(reg314144, reg314153) +reg314155 := __e.Call(__defun__bind, V3703, reg314154, V3704, V3705) +reg314182 = reg314155 +} else { +reg314156 := __e.Call(__defun__shen_4pvar_2, V3478) +var reg314181 Obj +if reg314156 == True { +reg314157 := Nil; +reg314158 := __e.Call(__defun__shen_4bindv, V3478, reg314157, V3704) +_ = reg314158 +reg314159 := PrimTail(V3462) +Hyp := reg314159 +_ = Hyp +reg314160 := __e.Call(__defun__shen_4incinfs) +_ = reg314160 +reg314161 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314162 := MakeSymbol(":") +reg314163 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314164 := Nil; +reg314165 := PrimCons(reg314163, reg314164) +reg314166 := PrimCons(reg314162, reg314165) +reg314167 := PrimCons(reg314161, reg314166) +reg314168 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314169 := MakeSymbol(":") +reg314170 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314171 := Nil; +reg314172 := PrimCons(reg314170, reg314171) +reg314173 := PrimCons(reg314169, reg314172) +reg314174 := PrimCons(reg314168, reg314173) +reg314175 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314176 := PrimCons(reg314174, reg314175) +reg314177 := PrimCons(reg314167, reg314176) +reg314178 := __e.Call(__defun__bind, V3703, reg314177, V3704, V3705) +Result := reg314178 +_ = Result +reg314179 := __e.Call(__defun__shen_4unbindv, V3478, V3704) +_ = reg314179 +reg314181 = Result +} else { +reg314180 := False; +reg314181 = reg314180 +} +reg314182 = reg314181 +} +Result := reg314182 +_ = Result +reg314183 := __e.Call(__defun__shen_4unbindv, V3476, V3704) +_ = reg314183 +reg314185 = Result +} else { +reg314184 := False; +reg314185 = reg314184 +} +reg314186 = reg314185 +} +reg314246 = reg314186 +} else { +reg314187 := __e.Call(__defun__shen_4pvar_2, V3475) +var reg314245 Obj +if reg314187 == True { +reg314188 := __e.Call(__defun__shen_4newpv, V3704) +B := reg314188 +_ = B +reg314189 := Nil; +reg314190 := PrimCons(B, reg314189) +reg314191 := __e.Call(__defun__shen_4bindv, V3475, reg314190, V3704) +_ = reg314191 +reg314192 := PrimTail(V3471) +reg314193 := __e.Call(__defun__shen_4lazyderef, reg314192, V3704) +V3479 := reg314193 +_ = V3479 +reg314194 := Nil; +reg314195 := PrimEqual(reg314194, V3479) +var reg314242 Obj +if reg314195 == True { +reg314196 := PrimTail(V3462) +Hyp := reg314196 +_ = Hyp +reg314197 := __e.Call(__defun__shen_4incinfs) +_ = reg314197 +reg314198 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314199 := MakeSymbol(":") +reg314200 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314201 := Nil; +reg314202 := PrimCons(reg314200, reg314201) +reg314203 := PrimCons(reg314199, reg314202) +reg314204 := PrimCons(reg314198, reg314203) +reg314205 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314206 := MakeSymbol(":") +reg314207 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314208 := Nil; +reg314209 := PrimCons(reg314207, reg314208) +reg314210 := PrimCons(reg314206, reg314209) +reg314211 := PrimCons(reg314205, reg314210) +reg314212 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314213 := PrimCons(reg314211, reg314212) +reg314214 := PrimCons(reg314204, reg314213) +reg314215 := __e.Call(__defun__bind, V3703, reg314214, V3704, V3705) +reg314242 = reg314215 +} else { +reg314216 := __e.Call(__defun__shen_4pvar_2, V3479) +var reg314241 Obj +if reg314216 == True { +reg314217 := Nil; +reg314218 := __e.Call(__defun__shen_4bindv, V3479, reg314217, V3704) +_ = reg314218 +reg314219 := PrimTail(V3462) +Hyp := reg314219 +_ = Hyp +reg314220 := __e.Call(__defun__shen_4incinfs) +_ = reg314220 +reg314221 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314222 := MakeSymbol(":") +reg314223 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314224 := Nil; +reg314225 := PrimCons(reg314223, reg314224) +reg314226 := PrimCons(reg314222, reg314225) +reg314227 := PrimCons(reg314221, reg314226) +reg314228 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314229 := MakeSymbol(":") +reg314230 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314231 := Nil; +reg314232 := PrimCons(reg314230, reg314231) +reg314233 := PrimCons(reg314229, reg314232) +reg314234 := PrimCons(reg314228, reg314233) +reg314235 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314236 := PrimCons(reg314234, reg314235) +reg314237 := PrimCons(reg314227, reg314236) +reg314238 := __e.Call(__defun__bind, V3703, reg314237, V3704, V3705) +Result := reg314238 +_ = Result +reg314239 := __e.Call(__defun__shen_4unbindv, V3479, V3704) +_ = reg314239 +reg314241 = Result +} else { +reg314240 := False; +reg314241 = reg314240 +} +reg314242 = reg314241 +} +Result := reg314242 +_ = Result +reg314243 := __e.Call(__defun__shen_4unbindv, V3475, V3704) +_ = reg314243 +reg314245 = Result +} else { +reg314244 := False; +reg314245 = reg314244 +} +reg314246 = reg314245 +} +reg314430 = reg314246 +} else { +reg314247 := __e.Call(__defun__shen_4pvar_2, V3474) +var reg314429 Obj +if reg314247 == True { +reg314248 := MakeSymbol("*") +reg314249 := __e.Call(__defun__shen_4bindv, V3474, reg314248, V3704) +_ = reg314249 +reg314250 := PrimTail(V3473) +reg314251 := __e.Call(__defun__shen_4lazyderef, reg314250, V3704) +V3480 := reg314251 +_ = V3480 +reg314252 := PrimIsPair(V3480) +var reg314426 Obj +if reg314252 == True { +reg314253 := PrimHead(V3480) +B := reg314253 +_ = B +reg314254 := PrimTail(V3480) +reg314255 := __e.Call(__defun__shen_4lazyderef, reg314254, V3704) +V3481 := reg314255 +_ = V3481 +reg314256 := Nil; +reg314257 := PrimEqual(reg314256, V3481) +var reg314366 Obj +if reg314257 == True { +reg314258 := PrimTail(V3471) +reg314259 := __e.Call(__defun__shen_4lazyderef, reg314258, V3704) +V3482 := reg314259 +_ = V3482 +reg314260 := Nil; +reg314261 := PrimEqual(reg314260, V3482) +var reg314308 Obj +if reg314261 == True { +reg314262 := PrimTail(V3462) +Hyp := reg314262 +_ = Hyp +reg314263 := __e.Call(__defun__shen_4incinfs) +_ = reg314263 +reg314264 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314265 := MakeSymbol(":") +reg314266 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314267 := Nil; +reg314268 := PrimCons(reg314266, reg314267) +reg314269 := PrimCons(reg314265, reg314268) +reg314270 := PrimCons(reg314264, reg314269) +reg314271 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314272 := MakeSymbol(":") +reg314273 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314274 := Nil; +reg314275 := PrimCons(reg314273, reg314274) +reg314276 := PrimCons(reg314272, reg314275) +reg314277 := PrimCons(reg314271, reg314276) +reg314278 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314279 := PrimCons(reg314277, reg314278) +reg314280 := PrimCons(reg314270, reg314279) +reg314281 := __e.Call(__defun__bind, V3703, reg314280, V3704, V3705) +reg314308 = reg314281 +} else { +reg314282 := __e.Call(__defun__shen_4pvar_2, V3482) +var reg314307 Obj +if reg314282 == True { +reg314283 := Nil; +reg314284 := __e.Call(__defun__shen_4bindv, V3482, reg314283, V3704) +_ = reg314284 +reg314285 := PrimTail(V3462) +Hyp := reg314285 +_ = Hyp +reg314286 := __e.Call(__defun__shen_4incinfs) +_ = reg314286 +reg314287 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314288 := MakeSymbol(":") +reg314289 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314290 := Nil; +reg314291 := PrimCons(reg314289, reg314290) +reg314292 := PrimCons(reg314288, reg314291) +reg314293 := PrimCons(reg314287, reg314292) +reg314294 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314295 := MakeSymbol(":") +reg314296 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314297 := Nil; +reg314298 := PrimCons(reg314296, reg314297) +reg314299 := PrimCons(reg314295, reg314298) +reg314300 := PrimCons(reg314294, reg314299) +reg314301 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314302 := PrimCons(reg314300, reg314301) +reg314303 := PrimCons(reg314293, reg314302) +reg314304 := __e.Call(__defun__bind, V3703, reg314303, V3704, V3705) +Result := reg314304 +_ = Result +reg314305 := __e.Call(__defun__shen_4unbindv, V3482, V3704) +_ = reg314305 +reg314307 = Result +} else { +reg314306 := False; +reg314307 = reg314306 +} +reg314308 = reg314307 +} +reg314366 = reg314308 +} else { +reg314309 := __e.Call(__defun__shen_4pvar_2, V3481) +var reg314365 Obj +if reg314309 == True { +reg314310 := Nil; +reg314311 := __e.Call(__defun__shen_4bindv, V3481, reg314310, V3704) +_ = reg314311 +reg314312 := PrimTail(V3471) +reg314313 := __e.Call(__defun__shen_4lazyderef, reg314312, V3704) +V3483 := reg314313 +_ = V3483 +reg314314 := Nil; +reg314315 := PrimEqual(reg314314, V3483) +var reg314362 Obj +if reg314315 == True { +reg314316 := PrimTail(V3462) +Hyp := reg314316 +_ = Hyp +reg314317 := __e.Call(__defun__shen_4incinfs) +_ = reg314317 +reg314318 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314319 := MakeSymbol(":") +reg314320 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314321 := Nil; +reg314322 := PrimCons(reg314320, reg314321) +reg314323 := PrimCons(reg314319, reg314322) +reg314324 := PrimCons(reg314318, reg314323) +reg314325 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314326 := MakeSymbol(":") +reg314327 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314328 := Nil; +reg314329 := PrimCons(reg314327, reg314328) +reg314330 := PrimCons(reg314326, reg314329) +reg314331 := PrimCons(reg314325, reg314330) +reg314332 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314333 := PrimCons(reg314331, reg314332) +reg314334 := PrimCons(reg314324, reg314333) +reg314335 := __e.Call(__defun__bind, V3703, reg314334, V3704, V3705) +reg314362 = reg314335 +} else { +reg314336 := __e.Call(__defun__shen_4pvar_2, V3483) +var reg314361 Obj +if reg314336 == True { +reg314337 := Nil; +reg314338 := __e.Call(__defun__shen_4bindv, V3483, reg314337, V3704) +_ = reg314338 +reg314339 := PrimTail(V3462) +Hyp := reg314339 +_ = Hyp +reg314340 := __e.Call(__defun__shen_4incinfs) +_ = reg314340 +reg314341 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314342 := MakeSymbol(":") +reg314343 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314344 := Nil; +reg314345 := PrimCons(reg314343, reg314344) +reg314346 := PrimCons(reg314342, reg314345) +reg314347 := PrimCons(reg314341, reg314346) +reg314348 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314349 := MakeSymbol(":") +reg314350 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314351 := Nil; +reg314352 := PrimCons(reg314350, reg314351) +reg314353 := PrimCons(reg314349, reg314352) +reg314354 := PrimCons(reg314348, reg314353) +reg314355 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314356 := PrimCons(reg314354, reg314355) +reg314357 := PrimCons(reg314347, reg314356) +reg314358 := __e.Call(__defun__bind, V3703, reg314357, V3704, V3705) +Result := reg314358 +_ = Result +reg314359 := __e.Call(__defun__shen_4unbindv, V3483, V3704) +_ = reg314359 +reg314361 = Result +} else { +reg314360 := False; +reg314361 = reg314360 +} +reg314362 = reg314361 +} +Result := reg314362 +_ = Result +reg314363 := __e.Call(__defun__shen_4unbindv, V3481, V3704) +_ = reg314363 +reg314365 = Result +} else { +reg314364 := False; +reg314365 = reg314364 +} +reg314366 = reg314365 +} +reg314426 = reg314366 +} else { +reg314367 := __e.Call(__defun__shen_4pvar_2, V3480) +var reg314425 Obj +if reg314367 == True { +reg314368 := __e.Call(__defun__shen_4newpv, V3704) +B := reg314368 +_ = B +reg314369 := Nil; +reg314370 := PrimCons(B, reg314369) +reg314371 := __e.Call(__defun__shen_4bindv, V3480, reg314370, V3704) +_ = reg314371 +reg314372 := PrimTail(V3471) +reg314373 := __e.Call(__defun__shen_4lazyderef, reg314372, V3704) +V3484 := reg314373 +_ = V3484 +reg314374 := Nil; +reg314375 := PrimEqual(reg314374, V3484) +var reg314422 Obj +if reg314375 == True { +reg314376 := PrimTail(V3462) +Hyp := reg314376 +_ = Hyp +reg314377 := __e.Call(__defun__shen_4incinfs) +_ = reg314377 +reg314378 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314379 := MakeSymbol(":") +reg314380 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314381 := Nil; +reg314382 := PrimCons(reg314380, reg314381) +reg314383 := PrimCons(reg314379, reg314382) +reg314384 := PrimCons(reg314378, reg314383) +reg314385 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314386 := MakeSymbol(":") +reg314387 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314388 := Nil; +reg314389 := PrimCons(reg314387, reg314388) +reg314390 := PrimCons(reg314386, reg314389) +reg314391 := PrimCons(reg314385, reg314390) +reg314392 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314393 := PrimCons(reg314391, reg314392) +reg314394 := PrimCons(reg314384, reg314393) +reg314395 := __e.Call(__defun__bind, V3703, reg314394, V3704, V3705) +reg314422 = reg314395 +} else { +reg314396 := __e.Call(__defun__shen_4pvar_2, V3484) +var reg314421 Obj +if reg314396 == True { +reg314397 := Nil; +reg314398 := __e.Call(__defun__shen_4bindv, V3484, reg314397, V3704) +_ = reg314398 +reg314399 := PrimTail(V3462) +Hyp := reg314399 +_ = Hyp +reg314400 := __e.Call(__defun__shen_4incinfs) +_ = reg314400 +reg314401 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314402 := MakeSymbol(":") +reg314403 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314404 := Nil; +reg314405 := PrimCons(reg314403, reg314404) +reg314406 := PrimCons(reg314402, reg314405) +reg314407 := PrimCons(reg314401, reg314406) +reg314408 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314409 := MakeSymbol(":") +reg314410 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314411 := Nil; +reg314412 := PrimCons(reg314410, reg314411) +reg314413 := PrimCons(reg314409, reg314412) +reg314414 := PrimCons(reg314408, reg314413) +reg314415 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314416 := PrimCons(reg314414, reg314415) +reg314417 := PrimCons(reg314407, reg314416) +reg314418 := __e.Call(__defun__bind, V3703, reg314417, V3704, V3705) +Result := reg314418 +_ = Result +reg314419 := __e.Call(__defun__shen_4unbindv, V3484, V3704) +_ = reg314419 +reg314421 = Result +} else { +reg314420 := False; +reg314421 = reg314420 +} +reg314422 = reg314421 +} +Result := reg314422 +_ = Result +reg314423 := __e.Call(__defun__shen_4unbindv, V3480, V3704) +_ = reg314423 +reg314425 = Result +} else { +reg314424 := False; +reg314425 = reg314424 +} +reg314426 = reg314425 +} +Result := reg314426 +_ = Result +reg314427 := __e.Call(__defun__shen_4unbindv, V3474, V3704) +_ = reg314427 +reg314429 = Result +} else { +reg314428 := False; +reg314429 = reg314428 +} +reg314430 = reg314429 +} +reg314492 = reg314430 +} else { +reg314431 := __e.Call(__defun__shen_4pvar_2, V3473) +var reg314491 Obj +if reg314431 == True { +reg314432 := __e.Call(__defun__shen_4newpv, V3704) +B := reg314432 +_ = B +reg314433 := MakeSymbol("*") +reg314434 := Nil; +reg314435 := PrimCons(B, reg314434) +reg314436 := PrimCons(reg314433, reg314435) +reg314437 := __e.Call(__defun__shen_4bindv, V3473, reg314436, V3704) +_ = reg314437 +reg314438 := PrimTail(V3471) +reg314439 := __e.Call(__defun__shen_4lazyderef, reg314438, V3704) +V3485 := reg314439 +_ = V3485 +reg314440 := Nil; +reg314441 := PrimEqual(reg314440, V3485) +var reg314488 Obj +if reg314441 == True { +reg314442 := PrimTail(V3462) +Hyp := reg314442 +_ = Hyp +reg314443 := __e.Call(__defun__shen_4incinfs) +_ = reg314443 +reg314444 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314445 := MakeSymbol(":") +reg314446 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314447 := Nil; +reg314448 := PrimCons(reg314446, reg314447) +reg314449 := PrimCons(reg314445, reg314448) +reg314450 := PrimCons(reg314444, reg314449) +reg314451 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314452 := MakeSymbol(":") +reg314453 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314454 := Nil; +reg314455 := PrimCons(reg314453, reg314454) +reg314456 := PrimCons(reg314452, reg314455) +reg314457 := PrimCons(reg314451, reg314456) +reg314458 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314459 := PrimCons(reg314457, reg314458) +reg314460 := PrimCons(reg314450, reg314459) +reg314461 := __e.Call(__defun__bind, V3703, reg314460, V3704, V3705) +reg314488 = reg314461 +} else { +reg314462 := __e.Call(__defun__shen_4pvar_2, V3485) +var reg314487 Obj +if reg314462 == True { +reg314463 := Nil; +reg314464 := __e.Call(__defun__shen_4bindv, V3485, reg314463, V3704) +_ = reg314464 +reg314465 := PrimTail(V3462) +Hyp := reg314465 +_ = Hyp +reg314466 := __e.Call(__defun__shen_4incinfs) +_ = reg314466 +reg314467 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314468 := MakeSymbol(":") +reg314469 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314470 := Nil; +reg314471 := PrimCons(reg314469, reg314470) +reg314472 := PrimCons(reg314468, reg314471) +reg314473 := PrimCons(reg314467, reg314472) +reg314474 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314475 := MakeSymbol(":") +reg314476 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314477 := Nil; +reg314478 := PrimCons(reg314476, reg314477) +reg314479 := PrimCons(reg314475, reg314478) +reg314480 := PrimCons(reg314474, reg314479) +reg314481 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314482 := PrimCons(reg314480, reg314481) +reg314483 := PrimCons(reg314473, reg314482) +reg314484 := __e.Call(__defun__bind, V3703, reg314483, V3704, V3705) +Result := reg314484 +_ = Result +reg314485 := __e.Call(__defun__shen_4unbindv, V3485, V3704) +_ = reg314485 +reg314487 = Result +} else { +reg314486 := False; +reg314487 = reg314486 +} +reg314488 = reg314487 +} +Result := reg314488 +_ = Result +reg314489 := __e.Call(__defun__shen_4unbindv, V3473, V3704) +_ = reg314489 +reg314491 = Result +} else { +reg314490 := False; +reg314491 = reg314490 +} +reg314492 = reg314491 +} +reg314556 = reg314492 +} else { +reg314493 := __e.Call(__defun__shen_4pvar_2, V3472) +var reg314555 Obj +if reg314493 == True { +reg314494 := __e.Call(__defun__shen_4newpv, V3704) +A := reg314494 +_ = A +reg314495 := __e.Call(__defun__shen_4newpv, V3704) +B := reg314495 +_ = B +reg314496 := MakeSymbol("*") +reg314497 := Nil; +reg314498 := PrimCons(B, reg314497) +reg314499 := PrimCons(reg314496, reg314498) +reg314500 := PrimCons(A, reg314499) +reg314501 := __e.Call(__defun__shen_4bindv, V3472, reg314500, V3704) +_ = reg314501 +reg314502 := PrimTail(V3471) +reg314503 := __e.Call(__defun__shen_4lazyderef, reg314502, V3704) +V3486 := reg314503 +_ = V3486 +reg314504 := Nil; +reg314505 := PrimEqual(reg314504, V3486) +var reg314552 Obj +if reg314505 == True { +reg314506 := PrimTail(V3462) +Hyp := reg314506 +_ = Hyp +reg314507 := __e.Call(__defun__shen_4incinfs) +_ = reg314507 +reg314508 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314509 := MakeSymbol(":") +reg314510 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314511 := Nil; +reg314512 := PrimCons(reg314510, reg314511) +reg314513 := PrimCons(reg314509, reg314512) +reg314514 := PrimCons(reg314508, reg314513) +reg314515 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314516 := MakeSymbol(":") +reg314517 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314518 := Nil; +reg314519 := PrimCons(reg314517, reg314518) +reg314520 := PrimCons(reg314516, reg314519) +reg314521 := PrimCons(reg314515, reg314520) +reg314522 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314523 := PrimCons(reg314521, reg314522) +reg314524 := PrimCons(reg314514, reg314523) +reg314525 := __e.Call(__defun__bind, V3703, reg314524, V3704, V3705) +reg314552 = reg314525 +} else { +reg314526 := __e.Call(__defun__shen_4pvar_2, V3486) +var reg314551 Obj +if reg314526 == True { +reg314527 := Nil; +reg314528 := __e.Call(__defun__shen_4bindv, V3486, reg314527, V3704) +_ = reg314528 +reg314529 := PrimTail(V3462) +Hyp := reg314529 +_ = Hyp +reg314530 := __e.Call(__defun__shen_4incinfs) +_ = reg314530 +reg314531 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314532 := MakeSymbol(":") +reg314533 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314534 := Nil; +reg314535 := PrimCons(reg314533, reg314534) +reg314536 := PrimCons(reg314532, reg314535) +reg314537 := PrimCons(reg314531, reg314536) +reg314538 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314539 := MakeSymbol(":") +reg314540 := __e.Call(__defun__shen_4lazyderef, B, V3704) +reg314541 := Nil; +reg314542 := PrimCons(reg314540, reg314541) +reg314543 := PrimCons(reg314539, reg314542) +reg314544 := PrimCons(reg314538, reg314543) +reg314545 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314546 := PrimCons(reg314544, reg314545) +reg314547 := PrimCons(reg314537, reg314546) +reg314548 := __e.Call(__defun__bind, V3703, reg314547, V3704, V3705) +Result := reg314548 +_ = Result +reg314549 := __e.Call(__defun__shen_4unbindv, V3486, V3704) +_ = reg314549 +reg314551 = Result +} else { +reg314550 := False; +reg314551 = reg314550 +} +reg314552 = reg314551 +} +Result := reg314552 +_ = Result +reg314553 := __e.Call(__defun__shen_4unbindv, V3472, V3704) +_ = reg314553 +reg314555 = Result +} else { +reg314554 := False; +reg314555 = reg314554 +} +reg314556 = reg314555 +} +reg314558 = reg314556 +} else { +reg314557 := False; +reg314558 = reg314557 +} +reg314560 = reg314558 +} else { +reg314559 := False; +reg314560 = reg314559 +} +reg314562 = reg314560 +} else { +reg314561 := False; +reg314562 = reg314561 +} +reg314564 = reg314562 +} else { +reg314563 := False; +reg314564 = reg314563 +} +reg314566 = reg314564 +} else { +reg314565 := False; +reg314566 = reg314565 +} +reg314568 = reg314566 +} else { +reg314567 := False; +reg314568 = reg314567 +} +reg314570 = reg314568 +} else { +reg314569 := False; +reg314570 = reg314569 +} +reg314572 = reg314570 +} else { +reg314571 := False; +reg314572 = reg314571 +} +reg314574 = reg314572 +} else { +reg314573 := False; +reg314574 = reg314573 +} +reg314576 = reg314574 +} else { +reg314575 := False; +reg314576 = reg314575 +} +Case := reg314576 +_ = Case +reg314577 := False; +reg314578 := PrimEqual(Case, reg314577) +if reg314578 == True { +reg314579 := __e.Call(__defun__shen_4lazyderef, V3702, V3704) +V3487 := reg314579 +_ = V3487 +reg314580 := PrimIsPair(V3487) +var reg315118 Obj +if reg314580 == True { +reg314581 := PrimHead(V3487) +reg314582 := __e.Call(__defun__shen_4lazyderef, reg314581, V3704) +V3488 := reg314582 +_ = V3488 +reg314583 := PrimIsPair(V3488) +var reg315116 Obj +if reg314583 == True { +reg314584 := PrimHead(V3488) +reg314585 := __e.Call(__defun__shen_4lazyderef, reg314584, V3704) +V3489 := reg314585 +_ = V3489 +reg314586 := PrimIsPair(V3489) +var reg315114 Obj +if reg314586 == True { +reg314587 := PrimHead(V3489) +reg314588 := __e.Call(__defun__shen_4lazyderef, reg314587, V3704) +V3490 := reg314588 +_ = V3490 +reg314589 := MakeSymbol("@v") +reg314590 := PrimEqual(reg314589, V3490) +var reg315112 Obj +if reg314590 == True { +reg314591 := PrimTail(V3489) +reg314592 := __e.Call(__defun__shen_4lazyderef, reg314591, V3704) +V3491 := reg314592 +_ = V3491 +reg314593 := PrimIsPair(V3491) +var reg315110 Obj +if reg314593 == True { +reg314594 := PrimHead(V3491) +X := reg314594 +_ = X +reg314595 := PrimTail(V3491) +reg314596 := __e.Call(__defun__shen_4lazyderef, reg314595, V3704) +V3492 := reg314596 +_ = V3492 +reg314597 := PrimIsPair(V3492) +var reg315108 Obj +if reg314597 == True { +reg314598 := PrimHead(V3492) +Y := reg314598 +_ = Y +reg314599 := PrimTail(V3492) +reg314600 := __e.Call(__defun__shen_4lazyderef, reg314599, V3704) +V3493 := reg314600 +_ = V3493 +reg314601 := Nil; +reg314602 := PrimEqual(reg314601, V3493) +var reg315106 Obj +if reg314602 == True { +reg314603 := PrimTail(V3488) +reg314604 := __e.Call(__defun__shen_4lazyderef, reg314603, V3704) +V3494 := reg314604 +_ = V3494 +reg314605 := PrimIsPair(V3494) +var reg315104 Obj +if reg314605 == True { +reg314606 := PrimHead(V3494) +reg314607 := __e.Call(__defun__shen_4lazyderef, reg314606, V3704) +V3495 := reg314607 +_ = V3495 +reg314608 := MakeSymbol(":") +reg314609 := PrimEqual(reg314608, V3495) +var reg315102 Obj +if reg314609 == True { +reg314610 := PrimTail(V3494) +reg314611 := __e.Call(__defun__shen_4lazyderef, reg314610, V3704) +V3496 := reg314611 +_ = V3496 +reg314612 := PrimIsPair(V3496) +var reg315100 Obj +if reg314612 == True { +reg314613 := PrimHead(V3496) +reg314614 := __e.Call(__defun__shen_4lazyderef, reg314613, V3704) +V3497 := reg314614 +_ = V3497 +reg314615 := PrimIsPair(V3497) +var reg315098 Obj +if reg314615 == True { +reg314616 := PrimHead(V3497) +reg314617 := __e.Call(__defun__shen_4lazyderef, reg314616, V3704) +V3498 := reg314617 +_ = V3498 +reg314618 := MakeSymbol("vector") +reg314619 := PrimEqual(reg314618, V3498) +var reg315028 Obj +if reg314619 == True { +reg314620 := PrimTail(V3497) +reg314621 := __e.Call(__defun__shen_4lazyderef, reg314620, V3704) +V3499 := reg314621 +_ = V3499 +reg314622 := PrimIsPair(V3499) +var reg314820 Obj +if reg314622 == True { +reg314623 := PrimHead(V3499) +A := reg314623 +_ = A +reg314624 := PrimTail(V3499) +reg314625 := __e.Call(__defun__shen_4lazyderef, reg314624, V3704) +V3500 := reg314625 +_ = V3500 +reg314626 := Nil; +reg314627 := PrimEqual(reg314626, V3500) +var reg314752 Obj +if reg314627 == True { +reg314628 := PrimTail(V3496) +reg314629 := __e.Call(__defun__shen_4lazyderef, reg314628, V3704) +V3501 := reg314629 +_ = V3501 +reg314630 := Nil; +reg314631 := PrimEqual(reg314630, V3501) +var reg314686 Obj +if reg314631 == True { +reg314632 := PrimTail(V3487) +Hyp := reg314632 +_ = Hyp +reg314633 := __e.Call(__defun__shen_4incinfs) +_ = reg314633 +reg314634 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314635 := MakeSymbol(":") +reg314636 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314637 := Nil; +reg314638 := PrimCons(reg314636, reg314637) +reg314639 := PrimCons(reg314635, reg314638) +reg314640 := PrimCons(reg314634, reg314639) +reg314641 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314642 := MakeSymbol(":") +reg314643 := MakeSymbol("vector") +reg314644 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314645 := Nil; +reg314646 := PrimCons(reg314644, reg314645) +reg314647 := PrimCons(reg314643, reg314646) +reg314648 := Nil; +reg314649 := PrimCons(reg314647, reg314648) +reg314650 := PrimCons(reg314642, reg314649) +reg314651 := PrimCons(reg314641, reg314650) +reg314652 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314653 := PrimCons(reg314651, reg314652) +reg314654 := PrimCons(reg314640, reg314653) +reg314655 := __e.Call(__defun__bind, V3703, reg314654, V3704, V3705) +reg314686 = reg314655 +} else { +reg314656 := __e.Call(__defun__shen_4pvar_2, V3501) +var reg314685 Obj +if reg314656 == True { +reg314657 := Nil; +reg314658 := __e.Call(__defun__shen_4bindv, V3501, reg314657, V3704) +_ = reg314658 +reg314659 := PrimTail(V3487) +Hyp := reg314659 +_ = Hyp +reg314660 := __e.Call(__defun__shen_4incinfs) +_ = reg314660 +reg314661 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314662 := MakeSymbol(":") +reg314663 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314664 := Nil; +reg314665 := PrimCons(reg314663, reg314664) +reg314666 := PrimCons(reg314662, reg314665) +reg314667 := PrimCons(reg314661, reg314666) +reg314668 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314669 := MakeSymbol(":") +reg314670 := MakeSymbol("vector") +reg314671 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314672 := Nil; +reg314673 := PrimCons(reg314671, reg314672) +reg314674 := PrimCons(reg314670, reg314673) +reg314675 := Nil; +reg314676 := PrimCons(reg314674, reg314675) +reg314677 := PrimCons(reg314669, reg314676) +reg314678 := PrimCons(reg314668, reg314677) +reg314679 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314680 := PrimCons(reg314678, reg314679) +reg314681 := PrimCons(reg314667, reg314680) +reg314682 := __e.Call(__defun__bind, V3703, reg314681, V3704, V3705) +Result := reg314682 +_ = Result +reg314683 := __e.Call(__defun__shen_4unbindv, V3501, V3704) +_ = reg314683 +reg314685 = Result +} else { +reg314684 := False; +reg314685 = reg314684 +} +reg314686 = reg314685 +} +reg314752 = reg314686 +} else { +reg314687 := __e.Call(__defun__shen_4pvar_2, V3500) +var reg314751 Obj +if reg314687 == True { +reg314688 := Nil; +reg314689 := __e.Call(__defun__shen_4bindv, V3500, reg314688, V3704) +_ = reg314689 +reg314690 := PrimTail(V3496) +reg314691 := __e.Call(__defun__shen_4lazyderef, reg314690, V3704) +V3502 := reg314691 +_ = V3502 +reg314692 := Nil; +reg314693 := PrimEqual(reg314692, V3502) +var reg314748 Obj +if reg314693 == True { +reg314694 := PrimTail(V3487) +Hyp := reg314694 +_ = Hyp +reg314695 := __e.Call(__defun__shen_4incinfs) +_ = reg314695 +reg314696 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314697 := MakeSymbol(":") +reg314698 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314699 := Nil; +reg314700 := PrimCons(reg314698, reg314699) +reg314701 := PrimCons(reg314697, reg314700) +reg314702 := PrimCons(reg314696, reg314701) +reg314703 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314704 := MakeSymbol(":") +reg314705 := MakeSymbol("vector") +reg314706 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314707 := Nil; +reg314708 := PrimCons(reg314706, reg314707) +reg314709 := PrimCons(reg314705, reg314708) +reg314710 := Nil; +reg314711 := PrimCons(reg314709, reg314710) +reg314712 := PrimCons(reg314704, reg314711) +reg314713 := PrimCons(reg314703, reg314712) +reg314714 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314715 := PrimCons(reg314713, reg314714) +reg314716 := PrimCons(reg314702, reg314715) +reg314717 := __e.Call(__defun__bind, V3703, reg314716, V3704, V3705) +reg314748 = reg314717 +} else { +reg314718 := __e.Call(__defun__shen_4pvar_2, V3502) +var reg314747 Obj +if reg314718 == True { +reg314719 := Nil; +reg314720 := __e.Call(__defun__shen_4bindv, V3502, reg314719, V3704) +_ = reg314720 +reg314721 := PrimTail(V3487) +Hyp := reg314721 +_ = Hyp +reg314722 := __e.Call(__defun__shen_4incinfs) +_ = reg314722 +reg314723 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314724 := MakeSymbol(":") +reg314725 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314726 := Nil; +reg314727 := PrimCons(reg314725, reg314726) +reg314728 := PrimCons(reg314724, reg314727) +reg314729 := PrimCons(reg314723, reg314728) +reg314730 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314731 := MakeSymbol(":") +reg314732 := MakeSymbol("vector") +reg314733 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314734 := Nil; +reg314735 := PrimCons(reg314733, reg314734) +reg314736 := PrimCons(reg314732, reg314735) +reg314737 := Nil; +reg314738 := PrimCons(reg314736, reg314737) +reg314739 := PrimCons(reg314731, reg314738) +reg314740 := PrimCons(reg314730, reg314739) +reg314741 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314742 := PrimCons(reg314740, reg314741) +reg314743 := PrimCons(reg314729, reg314742) +reg314744 := __e.Call(__defun__bind, V3703, reg314743, V3704, V3705) +Result := reg314744 +_ = Result +reg314745 := __e.Call(__defun__shen_4unbindv, V3502, V3704) +_ = reg314745 +reg314747 = Result +} else { +reg314746 := False; +reg314747 = reg314746 +} +reg314748 = reg314747 +} +Result := reg314748 +_ = Result +reg314749 := __e.Call(__defun__shen_4unbindv, V3500, V3704) +_ = reg314749 +reg314751 = Result +} else { +reg314750 := False; +reg314751 = reg314750 +} +reg314752 = reg314751 +} +reg314820 = reg314752 +} else { +reg314753 := __e.Call(__defun__shen_4pvar_2, V3499) +var reg314819 Obj +if reg314753 == True { +reg314754 := __e.Call(__defun__shen_4newpv, V3704) +A := reg314754 +_ = A +reg314755 := Nil; +reg314756 := PrimCons(A, reg314755) +reg314757 := __e.Call(__defun__shen_4bindv, V3499, reg314756, V3704) +_ = reg314757 +reg314758 := PrimTail(V3496) +reg314759 := __e.Call(__defun__shen_4lazyderef, reg314758, V3704) +V3503 := reg314759 +_ = V3503 +reg314760 := Nil; +reg314761 := PrimEqual(reg314760, V3503) +var reg314816 Obj +if reg314761 == True { +reg314762 := PrimTail(V3487) +Hyp := reg314762 +_ = Hyp +reg314763 := __e.Call(__defun__shen_4incinfs) +_ = reg314763 +reg314764 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314765 := MakeSymbol(":") +reg314766 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314767 := Nil; +reg314768 := PrimCons(reg314766, reg314767) +reg314769 := PrimCons(reg314765, reg314768) +reg314770 := PrimCons(reg314764, reg314769) +reg314771 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314772 := MakeSymbol(":") +reg314773 := MakeSymbol("vector") +reg314774 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314775 := Nil; +reg314776 := PrimCons(reg314774, reg314775) +reg314777 := PrimCons(reg314773, reg314776) +reg314778 := Nil; +reg314779 := PrimCons(reg314777, reg314778) +reg314780 := PrimCons(reg314772, reg314779) +reg314781 := PrimCons(reg314771, reg314780) +reg314782 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314783 := PrimCons(reg314781, reg314782) +reg314784 := PrimCons(reg314770, reg314783) +reg314785 := __e.Call(__defun__bind, V3703, reg314784, V3704, V3705) +reg314816 = reg314785 +} else { +reg314786 := __e.Call(__defun__shen_4pvar_2, V3503) +var reg314815 Obj +if reg314786 == True { +reg314787 := Nil; +reg314788 := __e.Call(__defun__shen_4bindv, V3503, reg314787, V3704) +_ = reg314788 +reg314789 := PrimTail(V3487) +Hyp := reg314789 +_ = Hyp +reg314790 := __e.Call(__defun__shen_4incinfs) +_ = reg314790 +reg314791 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314792 := MakeSymbol(":") +reg314793 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314794 := Nil; +reg314795 := PrimCons(reg314793, reg314794) +reg314796 := PrimCons(reg314792, reg314795) +reg314797 := PrimCons(reg314791, reg314796) +reg314798 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314799 := MakeSymbol(":") +reg314800 := MakeSymbol("vector") +reg314801 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314802 := Nil; +reg314803 := PrimCons(reg314801, reg314802) +reg314804 := PrimCons(reg314800, reg314803) +reg314805 := Nil; +reg314806 := PrimCons(reg314804, reg314805) +reg314807 := PrimCons(reg314799, reg314806) +reg314808 := PrimCons(reg314798, reg314807) +reg314809 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314810 := PrimCons(reg314808, reg314809) +reg314811 := PrimCons(reg314797, reg314810) +reg314812 := __e.Call(__defun__bind, V3703, reg314811, V3704, V3705) +Result := reg314812 +_ = Result +reg314813 := __e.Call(__defun__shen_4unbindv, V3503, V3704) +_ = reg314813 +reg314815 = Result +} else { +reg314814 := False; +reg314815 = reg314814 +} +reg314816 = reg314815 +} +Result := reg314816 +_ = Result +reg314817 := __e.Call(__defun__shen_4unbindv, V3499, V3704) +_ = reg314817 +reg314819 = Result +} else { +reg314818 := False; +reg314819 = reg314818 +} +reg314820 = reg314819 +} +reg315028 = reg314820 +} else { +reg314821 := __e.Call(__defun__shen_4pvar_2, V3498) +var reg315027 Obj +if reg314821 == True { +reg314822 := MakeSymbol("vector") +reg314823 := __e.Call(__defun__shen_4bindv, V3498, reg314822, V3704) +_ = reg314823 +reg314824 := PrimTail(V3497) +reg314825 := __e.Call(__defun__shen_4lazyderef, reg314824, V3704) +V3504 := reg314825 +_ = V3504 +reg314826 := PrimIsPair(V3504) +var reg315024 Obj +if reg314826 == True { +reg314827 := PrimHead(V3504) +A := reg314827 +_ = A +reg314828 := PrimTail(V3504) +reg314829 := __e.Call(__defun__shen_4lazyderef, reg314828, V3704) +V3505 := reg314829 +_ = V3505 +reg314830 := Nil; +reg314831 := PrimEqual(reg314830, V3505) +var reg314956 Obj +if reg314831 == True { +reg314832 := PrimTail(V3496) +reg314833 := __e.Call(__defun__shen_4lazyderef, reg314832, V3704) +V3506 := reg314833 +_ = V3506 +reg314834 := Nil; +reg314835 := PrimEqual(reg314834, V3506) +var reg314890 Obj +if reg314835 == True { +reg314836 := PrimTail(V3487) +Hyp := reg314836 +_ = Hyp +reg314837 := __e.Call(__defun__shen_4incinfs) +_ = reg314837 +reg314838 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314839 := MakeSymbol(":") +reg314840 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314841 := Nil; +reg314842 := PrimCons(reg314840, reg314841) +reg314843 := PrimCons(reg314839, reg314842) +reg314844 := PrimCons(reg314838, reg314843) +reg314845 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314846 := MakeSymbol(":") +reg314847 := MakeSymbol("vector") +reg314848 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314849 := Nil; +reg314850 := PrimCons(reg314848, reg314849) +reg314851 := PrimCons(reg314847, reg314850) +reg314852 := Nil; +reg314853 := PrimCons(reg314851, reg314852) +reg314854 := PrimCons(reg314846, reg314853) +reg314855 := PrimCons(reg314845, reg314854) +reg314856 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314857 := PrimCons(reg314855, reg314856) +reg314858 := PrimCons(reg314844, reg314857) +reg314859 := __e.Call(__defun__bind, V3703, reg314858, V3704, V3705) +reg314890 = reg314859 +} else { +reg314860 := __e.Call(__defun__shen_4pvar_2, V3506) +var reg314889 Obj +if reg314860 == True { +reg314861 := Nil; +reg314862 := __e.Call(__defun__shen_4bindv, V3506, reg314861, V3704) +_ = reg314862 +reg314863 := PrimTail(V3487) +Hyp := reg314863 +_ = Hyp +reg314864 := __e.Call(__defun__shen_4incinfs) +_ = reg314864 +reg314865 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314866 := MakeSymbol(":") +reg314867 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314868 := Nil; +reg314869 := PrimCons(reg314867, reg314868) +reg314870 := PrimCons(reg314866, reg314869) +reg314871 := PrimCons(reg314865, reg314870) +reg314872 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314873 := MakeSymbol(":") +reg314874 := MakeSymbol("vector") +reg314875 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314876 := Nil; +reg314877 := PrimCons(reg314875, reg314876) +reg314878 := PrimCons(reg314874, reg314877) +reg314879 := Nil; +reg314880 := PrimCons(reg314878, reg314879) +reg314881 := PrimCons(reg314873, reg314880) +reg314882 := PrimCons(reg314872, reg314881) +reg314883 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314884 := PrimCons(reg314882, reg314883) +reg314885 := PrimCons(reg314871, reg314884) +reg314886 := __e.Call(__defun__bind, V3703, reg314885, V3704, V3705) +Result := reg314886 +_ = Result +reg314887 := __e.Call(__defun__shen_4unbindv, V3506, V3704) +_ = reg314887 +reg314889 = Result +} else { +reg314888 := False; +reg314889 = reg314888 +} +reg314890 = reg314889 +} +reg314956 = reg314890 +} else { +reg314891 := __e.Call(__defun__shen_4pvar_2, V3505) +var reg314955 Obj +if reg314891 == True { +reg314892 := Nil; +reg314893 := __e.Call(__defun__shen_4bindv, V3505, reg314892, V3704) +_ = reg314893 +reg314894 := PrimTail(V3496) +reg314895 := __e.Call(__defun__shen_4lazyderef, reg314894, V3704) +V3507 := reg314895 +_ = V3507 +reg314896 := Nil; +reg314897 := PrimEqual(reg314896, V3507) +var reg314952 Obj +if reg314897 == True { +reg314898 := PrimTail(V3487) +Hyp := reg314898 +_ = Hyp +reg314899 := __e.Call(__defun__shen_4incinfs) +_ = reg314899 +reg314900 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314901 := MakeSymbol(":") +reg314902 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314903 := Nil; +reg314904 := PrimCons(reg314902, reg314903) +reg314905 := PrimCons(reg314901, reg314904) +reg314906 := PrimCons(reg314900, reg314905) +reg314907 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314908 := MakeSymbol(":") +reg314909 := MakeSymbol("vector") +reg314910 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314911 := Nil; +reg314912 := PrimCons(reg314910, reg314911) +reg314913 := PrimCons(reg314909, reg314912) +reg314914 := Nil; +reg314915 := PrimCons(reg314913, reg314914) +reg314916 := PrimCons(reg314908, reg314915) +reg314917 := PrimCons(reg314907, reg314916) +reg314918 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314919 := PrimCons(reg314917, reg314918) +reg314920 := PrimCons(reg314906, reg314919) +reg314921 := __e.Call(__defun__bind, V3703, reg314920, V3704, V3705) +reg314952 = reg314921 +} else { +reg314922 := __e.Call(__defun__shen_4pvar_2, V3507) +var reg314951 Obj +if reg314922 == True { +reg314923 := Nil; +reg314924 := __e.Call(__defun__shen_4bindv, V3507, reg314923, V3704) +_ = reg314924 +reg314925 := PrimTail(V3487) +Hyp := reg314925 +_ = Hyp +reg314926 := __e.Call(__defun__shen_4incinfs) +_ = reg314926 +reg314927 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314928 := MakeSymbol(":") +reg314929 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314930 := Nil; +reg314931 := PrimCons(reg314929, reg314930) +reg314932 := PrimCons(reg314928, reg314931) +reg314933 := PrimCons(reg314927, reg314932) +reg314934 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314935 := MakeSymbol(":") +reg314936 := MakeSymbol("vector") +reg314937 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314938 := Nil; +reg314939 := PrimCons(reg314937, reg314938) +reg314940 := PrimCons(reg314936, reg314939) +reg314941 := Nil; +reg314942 := PrimCons(reg314940, reg314941) +reg314943 := PrimCons(reg314935, reg314942) +reg314944 := PrimCons(reg314934, reg314943) +reg314945 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314946 := PrimCons(reg314944, reg314945) +reg314947 := PrimCons(reg314933, reg314946) +reg314948 := __e.Call(__defun__bind, V3703, reg314947, V3704, V3705) +Result := reg314948 +_ = Result +reg314949 := __e.Call(__defun__shen_4unbindv, V3507, V3704) +_ = reg314949 +reg314951 = Result +} else { +reg314950 := False; +reg314951 = reg314950 +} +reg314952 = reg314951 +} +Result := reg314952 +_ = Result +reg314953 := __e.Call(__defun__shen_4unbindv, V3505, V3704) +_ = reg314953 +reg314955 = Result +} else { +reg314954 := False; +reg314955 = reg314954 +} +reg314956 = reg314955 +} +reg315024 = reg314956 +} else { +reg314957 := __e.Call(__defun__shen_4pvar_2, V3504) +var reg315023 Obj +if reg314957 == True { +reg314958 := __e.Call(__defun__shen_4newpv, V3704) +A := reg314958 +_ = A +reg314959 := Nil; +reg314960 := PrimCons(A, reg314959) +reg314961 := __e.Call(__defun__shen_4bindv, V3504, reg314960, V3704) +_ = reg314961 +reg314962 := PrimTail(V3496) +reg314963 := __e.Call(__defun__shen_4lazyderef, reg314962, V3704) +V3508 := reg314963 +_ = V3508 +reg314964 := Nil; +reg314965 := PrimEqual(reg314964, V3508) +var reg315020 Obj +if reg314965 == True { +reg314966 := PrimTail(V3487) +Hyp := reg314966 +_ = Hyp +reg314967 := __e.Call(__defun__shen_4incinfs) +_ = reg314967 +reg314968 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314969 := MakeSymbol(":") +reg314970 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314971 := Nil; +reg314972 := PrimCons(reg314970, reg314971) +reg314973 := PrimCons(reg314969, reg314972) +reg314974 := PrimCons(reg314968, reg314973) +reg314975 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg314976 := MakeSymbol(":") +reg314977 := MakeSymbol("vector") +reg314978 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314979 := Nil; +reg314980 := PrimCons(reg314978, reg314979) +reg314981 := PrimCons(reg314977, reg314980) +reg314982 := Nil; +reg314983 := PrimCons(reg314981, reg314982) +reg314984 := PrimCons(reg314976, reg314983) +reg314985 := PrimCons(reg314975, reg314984) +reg314986 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg314987 := PrimCons(reg314985, reg314986) +reg314988 := PrimCons(reg314974, reg314987) +reg314989 := __e.Call(__defun__bind, V3703, reg314988, V3704, V3705) +reg315020 = reg314989 +} else { +reg314990 := __e.Call(__defun__shen_4pvar_2, V3508) +var reg315019 Obj +if reg314990 == True { +reg314991 := Nil; +reg314992 := __e.Call(__defun__shen_4bindv, V3508, reg314991, V3704) +_ = reg314992 +reg314993 := PrimTail(V3487) +Hyp := reg314993 +_ = Hyp +reg314994 := __e.Call(__defun__shen_4incinfs) +_ = reg314994 +reg314995 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg314996 := MakeSymbol(":") +reg314997 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg314998 := Nil; +reg314999 := PrimCons(reg314997, reg314998) +reg315000 := PrimCons(reg314996, reg314999) +reg315001 := PrimCons(reg314995, reg315000) +reg315002 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg315003 := MakeSymbol(":") +reg315004 := MakeSymbol("vector") +reg315005 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg315006 := Nil; +reg315007 := PrimCons(reg315005, reg315006) +reg315008 := PrimCons(reg315004, reg315007) +reg315009 := Nil; +reg315010 := PrimCons(reg315008, reg315009) +reg315011 := PrimCons(reg315003, reg315010) +reg315012 := PrimCons(reg315002, reg315011) +reg315013 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg315014 := PrimCons(reg315012, reg315013) +reg315015 := PrimCons(reg315001, reg315014) +reg315016 := __e.Call(__defun__bind, V3703, reg315015, V3704, V3705) +Result := reg315016 +_ = Result +reg315017 := __e.Call(__defun__shen_4unbindv, V3508, V3704) +_ = reg315017 +reg315019 = Result +} else { +reg315018 := False; +reg315019 = reg315018 +} +reg315020 = reg315019 +} +Result := reg315020 +_ = Result +reg315021 := __e.Call(__defun__shen_4unbindv, V3504, V3704) +_ = reg315021 +reg315023 = Result +} else { +reg315022 := False; +reg315023 = reg315022 +} +reg315024 = reg315023 +} +Result := reg315024 +_ = Result +reg315025 := __e.Call(__defun__shen_4unbindv, V3498, V3704) +_ = reg315025 +reg315027 = Result +} else { +reg315026 := False; +reg315027 = reg315026 +} +reg315028 = reg315027 +} +reg315098 = reg315028 +} else { +reg315029 := __e.Call(__defun__shen_4pvar_2, V3497) +var reg315097 Obj +if reg315029 == True { +reg315030 := __e.Call(__defun__shen_4newpv, V3704) +A := reg315030 +_ = A +reg315031 := MakeSymbol("vector") +reg315032 := Nil; +reg315033 := PrimCons(A, reg315032) +reg315034 := PrimCons(reg315031, reg315033) +reg315035 := __e.Call(__defun__shen_4bindv, V3497, reg315034, V3704) +_ = reg315035 +reg315036 := PrimTail(V3496) +reg315037 := __e.Call(__defun__shen_4lazyderef, reg315036, V3704) +V3509 := reg315037 +_ = V3509 +reg315038 := Nil; +reg315039 := PrimEqual(reg315038, V3509) +var reg315094 Obj +if reg315039 == True { +reg315040 := PrimTail(V3487) +Hyp := reg315040 +_ = Hyp +reg315041 := __e.Call(__defun__shen_4incinfs) +_ = reg315041 +reg315042 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg315043 := MakeSymbol(":") +reg315044 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg315045 := Nil; +reg315046 := PrimCons(reg315044, reg315045) +reg315047 := PrimCons(reg315043, reg315046) +reg315048 := PrimCons(reg315042, reg315047) +reg315049 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg315050 := MakeSymbol(":") +reg315051 := MakeSymbol("vector") +reg315052 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg315053 := Nil; +reg315054 := PrimCons(reg315052, reg315053) +reg315055 := PrimCons(reg315051, reg315054) +reg315056 := Nil; +reg315057 := PrimCons(reg315055, reg315056) +reg315058 := PrimCons(reg315050, reg315057) +reg315059 := PrimCons(reg315049, reg315058) +reg315060 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg315061 := PrimCons(reg315059, reg315060) +reg315062 := PrimCons(reg315048, reg315061) +reg315063 := __e.Call(__defun__bind, V3703, reg315062, V3704, V3705) +reg315094 = reg315063 +} else { +reg315064 := __e.Call(__defun__shen_4pvar_2, V3509) +var reg315093 Obj +if reg315064 == True { +reg315065 := Nil; +reg315066 := __e.Call(__defun__shen_4bindv, V3509, reg315065, V3704) +_ = reg315066 +reg315067 := PrimTail(V3487) +Hyp := reg315067 +_ = Hyp +reg315068 := __e.Call(__defun__shen_4incinfs) +_ = reg315068 +reg315069 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg315070 := MakeSymbol(":") +reg315071 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg315072 := Nil; +reg315073 := PrimCons(reg315071, reg315072) +reg315074 := PrimCons(reg315070, reg315073) +reg315075 := PrimCons(reg315069, reg315074) +reg315076 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg315077 := MakeSymbol(":") +reg315078 := MakeSymbol("vector") +reg315079 := __e.Call(__defun__shen_4lazyderef, A, V3704) +reg315080 := Nil; +reg315081 := PrimCons(reg315079, reg315080) +reg315082 := PrimCons(reg315078, reg315081) +reg315083 := Nil; +reg315084 := PrimCons(reg315082, reg315083) +reg315085 := PrimCons(reg315077, reg315084) +reg315086 := PrimCons(reg315076, reg315085) +reg315087 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg315088 := PrimCons(reg315086, reg315087) +reg315089 := PrimCons(reg315075, reg315088) +reg315090 := __e.Call(__defun__bind, V3703, reg315089, V3704, V3705) +Result := reg315090 +_ = Result +reg315091 := __e.Call(__defun__shen_4unbindv, V3509, V3704) +_ = reg315091 +reg315093 = Result +} else { +reg315092 := False; +reg315093 = reg315092 +} +reg315094 = reg315093 +} +Result := reg315094 +_ = Result +reg315095 := __e.Call(__defun__shen_4unbindv, V3497, V3704) +_ = reg315095 +reg315097 = Result +} else { +reg315096 := False; +reg315097 = reg315096 +} +reg315098 = reg315097 +} +reg315100 = reg315098 +} else { +reg315099 := False; +reg315100 = reg315099 +} +reg315102 = reg315100 +} else { +reg315101 := False; +reg315102 = reg315101 +} +reg315104 = reg315102 +} else { +reg315103 := False; +reg315104 = reg315103 +} +reg315106 = reg315104 +} else { +reg315105 := False; +reg315106 = reg315105 +} +reg315108 = reg315106 +} else { +reg315107 := False; +reg315108 = reg315107 +} +reg315110 = reg315108 +} else { +reg315109 := False; +reg315110 = reg315109 +} +reg315112 = reg315110 +} else { +reg315111 := False; +reg315112 = reg315111 +} +reg315114 = reg315112 +} else { +reg315113 := False; +reg315114 = reg315113 +} +reg315116 = reg315114 +} else { +reg315115 := False; +reg315116 = reg315115 +} +reg315118 = reg315116 +} else { +reg315117 := False; +reg315118 = reg315117 +} +Case := reg315118 +_ = Case +reg315119 := False; +reg315120 := PrimEqual(Case, reg315119) +if reg315120 == True { +reg315121 := __e.Call(__defun__shen_4lazyderef, V3702, V3704) +V3510 := reg315121 +_ = V3510 +reg315122 := PrimIsPair(V3510) +var reg315287 Obj +if reg315122 == True { +reg315123 := PrimHead(V3510) +reg315124 := __e.Call(__defun__shen_4lazyderef, reg315123, V3704) +V3511 := reg315124 +_ = V3511 +reg315125 := PrimIsPair(V3511) +var reg315285 Obj +if reg315125 == True { +reg315126 := PrimHead(V3511) +reg315127 := __e.Call(__defun__shen_4lazyderef, reg315126, V3704) +V3512 := reg315127 +_ = V3512 +reg315128 := PrimIsPair(V3512) +var reg315283 Obj +if reg315128 == True { +reg315129 := PrimHead(V3512) +reg315130 := __e.Call(__defun__shen_4lazyderef, reg315129, V3704) +V3513 := reg315130 +_ = V3513 +reg315131 := MakeSymbol("@s") +reg315132 := PrimEqual(reg315131, V3513) +var reg315281 Obj +if reg315132 == True { +reg315133 := PrimTail(V3512) +reg315134 := __e.Call(__defun__shen_4lazyderef, reg315133, V3704) +V3514 := reg315134 +_ = V3514 +reg315135 := PrimIsPair(V3514) +var reg315279 Obj +if reg315135 == True { +reg315136 := PrimHead(V3514) +X := reg315136 +_ = X +reg315137 := PrimTail(V3514) +reg315138 := __e.Call(__defun__shen_4lazyderef, reg315137, V3704) +V3515 := reg315138 +_ = V3515 +reg315139 := PrimIsPair(V3515) +var reg315277 Obj +if reg315139 == True { +reg315140 := PrimHead(V3515) +Y := reg315140 +_ = Y +reg315141 := PrimTail(V3515) +reg315142 := __e.Call(__defun__shen_4lazyderef, reg315141, V3704) +V3516 := reg315142 +_ = V3516 +reg315143 := Nil; +reg315144 := PrimEqual(reg315143, V3516) +var reg315275 Obj +if reg315144 == True { +reg315145 := PrimTail(V3511) +reg315146 := __e.Call(__defun__shen_4lazyderef, reg315145, V3704) +V3517 := reg315146 +_ = V3517 +reg315147 := PrimIsPair(V3517) +var reg315273 Obj +if reg315147 == True { +reg315148 := PrimHead(V3517) +reg315149 := __e.Call(__defun__shen_4lazyderef, reg315148, V3704) +V3518 := reg315149 +_ = V3518 +reg315150 := MakeSymbol(":") +reg315151 := PrimEqual(reg315150, V3518) +var reg315271 Obj +if reg315151 == True { +reg315152 := PrimTail(V3517) +reg315153 := __e.Call(__defun__shen_4lazyderef, reg315152, V3704) +V3519 := reg315153 +_ = V3519 +reg315154 := PrimIsPair(V3519) +var reg315269 Obj +if reg315154 == True { +reg315155 := PrimHead(V3519) +reg315156 := __e.Call(__defun__shen_4lazyderef, reg315155, V3704) +V3520 := reg315156 +_ = V3520 +reg315157 := MakeSymbol("string") +reg315158 := PrimEqual(reg315157, V3520) +var reg315267 Obj +if reg315158 == True { +reg315159 := PrimTail(V3519) +reg315160 := __e.Call(__defun__shen_4lazyderef, reg315159, V3704) +V3521 := reg315160 +_ = V3521 +reg315161 := Nil; +reg315162 := PrimEqual(reg315161, V3521) +var reg315209 Obj +if reg315162 == True { +reg315163 := PrimTail(V3510) +Hyp := reg315163 +_ = Hyp +reg315164 := __e.Call(__defun__shen_4incinfs) +_ = reg315164 +reg315165 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg315166 := MakeSymbol(":") +reg315167 := MakeSymbol("string") +reg315168 := Nil; +reg315169 := PrimCons(reg315167, reg315168) +reg315170 := PrimCons(reg315166, reg315169) +reg315171 := PrimCons(reg315165, reg315170) +reg315172 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg315173 := MakeSymbol(":") +reg315174 := MakeSymbol("string") +reg315175 := Nil; +reg315176 := PrimCons(reg315174, reg315175) +reg315177 := PrimCons(reg315173, reg315176) +reg315178 := PrimCons(reg315172, reg315177) +reg315179 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg315180 := PrimCons(reg315178, reg315179) +reg315181 := PrimCons(reg315171, reg315180) +reg315182 := __e.Call(__defun__bind, V3703, reg315181, V3704, V3705) +reg315209 = reg315182 +} else { +reg315183 := __e.Call(__defun__shen_4pvar_2, V3521) +var reg315208 Obj +if reg315183 == True { +reg315184 := Nil; +reg315185 := __e.Call(__defun__shen_4bindv, V3521, reg315184, V3704) +_ = reg315185 +reg315186 := PrimTail(V3510) +Hyp := reg315186 +_ = Hyp +reg315187 := __e.Call(__defun__shen_4incinfs) +_ = reg315187 +reg315188 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg315189 := MakeSymbol(":") +reg315190 := MakeSymbol("string") +reg315191 := Nil; +reg315192 := PrimCons(reg315190, reg315191) +reg315193 := PrimCons(reg315189, reg315192) +reg315194 := PrimCons(reg315188, reg315193) +reg315195 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg315196 := MakeSymbol(":") +reg315197 := MakeSymbol("string") +reg315198 := Nil; +reg315199 := PrimCons(reg315197, reg315198) +reg315200 := PrimCons(reg315196, reg315199) +reg315201 := PrimCons(reg315195, reg315200) +reg315202 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg315203 := PrimCons(reg315201, reg315202) +reg315204 := PrimCons(reg315194, reg315203) +reg315205 := __e.Call(__defun__bind, V3703, reg315204, V3704, V3705) +Result := reg315205 +_ = Result +reg315206 := __e.Call(__defun__shen_4unbindv, V3521, V3704) +_ = reg315206 +reg315208 = Result +} else { +reg315207 := False; +reg315208 = reg315207 +} +reg315209 = reg315208 +} +reg315267 = reg315209 +} else { +reg315210 := __e.Call(__defun__shen_4pvar_2, V3520) +var reg315266 Obj +if reg315210 == True { +reg315211 := MakeSymbol("string") +reg315212 := __e.Call(__defun__shen_4bindv, V3520, reg315211, V3704) +_ = reg315212 +reg315213 := PrimTail(V3519) +reg315214 := __e.Call(__defun__shen_4lazyderef, reg315213, V3704) +V3522 := reg315214 +_ = V3522 +reg315215 := Nil; +reg315216 := PrimEqual(reg315215, V3522) +var reg315263 Obj +if reg315216 == True { +reg315217 := PrimTail(V3510) +Hyp := reg315217 +_ = Hyp +reg315218 := __e.Call(__defun__shen_4incinfs) +_ = reg315218 +reg315219 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg315220 := MakeSymbol(":") +reg315221 := MakeSymbol("string") +reg315222 := Nil; +reg315223 := PrimCons(reg315221, reg315222) +reg315224 := PrimCons(reg315220, reg315223) +reg315225 := PrimCons(reg315219, reg315224) +reg315226 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg315227 := MakeSymbol(":") +reg315228 := MakeSymbol("string") +reg315229 := Nil; +reg315230 := PrimCons(reg315228, reg315229) +reg315231 := PrimCons(reg315227, reg315230) +reg315232 := PrimCons(reg315226, reg315231) +reg315233 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg315234 := PrimCons(reg315232, reg315233) +reg315235 := PrimCons(reg315225, reg315234) +reg315236 := __e.Call(__defun__bind, V3703, reg315235, V3704, V3705) +reg315263 = reg315236 +} else { +reg315237 := __e.Call(__defun__shen_4pvar_2, V3522) +var reg315262 Obj +if reg315237 == True { +reg315238 := Nil; +reg315239 := __e.Call(__defun__shen_4bindv, V3522, reg315238, V3704) +_ = reg315239 +reg315240 := PrimTail(V3510) +Hyp := reg315240 +_ = Hyp +reg315241 := __e.Call(__defun__shen_4incinfs) +_ = reg315241 +reg315242 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg315243 := MakeSymbol(":") +reg315244 := MakeSymbol("string") +reg315245 := Nil; +reg315246 := PrimCons(reg315244, reg315245) +reg315247 := PrimCons(reg315243, reg315246) +reg315248 := PrimCons(reg315242, reg315247) +reg315249 := __e.Call(__defun__shen_4lazyderef, Y, V3704) +reg315250 := MakeSymbol(":") +reg315251 := MakeSymbol("string") +reg315252 := Nil; +reg315253 := PrimCons(reg315251, reg315252) +reg315254 := PrimCons(reg315250, reg315253) +reg315255 := PrimCons(reg315249, reg315254) +reg315256 := __e.Call(__defun__shen_4lazyderef, Hyp, V3704) +reg315257 := PrimCons(reg315255, reg315256) +reg315258 := PrimCons(reg315248, reg315257) +reg315259 := __e.Call(__defun__bind, V3703, reg315258, V3704, V3705) +Result := reg315259 +_ = Result +reg315260 := __e.Call(__defun__shen_4unbindv, V3522, V3704) +_ = reg315260 +reg315262 = Result +} else { +reg315261 := False; +reg315262 = reg315261 +} +reg315263 = reg315262 +} +Result := reg315263 +_ = Result +reg315264 := __e.Call(__defun__shen_4unbindv, V3520, V3704) +_ = reg315264 +reg315266 = Result +} else { +reg315265 := False; +reg315266 = reg315265 +} +reg315267 = reg315266 +} +reg315269 = reg315267 +} else { +reg315268 := False; +reg315269 = reg315268 +} +reg315271 = reg315269 +} else { +reg315270 := False; +reg315271 = reg315270 +} +reg315273 = reg315271 +} else { +reg315272 := False; +reg315273 = reg315272 +} +reg315275 = reg315273 +} else { +reg315274 := False; +reg315275 = reg315274 +} +reg315277 = reg315275 +} else { +reg315276 := False; +reg315277 = reg315276 +} +reg315279 = reg315277 +} else { +reg315278 := False; +reg315279 = reg315278 +} +reg315281 = reg315279 +} else { +reg315280 := False; +reg315281 = reg315280 +} +reg315283 = reg315281 +} else { +reg315282 := False; +reg315283 = reg315282 +} +reg315285 = reg315283 +} else { +reg315284 := False; +reg315285 = reg315284 +} +reg315287 = reg315285 +} else { +reg315286 := False; +reg315287 = reg315286 +} +Case := reg315287 +_ = Case +reg315288 := False; +reg315289 := PrimEqual(Case, reg315288) +if reg315289 == True { +reg315290 := __e.Call(__defun__shen_4lazyderef, V3702, V3704) +V3523 := reg315290 +_ = V3523 +reg315291 := PrimIsPair(V3523) +if reg315291 == True { +reg315292 := PrimHead(V3523) +X := reg315292 +_ = X +reg315293 := PrimTail(V3523) +Hyp := reg315293 +_ = Hyp +reg315294 := __e.Call(__defun__shen_4newpv, V3704) +NewHyps := reg315294 +_ = NewHyps +reg315295 := __e.Call(__defun__shen_4incinfs) +_ = reg315295 +reg315296 := __e.Call(__defun__shen_4lazyderef, X, V3704) +reg315297 := __e.Call(__defun__shen_4lazyderef, NewHyps, V3704) +reg315298 := PrimCons(reg315296, reg315297) +reg315299 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4t_d_1hyps, Hyp, NewHyps, V3704, V3705) +return +}, 0) +__ctx.TailApply(__defun__bind, V3703, reg315298, V3704, reg315299) +return +} else { +reg315302 := False; +__ctx.Return(reg315302) +return +} +} else { +__ctx.Return(Case) +return +} +} else { +__ctx.Return(Case) +return +} +} else { +__ctx.Return(Case) +return +} +} else { +__ctx.Return(Case) +return +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.t*-hyps", value: __defun__shen_4t_d_1hyps}) + +__defun__shen_4show = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3722 := __args[0] +_ = V3722 +V3723 := __args[1] +_ = V3723 +V3724 := __args[2] +_ = V3724 +V3725 := __args[3] +_ = V3725 +reg315303 := MakeSymbol("shen.*spy*") +reg315304 := PrimValue(reg315303) +if reg315304 == True { +reg315305 := __e.Call(__defun__shen_4line) +_ = reg315305 +reg315306 := __e.Call(__defun__shen_4deref, V3722, V3724) +reg315307 := __e.Call(__defun__shen_4show_1p, reg315306) +_ = reg315307 +reg315308 := MakeNumber(1) +reg315309 := __e.Call(__defun__nl, reg315308) +_ = reg315309 +reg315310 := MakeNumber(1) +reg315311 := __e.Call(__defun__nl, reg315310) +_ = reg315311 +reg315312 := __e.Call(__defun__shen_4deref, V3723, V3724) +reg315313 := MakeNumber(1) +reg315314 := __e.Call(__defun__shen_4show_1assumptions, reg315312, reg315313) +_ = reg315314 +reg315315 := MakeString("\n> ") +reg315316 := __e.Call(__defun__stoutput) +reg315317 := __e.Call(__defun__shen_4prhush, reg315315, reg315316) +_ = reg315317 +reg315318 := __e.Call(__defun__shen_4pause_1for_1user) +_ = reg315318 +__ctx.TailApply(__defun__thaw, V3725) +return +} else { +__ctx.TailApply(__defun__thaw, V3725) +return +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.show", value: __defun__shen_4show}) + +__defun__shen_4line = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg315321 := __e.Call(__defun__inferences) +Infs := reg315321 +_ = Infs +reg315322 := MakeString("____________________________________________________________ ") +reg315323 := MakeString(" inference") +reg315324 := MakeNumber(1) +reg315325 := PrimEqual(reg315324, Infs) +var reg315328 Obj +if reg315325 == True { +reg315326 := MakeString("") +reg315328 = reg315326 +} else { +reg315327 := MakeString("s") +reg315328 = reg315327 +} +reg315329 := MakeString(" \n?- ") +reg315330 := MakeSymbol("shen.a") +reg315331 := __e.Call(__defun__shen_4app, reg315328, reg315329, reg315330) +reg315332 := PrimStringConcat(reg315323, reg315331) +reg315333 := MakeSymbol("shen.a") +reg315334 := __e.Call(__defun__shen_4app, Infs, reg315332, reg315333) +reg315335 := PrimStringConcat(reg315322, reg315334) +reg315336 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__shen_4prhush, reg315335, reg315336) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.line", value: __defun__shen_4line}) + +__defun__shen_4show_1p = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3727 := __args[0] +_ = V3727 +reg315338 := PrimIsPair(V3727) +var reg315372 Obj +if reg315338 == True { +reg315339 := PrimTail(V3727) +reg315340 := PrimIsPair(reg315339) +var reg315367 Obj +if reg315340 == True { +reg315341 := MakeSymbol(":") +reg315342 := PrimTail(V3727) +reg315343 := PrimHead(reg315342) +reg315344 := PrimEqual(reg315341, reg315343) +var reg315362 Obj +if reg315344 == True { +reg315345 := PrimTail(V3727) +reg315346 := PrimTail(reg315345) +reg315347 := PrimIsPair(reg315346) +var reg315357 Obj +if reg315347 == True { +reg315348 := Nil; +reg315349 := PrimTail(V3727) +reg315350 := PrimTail(reg315349) +reg315351 := PrimTail(reg315350) +reg315352 := PrimEqual(reg315348, reg315351) +var reg315355 Obj +if reg315352 == True { +reg315353 := True; +reg315355 = reg315353 +} else { +reg315354 := False; +reg315355 = reg315354 +} +reg315357 = reg315355 +} else { +reg315356 := False; +reg315357 = reg315356 +} +var reg315360 Obj +if reg315357 == True { +reg315358 := True; +reg315360 = reg315358 +} else { +reg315359 := False; +reg315360 = reg315359 +} +reg315362 = reg315360 +} else { +reg315361 := False; +reg315362 = reg315361 +} +var reg315365 Obj +if reg315362 == True { +reg315363 := True; +reg315365 = reg315363 +} else { +reg315364 := False; +reg315365 = reg315364 +} +reg315367 = reg315365 +} else { +reg315366 := False; +reg315367 = reg315366 +} +var reg315370 Obj +if reg315367 == True { +reg315368 := True; +reg315370 = reg315368 +} else { +reg315369 := False; +reg315370 = reg315369 +} +reg315372 = reg315370 +} else { +reg315371 := False; +reg315372 = reg315371 +} +if reg315372 == True { +reg315373 := PrimHead(V3727) +reg315374 := MakeString(" : ") +reg315375 := PrimTail(V3727) +reg315376 := PrimTail(reg315375) +reg315377 := PrimHead(reg315376) +reg315378 := MakeString("") +reg315379 := MakeSymbol("shen.r") +reg315380 := __e.Call(__defun__shen_4app, reg315377, reg315378, reg315379) +reg315381 := PrimStringConcat(reg315374, reg315380) +reg315382 := MakeSymbol("shen.r") +reg315383 := __e.Call(__defun__shen_4app, reg315373, reg315381, reg315382) +reg315384 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__shen_4prhush, reg315383, reg315384) +return +} else { +reg315386 := MakeString("") +reg315387 := MakeSymbol("shen.r") +reg315388 := __e.Call(__defun__shen_4app, V3727, reg315386, reg315387) +reg315389 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__shen_4prhush, reg315388, reg315389) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.show-p", value: __defun__shen_4show_1p}) + +__defun__shen_4show_1assumptions = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3732 := __args[0] +_ = V3732 +V3733 := __args[1] +_ = V3733 +reg315391 := Nil; +reg315392 := PrimEqual(reg315391, V3732) +if reg315392 == True { +reg315393 := MakeSymbol("shen.skip") +__ctx.Return(reg315393) +return +} else { +reg315394 := PrimIsPair(V3732) +if reg315394 == True { +reg315395 := MakeString(". ") +reg315396 := MakeSymbol("shen.a") +reg315397 := __e.Call(__defun__shen_4app, V3733, reg315395, reg315396) +reg315398 := __e.Call(__defun__stoutput) +reg315399 := __e.Call(__defun__shen_4prhush, reg315397, reg315398) +_ = reg315399 +reg315400 := PrimHead(V3732) +reg315401 := __e.Call(__defun__shen_4show_1p, reg315400) +_ = reg315401 +reg315402 := MakeNumber(1) +reg315403 := __e.Call(__defun__nl, reg315402) +_ = reg315403 +reg315404 := PrimTail(V3732) +reg315405 := MakeNumber(1) +reg315406 := PrimNumberAdd(V3733, reg315405) +__ctx.TailApply(__defun__shen_4show_1assumptions, reg315404, reg315406) +return +} else { +reg315408 := MakeSymbol("shen.show-assumptions") +__ctx.TailApply(__defun__shen_4f__error, reg315408) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.show-assumptions", value: __defun__shen_4show_1assumptions}) + +__defun__shen_4pause_1for_1user = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg315410 := __e.Call(__defun__stinput) +reg315411 := PrimReadByte(reg315410) +Byte := reg315411 +_ = Byte +reg315412 := MakeNumber(94) +reg315413 := PrimEqual(Byte, reg315412) +if reg315413 == True { +reg315414 := MakeString("input aborted\n") +reg315415 := PrimSimpleError(reg315414) +__ctx.Return(reg315415) +return +} else { +reg315416 := MakeNumber(1) +__ctx.TailApply(__defun__nl, reg315416) +return +} +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.pause-for-user", value: __defun__shen_4pause_1for_1user}) + +__defun__shen_4typedf_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3735 := __args[0] +_ = V3735 +reg315418 := MakeSymbol("shen.*signedfuncs*") +reg315419 := PrimValue(reg315418) +reg315420 := __e.Call(__defun__assoc, V3735, reg315419) +reg315421 := PrimIsPair(reg315420) +__ctx.Return(reg315421) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.typedf?", value: __defun__shen_4typedf_2}) + +__defun__shen_4sigf = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3737 := __args[0] +_ = V3737 +reg315422 := MakeSymbol("shen.type-signature-of-") +__ctx.TailApply(__defun__concat, reg315422, V3737) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.sigf", value: __defun__shen_4sigf}) + +__defun__shen_4placeholder = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg315424 := MakeSymbol("&&") +__ctx.TailApply(__defun__gensym, reg315424) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.placeholder", value: __defun__shen_4placeholder}) + +__defun__shen_4base = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3742 := __args[0] +_ = V3742 +V3743 := __args[1] +_ = V3743 +V3744 := __args[2] +_ = V3744 +V3745 := __args[3] +_ = V3745 +reg315426 := __e.Call(__defun__shen_4lazyderef, V3743, V3744) +V3426 := reg315426 +_ = V3426 +reg315427 := MakeSymbol("number") +reg315428 := PrimEqual(reg315427, V3426) +var reg315443 Obj +if reg315428 == True { +reg315429 := __e.Call(__defun__shen_4incinfs) +_ = reg315429 +reg315430 := __e.Call(__defun__shen_4lazyderef, V3742, V3744) +reg315431 := PrimIsNumber(reg315430) +reg315432 := __e.Call(__defun__fwhen, reg315431, V3744, V3745) +reg315443 = reg315432 +} else { +reg315433 := __e.Call(__defun__shen_4pvar_2, V3426) +var reg315442 Obj +if reg315433 == True { +reg315434 := MakeSymbol("number") +reg315435 := __e.Call(__defun__shen_4bindv, V3426, reg315434, V3744) +_ = reg315435 +reg315436 := __e.Call(__defun__shen_4incinfs) +_ = reg315436 +reg315437 := __e.Call(__defun__shen_4lazyderef, V3742, V3744) +reg315438 := PrimIsNumber(reg315437) +reg315439 := __e.Call(__defun__fwhen, reg315438, V3744, V3745) +Result := reg315439 +_ = Result +reg315440 := __e.Call(__defun__shen_4unbindv, V3426, V3744) +_ = reg315440 +reg315442 = Result +} else { +reg315441 := False; +reg315442 = reg315441 +} +reg315443 = reg315442 +} +Case := reg315443 +_ = Case +reg315444 := False; +reg315445 := PrimEqual(Case, reg315444) +if reg315445 == True { +reg315446 := __e.Call(__defun__shen_4lazyderef, V3743, V3744) +V3427 := reg315446 +_ = V3427 +reg315447 := MakeSymbol("boolean") +reg315448 := PrimEqual(reg315447, V3427) +var reg315463 Obj +if reg315448 == True { +reg315449 := __e.Call(__defun__shen_4incinfs) +_ = reg315449 +reg315450 := __e.Call(__defun__shen_4lazyderef, V3742, V3744) +reg315451 := __e.Call(__defun__boolean_2, reg315450) +reg315452 := __e.Call(__defun__fwhen, reg315451, V3744, V3745) +reg315463 = reg315452 +} else { +reg315453 := __e.Call(__defun__shen_4pvar_2, V3427) +var reg315462 Obj +if reg315453 == True { +reg315454 := MakeSymbol("boolean") +reg315455 := __e.Call(__defun__shen_4bindv, V3427, reg315454, V3744) +_ = reg315455 +reg315456 := __e.Call(__defun__shen_4incinfs) +_ = reg315456 +reg315457 := __e.Call(__defun__shen_4lazyderef, V3742, V3744) +reg315458 := __e.Call(__defun__boolean_2, reg315457) +reg315459 := __e.Call(__defun__fwhen, reg315458, V3744, V3745) +Result := reg315459 +_ = Result +reg315460 := __e.Call(__defun__shen_4unbindv, V3427, V3744) +_ = reg315460 +reg315462 = Result +} else { +reg315461 := False; +reg315462 = reg315461 +} +reg315463 = reg315462 +} +Case := reg315463 +_ = Case +reg315464 := False; +reg315465 := PrimEqual(Case, reg315464) +if reg315465 == True { +reg315466 := __e.Call(__defun__shen_4lazyderef, V3743, V3744) +V3428 := reg315466 +_ = V3428 +reg315467 := MakeSymbol("string") +reg315468 := PrimEqual(reg315467, V3428) +var reg315483 Obj +if reg315468 == True { +reg315469 := __e.Call(__defun__shen_4incinfs) +_ = reg315469 +reg315470 := __e.Call(__defun__shen_4lazyderef, V3742, V3744) +reg315471 := PrimIsString(reg315470) +reg315472 := __e.Call(__defun__fwhen, reg315471, V3744, V3745) +reg315483 = reg315472 +} else { +reg315473 := __e.Call(__defun__shen_4pvar_2, V3428) +var reg315482 Obj +if reg315473 == True { +reg315474 := MakeSymbol("string") +reg315475 := __e.Call(__defun__shen_4bindv, V3428, reg315474, V3744) +_ = reg315475 +reg315476 := __e.Call(__defun__shen_4incinfs) +_ = reg315476 +reg315477 := __e.Call(__defun__shen_4lazyderef, V3742, V3744) +reg315478 := PrimIsString(reg315477) +reg315479 := __e.Call(__defun__fwhen, reg315478, V3744, V3745) +Result := reg315479 +_ = Result +reg315480 := __e.Call(__defun__shen_4unbindv, V3428, V3744) +_ = reg315480 +reg315482 = Result +} else { +reg315481 := False; +reg315482 = reg315481 +} +reg315483 = reg315482 +} +Case := reg315483 +_ = Case +reg315484 := False; +reg315485 := PrimEqual(Case, reg315484) +if reg315485 == True { +reg315486 := __e.Call(__defun__shen_4lazyderef, V3743, V3744) +V3429 := reg315486 +_ = V3429 +reg315487 := MakeSymbol("symbol") +reg315488 := PrimEqual(reg315487, V3429) +var reg315513 Obj +if reg315488 == True { +reg315489 := __e.Call(__defun__shen_4incinfs) +_ = reg315489 +reg315490 := __e.Call(__defun__shen_4lazyderef, V3742, V3744) +reg315491 := PrimIsSymbol(reg315490) +reg315492 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg315493 := __e.Call(__defun__shen_4lazyderef, V3742, V3744) +reg315494 := __e.Call(__defun__shen_4ue_2, reg315493) +reg315495 := PrimNot(reg315494) +__ctx.TailApply(__defun__fwhen, reg315495, V3744, V3745) +return +}, 0) +reg315497 := __e.Call(__defun__fwhen, reg315491, V3744, reg315492) +reg315513 = reg315497 +} else { +reg315498 := __e.Call(__defun__shen_4pvar_2, V3429) +var reg315512 Obj +if reg315498 == True { +reg315499 := MakeSymbol("symbol") +reg315500 := __e.Call(__defun__shen_4bindv, V3429, reg315499, V3744) +_ = reg315500 +reg315501 := __e.Call(__defun__shen_4incinfs) +_ = reg315501 +reg315502 := __e.Call(__defun__shen_4lazyderef, V3742, V3744) +reg315503 := PrimIsSymbol(reg315502) +reg315504 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg315505 := __e.Call(__defun__shen_4lazyderef, V3742, V3744) +reg315506 := __e.Call(__defun__shen_4ue_2, reg315505) +reg315507 := PrimNot(reg315506) +__ctx.TailApply(__defun__fwhen, reg315507, V3744, V3745) +return +}, 0) +reg315509 := __e.Call(__defun__fwhen, reg315503, V3744, reg315504) +Result := reg315509 +_ = Result +reg315510 := __e.Call(__defun__shen_4unbindv, V3429, V3744) +_ = reg315510 +reg315512 = Result +} else { +reg315511 := False; +reg315512 = reg315511 +} +reg315513 = reg315512 +} +Case := reg315513 +_ = Case +reg315514 := False; +reg315515 := PrimEqual(Case, reg315514) +if reg315515 == True { +reg315516 := __e.Call(__defun__shen_4lazyderef, V3742, V3744) +V3430 := reg315516 +_ = V3430 +reg315517 := Nil; +reg315518 := PrimEqual(reg315517, V3430) +if reg315518 == True { +reg315519 := __e.Call(__defun__shen_4lazyderef, V3743, V3744) +V3431 := reg315519 +_ = V3431 +reg315520 := PrimIsPair(V3431) +if reg315520 == True { +reg315521 := PrimHead(V3431) +reg315522 := __e.Call(__defun__shen_4lazyderef, reg315521, V3744) +V3432 := reg315522 +_ = V3432 +reg315523 := MakeSymbol("list") +reg315524 := PrimEqual(reg315523, V3432) +if reg315524 == True { +reg315525 := PrimTail(V3431) +reg315526 := __e.Call(__defun__shen_4lazyderef, reg315525, V3744) +V3433 := reg315526 +_ = V3433 +reg315527 := PrimIsPair(V3433) +if reg315527 == True { +reg315528 := PrimHead(V3433) +A := reg315528 +_ = A +reg315529 := PrimTail(V3433) +reg315530 := __e.Call(__defun__shen_4lazyderef, reg315529, V3744) +V3434 := reg315530 +_ = V3434 +reg315531 := Nil; +reg315532 := PrimEqual(reg315531, V3434) +if reg315532 == True { +reg315533 := __e.Call(__defun__shen_4incinfs) +_ = reg315533 +__ctx.TailApply(__defun__thaw, V3745) +return +} else { +reg315535 := __e.Call(__defun__shen_4pvar_2, V3434) +if reg315535 == True { +reg315536 := Nil; +reg315537 := __e.Call(__defun__shen_4bindv, V3434, reg315536, V3744) +_ = reg315537 +reg315538 := __e.Call(__defun__shen_4incinfs) +_ = reg315538 +reg315539 := __e.Call(__defun__thaw, V3745) +Result := reg315539 +_ = Result +reg315540 := __e.Call(__defun__shen_4unbindv, V3434, V3744) +_ = reg315540 +__ctx.Return(Result) +return +} else { +reg315541 := False; +__ctx.Return(reg315541) +return +} +} +} else { +reg315542 := __e.Call(__defun__shen_4pvar_2, V3433) +if reg315542 == True { +reg315543 := __e.Call(__defun__shen_4newpv, V3744) +A := reg315543 +_ = A +reg315544 := Nil; +reg315545 := PrimCons(A, reg315544) +reg315546 := __e.Call(__defun__shen_4bindv, V3433, reg315545, V3744) +_ = reg315546 +reg315547 := __e.Call(__defun__shen_4incinfs) +_ = reg315547 +reg315548 := __e.Call(__defun__thaw, V3745) +Result := reg315548 +_ = Result +reg315549 := __e.Call(__defun__shen_4unbindv, V3433, V3744) +_ = reg315549 +__ctx.Return(Result) +return +} else { +reg315550 := False; +__ctx.Return(reg315550) +return +} +} +} else { +reg315551 := __e.Call(__defun__shen_4pvar_2, V3432) +if reg315551 == True { +reg315552 := MakeSymbol("list") +reg315553 := __e.Call(__defun__shen_4bindv, V3432, reg315552, V3744) +_ = reg315553 +reg315554 := PrimTail(V3431) +reg315555 := __e.Call(__defun__shen_4lazyderef, reg315554, V3744) +V3435 := reg315555 +_ = V3435 +reg315556 := PrimIsPair(V3435) +var reg315583 Obj +if reg315556 == True { +reg315557 := PrimHead(V3435) +A := reg315557 +_ = A +reg315558 := PrimTail(V3435) +reg315559 := __e.Call(__defun__shen_4lazyderef, reg315558, V3744) +V3436 := reg315559 +_ = V3436 +reg315560 := Nil; +reg315561 := PrimEqual(reg315560, V3436) +var reg315572 Obj +if reg315561 == True { +reg315562 := __e.Call(__defun__shen_4incinfs) +_ = reg315562 +reg315563 := __e.Call(__defun__thaw, V3745) +reg315572 = reg315563 +} else { +reg315564 := __e.Call(__defun__shen_4pvar_2, V3436) +var reg315571 Obj +if reg315564 == True { +reg315565 := Nil; +reg315566 := __e.Call(__defun__shen_4bindv, V3436, reg315565, V3744) +_ = reg315566 +reg315567 := __e.Call(__defun__shen_4incinfs) +_ = reg315567 +reg315568 := __e.Call(__defun__thaw, V3745) +Result := reg315568 +_ = Result +reg315569 := __e.Call(__defun__shen_4unbindv, V3436, V3744) +_ = reg315569 +reg315571 = Result +} else { +reg315570 := False; +reg315571 = reg315570 +} +reg315572 = reg315571 +} +reg315583 = reg315572 +} else { +reg315573 := __e.Call(__defun__shen_4pvar_2, V3435) +var reg315582 Obj +if reg315573 == True { +reg315574 := __e.Call(__defun__shen_4newpv, V3744) +A := reg315574 +_ = A +reg315575 := Nil; +reg315576 := PrimCons(A, reg315575) +reg315577 := __e.Call(__defun__shen_4bindv, V3435, reg315576, V3744) +_ = reg315577 +reg315578 := __e.Call(__defun__shen_4incinfs) +_ = reg315578 +reg315579 := __e.Call(__defun__thaw, V3745) +Result := reg315579 +_ = Result +reg315580 := __e.Call(__defun__shen_4unbindv, V3435, V3744) +_ = reg315580 +reg315582 = Result +} else { +reg315581 := False; +reg315582 = reg315581 +} +reg315583 = reg315582 +} +Result := reg315583 +_ = Result +reg315584 := __e.Call(__defun__shen_4unbindv, V3432, V3744) +_ = reg315584 +__ctx.Return(Result) +return +} else { +reg315585 := False; +__ctx.Return(reg315585) +return +} +} +} else { +reg315586 := __e.Call(__defun__shen_4pvar_2, V3431) +if reg315586 == True { +reg315587 := __e.Call(__defun__shen_4newpv, V3744) +A := reg315587 +_ = A +reg315588 := MakeSymbol("list") +reg315589 := Nil; +reg315590 := PrimCons(A, reg315589) +reg315591 := PrimCons(reg315588, reg315590) +reg315592 := __e.Call(__defun__shen_4bindv, V3431, reg315591, V3744) +_ = reg315592 +reg315593 := __e.Call(__defun__shen_4incinfs) +_ = reg315593 +reg315594 := __e.Call(__defun__thaw, V3745) +Result := reg315594 +_ = Result +reg315595 := __e.Call(__defun__shen_4unbindv, V3431, V3744) +_ = reg315595 +__ctx.Return(Result) +return +} else { +reg315596 := False; +__ctx.Return(reg315596) +return +} +} +} else { +reg315597 := False; +__ctx.Return(reg315597) +return +} +} else { +__ctx.Return(Case) +return +} +} else { +__ctx.Return(Case) +return +} +} else { +__ctx.Return(Case) +return +} +} else { +__ctx.Return(Case) +return +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.base", value: __defun__shen_4base}) + +__defun__shen_4by__hypothesis = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3751 := __args[0] +_ = V3751 +V3752 := __args[1] +_ = V3752 +V3753 := __args[2] +_ = V3753 +V3754 := __args[3] +_ = V3754 +V3755 := __args[4] +_ = V3755 +reg315598 := __e.Call(__defun__shen_4lazyderef, V3753, V3754) +V3417 := reg315598 +_ = V3417 +reg315599 := PrimIsPair(V3417) +var reg315634 Obj +if reg315599 == True { +reg315600 := PrimHead(V3417) +reg315601 := __e.Call(__defun__shen_4lazyderef, reg315600, V3754) +V3418 := reg315601 +_ = V3418 +reg315602 := PrimIsPair(V3418) +var reg315632 Obj +if reg315602 == True { +reg315603 := PrimHead(V3418) +Y := reg315603 +_ = Y +reg315604 := PrimTail(V3418) +reg315605 := __e.Call(__defun__shen_4lazyderef, reg315604, V3754) +V3419 := reg315605 +_ = V3419 +reg315606 := PrimIsPair(V3419) +var reg315630 Obj +if reg315606 == True { +reg315607 := PrimHead(V3419) +reg315608 := __e.Call(__defun__shen_4lazyderef, reg315607, V3754) +V3420 := reg315608 +_ = V3420 +reg315609 := MakeSymbol(":") +reg315610 := PrimEqual(reg315609, V3420) +var reg315628 Obj +if reg315610 == True { +reg315611 := PrimTail(V3419) +reg315612 := __e.Call(__defun__shen_4lazyderef, reg315611, V3754) +V3421 := reg315612 +_ = V3421 +reg315613 := PrimIsPair(V3421) +var reg315626 Obj +if reg315613 == True { +reg315614 := PrimHead(V3421) +B := reg315614 +_ = B +reg315615 := PrimTail(V3421) +reg315616 := __e.Call(__defun__shen_4lazyderef, reg315615, V3754) +V3422 := reg315616 +_ = V3422 +reg315617 := Nil; +reg315618 := PrimEqual(reg315617, V3422) +var reg315624 Obj +if reg315618 == True { +reg315619 := __e.Call(__defun__shen_4incinfs) +_ = reg315619 +reg315620 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__unify_b, V3752, B, V3754, V3755) +return +}, 0) +reg315622 := __e.Call(__defun__identical, V3751, Y, V3754, reg315620) +reg315624 = reg315622 +} else { +reg315623 := False; +reg315624 = reg315623 +} +reg315626 = reg315624 +} else { +reg315625 := False; +reg315626 = reg315625 +} +reg315628 = reg315626 +} else { +reg315627 := False; +reg315628 = reg315627 +} +reg315630 = reg315628 +} else { +reg315629 := False; +reg315630 = reg315629 +} +reg315632 = reg315630 +} else { +reg315631 := False; +reg315632 = reg315631 +} +reg315634 = reg315632 +} else { +reg315633 := False; +reg315634 = reg315633 +} +Case := reg315634 +_ = Case +reg315635 := False; +reg315636 := PrimEqual(Case, reg315635) +if reg315636 == True { +reg315637 := __e.Call(__defun__shen_4lazyderef, V3753, V3754) +V3423 := reg315637 +_ = V3423 +reg315638 := PrimIsPair(V3423) +if reg315638 == True { +reg315639 := PrimTail(V3423) +Hyp := reg315639 +_ = Hyp +reg315640 := __e.Call(__defun__shen_4incinfs) +_ = reg315640 +__ctx.TailApply(__defun__shen_4by__hypothesis, V3751, V3752, Hyp, V3754, V3755) +return +} else { +reg315642 := False; +__ctx.Return(reg315642) +return +} +} else { +__ctx.Return(Case) +return +} +}, 5) +__initDefs = append(__initDefs, defType{name: "shen.by_hypothesis", value: __defun__shen_4by__hypothesis}) + +__defun__shen_4t_d_1def = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3761 := __args[0] +_ = V3761 +V3762 := __args[1] +_ = V3762 +V3763 := __args[2] +_ = V3763 +V3764 := __args[3] +_ = V3764 +V3765 := __args[4] +_ = V3765 +reg315643 := __e.Call(__defun__shen_4lazyderef, V3761, V3764) +V3411 := reg315643 +_ = V3411 +reg315644 := PrimIsPair(V3411) +if reg315644 == True { +reg315645 := PrimHead(V3411) +reg315646 := __e.Call(__defun__shen_4lazyderef, reg315645, V3764) +V3412 := reg315646 +_ = V3412 +reg315647 := MakeSymbol("define") +reg315648 := PrimEqual(reg315647, V3412) +if reg315648 == True { +reg315649 := PrimTail(V3411) +reg315650 := __e.Call(__defun__shen_4lazyderef, reg315649, V3764) +V3413 := reg315650 +_ = V3413 +reg315651 := PrimIsPair(V3413) +if reg315651 == True { +reg315652 := PrimHead(V3413) +F := reg315652 +_ = F +reg315653 := PrimTail(V3413) +X := reg315653 +_ = X +reg315654 := __e.Call(__defun__shen_4newpv, V3764) +Y := reg315654 +_ = Y +reg315655 := __e.Call(__defun__shen_4newpv, V3764) +E := reg315655 +_ = E +reg315656 := __e.Call(__defun__shen_4incinfs) +_ = reg315656 +reg315657 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Y := __args[0] +_ = Y +__ctx.TailApply(__defun__shen_4_5sig_7rules_6, Y) +return +}, 1) +reg315659 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg315660 := PrimIsPair(E) +if reg315660 == True { +reg315661 := MakeString("parse error here: ") +reg315662 := MakeString("\n") +reg315663 := MakeSymbol("shen.s") +reg315664 := __e.Call(__defun__shen_4app, E, reg315662, reg315663) +reg315665 := PrimStringConcat(reg315661, reg315664) +reg315666 := PrimSimpleError(reg315665) +__ctx.Return(reg315666) +return +} else { +reg315667 := MakeString("parse error\n") +reg315668 := PrimSimpleError(reg315667) +__ctx.Return(reg315668) +return +} +}, 1) +reg315669 := __e.Call(__defun__compile, reg315657, X, reg315659) +__ctx.TailApply(__defun__shen_4t_d_1defh, reg315669, F, V3762, V3763, V3764, V3765) +return +} else { +reg315671 := False; +__ctx.Return(reg315671) +return +} +} else { +reg315672 := False; +__ctx.Return(reg315672) +return +} +} else { +reg315673 := False; +__ctx.Return(reg315673) +return +} +}, 5) +__initDefs = append(__initDefs, defType{name: "shen.t*-def", value: __defun__shen_4t_d_1def}) + +__defun__shen_4t_d_1defh = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3772 := __args[0] +_ = V3772 +V3773 := __args[1] +_ = V3773 +V3774 := __args[2] +_ = V3774 +V3775 := __args[3] +_ = V3775 +V3776 := __args[4] +_ = V3776 +V3777 := __args[5] +_ = V3777 +reg315674 := __e.Call(__defun__shen_4lazyderef, V3772, V3776) +V3407 := reg315674 +_ = V3407 +reg315675 := PrimIsPair(V3407) +if reg315675 == True { +reg315676 := PrimHead(V3407) +Sig := reg315676 +_ = Sig +reg315677 := PrimTail(V3407) +Rules := reg315677 +_ = Rules +reg315678 := __e.Call(__defun__shen_4incinfs) +_ = reg315678 +reg315679 := __e.Call(__defun__shen_4ue_1sig, Sig) +__ctx.TailApply(__defun__shen_4t_d_1defhh, Sig, reg315679, V3773, V3774, V3775, Rules, V3776, V3777) +return +} else { +reg315681 := False; +__ctx.Return(reg315681) +return +} +}, 6) +__initDefs = append(__initDefs, defType{name: "shen.t*-defh", value: __defun__shen_4t_d_1defh}) + +__defun__shen_4t_d_1defhh = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3786 := __args[0] +_ = V3786 +V3787 := __args[1] +_ = V3787 +V3788 := __args[2] +_ = V3788 +V3789 := __args[3] +_ = V3789 +V3790 := __args[4] +_ = V3790 +V3791 := __args[5] +_ = V3791 +V3792 := __args[6] +_ = V3792 +V3793 := __args[7] +_ = V3793 +reg315682 := __e.Call(__defun__shen_4incinfs) +_ = reg315682 +reg315683 := MakeNumber(1) +reg315684 := MakeSymbol(":") +reg315685 := Nil; +reg315686 := PrimCons(V3787, reg315685) +reg315687 := PrimCons(reg315684, reg315686) +reg315688 := PrimCons(V3788, reg315687) +reg315689 := PrimCons(reg315688, V3790) +reg315690 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4memo, V3788, V3786, V3789, V3792, V3793) +return +}, 0) +__ctx.TailApply(__defun__shen_4t_d_1rules, V3791, V3787, reg315683, V3788, reg315689, V3792, reg315690) +return +}, 8) +__initDefs = append(__initDefs, defType{name: "shen.t*-defhh", value: __defun__shen_4t_d_1defhh}) + +__defun__shen_4memo = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3799 := __args[0] +_ = V3799 +V3800 := __args[1] +_ = V3800 +V3801 := __args[2] +_ = V3801 +V3802 := __args[3] +_ = V3802 +V3803 := __args[4] +_ = V3803 +reg315693 := __e.Call(__defun__shen_4newpv, V3802) +Jnk := reg315693 +_ = Jnk +reg315694 := __e.Call(__defun__shen_4incinfs) +_ = reg315694 +reg315695 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg315696 := __e.Call(__defun__shen_4lazyderef, V3799, V3802) +reg315697 := __e.Call(__defun__shen_4lazyderef, V3801, V3802) +reg315698 := __e.Call(__defun__declare, reg315696, reg315697) +__ctx.TailApply(__defun__bind, Jnk, reg315698, V3802, V3803) +return +}, 0) +__ctx.TailApply(__defun__unify_b, V3801, V3800, V3802, reg315695) +return +}, 5) +__initDefs = append(__initDefs, defType{name: "shen.memo", value: __defun__shen_4memo}) + +__defun__shen_4_5sig_7rules_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3805 := __args[0] +_ = V3805 +reg315701 := __e.Call(__defun__shen_4_5signature_6, V3805) +Parse__shen_4_5signature_6 := reg315701 +_ = Parse__shen_4_5signature_6 +reg315702 := __e.Call(__defun__fail) +reg315703 := PrimEqual(reg315702, Parse__shen_4_5signature_6) +reg315704 := PrimNot(reg315703) +if reg315704 == True { +reg315705 := __e.Call(__defun__shen_4_5non_1ll_1rules_6, Parse__shen_4_5signature_6) +Parse__shen_4_5non_1ll_1rules_6 := reg315705 +_ = Parse__shen_4_5non_1ll_1rules_6 +reg315706 := __e.Call(__defun__fail) +reg315707 := PrimEqual(reg315706, Parse__shen_4_5non_1ll_1rules_6) +reg315708 := PrimNot(reg315707) +if reg315708 == True { +reg315709 := PrimHead(Parse__shen_4_5non_1ll_1rules_6) +reg315710 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5signature_6) +reg315711 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5non_1ll_1rules_6) +reg315712 := PrimCons(reg315710, reg315711) +__ctx.TailApply(__defun__shen_4pair, reg315709, reg315712) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5sig_7rules_6}) + +__defun__shen_4_5non_1ll_1rules_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3807 := __args[0] +_ = V3807 +reg315716 := __e.Call(__defun__shen_4_5rule_6, V3807) +Parse__shen_4_5rule_6 := reg315716 +_ = Parse__shen_4_5rule_6 +reg315717 := __e.Call(__defun__fail) +reg315718 := PrimEqual(reg315717, Parse__shen_4_5rule_6) +reg315719 := PrimNot(reg315718) +var reg315732 Obj +if reg315719 == True { +reg315720 := __e.Call(__defun__shen_4_5non_1ll_1rules_6, Parse__shen_4_5rule_6) +Parse__shen_4_5non_1ll_1rules_6 := reg315720 +_ = Parse__shen_4_5non_1ll_1rules_6 +reg315721 := __e.Call(__defun__fail) +reg315722 := PrimEqual(reg315721, Parse__shen_4_5non_1ll_1rules_6) +reg315723 := PrimNot(reg315722) +var reg315730 Obj +if reg315723 == True { +reg315724 := PrimHead(Parse__shen_4_5non_1ll_1rules_6) +reg315725 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5rule_6) +reg315726 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5non_1ll_1rules_6) +reg315727 := PrimCons(reg315725, reg315726) +reg315728 := __e.Call(__defun__shen_4pair, reg315724, reg315727) +reg315730 = reg315728 +} else { +reg315729 := __e.Call(__defun__fail) +reg315730 = reg315729 +} +reg315732 = reg315730 +} else { +reg315731 := __e.Call(__defun__fail) +reg315732 = reg315731 +} +YaccParse := reg315732 +_ = YaccParse +reg315733 := __e.Call(__defun__fail) +reg315734 := PrimEqual(YaccParse, reg315733) +if reg315734 == True { +reg315735 := __e.Call(__defun__shen_4_5rule_6, V3807) +Parse__shen_4_5rule_6 := reg315735 +_ = Parse__shen_4_5rule_6 +reg315736 := __e.Call(__defun__fail) +reg315737 := PrimEqual(reg315736, Parse__shen_4_5rule_6) +reg315738 := PrimNot(reg315737) +if reg315738 == True { +reg315739 := PrimHead(Parse__shen_4_5rule_6) +reg315740 := __e.Call(__defun__shen_4hdtl, Parse__shen_4_5rule_6) +reg315741 := Nil; +reg315742 := PrimCons(reg315740, reg315741) +__ctx.TailApply(__defun__shen_4pair, reg315739, reg315742) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +} else { +__ctx.Return(YaccParse) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.", value: __defun__shen_4_5non_1ll_1rules_6}) + +__defun__shen_4ue = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3809 := __args[0] +_ = V3809 +reg315745 := PrimIsPair(V3809) +var reg315769 Obj +if reg315745 == True { +reg315746 := PrimTail(V3809) +reg315747 := PrimIsPair(reg315746) +var reg315764 Obj +if reg315747 == True { +reg315748 := Nil; +reg315749 := PrimTail(V3809) +reg315750 := PrimTail(reg315749) +reg315751 := PrimEqual(reg315748, reg315750) +var reg315759 Obj +if reg315751 == True { +reg315752 := PrimHead(V3809) +reg315753 := MakeSymbol("protect") +reg315754 := PrimEqual(reg315752, reg315753) +var reg315757 Obj +if reg315754 == True { +reg315755 := True; +reg315757 = reg315755 +} else { +reg315756 := False; +reg315757 = reg315756 +} +reg315759 = reg315757 +} else { +reg315758 := False; +reg315759 = reg315758 +} +var reg315762 Obj +if reg315759 == True { +reg315760 := True; +reg315762 = reg315760 +} else { +reg315761 := False; +reg315762 = reg315761 +} +reg315764 = reg315762 +} else { +reg315763 := False; +reg315764 = reg315763 +} +var reg315767 Obj +if reg315764 == True { +reg315765 := True; +reg315767 = reg315765 +} else { +reg315766 := False; +reg315767 = reg315766 +} +reg315769 = reg315767 +} else { +reg315768 := False; +reg315769 = reg315768 +} +if reg315769 == True { +__ctx.Return(V3809) +return +} else { +reg315770 := PrimIsPair(V3809) +if reg315770 == True { +reg315771 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4ue, Z) +return +}, 1) +__ctx.TailApply(__defun__map, reg315771, V3809) +return +} else { +reg315774 := PrimIsVariable(V3809) +if reg315774 == True { +reg315775 := MakeSymbol("&&") +__ctx.TailApply(__defun__concat, reg315775, V3809) +return +} else { +__ctx.Return(V3809) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.ue", value: __defun__shen_4ue}) + +__defun__shen_4ue_1sig = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3811 := __args[0] +_ = V3811 +reg315777 := PrimIsPair(V3811) +if reg315777 == True { +reg315778 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4ue_1sig, Z) +return +}, 1) +__ctx.TailApply(__defun__map, reg315778, V3811) +return +} else { +reg315781 := PrimIsVariable(V3811) +if reg315781 == True { +reg315782 := MakeSymbol("&&&") +__ctx.TailApply(__defun__concat, reg315782, V3811) +return +} else { +__ctx.Return(V3811) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.ue-sig", value: __defun__shen_4ue_1sig}) + +__defun__shen_4ues = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3817 := __args[0] +_ = V3817 +reg315784 := __e.Call(__defun__shen_4ue_2, V3817) +if reg315784 == True { +reg315785 := Nil; +reg315786 := PrimCons(V3817, reg315785) +__ctx.Return(reg315786) +return +} else { +reg315787 := PrimIsPair(V3817) +if reg315787 == True { +reg315788 := PrimHead(V3817) +reg315789 := __e.Call(__defun__shen_4ues, reg315788) +reg315790 := PrimTail(V3817) +reg315791 := __e.Call(__defun__shen_4ues, reg315790) +__ctx.TailApply(__defun__union, reg315789, reg315791) +return +} else { +reg315793 := Nil; +__ctx.Return(reg315793) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.ues", value: __defun__shen_4ues}) + +__defun__shen_4ue_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3819 := __args[0] +_ = V3819 +reg315794 := PrimIsSymbol(V3819) +if reg315794 == True { +reg315795 := PrimStr(V3819) +reg315796 := __e.Call(__defun__shen_4ue_1h_2, reg315795) +if reg315796 == True { +reg315797 := True; +__ctx.Return(reg315797) +return +} else { +reg315798 := False; +__ctx.Return(reg315798) +return +} +} else { +reg315799 := False; +__ctx.Return(reg315799) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.ue?", value: __defun__shen_4ue_2}) + +__defun__shen_4ue_1h_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3827 := __args[0] +_ = V3827 +reg315800 := __e.Call(__defun__shen_4_7string_2, V3827) +var reg315826 Obj +if reg315800 == True { +reg315801 := MakeString("&") +reg315802 := MakeNumber(0) +reg315803 := PrimPos(V3827, reg315802) +reg315804 := PrimEqual(reg315801, reg315803) +var reg315821 Obj +if reg315804 == True { +reg315805 := PrimTailString(V3827) +reg315806 := __e.Call(__defun__shen_4_7string_2, reg315805) +var reg315816 Obj +if reg315806 == True { +reg315807 := MakeString("&") +reg315808 := PrimTailString(V3827) +reg315809 := MakeNumber(0) +reg315810 := PrimPos(reg315808, reg315809) +reg315811 := PrimEqual(reg315807, reg315810) +var reg315814 Obj +if reg315811 == True { +reg315812 := True; +reg315814 = reg315812 +} else { +reg315813 := False; +reg315814 = reg315813 +} +reg315816 = reg315814 +} else { +reg315815 := False; +reg315816 = reg315815 +} +var reg315819 Obj +if reg315816 == True { +reg315817 := True; +reg315819 = reg315817 +} else { +reg315818 := False; +reg315819 = reg315818 +} +reg315821 = reg315819 +} else { +reg315820 := False; +reg315821 = reg315820 +} +var reg315824 Obj +if reg315821 == True { +reg315822 := True; +reg315824 = reg315822 +} else { +reg315823 := False; +reg315824 = reg315823 +} +reg315826 = reg315824 +} else { +reg315825 := False; +reg315826 = reg315825 +} +if reg315826 == True { +reg315827 := True; +__ctx.Return(reg315827) +return +} else { +reg315828 := False; +__ctx.Return(reg315828) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.ue-h?", value: __defun__shen_4ue_1h_2}) + +__defun__shen_4t_d_1rules = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3835 := __args[0] +_ = V3835 +V3836 := __args[1] +_ = V3836 +V3837 := __args[2] +_ = V3837 +V3838 := __args[3] +_ = V3838 +V3839 := __args[4] +_ = V3839 +V3840 := __args[5] +_ = V3840 +V3841 := __args[6] +_ = V3841 +reg315829 := __e.Call(__defun__shen_4catchpoint) +Throwcontrol := reg315829 +_ = Throwcontrol +reg315830 := __e.Call(__defun__shen_4lazyderef, V3835, V3840) +V3391 := reg315830 +_ = V3391 +reg315831 := Nil; +reg315832 := PrimEqual(reg315831, V3391) +var reg315836 Obj +if reg315832 == True { +reg315833 := __e.Call(__defun__shen_4incinfs) +_ = reg315833 +reg315834 := __e.Call(__defun__thaw, V3841) +reg315836 = reg315834 +} else { +reg315835 := False; +reg315836 = reg315835 +} +Case := reg315836 +_ = Case +reg315837 := False; +reg315838 := PrimEqual(Case, reg315837) +var reg315872 Obj +if reg315838 == True { +reg315839 := __e.Call(__defun__shen_4lazyderef, V3835, V3840) +V3392 := reg315839 +_ = V3392 +reg315840 := PrimIsPair(V3392) +var reg315853 Obj +if reg315840 == True { +reg315841 := PrimHead(V3392) +Rule := reg315841 +_ = Rule +reg315842 := PrimTail(V3392) +Rules := reg315842 +_ = Rules +reg315843 := __e.Call(__defun__shen_4incinfs) +_ = reg315843 +reg315844 := __e.Call(__defun__shen_4ue, Rule) +reg315845 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg315846 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg315847 := MakeNumber(1) +reg315848 := PrimNumberAdd(V3837, reg315847) +__ctx.TailApply(__defun__shen_4t_d_1rules, Rules, V3836, reg315848, V3838, V3839, V3840, V3841) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3840, reg315846) +return +}, 0) +reg315851 := __e.Call(__defun__shen_4t_d_1rule, reg315844, V3836, V3839, V3840, reg315845) +reg315853 = reg315851 +} else { +reg315852 := False; +reg315853 = reg315852 +} +Case := reg315853 +_ = Case +reg315854 := False; +reg315855 := PrimEqual(Case, reg315854) +var reg315871 Obj +if reg315855 == True { +reg315856 := __e.Call(__defun__shen_4newpv, V3840) +Err := reg315856 +_ = Err +reg315857 := __e.Call(__defun__shen_4incinfs) +_ = reg315857 +reg315858 := MakeString("type error in rule ") +reg315859 := __e.Call(__defun__shen_4lazyderef, V3837, V3840) +reg315860 := MakeString(" of ") +reg315861 := __e.Call(__defun__shen_4lazyderef, V3838, V3840) +reg315862 := MakeString("") +reg315863 := MakeSymbol("shen.a") +reg315864 := __e.Call(__defun__shen_4app, reg315861, reg315862, reg315863) +reg315865 := PrimStringConcat(reg315860, reg315864) +reg315866 := MakeSymbol("shen.a") +reg315867 := __e.Call(__defun__shen_4app, reg315859, reg315865, reg315866) +reg315868 := PrimStringConcat(reg315858, reg315867) +reg315869 := PrimSimpleError(reg315868) +reg315870 := __e.Call(__defun__bind, Err, reg315869, V3840, V3841) +reg315871 = reg315870 +} else { +reg315871 = Case +} +reg315872 = reg315871 +} else { +reg315872 = Case +} +__ctx.TailApply(__defun__shen_4cutpoint, Throwcontrol, reg315872) +return +}, 7) +__initDefs = append(__initDefs, defType{name: "shen.t*-rules", value: __defun__shen_4t_d_1rules}) + +__defun__shen_4t_d_1rule = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3847 := __args[0] +_ = V3847 +V3848 := __args[1] +_ = V3848 +V3849 := __args[2] +_ = V3849 +V3850 := __args[3] +_ = V3850 +V3851 := __args[4] +_ = V3851 +reg315874 := __e.Call(__defun__shen_4catchpoint) +Throwcontrol := reg315874 +_ = Throwcontrol +reg315875 := __e.Call(__defun__shen_4lazyderef, V3847, V3850) +V3383 := reg315875 +_ = V3383 +reg315876 := PrimIsPair(V3383) +var reg315905 Obj +if reg315876 == True { +reg315877 := PrimHead(V3383) +Patterns := reg315877 +_ = Patterns +reg315878 := PrimTail(V3383) +reg315879 := __e.Call(__defun__shen_4lazyderef, reg315878, V3850) +V3384 := reg315879 +_ = V3384 +reg315880 := PrimIsPair(V3384) +var reg315903 Obj +if reg315880 == True { +reg315881 := PrimHead(V3384) +Action := reg315881 +_ = Action +reg315882 := PrimTail(V3384) +reg315883 := __e.Call(__defun__shen_4lazyderef, reg315882, V3850) +V3385 := reg315883 +_ = V3385 +reg315884 := Nil; +reg315885 := PrimEqual(reg315884, V3385) +var reg315901 Obj +if reg315885 == True { +reg315886 := __e.Call(__defun__shen_4newpv, V3850) +NewHyps := reg315886 +_ = NewHyps +reg315887 := __e.Call(__defun__shen_4incinfs) +_ = reg315887 +reg315888 := __e.Call(__defun__shen_4placeholders, Patterns) +reg315889 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg315890 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg315891 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg315892 := __e.Call(__defun__shen_4ue, Action) +reg315893 := __e.Call(__defun__shen_4curry, reg315892) +reg315894 := __e.Call(__defun__shen_4result_1type, Patterns, V3848) +reg315895 := __e.Call(__defun__shen_4patthyps, Patterns, V3848, V3849) +__ctx.TailApply(__defun__shen_4t_d_1action, reg315893, reg315894, reg315895, V3850, V3851) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3850, reg315891) +return +}, 0) +__ctx.TailApply(__defun__shen_4t_d_1patterns, Patterns, V3848, NewHyps, V3850, reg315890) +return +}, 0) +reg315899 := __e.Call(__defun__shen_4newhyps, reg315888, V3849, NewHyps, V3850, reg315889) +reg315901 = reg315899 +} else { +reg315900 := False; +reg315901 = reg315900 +} +reg315903 = reg315901 +} else { +reg315902 := False; +reg315903 = reg315902 +} +reg315905 = reg315903 +} else { +reg315904 := False; +reg315905 = reg315904 +} +__ctx.TailApply(__defun__shen_4cutpoint, Throwcontrol, reg315905) +return +}, 5) +__initDefs = append(__initDefs, defType{name: "shen.t*-rule", value: __defun__shen_4t_d_1rule}) + +__defun__shen_4placeholders = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3857 := __args[0] +_ = V3857 +reg315907 := __e.Call(__defun__shen_4ue_2, V3857) +if reg315907 == True { +reg315908 := Nil; +reg315909 := PrimCons(V3857, reg315908) +__ctx.Return(reg315909) +return +} else { +reg315910 := PrimIsPair(V3857) +if reg315910 == True { +reg315911 := PrimHead(V3857) +reg315912 := __e.Call(__defun__shen_4placeholders, reg315911) +reg315913 := PrimTail(V3857) +reg315914 := __e.Call(__defun__shen_4placeholders, reg315913) +__ctx.TailApply(__defun__union, reg315912, reg315914) +return +} else { +reg315916 := Nil; +__ctx.Return(reg315916) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.placeholders", value: __defun__shen_4placeholders}) + +__defun__shen_4newhyps = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3863 := __args[0] +_ = V3863 +V3864 := __args[1] +_ = V3864 +V3865 := __args[2] +_ = V3865 +V3866 := __args[3] +_ = V3866 +V3867 := __args[4] +_ = V3867 +reg315917 := __e.Call(__defun__shen_4lazyderef, V3863, V3866) +V3370 := reg315917 +_ = V3370 +reg315918 := Nil; +reg315919 := PrimEqual(reg315918, V3370) +var reg315923 Obj +if reg315919 == True { +reg315920 := __e.Call(__defun__shen_4incinfs) +_ = reg315920 +reg315921 := __e.Call(__defun__unify_b, V3865, V3864, V3866, V3867) +reg315923 = reg315921 +} else { +reg315922 := False; +reg315923 = reg315922 +} +Case := reg315923 +_ = Case +reg315924 := False; +reg315925 := PrimEqual(Case, reg315924) +if reg315925 == True { +reg315926 := __e.Call(__defun__shen_4lazyderef, V3863, V3866) +V3371 := reg315926 +_ = V3371 +reg315927 := PrimIsPair(V3371) +if reg315927 == True { +reg315928 := PrimHead(V3371) +V3366 := reg315928 +_ = V3366 +reg315929 := PrimTail(V3371) +Vs := reg315929 +_ = Vs +reg315930 := __e.Call(__defun__shen_4lazyderef, V3865, V3866) +V3372 := reg315930 +_ = V3372 +reg315931 := PrimIsPair(V3372) +if reg315931 == True { +reg315932 := PrimHead(V3372) +reg315933 := __e.Call(__defun__shen_4lazyderef, reg315932, V3866) +V3373 := reg315933 +_ = V3373 +reg315934 := PrimIsPair(V3373) +if reg315934 == True { +reg315935 := PrimHead(V3373) +V := reg315935 +_ = V +reg315936 := PrimTail(V3373) +reg315937 := __e.Call(__defun__shen_4lazyderef, reg315936, V3866) +V3374 := reg315937 +_ = V3374 +reg315938 := PrimIsPair(V3374) +if reg315938 == True { +reg315939 := PrimHead(V3374) +reg315940 := __e.Call(__defun__shen_4lazyderef, reg315939, V3866) +V3375 := reg315940 +_ = V3375 +reg315941 := MakeSymbol(":") +reg315942 := PrimEqual(reg315941, V3375) +if reg315942 == True { +reg315943 := PrimTail(V3374) +reg315944 := __e.Call(__defun__shen_4lazyderef, reg315943, V3866) +V3376 := reg315944 +_ = V3376 +reg315945 := PrimIsPair(V3376) +if reg315945 == True { +reg315946 := PrimHead(V3376) +A := reg315946 +_ = A +reg315947 := PrimTail(V3376) +reg315948 := __e.Call(__defun__shen_4lazyderef, reg315947, V3866) +V3377 := reg315948 +_ = V3377 +reg315949 := Nil; +reg315950 := PrimEqual(reg315949, V3377) +if reg315950 == True { +reg315951 := PrimTail(V3372) +NewHyp := reg315951 +_ = NewHyp +reg315952 := __e.Call(__defun__shen_4incinfs) +_ = reg315952 +reg315953 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4newhyps, Vs, V3864, NewHyp, V3866, V3867) +return +}, 0) +__ctx.TailApply(__defun__unify_b, V, V3366, V3866, reg315953) +return +} else { +reg315956 := __e.Call(__defun__shen_4pvar_2, V3377) +if reg315956 == True { +reg315957 := Nil; +reg315958 := __e.Call(__defun__shen_4bindv, V3377, reg315957, V3866) +_ = reg315958 +reg315959 := PrimTail(V3372) +NewHyp := reg315959 +_ = NewHyp +reg315960 := __e.Call(__defun__shen_4incinfs) +_ = reg315960 +reg315961 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4newhyps, Vs, V3864, NewHyp, V3866, V3867) +return +}, 0) +reg315963 := __e.Call(__defun__unify_b, V, V3366, V3866, reg315961) +Result := reg315963 +_ = Result +reg315964 := __e.Call(__defun__shen_4unbindv, V3377, V3866) +_ = reg315964 +__ctx.Return(Result) +return +} else { +reg315965 := False; +__ctx.Return(reg315965) +return +} +} +} else { +reg315966 := __e.Call(__defun__shen_4pvar_2, V3376) +if reg315966 == True { +reg315967 := __e.Call(__defun__shen_4newpv, V3866) +A := reg315967 +_ = A +reg315968 := Nil; +reg315969 := PrimCons(A, reg315968) +reg315970 := __e.Call(__defun__shen_4bindv, V3376, reg315969, V3866) +_ = reg315970 +reg315971 := PrimTail(V3372) +NewHyp := reg315971 +_ = NewHyp +reg315972 := __e.Call(__defun__shen_4incinfs) +_ = reg315972 +reg315973 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4newhyps, Vs, V3864, NewHyp, V3866, V3867) +return +}, 0) +reg315975 := __e.Call(__defun__unify_b, V, V3366, V3866, reg315973) +Result := reg315975 +_ = Result +reg315976 := __e.Call(__defun__shen_4unbindv, V3376, V3866) +_ = reg315976 +__ctx.Return(Result) +return +} else { +reg315977 := False; +__ctx.Return(reg315977) +return +} +} +} else { +reg315978 := __e.Call(__defun__shen_4pvar_2, V3375) +if reg315978 == True { +reg315979 := MakeSymbol(":") +reg315980 := __e.Call(__defun__shen_4bindv, V3375, reg315979, V3866) +_ = reg315980 +reg315981 := PrimTail(V3374) +reg315982 := __e.Call(__defun__shen_4lazyderef, reg315981, V3866) +V3378 := reg315982 +_ = V3378 +reg315983 := PrimIsPair(V3378) +var reg316019 Obj +if reg315983 == True { +reg315984 := PrimHead(V3378) +A := reg315984 +_ = A +reg315985 := PrimTail(V3378) +reg315986 := __e.Call(__defun__shen_4lazyderef, reg315985, V3866) +V3379 := reg315986 +_ = V3379 +reg315987 := Nil; +reg315988 := PrimEqual(reg315987, V3379) +var reg316005 Obj +if reg315988 == True { +reg315989 := PrimTail(V3372) +NewHyp := reg315989 +_ = NewHyp +reg315990 := __e.Call(__defun__shen_4incinfs) +_ = reg315990 +reg315991 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4newhyps, Vs, V3864, NewHyp, V3866, V3867) +return +}, 0) +reg315993 := __e.Call(__defun__unify_b, V, V3366, V3866, reg315991) +reg316005 = reg315993 +} else { +reg315994 := __e.Call(__defun__shen_4pvar_2, V3379) +var reg316004 Obj +if reg315994 == True { +reg315995 := Nil; +reg315996 := __e.Call(__defun__shen_4bindv, V3379, reg315995, V3866) +_ = reg315996 +reg315997 := PrimTail(V3372) +NewHyp := reg315997 +_ = NewHyp +reg315998 := __e.Call(__defun__shen_4incinfs) +_ = reg315998 +reg315999 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4newhyps, Vs, V3864, NewHyp, V3866, V3867) +return +}, 0) +reg316001 := __e.Call(__defun__unify_b, V, V3366, V3866, reg315999) +Result := reg316001 +_ = Result +reg316002 := __e.Call(__defun__shen_4unbindv, V3379, V3866) +_ = reg316002 +reg316004 = Result +} else { +reg316003 := False; +reg316004 = reg316003 +} +reg316005 = reg316004 +} +reg316019 = reg316005 +} else { +reg316006 := __e.Call(__defun__shen_4pvar_2, V3378) +var reg316018 Obj +if reg316006 == True { +reg316007 := __e.Call(__defun__shen_4newpv, V3866) +A := reg316007 +_ = A +reg316008 := Nil; +reg316009 := PrimCons(A, reg316008) +reg316010 := __e.Call(__defun__shen_4bindv, V3378, reg316009, V3866) +_ = reg316010 +reg316011 := PrimTail(V3372) +NewHyp := reg316011 +_ = NewHyp +reg316012 := __e.Call(__defun__shen_4incinfs) +_ = reg316012 +reg316013 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4newhyps, Vs, V3864, NewHyp, V3866, V3867) +return +}, 0) +reg316015 := __e.Call(__defun__unify_b, V, V3366, V3866, reg316013) +Result := reg316015 +_ = Result +reg316016 := __e.Call(__defun__shen_4unbindv, V3378, V3866) +_ = reg316016 +reg316018 = Result +} else { +reg316017 := False; +reg316018 = reg316017 +} +reg316019 = reg316018 +} +Result := reg316019 +_ = Result +reg316020 := __e.Call(__defun__shen_4unbindv, V3375, V3866) +_ = reg316020 +__ctx.Return(Result) +return +} else { +reg316021 := False; +__ctx.Return(reg316021) +return +} +} +} else { +reg316022 := __e.Call(__defun__shen_4pvar_2, V3374) +if reg316022 == True { +reg316023 := __e.Call(__defun__shen_4newpv, V3866) +A := reg316023 +_ = A +reg316024 := MakeSymbol(":") +reg316025 := Nil; +reg316026 := PrimCons(A, reg316025) +reg316027 := PrimCons(reg316024, reg316026) +reg316028 := __e.Call(__defun__shen_4bindv, V3374, reg316027, V3866) +_ = reg316028 +reg316029 := PrimTail(V3372) +NewHyp := reg316029 +_ = NewHyp +reg316030 := __e.Call(__defun__shen_4incinfs) +_ = reg316030 +reg316031 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4newhyps, Vs, V3864, NewHyp, V3866, V3867) +return +}, 0) +reg316033 := __e.Call(__defun__unify_b, V, V3366, V3866, reg316031) +Result := reg316033 +_ = Result +reg316034 := __e.Call(__defun__shen_4unbindv, V3374, V3866) +_ = reg316034 +__ctx.Return(Result) +return +} else { +reg316035 := False; +__ctx.Return(reg316035) +return +} +} +} else { +reg316036 := __e.Call(__defun__shen_4pvar_2, V3373) +if reg316036 == True { +reg316037 := __e.Call(__defun__shen_4newpv, V3866) +V := reg316037 +_ = V +reg316038 := __e.Call(__defun__shen_4newpv, V3866) +A := reg316038 +_ = A +reg316039 := MakeSymbol(":") +reg316040 := Nil; +reg316041 := PrimCons(A, reg316040) +reg316042 := PrimCons(reg316039, reg316041) +reg316043 := PrimCons(V, reg316042) +reg316044 := __e.Call(__defun__shen_4bindv, V3373, reg316043, V3866) +_ = reg316044 +reg316045 := PrimTail(V3372) +NewHyp := reg316045 +_ = NewHyp +reg316046 := __e.Call(__defun__shen_4incinfs) +_ = reg316046 +reg316047 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4newhyps, Vs, V3864, NewHyp, V3866, V3867) +return +}, 0) +reg316049 := __e.Call(__defun__unify_b, V, V3366, V3866, reg316047) +Result := reg316049 +_ = Result +reg316050 := __e.Call(__defun__shen_4unbindv, V3373, V3866) +_ = reg316050 +__ctx.Return(Result) +return +} else { +reg316051 := False; +__ctx.Return(reg316051) +return +} +} +} else { +reg316052 := __e.Call(__defun__shen_4pvar_2, V3372) +if reg316052 == True { +reg316053 := __e.Call(__defun__shen_4newpv, V3866) +V := reg316053 +_ = V +reg316054 := __e.Call(__defun__shen_4newpv, V3866) +A := reg316054 +_ = A +reg316055 := __e.Call(__defun__shen_4newpv, V3866) +NewHyp := reg316055 +_ = NewHyp +reg316056 := MakeSymbol(":") +reg316057 := Nil; +reg316058 := PrimCons(A, reg316057) +reg316059 := PrimCons(reg316056, reg316058) +reg316060 := PrimCons(V, reg316059) +reg316061 := PrimCons(reg316060, NewHyp) +reg316062 := __e.Call(__defun__shen_4bindv, V3372, reg316061, V3866) +_ = reg316062 +reg316063 := __e.Call(__defun__shen_4incinfs) +_ = reg316063 +reg316064 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4newhyps, Vs, V3864, NewHyp, V3866, V3867) +return +}, 0) +reg316066 := __e.Call(__defun__unify_b, V, V3366, V3866, reg316064) +Result := reg316066 +_ = Result +reg316067 := __e.Call(__defun__shen_4unbindv, V3372, V3866) +_ = reg316067 +__ctx.Return(Result) +return +} else { +reg316068 := False; +__ctx.Return(reg316068) +return +} +} +} else { +reg316069 := False; +__ctx.Return(reg316069) +return +} +} else { +__ctx.Return(Case) +return +} +}, 5) +__initDefs = append(__initDefs, defType{name: "shen.newhyps", value: __defun__shen_4newhyps}) + +__defun__shen_4patthyps = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3873 := __args[0] +_ = V3873 +V3874 := __args[1] +_ = V3874 +V3875 := __args[2] +_ = V3875 +reg316070 := Nil; +reg316071 := PrimEqual(reg316070, V3873) +if reg316071 == True { +__ctx.Return(V3875) +return +} else { +reg316072 := PrimIsPair(V3873) +var reg316112 Obj +if reg316072 == True { +reg316073 := PrimIsPair(V3874) +var reg316107 Obj +if reg316073 == True { +reg316074 := PrimTail(V3874) +reg316075 := PrimIsPair(reg316074) +var reg316102 Obj +if reg316075 == True { +reg316076 := MakeSymbol("-->") +reg316077 := PrimTail(V3874) +reg316078 := PrimHead(reg316077) +reg316079 := PrimEqual(reg316076, reg316078) +var reg316097 Obj +if reg316079 == True { +reg316080 := PrimTail(V3874) +reg316081 := PrimTail(reg316080) +reg316082 := PrimIsPair(reg316081) +var reg316092 Obj +if reg316082 == True { +reg316083 := Nil; +reg316084 := PrimTail(V3874) +reg316085 := PrimTail(reg316084) +reg316086 := PrimTail(reg316085) +reg316087 := PrimEqual(reg316083, reg316086) +var reg316090 Obj +if reg316087 == True { +reg316088 := True; +reg316090 = reg316088 +} else { +reg316089 := False; +reg316090 = reg316089 +} +reg316092 = reg316090 +} else { +reg316091 := False; +reg316092 = reg316091 +} +var reg316095 Obj +if reg316092 == True { +reg316093 := True; +reg316095 = reg316093 +} else { +reg316094 := False; +reg316095 = reg316094 +} +reg316097 = reg316095 +} else { +reg316096 := False; +reg316097 = reg316096 +} +var reg316100 Obj +if reg316097 == True { +reg316098 := True; +reg316100 = reg316098 +} else { +reg316099 := False; +reg316100 = reg316099 +} +reg316102 = reg316100 +} else { +reg316101 := False; +reg316102 = reg316101 +} +var reg316105 Obj +if reg316102 == True { +reg316103 := True; +reg316105 = reg316103 +} else { +reg316104 := False; +reg316105 = reg316104 +} +reg316107 = reg316105 +} else { +reg316106 := False; +reg316107 = reg316106 +} +var reg316110 Obj +if reg316107 == True { +reg316108 := True; +reg316110 = reg316108 +} else { +reg316109 := False; +reg316110 = reg316109 +} +reg316112 = reg316110 +} else { +reg316111 := False; +reg316112 = reg316111 +} +if reg316112 == True { +reg316113 := PrimHead(V3873) +reg316114 := MakeSymbol(":") +reg316115 := PrimHead(V3874) +reg316116 := Nil; +reg316117 := PrimCons(reg316115, reg316116) +reg316118 := PrimCons(reg316114, reg316117) +reg316119 := PrimCons(reg316113, reg316118) +reg316120 := PrimTail(V3873) +reg316121 := PrimTail(V3874) +reg316122 := PrimTail(reg316121) +reg316123 := PrimHead(reg316122) +reg316124 := __e.Call(__defun__shen_4patthyps, reg316120, reg316123, V3875) +__ctx.TailApply(__defun__adjoin, reg316119, reg316124) +return +} else { +reg316126 := MakeSymbol("shen.patthyps") +__ctx.TailApply(__defun__shen_4f__error, reg316126) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.patthyps", value: __defun__shen_4patthyps}) + +__defun__shen_4result_1type = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3882 := __args[0] +_ = V3882 +V3883 := __args[1] +_ = V3883 +reg316128 := Nil; +reg316129 := PrimEqual(reg316128, V3882) +var reg316159 Obj +if reg316129 == True { +reg316130 := PrimIsPair(V3883) +var reg316154 Obj +if reg316130 == True { +reg316131 := MakeSymbol("-->") +reg316132 := PrimHead(V3883) +reg316133 := PrimEqual(reg316131, reg316132) +var reg316149 Obj +if reg316133 == True { +reg316134 := PrimTail(V3883) +reg316135 := PrimIsPair(reg316134) +var reg316144 Obj +if reg316135 == True { +reg316136 := Nil; +reg316137 := PrimTail(V3883) +reg316138 := PrimTail(reg316137) +reg316139 := PrimEqual(reg316136, reg316138) +var reg316142 Obj +if reg316139 == True { +reg316140 := True; +reg316142 = reg316140 +} else { +reg316141 := False; +reg316142 = reg316141 +} +reg316144 = reg316142 +} else { +reg316143 := False; +reg316144 = reg316143 +} +var reg316147 Obj +if reg316144 == True { +reg316145 := True; +reg316147 = reg316145 +} else { +reg316146 := False; +reg316147 = reg316146 +} +reg316149 = reg316147 +} else { +reg316148 := False; +reg316149 = reg316148 +} +var reg316152 Obj +if reg316149 == True { +reg316150 := True; +reg316152 = reg316150 +} else { +reg316151 := False; +reg316152 = reg316151 +} +reg316154 = reg316152 +} else { +reg316153 := False; +reg316154 = reg316153 +} +var reg316157 Obj +if reg316154 == True { +reg316155 := True; +reg316157 = reg316155 +} else { +reg316156 := False; +reg316157 = reg316156 +} +reg316159 = reg316157 +} else { +reg316158 := False; +reg316159 = reg316158 +} +if reg316159 == True { +reg316160 := PrimTail(V3883) +reg316161 := PrimHead(reg316160) +__ctx.Return(reg316161) +return +} else { +reg316162 := Nil; +reg316163 := PrimEqual(reg316162, V3882) +if reg316163 == True { +__ctx.Return(V3883) +return +} else { +reg316164 := PrimIsPair(V3882) +var reg316204 Obj +if reg316164 == True { +reg316165 := PrimIsPair(V3883) +var reg316199 Obj +if reg316165 == True { +reg316166 := PrimTail(V3883) +reg316167 := PrimIsPair(reg316166) +var reg316194 Obj +if reg316167 == True { +reg316168 := MakeSymbol("-->") +reg316169 := PrimTail(V3883) +reg316170 := PrimHead(reg316169) +reg316171 := PrimEqual(reg316168, reg316170) +var reg316189 Obj +if reg316171 == True { +reg316172 := PrimTail(V3883) +reg316173 := PrimTail(reg316172) +reg316174 := PrimIsPair(reg316173) +var reg316184 Obj +if reg316174 == True { +reg316175 := Nil; +reg316176 := PrimTail(V3883) +reg316177 := PrimTail(reg316176) +reg316178 := PrimTail(reg316177) +reg316179 := PrimEqual(reg316175, reg316178) +var reg316182 Obj +if reg316179 == True { +reg316180 := True; +reg316182 = reg316180 +} else { +reg316181 := False; +reg316182 = reg316181 +} +reg316184 = reg316182 +} else { +reg316183 := False; +reg316184 = reg316183 +} +var reg316187 Obj +if reg316184 == True { +reg316185 := True; +reg316187 = reg316185 +} else { +reg316186 := False; +reg316187 = reg316186 +} +reg316189 = reg316187 +} else { +reg316188 := False; +reg316189 = reg316188 +} +var reg316192 Obj +if reg316189 == True { +reg316190 := True; +reg316192 = reg316190 +} else { +reg316191 := False; +reg316192 = reg316191 +} +reg316194 = reg316192 +} else { +reg316193 := False; +reg316194 = reg316193 +} +var reg316197 Obj +if reg316194 == True { +reg316195 := True; +reg316197 = reg316195 +} else { +reg316196 := False; +reg316197 = reg316196 +} +reg316199 = reg316197 +} else { +reg316198 := False; +reg316199 = reg316198 +} +var reg316202 Obj +if reg316199 == True { +reg316200 := True; +reg316202 = reg316200 +} else { +reg316201 := False; +reg316202 = reg316201 +} +reg316204 = reg316202 +} else { +reg316203 := False; +reg316204 = reg316203 +} +if reg316204 == True { +reg316205 := PrimTail(V3882) +reg316206 := PrimTail(V3883) +reg316207 := PrimTail(reg316206) +reg316208 := PrimHead(reg316207) +__ctx.TailApply(__defun__shen_4result_1type, reg316205, reg316208) +return +} else { +reg316210 := MakeSymbol("shen.result-type") +__ctx.TailApply(__defun__shen_4f__error, reg316210) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.result-type", value: __defun__shen_4result_1type}) + +__defun__shen_4t_d_1patterns = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3889 := __args[0] +_ = V3889 +V3890 := __args[1] +_ = V3890 +V3891 := __args[2] +_ = V3891 +V3892 := __args[3] +_ = V3892 +V3893 := __args[4] +_ = V3893 +reg316212 := __e.Call(__defun__shen_4lazyderef, V3889, V3892) +V3358 := reg316212 +_ = V3358 +reg316213 := Nil; +reg316214 := PrimEqual(reg316213, V3358) +var reg316218 Obj +if reg316214 == True { +reg316215 := __e.Call(__defun__shen_4incinfs) +_ = reg316215 +reg316216 := __e.Call(__defun__thaw, V3893) +reg316218 = reg316216 +} else { +reg316217 := False; +reg316218 = reg316217 +} +Case := reg316218 +_ = Case +reg316219 := False; +reg316220 := PrimEqual(Case, reg316219) +if reg316220 == True { +reg316221 := __e.Call(__defun__shen_4lazyderef, V3889, V3892) +V3359 := reg316221 +_ = V3359 +reg316222 := PrimIsPair(V3359) +if reg316222 == True { +reg316223 := PrimHead(V3359) +Pattern := reg316223 +_ = Pattern +reg316224 := PrimTail(V3359) +Patterns := reg316224 +_ = Patterns +reg316225 := __e.Call(__defun__shen_4lazyderef, V3890, V3892) +V3360 := reg316225 +_ = V3360 +reg316226 := PrimIsPair(V3360) +if reg316226 == True { +reg316227 := PrimHead(V3360) +A := reg316227 +_ = A +reg316228 := PrimTail(V3360) +reg316229 := __e.Call(__defun__shen_4lazyderef, reg316228, V3892) +V3361 := reg316229 +_ = V3361 +reg316230 := PrimIsPair(V3361) +if reg316230 == True { +reg316231 := PrimHead(V3361) +reg316232 := __e.Call(__defun__shen_4lazyderef, reg316231, V3892) +V3362 := reg316232 +_ = V3362 +reg316233 := MakeSymbol("-->") +reg316234 := PrimEqual(reg316233, V3362) +if reg316234 == True { +reg316235 := PrimTail(V3361) +reg316236 := __e.Call(__defun__shen_4lazyderef, reg316235, V3892) +V3363 := reg316236 +_ = V3363 +reg316237 := PrimIsPair(V3363) +if reg316237 == True { +reg316238 := PrimHead(V3363) +B := reg316238 +_ = B +reg316239 := PrimTail(V3363) +reg316240 := __e.Call(__defun__shen_4lazyderef, reg316239, V3892) +V3364 := reg316240 +_ = V3364 +reg316241 := Nil; +reg316242 := PrimEqual(reg316241, V3364) +if reg316242 == True { +reg316243 := __e.Call(__defun__shen_4incinfs) +_ = reg316243 +reg316244 := MakeSymbol(":") +reg316245 := Nil; +reg316246 := PrimCons(A, reg316245) +reg316247 := PrimCons(reg316244, reg316246) +reg316248 := PrimCons(Pattern, reg316247) +reg316249 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4t_d_1patterns, Patterns, B, V3891, V3892, V3893) +return +}, 0) +__ctx.TailApply(__defun__shen_4t_d, reg316248, V3891, V3892, reg316249) +return +} else { +reg316252 := False; +__ctx.Return(reg316252) +return +} +} else { +reg316253 := False; +__ctx.Return(reg316253) +return +} +} else { +reg316254 := False; +__ctx.Return(reg316254) +return +} +} else { +reg316255 := False; +__ctx.Return(reg316255) +return +} +} else { +reg316256 := False; +__ctx.Return(reg316256) +return +} +} else { +reg316257 := False; +__ctx.Return(reg316257) +return +} +} else { +__ctx.Return(Case) +return +} +}, 5) +__initDefs = append(__initDefs, defType{name: "shen.t*-patterns", value: __defun__shen_4t_d_1patterns}) + +__defun__shen_4t_d_1action = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3899 := __args[0] +_ = V3899 +V3900 := __args[1] +_ = V3900 +V3901 := __args[2] +_ = V3901 +V3902 := __args[3] +_ = V3902 +V3903 := __args[4] +_ = V3903 +reg316258 := __e.Call(__defun__shen_4catchpoint) +Throwcontrol := reg316258 +_ = Throwcontrol +reg316259 := __e.Call(__defun__shen_4lazyderef, V3899, V3902) +V3335 := reg316259 +_ = V3335 +reg316260 := PrimIsPair(V3335) +var reg316307 Obj +if reg316260 == True { +reg316261 := PrimHead(V3335) +reg316262 := __e.Call(__defun__shen_4lazyderef, reg316261, V3902) +V3336 := reg316262 +_ = V3336 +reg316263 := MakeSymbol("where") +reg316264 := PrimEqual(reg316263, V3336) +var reg316305 Obj +if reg316264 == True { +reg316265 := PrimTail(V3335) +reg316266 := __e.Call(__defun__shen_4lazyderef, reg316265, V3902) +V3337 := reg316266 +_ = V3337 +reg316267 := PrimIsPair(V3337) +var reg316303 Obj +if reg316267 == True { +reg316268 := PrimHead(V3337) +P := reg316268 +_ = P +reg316269 := PrimTail(V3337) +reg316270 := __e.Call(__defun__shen_4lazyderef, reg316269, V3902) +V3338 := reg316270 +_ = V3338 +reg316271 := PrimIsPair(V3338) +var reg316301 Obj +if reg316271 == True { +reg316272 := PrimHead(V3338) +Action := reg316272 +_ = Action +reg316273 := PrimTail(V3338) +reg316274 := __e.Call(__defun__shen_4lazyderef, reg316273, V3902) +V3339 := reg316274 +_ = V3339 +reg316275 := Nil; +reg316276 := PrimEqual(reg316275, V3339) +var reg316299 Obj +if reg316276 == True { +reg316277 := __e.Call(__defun__shen_4incinfs) +_ = reg316277 +reg316278 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316279 := MakeSymbol(":") +reg316280 := MakeSymbol("boolean") +reg316281 := Nil; +reg316282 := PrimCons(reg316280, reg316281) +reg316283 := PrimCons(reg316279, reg316282) +reg316284 := PrimCons(P, reg316283) +reg316285 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316286 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316287 := MakeSymbol(":") +reg316288 := MakeSymbol("verified") +reg316289 := Nil; +reg316290 := PrimCons(reg316288, reg316289) +reg316291 := PrimCons(reg316287, reg316290) +reg316292 := PrimCons(P, reg316291) +reg316293 := PrimCons(reg316292, V3901) +__ctx.TailApply(__defun__shen_4t_d_1action, Action, V3900, reg316293, V3902, V3903) +return +}, 0) +__ctx.TailApply(__defun__cut, Throwcontrol, V3902, reg316286) +return +}, 0) +__ctx.TailApply(__defun__shen_4t_d, reg316284, V3901, V3902, reg316285) +return +}, 0) +reg316297 := __e.Call(__defun__cut, Throwcontrol, V3902, reg316278) +reg316299 = reg316297 +} else { +reg316298 := False; +reg316299 = reg316298 +} +reg316301 = reg316299 +} else { +reg316300 := False; +reg316301 = reg316300 +} +reg316303 = reg316301 +} else { +reg316302 := False; +reg316303 = reg316302 +} +reg316305 = reg316303 +} else { +reg316304 := False; +reg316305 = reg316304 +} +reg316307 = reg316305 +} else { +reg316306 := False; +reg316307 = reg316306 +} +Case := reg316307 +_ = Case +reg316308 := False; +reg316309 := PrimEqual(Case, reg316308) +var reg316445 Obj +if reg316309 == True { +reg316310 := __e.Call(__defun__shen_4lazyderef, V3899, V3902) +V3340 := reg316310 +_ = V3340 +reg316311 := PrimIsPair(V3340) +var reg316386 Obj +if reg316311 == True { +reg316312 := PrimHead(V3340) +reg316313 := __e.Call(__defun__shen_4lazyderef, reg316312, V3902) +V3341 := reg316313 +_ = V3341 +reg316314 := MakeSymbol("shen.choicepoint!") +reg316315 := PrimEqual(reg316314, V3341) +var reg316384 Obj +if reg316315 == True { +reg316316 := PrimTail(V3340) +reg316317 := __e.Call(__defun__shen_4lazyderef, reg316316, V3902) +V3342 := reg316317 +_ = V3342 +reg316318 := PrimIsPair(V3342) +var reg316382 Obj +if reg316318 == True { +reg316319 := PrimHead(V3342) +reg316320 := __e.Call(__defun__shen_4lazyderef, reg316319, V3902) +V3343 := reg316320 +_ = V3343 +reg316321 := PrimIsPair(V3343) +var reg316380 Obj +if reg316321 == True { +reg316322 := PrimHead(V3343) +reg316323 := __e.Call(__defun__shen_4lazyderef, reg316322, V3902) +V3344 := reg316323 +_ = V3344 +reg316324 := PrimIsPair(V3344) +var reg316378 Obj +if reg316324 == True { +reg316325 := PrimHead(V3344) +reg316326 := __e.Call(__defun__shen_4lazyderef, reg316325, V3902) +V3345 := reg316326 +_ = V3345 +reg316327 := MakeSymbol("fail-if") +reg316328 := PrimEqual(reg316327, V3345) +var reg316376 Obj +if reg316328 == True { +reg316329 := PrimTail(V3344) +reg316330 := __e.Call(__defun__shen_4lazyderef, reg316329, V3902) +V3346 := reg316330 +_ = V3346 +reg316331 := PrimIsPair(V3346) +var reg316374 Obj +if reg316331 == True { +reg316332 := PrimHead(V3346) +F := reg316332 +_ = F +reg316333 := PrimTail(V3346) +reg316334 := __e.Call(__defun__shen_4lazyderef, reg316333, V3902) +V3347 := reg316334 +_ = V3347 +reg316335 := Nil; +reg316336 := PrimEqual(reg316335, V3347) +var reg316372 Obj +if reg316336 == True { +reg316337 := PrimTail(V3343) +reg316338 := __e.Call(__defun__shen_4lazyderef, reg316337, V3902) +V3348 := reg316338 +_ = V3348 +reg316339 := PrimIsPair(V3348) +var reg316370 Obj +if reg316339 == True { +reg316340 := PrimHead(V3348) +Action := reg316340 +_ = Action +reg316341 := PrimTail(V3348) +reg316342 := __e.Call(__defun__shen_4lazyderef, reg316341, V3902) +V3349 := reg316342 +_ = V3349 +reg316343 := Nil; +reg316344 := PrimEqual(reg316343, V3349) +var reg316368 Obj +if reg316344 == True { +reg316345 := PrimTail(V3342) +reg316346 := __e.Call(__defun__shen_4lazyderef, reg316345, V3902) +V3350 := reg316346 +_ = V3350 +reg316347 := Nil; +reg316348 := PrimEqual(reg316347, V3350) +var reg316366 Obj +if reg316348 == True { +reg316349 := __e.Call(__defun__shen_4incinfs) +_ = reg316349 +reg316350 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316351 := MakeSymbol("where") +reg316352 := MakeSymbol("not") +reg316353 := Nil; +reg316354 := PrimCons(Action, reg316353) +reg316355 := PrimCons(F, reg316354) +reg316356 := Nil; +reg316357 := PrimCons(reg316355, reg316356) +reg316358 := PrimCons(reg316352, reg316357) +reg316359 := Nil; +reg316360 := PrimCons(Action, reg316359) +reg316361 := PrimCons(reg316358, reg316360) +reg316362 := PrimCons(reg316351, reg316361) +__ctx.TailApply(__defun__shen_4t_d_1action, reg316362, V3900, V3901, V3902, V3903) +return +}, 0) +reg316364 := __e.Call(__defun__cut, Throwcontrol, V3902, reg316350) +reg316366 = reg316364 +} else { +reg316365 := False; +reg316366 = reg316365 +} +reg316368 = reg316366 +} else { +reg316367 := False; +reg316368 = reg316367 +} +reg316370 = reg316368 +} else { +reg316369 := False; +reg316370 = reg316369 +} +reg316372 = reg316370 +} else { +reg316371 := False; +reg316372 = reg316371 +} +reg316374 = reg316372 +} else { +reg316373 := False; +reg316374 = reg316373 +} +reg316376 = reg316374 +} else { +reg316375 := False; +reg316376 = reg316375 +} +reg316378 = reg316376 +} else { +reg316377 := False; +reg316378 = reg316377 +} +reg316380 = reg316378 +} else { +reg316379 := False; +reg316380 = reg316379 +} +reg316382 = reg316380 +} else { +reg316381 := False; +reg316382 = reg316381 +} +reg316384 = reg316382 +} else { +reg316383 := False; +reg316384 = reg316383 +} +reg316386 = reg316384 +} else { +reg316385 := False; +reg316386 = reg316385 +} +Case := reg316386 +_ = Case +reg316387 := False; +reg316388 := PrimEqual(Case, reg316387) +var reg316444 Obj +if reg316388 == True { +reg316389 := __e.Call(__defun__shen_4lazyderef, V3899, V3902) +V3351 := reg316389 +_ = V3351 +reg316390 := PrimIsPair(V3351) +var reg316433 Obj +if reg316390 == True { +reg316391 := PrimHead(V3351) +reg316392 := __e.Call(__defun__shen_4lazyderef, reg316391, V3902) +V3352 := reg316392 +_ = V3352 +reg316393 := MakeSymbol("shen.choicepoint!") +reg316394 := PrimEqual(reg316393, V3352) +var reg316431 Obj +if reg316394 == True { +reg316395 := PrimTail(V3351) +reg316396 := __e.Call(__defun__shen_4lazyderef, reg316395, V3902) +V3353 := reg316396 +_ = V3353 +reg316397 := PrimIsPair(V3353) +var reg316429 Obj +if reg316397 == True { +reg316398 := PrimHead(V3353) +Action := reg316398 +_ = Action +reg316399 := PrimTail(V3353) +reg316400 := __e.Call(__defun__shen_4lazyderef, reg316399, V3902) +V3354 := reg316400 +_ = V3354 +reg316401 := Nil; +reg316402 := PrimEqual(reg316401, V3354) +var reg316427 Obj +if reg316402 == True { +reg316403 := __e.Call(__defun__shen_4incinfs) +_ = reg316403 +reg316404 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316405 := MakeSymbol("where") +reg316406 := MakeSymbol("not") +reg316407 := MakeSymbol("=") +reg316408 := Nil; +reg316409 := PrimCons(Action, reg316408) +reg316410 := PrimCons(reg316407, reg316409) +reg316411 := MakeSymbol("fail") +reg316412 := Nil; +reg316413 := PrimCons(reg316411, reg316412) +reg316414 := Nil; +reg316415 := PrimCons(reg316413, reg316414) +reg316416 := PrimCons(reg316410, reg316415) +reg316417 := Nil; +reg316418 := PrimCons(reg316416, reg316417) +reg316419 := PrimCons(reg316406, reg316418) +reg316420 := Nil; +reg316421 := PrimCons(Action, reg316420) +reg316422 := PrimCons(reg316419, reg316421) +reg316423 := PrimCons(reg316405, reg316422) +__ctx.TailApply(__defun__shen_4t_d_1action, reg316423, V3900, V3901, V3902, V3903) +return +}, 0) +reg316425 := __e.Call(__defun__cut, Throwcontrol, V3902, reg316404) +reg316427 = reg316425 +} else { +reg316426 := False; +reg316427 = reg316426 +} +reg316429 = reg316427 +} else { +reg316428 := False; +reg316429 = reg316428 +} +reg316431 = reg316429 +} else { +reg316430 := False; +reg316431 = reg316430 +} +reg316433 = reg316431 +} else { +reg316432 := False; +reg316433 = reg316432 +} +Case := reg316433 +_ = Case +reg316434 := False; +reg316435 := PrimEqual(Case, reg316434) +var reg316443 Obj +if reg316435 == True { +reg316436 := __e.Call(__defun__shen_4incinfs) +_ = reg316436 +reg316437 := MakeSymbol(":") +reg316438 := Nil; +reg316439 := PrimCons(V3900, reg316438) +reg316440 := PrimCons(reg316437, reg316439) +reg316441 := PrimCons(V3899, reg316440) +reg316442 := __e.Call(__defun__shen_4t_d, reg316441, V3901, V3902, V3903) +reg316443 = reg316442 +} else { +reg316443 = Case +} +reg316444 = reg316443 +} else { +reg316444 = Case +} +reg316445 = reg316444 +} else { +reg316445 = Case +} +__ctx.TailApply(__defun__shen_4cutpoint, Throwcontrol, reg316445) +return +}, 5) +__initDefs = append(__initDefs, defType{name: "shen.t*-action", value: __defun__shen_4t_d_1action}) + +__defun__findall = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3909 := __args[0] +_ = V3909 +V3910 := __args[1] +_ = V3910 +V3911 := __args[2] +_ = V3911 +V3912 := __args[3] +_ = V3912 +V3913 := __args[4] +_ = V3913 +reg316447 := __e.Call(__defun__shen_4newpv, V3912) +B := reg316447 +_ = B +reg316448 := __e.Call(__defun__shen_4newpv, V3912) +A := reg316448 +_ = A +reg316449 := __e.Call(__defun__shen_4incinfs) +_ = reg316449 +reg316450 := MakeSymbol("shen.a") +reg316451 := __e.Call(__defun__gensym, reg316450) +reg316452 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316453 := __e.Call(__defun__shen_4lazyderef, A, V3912) +reg316454 := Nil; +reg316455 := PrimSet(reg316453, reg316454) +reg316456 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4findallhelp, V3909, V3910, V3911, A, V3912, V3913) +return +}, 0) +__ctx.TailApply(__defun__bind, B, reg316455, V3912, reg316456) +return +}, 0) +__ctx.TailApply(__defun__bind, A, reg316451, V3912, reg316452) +return +}, 5) +__initDefs = append(__initDefs, defType{name: "findall", value: __defun__findall}) + +__defun__shen_4findallhelp = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3920 := __args[0] +_ = V3920 +V3921 := __args[1] +_ = V3921 +V3922 := __args[2] +_ = V3922 +V3923 := __args[3] +_ = V3923 +V3924 := __args[4] +_ = V3924 +V3925 := __args[5] +_ = V3925 +reg316460 := __e.Call(__defun__shen_4incinfs) +_ = reg316460 +reg316461 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316462 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316463 := False; +__ctx.TailApply(__defun__fwhen, reg316463, V3924, V3925) +return +}, 0) +__ctx.TailApply(__defun__shen_4remember, V3923, V3920, V3924, reg316462) +return +}, 0) +reg316466 := __e.Call(__defun__call, V3921, V3924, reg316461) +Case := reg316466 +_ = Case +reg316467 := False; +reg316468 := PrimEqual(Case, reg316467) +if reg316468 == True { +reg316469 := __e.Call(__defun__shen_4incinfs) +_ = reg316469 +reg316470 := __e.Call(__defun__shen_4lazyderef, V3923, V3924) +reg316471 := PrimValue(reg316470) +__ctx.TailApply(__defun__bind, V3922, reg316471, V3924, V3925) +return +} else { +__ctx.Return(Case) +return +} +}, 6) +__initDefs = append(__initDefs, defType{name: "shen.findallhelp", value: __defun__shen_4findallhelp}) + +__defun__shen_4remember = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3930 := __args[0] +_ = V3930 +V3931 := __args[1] +_ = V3931 +V3932 := __args[2] +_ = V3932 +V3933 := __args[3] +_ = V3933 +reg316473 := __e.Call(__defun__shen_4newpv, V3932) +B := reg316473 +_ = B +reg316474 := __e.Call(__defun__shen_4incinfs) +_ = reg316474 +reg316475 := __e.Call(__defun__shen_4deref, V3930, V3932) +reg316476 := __e.Call(__defun__shen_4deref, V3931, V3932) +reg316477 := __e.Call(__defun__shen_4deref, V3930, V3932) +reg316478 := PrimValue(reg316477) +reg316479 := PrimCons(reg316476, reg316478) +reg316480 := PrimSet(reg316475, reg316479) +__ctx.TailApply(__defun__bind, B, reg316480, V3932, V3933) +return +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.remember", value: __defun__shen_4remember}) + +} diff --git a/cmd/shen/stub.go b/cmd/shen/stub.go new file mode 100644 index 0000000..e61491a --- /dev/null +++ b/cmd/shen/stub.go @@ -0,0 +1,26 @@ +package main + +import ( + "github.com/tiancaiamao/shen-go/kl" +) + +type defType struct { + name string + value kl.Obj +} + +var __initExprs []kl.Obj +var __initDefs []defType + +func Regist(e *kl.Evaluator) { + for _, def := range __initDefs { + if def.name == "symbol?" { + continue + } + e.RegistNativeCall(def.name, def.value) + } + + for _, expr := range __initExprs { + e.Call(expr) + } +} diff --git a/cmd/shen/sys.go b/cmd/shen/sys.go new file mode 100644 index 0000000..03a80f3 --- /dev/null +++ b/cmd/shen/sys.go @@ -0,0 +1,3625 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__thaw Obj // thaw +var __defun__eval Obj // eval +var __defun__shen_4eval_1without_1macros Obj // shen.eval-without-macros +var __defun__shen_4proc_1input_7 Obj // shen.proc-input+ +var __defun__shen_4elim_1def Obj // shen.elim-def +var __defun__shen_4add_1macro Obj // shen.add-macro +var __defun__shen_4packaged_2 Obj // shen.packaged? +var __defun__external Obj // external +var __defun__internal Obj // internal +var __defun__shen_4package_1contents Obj // shen.package-contents +var __defun__shen_4walk Obj // shen.walk +var __defun__compile Obj // compile +var __defun__fail_1if Obj // fail-if +var __defun___8s Obj // @s +var __defun__tc_2 Obj // tc? +var __defun__ps Obj // ps +var __defun__stinput Obj // stinput +var __defun__vector Obj // vector +var __defun__shen_4fillvector Obj // shen.fillvector +var __defun__vector_2 Obj // vector? +var __defun__vector_1_6 Obj // vector-> +var __defun___5_1vector Obj // <-vector +var __defun__shen_4posint_2 Obj // shen.posint? +var __defun__limit Obj // limit +var __defun__symbol_2 Obj // symbol? +var __defun__shen_4analyse_1symbol_2 Obj // shen.analyse-symbol? +var __defun__shen_4alpha_2 Obj // shen.alpha? +var __defun__shen_4alphanums_2 Obj // shen.alphanums? +var __defun__shen_4alphanum_2 Obj // shen.alphanum? +var __defun__shen_4digit_2 Obj // shen.digit? +var __defun__variable_2 Obj // variable? +var __defun__shen_4analyse_1variable_2 Obj // shen.analyse-variable? +var __defun__shen_4uppercase_2 Obj // shen.uppercase? +var __defun__gensym Obj // gensym +var __defun__concat Obj // concat +var __defun___8p Obj // @p +var __defun__fst Obj // fst +var __defun__snd Obj // snd +var __defun__tuple_2 Obj // tuple? +var __defun__append Obj // append +var __defun___8v Obj // @v +var __defun__shen_4_8v_1help Obj // shen.@v-help +var __defun__shen_4copyfromvector Obj // shen.copyfromvector +var __defun__hdv Obj // hdv +var __defun__tlv Obj // tlv +var __defun__shen_4tlv_1help Obj // shen.tlv-help +var __defun__assoc Obj // assoc +var __defun__shen_4assoc_1set Obj // shen.assoc-set +var __defun__shen_4assoc_1rm Obj // shen.assoc-rm +var __defun__boolean_2 Obj // boolean? +var __defun__nl Obj // nl +var __defun__difference Obj // difference +var __defun__do Obj // do +var __defun__element_2 Obj // element? +var __defun__empty_2 Obj // empty? +var __defun__fix Obj // fix +var __defun__shen_4fix_1help Obj // shen.fix-help +var __defun__put Obj // put +var __defun__unput Obj // unput +var __defun__get Obj // get +var __defun__hash Obj // hash +var __defun__shen_4mod Obj // shen.mod +var __defun__shen_4multiples Obj // shen.multiples +var __defun__shen_4modh Obj // shen.modh +var __defun__sum Obj // sum +var __defun__head Obj // head +var __defun__tail Obj // tail +var __defun__hdstr Obj // hdstr +var __defun__intersection Obj // intersection +var __defun__reverse Obj // reverse +var __defun__shen_4reverse__help Obj // shen.reverse_help +var __defun__union Obj // union +var __defun__y_1or_1n_2 Obj // y-or-n? +var __defun__not Obj // not +var __defun__subst Obj // subst +var __defun__explode Obj // explode +var __defun__shen_4explode_1h Obj // shen.explode-h +var __defun__cd Obj // cd +var __defun__shen_4for_1each Obj // shen.for-each +var __defun__map Obj // map +var __defun__shen_4map_1h Obj // shen.map-h +var __defun__length Obj // length +var __defun__shen_4length_1h Obj // shen.length-h +var __defun__occurrences Obj // occurrences +var __defun__nth Obj // nth +var __defun__integer_2 Obj // integer? +var __defun__shen_4abs Obj // shen.abs +var __defun__shen_4magless Obj // shen.magless +var __defun__shen_4integer_1test_2 Obj // shen.integer-test? +var __defun__mapcan Obj // mapcan +var __defun___a_a Obj // == +var __defun__abort Obj // abort +var __defun__bound_2 Obj // bound? +var __defun__shen_4string_1_6bytes Obj // shen.string->bytes +var __defun__maxinferences Obj // maxinferences +var __defun__inferences Obj // inferences +var __defun__protect Obj // protect +var __defun__stoutput Obj // stoutput +var __defun__sterror Obj // sterror +var __defun__string_1_6symbol Obj // string->symbol +var __defun__optimise Obj // optimise +var __defun__os Obj // os +var __defun__language Obj // language +var __defun__version Obj // version +var __defun__port Obj // port +var __defun__porters Obj // porters +var __defun__implementation Obj // implementation +var __defun__release Obj // release +var __defun__package_2 Obj // package? +var __defun__function Obj // function +var __defun__shen_4lookup_1func Obj // shen.lookup-func + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg295967 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg295967) +return +}, 0)) +__defun__thaw = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2827 := __args[0] +_ = V2827 +__ctx.TailApply(V2827) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "thaw", value: __defun__thaw}) + +__defun__eval = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2829 := __args[0] +_ = V2829 +reg295969 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Y := __args[0] +_ = Y +__ctx.TailApply(__defun__macroexpand, Y) +return +}, 1) +reg295971 := __e.Call(__defun__shen_4walk, reg295969, V2829) +Macroexpand := reg295971 +_ = Macroexpand +reg295972 := __e.Call(__defun__shen_4packaged_2, Macroexpand) +if reg295972 == True { +reg295973 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4eval_1without_1macros, Z) +return +}, 1) +reg295975 := __e.Call(__defun__shen_4package_1contents, Macroexpand) +__ctx.TailApply(__defun__map, reg295973, reg295975) +return +} else { +__ctx.TailApply(__defun__shen_4eval_1without_1macros, Macroexpand) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "eval", value: __defun__eval}) + +__defun__shen_4eval_1without_1macros = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2831 := __args[0] +_ = V2831 +reg295978 := __e.Call(__defun__shen_4proc_1input_7, V2831) +reg295979 := __e.Call(__defun__shen_4elim_1def, reg295978) +reg295980 := PrimEvalKL(__e, reg295979) +__ctx.Return(reg295980) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.eval-without-macros", value: __defun__shen_4eval_1without_1macros}) + +__defun__shen_4proc_1input_7 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2833 := __args[0] +_ = V2833 +reg295981 := PrimIsPair(V2833) +var reg296014 Obj +if reg295981 == True { +reg295982 := MakeSymbol("input+") +reg295983 := PrimHead(V2833) +reg295984 := PrimEqual(reg295982, reg295983) +var reg296009 Obj +if reg295984 == True { +reg295985 := PrimTail(V2833) +reg295986 := PrimIsPair(reg295985) +var reg296004 Obj +if reg295986 == True { +reg295987 := PrimTail(V2833) +reg295988 := PrimTail(reg295987) +reg295989 := PrimIsPair(reg295988) +var reg295999 Obj +if reg295989 == True { +reg295990 := Nil; +reg295991 := PrimTail(V2833) +reg295992 := PrimTail(reg295991) +reg295993 := PrimTail(reg295992) +reg295994 := PrimEqual(reg295990, reg295993) +var reg295997 Obj +if reg295994 == True { +reg295995 := True; +reg295997 = reg295995 +} else { +reg295996 := False; +reg295997 = reg295996 +} +reg295999 = reg295997 +} else { +reg295998 := False; +reg295999 = reg295998 +} +var reg296002 Obj +if reg295999 == True { +reg296000 := True; +reg296002 = reg296000 +} else { +reg296001 := False; +reg296002 = reg296001 +} +reg296004 = reg296002 +} else { +reg296003 := False; +reg296004 = reg296003 +} +var reg296007 Obj +if reg296004 == True { +reg296005 := True; +reg296007 = reg296005 +} else { +reg296006 := False; +reg296007 = reg296006 +} +reg296009 = reg296007 +} else { +reg296008 := False; +reg296009 = reg296008 +} +var reg296012 Obj +if reg296009 == True { +reg296010 := True; +reg296012 = reg296010 +} else { +reg296011 := False; +reg296012 = reg296011 +} +reg296014 = reg296012 +} else { +reg296013 := False; +reg296014 = reg296013 +} +if reg296014 == True { +reg296015 := MakeSymbol("input+") +reg296016 := PrimTail(V2833) +reg296017 := PrimHead(reg296016) +reg296018 := __e.Call(__defun__shen_4rcons__form, reg296017) +reg296019 := PrimTail(V2833) +reg296020 := PrimTail(reg296019) +reg296021 := PrimCons(reg296018, reg296020) +reg296022 := PrimCons(reg296015, reg296021) +__ctx.Return(reg296022) +return +} else { +reg296023 := PrimIsPair(V2833) +var reg296056 Obj +if reg296023 == True { +reg296024 := MakeSymbol("shen.read+") +reg296025 := PrimHead(V2833) +reg296026 := PrimEqual(reg296024, reg296025) +var reg296051 Obj +if reg296026 == True { +reg296027 := PrimTail(V2833) +reg296028 := PrimIsPair(reg296027) +var reg296046 Obj +if reg296028 == True { +reg296029 := PrimTail(V2833) +reg296030 := PrimTail(reg296029) +reg296031 := PrimIsPair(reg296030) +var reg296041 Obj +if reg296031 == True { +reg296032 := Nil; +reg296033 := PrimTail(V2833) +reg296034 := PrimTail(reg296033) +reg296035 := PrimTail(reg296034) +reg296036 := PrimEqual(reg296032, reg296035) +var reg296039 Obj +if reg296036 == True { +reg296037 := True; +reg296039 = reg296037 +} else { +reg296038 := False; +reg296039 = reg296038 +} +reg296041 = reg296039 +} else { +reg296040 := False; +reg296041 = reg296040 +} +var reg296044 Obj +if reg296041 == True { +reg296042 := True; +reg296044 = reg296042 +} else { +reg296043 := False; +reg296044 = reg296043 +} +reg296046 = reg296044 +} else { +reg296045 := False; +reg296046 = reg296045 +} +var reg296049 Obj +if reg296046 == True { +reg296047 := True; +reg296049 = reg296047 +} else { +reg296048 := False; +reg296049 = reg296048 +} +reg296051 = reg296049 +} else { +reg296050 := False; +reg296051 = reg296050 +} +var reg296054 Obj +if reg296051 == True { +reg296052 := True; +reg296054 = reg296052 +} else { +reg296053 := False; +reg296054 = reg296053 +} +reg296056 = reg296054 +} else { +reg296055 := False; +reg296056 = reg296055 +} +if reg296056 == True { +reg296057 := MakeSymbol("shen.read+") +reg296058 := PrimTail(V2833) +reg296059 := PrimHead(reg296058) +reg296060 := __e.Call(__defun__shen_4rcons__form, reg296059) +reg296061 := PrimTail(V2833) +reg296062 := PrimTail(reg296061) +reg296063 := PrimCons(reg296060, reg296062) +reg296064 := PrimCons(reg296057, reg296063) +__ctx.Return(reg296064) +return +} else { +reg296065 := PrimIsPair(V2833) +if reg296065 == True { +reg296066 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4proc_1input_7, Z) +return +}, 1) +__ctx.TailApply(__defun__map, reg296066, V2833) +return +} else { +__ctx.Return(V2833) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.proc-input+", value: __defun__shen_4proc_1input_7}) + +__defun__shen_4elim_1def = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2835 := __args[0] +_ = V2835 +reg296069 := PrimIsPair(V2835) +var reg296084 Obj +if reg296069 == True { +reg296070 := MakeSymbol("define") +reg296071 := PrimHead(V2835) +reg296072 := PrimEqual(reg296070, reg296071) +var reg296079 Obj +if reg296072 == True { +reg296073 := PrimTail(V2835) +reg296074 := PrimIsPair(reg296073) +var reg296077 Obj +if reg296074 == True { +reg296075 := True; +reg296077 = reg296075 +} else { +reg296076 := False; +reg296077 = reg296076 +} +reg296079 = reg296077 +} else { +reg296078 := False; +reg296079 = reg296078 +} +var reg296082 Obj +if reg296079 == True { +reg296080 := True; +reg296082 = reg296080 +} else { +reg296081 := False; +reg296082 = reg296081 +} +reg296084 = reg296082 +} else { +reg296083 := False; +reg296084 = reg296083 +} +if reg296084 == True { +reg296085 := PrimTail(V2835) +reg296086 := PrimHead(reg296085) +reg296087 := PrimTail(V2835) +reg296088 := PrimTail(reg296087) +__ctx.TailApply(__defun__shen_4shen_1_6kl, reg296086, reg296088) +return +} else { +reg296090 := PrimIsPair(V2835) +var reg296105 Obj +if reg296090 == True { +reg296091 := MakeSymbol("defmacro") +reg296092 := PrimHead(V2835) +reg296093 := PrimEqual(reg296091, reg296092) +var reg296100 Obj +if reg296093 == True { +reg296094 := PrimTail(V2835) +reg296095 := PrimIsPair(reg296094) +var reg296098 Obj +if reg296095 == True { +reg296096 := True; +reg296098 = reg296096 +} else { +reg296097 := False; +reg296098 = reg296097 +} +reg296100 = reg296098 +} else { +reg296099 := False; +reg296100 = reg296099 +} +var reg296103 Obj +if reg296100 == True { +reg296101 := True; +reg296103 = reg296101 +} else { +reg296102 := False; +reg296103 = reg296102 +} +reg296105 = reg296103 +} else { +reg296104 := False; +reg296105 = reg296104 +} +if reg296105 == True { +reg296106 := MakeSymbol("X") +reg296107 := MakeSymbol("->") +reg296108 := MakeSymbol("X") +reg296109 := Nil; +reg296110 := PrimCons(reg296108, reg296109) +reg296111 := PrimCons(reg296107, reg296110) +reg296112 := PrimCons(reg296106, reg296111) +Default := reg296112 +_ = Default +reg296113 := MakeSymbol("define") +reg296114 := PrimTail(V2835) +reg296115 := PrimHead(reg296114) +reg296116 := PrimTail(V2835) +reg296117 := PrimTail(reg296116) +reg296118 := __e.Call(__defun__append, reg296117, Default) +reg296119 := PrimCons(reg296115, reg296118) +reg296120 := PrimCons(reg296113, reg296119) +reg296121 := __e.Call(__defun__shen_4elim_1def, reg296120) +Def := reg296121 +_ = Def +reg296122 := PrimTail(V2835) +reg296123 := PrimHead(reg296122) +reg296124 := __e.Call(__defun__shen_4add_1macro, reg296123) +MacroAdd := reg296124 +_ = MacroAdd +__ctx.Return(Def) +return +} else { +reg296125 := PrimIsPair(V2835) +var reg296140 Obj +if reg296125 == True { +reg296126 := MakeSymbol("defcc") +reg296127 := PrimHead(V2835) +reg296128 := PrimEqual(reg296126, reg296127) +var reg296135 Obj +if reg296128 == True { +reg296129 := PrimTail(V2835) +reg296130 := PrimIsPair(reg296129) +var reg296133 Obj +if reg296130 == True { +reg296131 := True; +reg296133 = reg296131 +} else { +reg296132 := False; +reg296133 = reg296132 +} +reg296135 = reg296133 +} else { +reg296134 := False; +reg296135 = reg296134 +} +var reg296138 Obj +if reg296135 == True { +reg296136 := True; +reg296138 = reg296136 +} else { +reg296137 := False; +reg296138 = reg296137 +} +reg296140 = reg296138 +} else { +reg296139 := False; +reg296140 = reg296139 +} +if reg296140 == True { +reg296141 := __e.Call(__defun__shen_4yacc, V2835) +__ctx.TailApply(__defun__shen_4elim_1def, reg296141) +return +} else { +reg296143 := PrimIsPair(V2835) +if reg296143 == True { +reg296144 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4elim_1def, Z) +return +}, 1) +__ctx.TailApply(__defun__map, reg296144, V2835) +return +} else { +__ctx.Return(V2835) +return +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.elim-def", value: __defun__shen_4elim_1def}) + +__defun__shen_4add_1macro = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2837 := __args[0] +_ = V2837 +reg296147 := MakeSymbol("shen.*macroreg*") +reg296148 := PrimValue(reg296147) +MacroReg := reg296148 +_ = MacroReg +reg296149 := MakeSymbol("shen.*macroreg*") +reg296150 := MakeSymbol("shen.*macroreg*") +reg296151 := PrimValue(reg296150) +reg296152 := __e.Call(__defun__adjoin, V2837, reg296151) +reg296153 := PrimSet(reg296149, reg296152) +NewMacroReg := reg296153 +_ = NewMacroReg +reg296154 := PrimEqual(MacroReg, NewMacroReg) +if reg296154 == True { +reg296155 := MakeSymbol("shen.skip") +__ctx.Return(reg296155) +return +} else { +reg296156 := MakeSymbol("*macros*") +reg296157 := __e.Call(__defun__function, V2837) +reg296158 := MakeSymbol("*macros*") +reg296159 := PrimValue(reg296158) +reg296160 := PrimCons(reg296157, reg296159) +reg296161 := PrimSet(reg296156, reg296160) +__ctx.Return(reg296161) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.add-macro", value: __defun__shen_4add_1macro}) + +__defun__shen_4packaged_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2845 := __args[0] +_ = V2845 +reg296162 := PrimIsPair(V2845) +var reg296185 Obj +if reg296162 == True { +reg296163 := MakeSymbol("package") +reg296164 := PrimHead(V2845) +reg296165 := PrimEqual(reg296163, reg296164) +var reg296180 Obj +if reg296165 == True { +reg296166 := PrimTail(V2845) +reg296167 := PrimIsPair(reg296166) +var reg296175 Obj +if reg296167 == True { +reg296168 := PrimTail(V2845) +reg296169 := PrimTail(reg296168) +reg296170 := PrimIsPair(reg296169) +var reg296173 Obj +if reg296170 == True { +reg296171 := True; +reg296173 = reg296171 +} else { +reg296172 := False; +reg296173 = reg296172 +} +reg296175 = reg296173 +} else { +reg296174 := False; +reg296175 = reg296174 +} +var reg296178 Obj +if reg296175 == True { +reg296176 := True; +reg296178 = reg296176 +} else { +reg296177 := False; +reg296178 = reg296177 +} +reg296180 = reg296178 +} else { +reg296179 := False; +reg296180 = reg296179 +} +var reg296183 Obj +if reg296180 == True { +reg296181 := True; +reg296183 = reg296181 +} else { +reg296182 := False; +reg296183 = reg296182 +} +reg296185 = reg296183 +} else { +reg296184 := False; +reg296185 = reg296184 +} +if reg296185 == True { +reg296186 := True; +__ctx.Return(reg296186) +return +} else { +reg296187 := False; +__ctx.Return(reg296187) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.packaged?", value: __defun__shen_4packaged_2}) + +__defun__external = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2847 := __args[0] +_ = V2847 +reg296188 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg296189 := MakeSymbol("shen.external-symbols") +reg296190 := MakeSymbol("*property-vector*") +reg296191 := PrimValue(reg296190) +__ctx.TailApply(__defun__get, V2847, reg296189, reg296191) +return +}, 0) +reg296193 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg296194 := MakeString("package ") +reg296195 := MakeString(" has not been used.\n") +reg296196 := MakeSymbol("shen.a") +reg296197 := __e.Call(__defun__shen_4app, V2847, reg296195, reg296196) +reg296198 := PrimStringConcat(reg296194, reg296197) +reg296199 := PrimSimpleError(reg296198) +__ctx.Return(reg296199) +return +}, 1) +reg296200 := __e.Try(reg296188).Catch(reg296193) +__ctx.Return(reg296200) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "external", value: __defun__external}) + +__defun__internal = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2849 := __args[0] +_ = V2849 +reg296201 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg296202 := MakeSymbol("shen.internal-symbols") +reg296203 := MakeSymbol("*property-vector*") +reg296204 := PrimValue(reg296203) +__ctx.TailApply(__defun__get, V2849, reg296202, reg296204) +return +}, 0) +reg296206 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg296207 := MakeString("package ") +reg296208 := MakeString(" has not been used.\n") +reg296209 := MakeSymbol("shen.a") +reg296210 := __e.Call(__defun__shen_4app, V2849, reg296208, reg296209) +reg296211 := PrimStringConcat(reg296207, reg296210) +reg296212 := PrimSimpleError(reg296211) +__ctx.Return(reg296212) +return +}, 1) +reg296213 := __e.Try(reg296201).Catch(reg296206) +__ctx.Return(reg296213) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "internal", value: __defun__internal}) + +__defun__shen_4package_1contents = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2853 := __args[0] +_ = V2853 +reg296214 := PrimIsPair(V2853) +var reg296246 Obj +if reg296214 == True { +reg296215 := MakeSymbol("package") +reg296216 := PrimHead(V2853) +reg296217 := PrimEqual(reg296215, reg296216) +var reg296241 Obj +if reg296217 == True { +reg296218 := PrimTail(V2853) +reg296219 := PrimIsPair(reg296218) +var reg296236 Obj +if reg296219 == True { +reg296220 := MakeSymbol("null") +reg296221 := PrimTail(V2853) +reg296222 := PrimHead(reg296221) +reg296223 := PrimEqual(reg296220, reg296222) +var reg296231 Obj +if reg296223 == True { +reg296224 := PrimTail(V2853) +reg296225 := PrimTail(reg296224) +reg296226 := PrimIsPair(reg296225) +var reg296229 Obj +if reg296226 == True { +reg296227 := True; +reg296229 = reg296227 +} else { +reg296228 := False; +reg296229 = reg296228 +} +reg296231 = reg296229 +} else { +reg296230 := False; +reg296231 = reg296230 +} +var reg296234 Obj +if reg296231 == True { +reg296232 := True; +reg296234 = reg296232 +} else { +reg296233 := False; +reg296234 = reg296233 +} +reg296236 = reg296234 +} else { +reg296235 := False; +reg296236 = reg296235 +} +var reg296239 Obj +if reg296236 == True { +reg296237 := True; +reg296239 = reg296237 +} else { +reg296238 := False; +reg296239 = reg296238 +} +reg296241 = reg296239 +} else { +reg296240 := False; +reg296241 = reg296240 +} +var reg296244 Obj +if reg296241 == True { +reg296242 := True; +reg296244 = reg296242 +} else { +reg296243 := False; +reg296244 = reg296243 +} +reg296246 = reg296244 +} else { +reg296245 := False; +reg296246 = reg296245 +} +if reg296246 == True { +reg296247 := PrimTail(V2853) +reg296248 := PrimTail(reg296247) +reg296249 := PrimTail(reg296248) +__ctx.Return(reg296249) +return +} else { +reg296250 := PrimIsPair(V2853) +var reg296273 Obj +if reg296250 == True { +reg296251 := MakeSymbol("package") +reg296252 := PrimHead(V2853) +reg296253 := PrimEqual(reg296251, reg296252) +var reg296268 Obj +if reg296253 == True { +reg296254 := PrimTail(V2853) +reg296255 := PrimIsPair(reg296254) +var reg296263 Obj +if reg296255 == True { +reg296256 := PrimTail(V2853) +reg296257 := PrimTail(reg296256) +reg296258 := PrimIsPair(reg296257) +var reg296261 Obj +if reg296258 == True { +reg296259 := True; +reg296261 = reg296259 +} else { +reg296260 := False; +reg296261 = reg296260 +} +reg296263 = reg296261 +} else { +reg296262 := False; +reg296263 = reg296262 +} +var reg296266 Obj +if reg296263 == True { +reg296264 := True; +reg296266 = reg296264 +} else { +reg296265 := False; +reg296266 = reg296265 +} +reg296268 = reg296266 +} else { +reg296267 := False; +reg296268 = reg296267 +} +var reg296271 Obj +if reg296268 == True { +reg296269 := True; +reg296271 = reg296269 +} else { +reg296270 := False; +reg296271 = reg296270 +} +reg296273 = reg296271 +} else { +reg296272 := False; +reg296273 = reg296272 +} +if reg296273 == True { +reg296274 := PrimTail(V2853) +reg296275 := PrimHead(reg296274) +reg296276 := PrimStr(reg296275) +reg296277 := MakeString(".") +reg296278 := PrimStringConcat(reg296276, reg296277) +reg296279 := PrimIntern(reg296278) +PackageNameDot := reg296279 +_ = PackageNameDot +reg296280 := __e.Call(__defun__explode, PackageNameDot) +ExpPackageNameDot := reg296280 +_ = ExpPackageNameDot +reg296281 := PrimTail(V2853) +reg296282 := PrimHead(reg296281) +reg296283 := PrimTail(V2853) +reg296284 := PrimTail(reg296283) +reg296285 := PrimHead(reg296284) +reg296286 := PrimTail(V2853) +reg296287 := PrimTail(reg296286) +reg296288 := PrimTail(reg296287) +__ctx.TailApply(__defun__shen_4packageh, reg296282, reg296285, reg296288, ExpPackageNameDot) +return +} else { +reg296290 := MakeSymbol("shen.package-contents") +__ctx.TailApply(__defun__shen_4f__error, reg296290) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.package-contents", value: __defun__shen_4package_1contents}) + +__defun__shen_4walk = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2856 := __args[0] +_ = V2856 +V2857 := __args[1] +_ = V2857 +reg296292 := PrimIsPair(V2857) +if reg296292 == True { +reg296293 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4walk, V2856, Z) +return +}, 1) +reg296295 := __e.Call(__defun__map, reg296293, V2857) +__ctx.TailApply(V2856, reg296295) +return +} else { +__ctx.TailApply(V2856, V2857) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.walk", value: __defun__shen_4walk}) + +__defun__compile = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2861 := __args[0] +_ = V2861 +V2862 := __args[1] +_ = V2862 +V2863 := __args[2] +_ = V2863 +reg296298 := Nil; +reg296299 := Nil; +reg296300 := PrimCons(reg296298, reg296299) +reg296301 := PrimCons(V2862, reg296300) +reg296302 := __e.Call(V2861, reg296301) +O := reg296302 +_ = O +reg296303 := __e.Call(__defun__fail) +reg296304 := PrimEqual(reg296303, O) +var reg296312 Obj +if reg296304 == True { +reg296305 := True; +reg296312 = reg296305 +} else { +reg296306 := PrimHead(O) +reg296307 := __e.Call(__defun__empty_2, reg296306) +reg296308 := PrimNot(reg296307) +var reg296311 Obj +if reg296308 == True { +reg296309 := True; +reg296311 = reg296309 +} else { +reg296310 := False; +reg296311 = reg296310 +} +reg296312 = reg296311 +} +if reg296312 == True { +__ctx.TailApply(V2863, O) +return +} else { +__ctx.TailApply(__defun__shen_4hdtl, O) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "compile", value: __defun__compile}) + +__defun__fail_1if = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2866 := __args[0] +_ = V2866 +V2867 := __args[1] +_ = V2867 +reg296315 := __e.Call(V2866, V2867) +if reg296315 == True { +__ctx.TailApply(__defun__fail) +return +} else { +__ctx.Return(V2867) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "fail-if", value: __defun__fail_1if}) + +__defun___8s = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2870 := __args[0] +_ = V2870 +V2871 := __args[1] +_ = V2871 +reg296317 := PrimStringConcat(V2870, V2871) +__ctx.Return(reg296317) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "@s", value: __defun___8s}) + +__defun__tc_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg296318 := MakeSymbol("shen.*tc*") +reg296319 := PrimValue(reg296318) +__ctx.Return(reg296319) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "tc?", value: __defun__tc_2}) + +__defun__ps = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2873 := __args[0] +_ = V2873 +reg296320 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg296321 := MakeSymbol("shen.source") +reg296322 := MakeSymbol("*property-vector*") +reg296323 := PrimValue(reg296322) +__ctx.TailApply(__defun__get, V2873, reg296321, reg296323) +return +}, 0) +reg296325 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg296326 := MakeString(" not found.\n") +reg296327 := MakeSymbol("shen.a") +reg296328 := __e.Call(__defun__shen_4app, V2873, reg296326, reg296327) +reg296329 := PrimSimpleError(reg296328) +__ctx.Return(reg296329) +return +}, 1) +reg296330 := __e.Try(reg296320).Catch(reg296325) +__ctx.Return(reg296330) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "ps", value: __defun__ps}) + +__defun__stinput = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg296331 := MakeSymbol("*stinput*") +reg296332 := PrimValue(reg296331) +__ctx.Return(reg296332) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "stinput", value: __defun__stinput}) + +__defun__vector = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2875 := __args[0] +_ = V2875 +reg296333 := MakeNumber(1) +reg296334 := PrimNumberAdd(V2875, reg296333) +reg296335 := PrimAbsvector(reg296334) +Vector := reg296335 +_ = Vector +reg296336 := MakeNumber(0) +reg296337 := PrimVectorSet(Vector, reg296336, V2875) +ZeroStamp := reg296337 +_ = ZeroStamp +reg296338 := MakeNumber(0) +reg296339 := PrimEqual(V2875, reg296338) +var reg296343 Obj +if reg296339 == True { +reg296343 = ZeroStamp +} else { +reg296340 := MakeNumber(1) +reg296341 := __e.Call(__defun__fail) +reg296342 := __e.Call(__defun__shen_4fillvector, ZeroStamp, reg296340, V2875, reg296341) +reg296343 = reg296342 +} +Standard := reg296343 +_ = Standard +__ctx.Return(Standard) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "vector", value: __defun__vector}) + +__defun__shen_4fillvector = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2881 := __args[0] +_ = V2881 +V2882 := __args[1] +_ = V2882 +V2883 := __args[2] +_ = V2883 +V2884 := __args[3] +_ = V2884 +reg296344 := PrimEqual(V2883, V2882) +if reg296344 == True { +reg296345 := PrimVectorSet(V2881, V2883, V2884) +__ctx.Return(reg296345) +return +} else { +reg296346 := PrimVectorSet(V2881, V2882, V2884) +reg296347 := MakeNumber(1) +reg296348 := PrimNumberAdd(reg296347, V2882) +__ctx.TailApply(__defun__shen_4fillvector, reg296346, reg296348, V2883, V2884) +return +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.fillvector", value: __defun__shen_4fillvector}) + +__defun__vector_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2886 := __args[0] +_ = V2886 +reg296350 := PrimIsVector(V2886) +if reg296350 == True { +reg296351 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg296352 := MakeNumber(0) +reg296353 := PrimVectorGet(V2886, reg296352) +__ctx.Return(reg296353) +return +}, 0) +reg296354 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg296355 := MakeNumber(-1) +__ctx.Return(reg296355) +return +}, 1) +reg296356 := __e.Try(reg296351).Catch(reg296354) +X := reg296356 +_ = X +reg296357 := PrimIsNumber(X) +var reg296364 Obj +if reg296357 == True { +reg296358 := MakeNumber(0) +reg296359 := PrimGreatEqual(X, reg296358) +var reg296362 Obj +if reg296359 == True { +reg296360 := True; +reg296362 = reg296360 +} else { +reg296361 := False; +reg296362 = reg296361 +} +reg296364 = reg296362 +} else { +reg296363 := False; +reg296364 = reg296363 +} +if reg296364 == True { +reg296365 := True; +__ctx.Return(reg296365) +return +} else { +reg296366 := False; +__ctx.Return(reg296366) +return +} +} else { +reg296367 := False; +__ctx.Return(reg296367) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "vector?", value: __defun__vector_2}) + +__defun__vector_1_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2890 := __args[0] +_ = V2890 +V2891 := __args[1] +_ = V2891 +V2892 := __args[2] +_ = V2892 +reg296368 := MakeNumber(0) +reg296369 := PrimEqual(V2891, reg296368) +if reg296369 == True { +reg296370 := MakeString("cannot access 0th element of a vector\n") +reg296371 := PrimSimpleError(reg296370) +__ctx.Return(reg296371) +return +} else { +reg296372 := PrimVectorSet(V2890, V2891, V2892) +__ctx.Return(reg296372) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "vector->", value: __defun__vector_1_6}) + +__defun___5_1vector = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2895 := __args[0] +_ = V2895 +V2896 := __args[1] +_ = V2896 +reg296373 := MakeNumber(0) +reg296374 := PrimEqual(V2896, reg296373) +if reg296374 == True { +reg296375 := MakeString("cannot access 0th element of a vector\n") +reg296376 := PrimSimpleError(reg296375) +__ctx.Return(reg296376) +return +} else { +reg296377 := PrimVectorGet(V2895, V2896) +VectorElement := reg296377 +_ = VectorElement +reg296378 := __e.Call(__defun__fail) +reg296379 := PrimEqual(VectorElement, reg296378) +if reg296379 == True { +reg296380 := MakeString("vector element not found\n") +reg296381 := PrimSimpleError(reg296380) +__ctx.Return(reg296381) +return +} else { +__ctx.Return(VectorElement) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "<-vector", value: __defun___5_1vector}) + +__defun__shen_4posint_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2898 := __args[0] +_ = V2898 +reg296382 := PrimIsInteger(V2898) +if reg296382 == True { +reg296383 := MakeNumber(0) +reg296384 := PrimGreatEqual(V2898, reg296383) +if reg296384 == True { +reg296385 := True; +__ctx.Return(reg296385) +return +} else { +reg296386 := False; +__ctx.Return(reg296386) +return +} +} else { +reg296387 := False; +__ctx.Return(reg296387) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.posint?", value: __defun__shen_4posint_2}) + +__defun__limit = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2900 := __args[0] +_ = V2900 +reg296388 := MakeNumber(0) +reg296389 := PrimVectorGet(V2900, reg296388) +__ctx.Return(reg296389) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "limit", value: __defun__limit}) + +__defun__symbol_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2902 := __args[0] +_ = V2902 +reg296390 := __e.Call(__defun__boolean_2, V2902) +var reg296402 Obj +if reg296390 == True { +reg296391 := True; +reg296402 = reg296391 +} else { +reg296392 := PrimIsNumber(V2902) +var reg296398 Obj +if reg296392 == True { +reg296393 := True; +reg296398 = reg296393 +} else { +reg296394 := PrimIsString(V2902) +var reg296397 Obj +if reg296394 == True { +reg296395 := True; +reg296397 = reg296395 +} else { +reg296396 := False; +reg296397 = reg296396 +} +reg296398 = reg296397 +} +var reg296401 Obj +if reg296398 == True { +reg296399 := True; +reg296401 = reg296399 +} else { +reg296400 := False; +reg296401 = reg296400 +} +reg296402 = reg296401 +} +if reg296402 == True { +reg296403 := False; +__ctx.Return(reg296403) +return +} else { +reg296404 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg296405 := PrimStr(V2902) +String := reg296405 +_ = String +__ctx.TailApply(__defun__shen_4analyse_1symbol_2, String) +return +}, 0) +reg296407 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg296408 := False; +__ctx.Return(reg296408) +return +}, 1) +reg296409 := __e.Try(reg296404).Catch(reg296407) +__ctx.Return(reg296409) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "symbol?", value: __defun__symbol_2}) + +__defun__shen_4analyse_1symbol_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2904 := __args[0] +_ = V2904 +reg296410 := MakeString("") +reg296411 := PrimEqual(reg296410, V2904) +if reg296411 == True { +reg296412 := False; +__ctx.Return(reg296412) +return +} else { +reg296413 := __e.Call(__defun__shen_4_7string_2, V2904) +if reg296413 == True { +reg296414 := MakeNumber(0) +reg296415 := PrimPos(V2904, reg296414) +reg296416 := __e.Call(__defun__shen_4alpha_2, reg296415) +if reg296416 == True { +reg296417 := PrimTailString(V2904) +reg296418 := __e.Call(__defun__shen_4alphanums_2, reg296417) +if reg296418 == True { +reg296419 := True; +__ctx.Return(reg296419) +return +} else { +reg296420 := False; +__ctx.Return(reg296420) +return +} +} else { +reg296421 := False; +__ctx.Return(reg296421) +return +} +} else { +reg296422 := MakeSymbol("shen.analyse-symbol?") +__ctx.TailApply(__defun__shen_4f__error, reg296422) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.analyse-symbol?", value: __defun__shen_4analyse_1symbol_2}) + +__defun__shen_4alpha_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2906 := __args[0] +_ = V2906 +reg296424 := MakeString("A") +reg296425 := MakeString("B") +reg296426 := MakeString("C") +reg296427 := MakeString("D") +reg296428 := MakeString("E") +reg296429 := MakeString("F") +reg296430 := MakeString("G") +reg296431 := MakeString("H") +reg296432 := MakeString("I") +reg296433 := MakeString("J") +reg296434 := MakeString("K") +reg296435 := MakeString("L") +reg296436 := MakeString("M") +reg296437 := MakeString("N") +reg296438 := MakeString("O") +reg296439 := MakeString("P") +reg296440 := MakeString("Q") +reg296441 := MakeString("R") +reg296442 := MakeString("S") +reg296443 := MakeString("T") +reg296444 := MakeString("U") +reg296445 := MakeString("V") +reg296446 := MakeString("W") +reg296447 := MakeString("X") +reg296448 := MakeString("Y") +reg296449 := MakeString("Z") +reg296450 := MakeString("a") +reg296451 := MakeString("b") +reg296452 := MakeString("c") +reg296453 := MakeString("d") +reg296454 := MakeString("e") +reg296455 := MakeString("f") +reg296456 := MakeString("g") +reg296457 := MakeString("h") +reg296458 := MakeString("i") +reg296459 := MakeString("j") +reg296460 := MakeString("k") +reg296461 := MakeString("l") +reg296462 := MakeString("m") +reg296463 := MakeString("n") +reg296464 := MakeString("o") +reg296465 := MakeString("p") +reg296466 := MakeString("q") +reg296467 := MakeString("r") +reg296468 := MakeString("s") +reg296469 := MakeString("t") +reg296470 := MakeString("u") +reg296471 := MakeString("v") +reg296472 := MakeString("w") +reg296473 := MakeString("x") +reg296474 := MakeString("y") +reg296475 := MakeString("z") +reg296476 := MakeString("=") +reg296477 := MakeString("*") +reg296478 := MakeString("/") +reg296479 := MakeString("+") +reg296480 := MakeString("-") +reg296481 := MakeString("_") +reg296482 := MakeString("?") +reg296483 := MakeString("$") +reg296484 := MakeString("!") +reg296485 := MakeString("@") +reg296486 := MakeString("~") +reg296487 := MakeString(">") +reg296488 := MakeString("<") +reg296489 := MakeString("&") +reg296490 := MakeString("%") +reg296491 := MakeString("{") +reg296492 := MakeString("}") +reg296493 := MakeString(":") +reg296494 := MakeString(";") +reg296495 := MakeString("`") +reg296496 := MakeString("#") +reg296497 := MakeString("'") +reg296498 := MakeString(".") +reg296499 := Nil; +reg296500 := PrimCons(reg296498, reg296499) +reg296501 := PrimCons(reg296497, reg296500) +reg296502 := PrimCons(reg296496, reg296501) +reg296503 := PrimCons(reg296495, reg296502) +reg296504 := PrimCons(reg296494, reg296503) +reg296505 := PrimCons(reg296493, reg296504) +reg296506 := PrimCons(reg296492, reg296505) +reg296507 := PrimCons(reg296491, reg296506) +reg296508 := PrimCons(reg296490, reg296507) +reg296509 := PrimCons(reg296489, reg296508) +reg296510 := PrimCons(reg296488, reg296509) +reg296511 := PrimCons(reg296487, reg296510) +reg296512 := PrimCons(reg296486, reg296511) +reg296513 := PrimCons(reg296485, reg296512) +reg296514 := PrimCons(reg296484, reg296513) +reg296515 := PrimCons(reg296483, reg296514) +reg296516 := PrimCons(reg296482, reg296515) +reg296517 := PrimCons(reg296481, reg296516) +reg296518 := PrimCons(reg296480, reg296517) +reg296519 := PrimCons(reg296479, reg296518) +reg296520 := PrimCons(reg296478, reg296519) +reg296521 := PrimCons(reg296477, reg296520) +reg296522 := PrimCons(reg296476, reg296521) +reg296523 := PrimCons(reg296475, reg296522) +reg296524 := PrimCons(reg296474, reg296523) +reg296525 := PrimCons(reg296473, reg296524) +reg296526 := PrimCons(reg296472, reg296525) +reg296527 := PrimCons(reg296471, reg296526) +reg296528 := PrimCons(reg296470, reg296527) +reg296529 := PrimCons(reg296469, reg296528) +reg296530 := PrimCons(reg296468, reg296529) +reg296531 := PrimCons(reg296467, reg296530) +reg296532 := PrimCons(reg296466, reg296531) +reg296533 := PrimCons(reg296465, reg296532) +reg296534 := PrimCons(reg296464, reg296533) +reg296535 := PrimCons(reg296463, reg296534) +reg296536 := PrimCons(reg296462, reg296535) +reg296537 := PrimCons(reg296461, reg296536) +reg296538 := PrimCons(reg296460, reg296537) +reg296539 := PrimCons(reg296459, reg296538) +reg296540 := PrimCons(reg296458, reg296539) +reg296541 := PrimCons(reg296457, reg296540) +reg296542 := PrimCons(reg296456, reg296541) +reg296543 := PrimCons(reg296455, reg296542) +reg296544 := PrimCons(reg296454, reg296543) +reg296545 := PrimCons(reg296453, reg296544) +reg296546 := PrimCons(reg296452, reg296545) +reg296547 := PrimCons(reg296451, reg296546) +reg296548 := PrimCons(reg296450, reg296547) +reg296549 := PrimCons(reg296449, reg296548) +reg296550 := PrimCons(reg296448, reg296549) +reg296551 := PrimCons(reg296447, reg296550) +reg296552 := PrimCons(reg296446, reg296551) +reg296553 := PrimCons(reg296445, reg296552) +reg296554 := PrimCons(reg296444, reg296553) +reg296555 := PrimCons(reg296443, reg296554) +reg296556 := PrimCons(reg296442, reg296555) +reg296557 := PrimCons(reg296441, reg296556) +reg296558 := PrimCons(reg296440, reg296557) +reg296559 := PrimCons(reg296439, reg296558) +reg296560 := PrimCons(reg296438, reg296559) +reg296561 := PrimCons(reg296437, reg296560) +reg296562 := PrimCons(reg296436, reg296561) +reg296563 := PrimCons(reg296435, reg296562) +reg296564 := PrimCons(reg296434, reg296563) +reg296565 := PrimCons(reg296433, reg296564) +reg296566 := PrimCons(reg296432, reg296565) +reg296567 := PrimCons(reg296431, reg296566) +reg296568 := PrimCons(reg296430, reg296567) +reg296569 := PrimCons(reg296429, reg296568) +reg296570 := PrimCons(reg296428, reg296569) +reg296571 := PrimCons(reg296427, reg296570) +reg296572 := PrimCons(reg296426, reg296571) +reg296573 := PrimCons(reg296425, reg296572) +reg296574 := PrimCons(reg296424, reg296573) +__ctx.TailApply(__defun__element_2, V2906, reg296574) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.alpha?", value: __defun__shen_4alpha_2}) + +__defun__shen_4alphanums_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2908 := __args[0] +_ = V2908 +reg296576 := MakeString("") +reg296577 := PrimEqual(reg296576, V2908) +if reg296577 == True { +reg296578 := True; +__ctx.Return(reg296578) +return +} else { +reg296579 := __e.Call(__defun__shen_4_7string_2, V2908) +if reg296579 == True { +reg296580 := MakeNumber(0) +reg296581 := PrimPos(V2908, reg296580) +reg296582 := __e.Call(__defun__shen_4alphanum_2, reg296581) +if reg296582 == True { +reg296583 := PrimTailString(V2908) +reg296584 := __e.Call(__defun__shen_4alphanums_2, reg296583) +if reg296584 == True { +reg296585 := True; +__ctx.Return(reg296585) +return +} else { +reg296586 := False; +__ctx.Return(reg296586) +return +} +} else { +reg296587 := False; +__ctx.Return(reg296587) +return +} +} else { +reg296588 := MakeSymbol("shen.alphanums?") +__ctx.TailApply(__defun__shen_4f__error, reg296588) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.alphanums?", value: __defun__shen_4alphanums_2}) + +__defun__shen_4alphanum_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2910 := __args[0] +_ = V2910 +reg296590 := __e.Call(__defun__shen_4alpha_2, V2910) +if reg296590 == True { +reg296591 := True; +__ctx.Return(reg296591) +return +} else { +reg296592 := __e.Call(__defun__shen_4digit_2, V2910) +if reg296592 == True { +reg296593 := True; +__ctx.Return(reg296593) +return +} else { +reg296594 := False; +__ctx.Return(reg296594) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.alphanum?", value: __defun__shen_4alphanum_2}) + +__defun__shen_4digit_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2912 := __args[0] +_ = V2912 +reg296595 := MakeString("1") +reg296596 := MakeString("2") +reg296597 := MakeString("3") +reg296598 := MakeString("4") +reg296599 := MakeString("5") +reg296600 := MakeString("6") +reg296601 := MakeString("7") +reg296602 := MakeString("8") +reg296603 := MakeString("9") +reg296604 := MakeString("0") +reg296605 := Nil; +reg296606 := PrimCons(reg296604, reg296605) +reg296607 := PrimCons(reg296603, reg296606) +reg296608 := PrimCons(reg296602, reg296607) +reg296609 := PrimCons(reg296601, reg296608) +reg296610 := PrimCons(reg296600, reg296609) +reg296611 := PrimCons(reg296599, reg296610) +reg296612 := PrimCons(reg296598, reg296611) +reg296613 := PrimCons(reg296597, reg296612) +reg296614 := PrimCons(reg296596, reg296613) +reg296615 := PrimCons(reg296595, reg296614) +__ctx.TailApply(__defun__element_2, V2912, reg296615) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.digit?", value: __defun__shen_4digit_2}) + +__defun__variable_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2914 := __args[0] +_ = V2914 +reg296617 := __e.Call(__defun__boolean_2, V2914) +var reg296629 Obj +if reg296617 == True { +reg296618 := True; +reg296629 = reg296618 +} else { +reg296619 := PrimIsNumber(V2914) +var reg296625 Obj +if reg296619 == True { +reg296620 := True; +reg296625 = reg296620 +} else { +reg296621 := PrimIsString(V2914) +var reg296624 Obj +if reg296621 == True { +reg296622 := True; +reg296624 = reg296622 +} else { +reg296623 := False; +reg296624 = reg296623 +} +reg296625 = reg296624 +} +var reg296628 Obj +if reg296625 == True { +reg296626 := True; +reg296628 = reg296626 +} else { +reg296627 := False; +reg296628 = reg296627 +} +reg296629 = reg296628 +} +if reg296629 == True { +reg296630 := False; +__ctx.Return(reg296630) +return +} else { +reg296631 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg296632 := PrimStr(V2914) +String := reg296632 +_ = String +__ctx.TailApply(__defun__shen_4analyse_1variable_2, String) +return +}, 0) +reg296634 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg296635 := False; +__ctx.Return(reg296635) +return +}, 1) +reg296636 := __e.Try(reg296631).Catch(reg296634) +__ctx.Return(reg296636) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "variable?", value: __defun__variable_2}) + +__defun__shen_4analyse_1variable_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2916 := __args[0] +_ = V2916 +reg296637 := __e.Call(__defun__shen_4_7string_2, V2916) +if reg296637 == True { +reg296638 := MakeNumber(0) +reg296639 := PrimPos(V2916, reg296638) +reg296640 := __e.Call(__defun__shen_4uppercase_2, reg296639) +if reg296640 == True { +reg296641 := PrimTailString(V2916) +reg296642 := __e.Call(__defun__shen_4alphanums_2, reg296641) +if reg296642 == True { +reg296643 := True; +__ctx.Return(reg296643) +return +} else { +reg296644 := False; +__ctx.Return(reg296644) +return +} +} else { +reg296645 := False; +__ctx.Return(reg296645) +return +} +} else { +reg296646 := MakeSymbol("shen.analyse-variable?") +__ctx.TailApply(__defun__shen_4f__error, reg296646) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.analyse-variable?", value: __defun__shen_4analyse_1variable_2}) + +__defun__shen_4uppercase_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2918 := __args[0] +_ = V2918 +reg296648 := MakeString("A") +reg296649 := MakeString("B") +reg296650 := MakeString("C") +reg296651 := MakeString("D") +reg296652 := MakeString("E") +reg296653 := MakeString("F") +reg296654 := MakeString("G") +reg296655 := MakeString("H") +reg296656 := MakeString("I") +reg296657 := MakeString("J") +reg296658 := MakeString("K") +reg296659 := MakeString("L") +reg296660 := MakeString("M") +reg296661 := MakeString("N") +reg296662 := MakeString("O") +reg296663 := MakeString("P") +reg296664 := MakeString("Q") +reg296665 := MakeString("R") +reg296666 := MakeString("S") +reg296667 := MakeString("T") +reg296668 := MakeString("U") +reg296669 := MakeString("V") +reg296670 := MakeString("W") +reg296671 := MakeString("X") +reg296672 := MakeString("Y") +reg296673 := MakeString("Z") +reg296674 := Nil; +reg296675 := PrimCons(reg296673, reg296674) +reg296676 := PrimCons(reg296672, reg296675) +reg296677 := PrimCons(reg296671, reg296676) +reg296678 := PrimCons(reg296670, reg296677) +reg296679 := PrimCons(reg296669, reg296678) +reg296680 := PrimCons(reg296668, reg296679) +reg296681 := PrimCons(reg296667, reg296680) +reg296682 := PrimCons(reg296666, reg296681) +reg296683 := PrimCons(reg296665, reg296682) +reg296684 := PrimCons(reg296664, reg296683) +reg296685 := PrimCons(reg296663, reg296684) +reg296686 := PrimCons(reg296662, reg296685) +reg296687 := PrimCons(reg296661, reg296686) +reg296688 := PrimCons(reg296660, reg296687) +reg296689 := PrimCons(reg296659, reg296688) +reg296690 := PrimCons(reg296658, reg296689) +reg296691 := PrimCons(reg296657, reg296690) +reg296692 := PrimCons(reg296656, reg296691) +reg296693 := PrimCons(reg296655, reg296692) +reg296694 := PrimCons(reg296654, reg296693) +reg296695 := PrimCons(reg296653, reg296694) +reg296696 := PrimCons(reg296652, reg296695) +reg296697 := PrimCons(reg296651, reg296696) +reg296698 := PrimCons(reg296650, reg296697) +reg296699 := PrimCons(reg296649, reg296698) +reg296700 := PrimCons(reg296648, reg296699) +__ctx.TailApply(__defun__element_2, V2918, reg296700) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.uppercase?", value: __defun__shen_4uppercase_2}) + +__defun__gensym = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2920 := __args[0] +_ = V2920 +reg296702 := MakeSymbol("shen.*gensym*") +reg296703 := MakeNumber(1) +reg296704 := MakeSymbol("shen.*gensym*") +reg296705 := PrimValue(reg296704) +reg296706 := PrimNumberAdd(reg296703, reg296705) +reg296707 := PrimSet(reg296702, reg296706) +__ctx.TailApply(__defun__concat, V2920, reg296707) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "gensym", value: __defun__gensym}) + +__defun__concat = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2923 := __args[0] +_ = V2923 +V2924 := __args[1] +_ = V2924 +reg296709 := PrimStr(V2923) +reg296710 := PrimStr(V2924) +reg296711 := PrimStringConcat(reg296709, reg296710) +reg296712 := PrimIntern(reg296711) +__ctx.Return(reg296712) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "concat", value: __defun__concat}) + +__defun___8p = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2927 := __args[0] +_ = V2927 +V2928 := __args[1] +_ = V2928 +reg296713 := MakeNumber(3) +reg296714 := PrimAbsvector(reg296713) +Vector := reg296714 +_ = Vector +reg296715 := MakeNumber(0) +reg296716 := MakeSymbol("shen.tuple") +reg296717 := PrimVectorSet(Vector, reg296715, reg296716) +Tag := reg296717 +_ = Tag +reg296718 := MakeNumber(1) +reg296719 := PrimVectorSet(Vector, reg296718, V2927) +Fst := reg296719 +_ = Fst +reg296720 := MakeNumber(2) +reg296721 := PrimVectorSet(Vector, reg296720, V2928) +Snd := reg296721 +_ = Snd +__ctx.Return(Vector) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "@p", value: __defun___8p}) + +__defun__fst = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2930 := __args[0] +_ = V2930 +reg296722 := MakeNumber(1) +reg296723 := PrimVectorGet(V2930, reg296722) +__ctx.Return(reg296723) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "fst", value: __defun__fst}) + +__defun__snd = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2932 := __args[0] +_ = V2932 +reg296724 := MakeNumber(2) +reg296725 := PrimVectorGet(V2932, reg296724) +__ctx.Return(reg296725) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "snd", value: __defun__snd}) + +__defun__tuple_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2934 := __args[0] +_ = V2934 +reg296726 := PrimIsVector(V2934) +if reg296726 == True { +reg296727 := MakeSymbol("shen.tuple") +reg296728 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg296729 := MakeNumber(0) +reg296730 := PrimVectorGet(V2934, reg296729) +__ctx.Return(reg296730) +return +}, 0) +reg296731 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg296732 := MakeSymbol("shen.not-tuple") +__ctx.Return(reg296732) +return +}, 1) +reg296733 := __e.Try(reg296728).Catch(reg296731) +reg296734 := PrimEqual(reg296727, reg296733) +if reg296734 == True { +reg296735 := True; +__ctx.Return(reg296735) +return +} else { +reg296736 := False; +__ctx.Return(reg296736) +return +} +} else { +reg296737 := False; +__ctx.Return(reg296737) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "tuple?", value: __defun__tuple_2}) + +__defun__append = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2937 := __args[0] +_ = V2937 +V2938 := __args[1] +_ = V2938 +reg296738 := Nil; +reg296739 := PrimEqual(reg296738, V2937) +if reg296739 == True { +__ctx.Return(V2938) +return +} else { +reg296740 := PrimIsPair(V2937) +if reg296740 == True { +reg296741 := PrimHead(V2937) +reg296742 := PrimTail(V2937) +reg296743 := __e.Call(__defun__append, reg296742, V2938) +reg296744 := PrimCons(reg296741, reg296743) +__ctx.Return(reg296744) +return +} else { +reg296745 := MakeSymbol("append") +__ctx.TailApply(__defun__shen_4f__error, reg296745) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "append", value: __defun__append}) + +__defun___8v = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2941 := __args[0] +_ = V2941 +V2942 := __args[1] +_ = V2942 +reg296747 := __e.Call(__defun__limit, V2942) +Limit := reg296747 +_ = Limit +reg296748 := MakeNumber(1) +reg296749 := PrimNumberAdd(Limit, reg296748) +reg296750 := __e.Call(__defun__vector, reg296749) +NewVector := reg296750 +_ = NewVector +reg296751 := MakeNumber(1) +reg296752 := __e.Call(__defun__vector_1_6, NewVector, reg296751, V2941) +X_7NewVector := reg296752 +_ = X_7NewVector +reg296753 := MakeNumber(0) +reg296754 := PrimEqual(Limit, reg296753) +if reg296754 == True { +__ctx.Return(X_7NewVector) +return +} else { +reg296755 := MakeNumber(1) +__ctx.TailApply(__defun__shen_4_8v_1help, V2942, reg296755, Limit, X_7NewVector) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "@v", value: __defun___8v}) + +__defun__shen_4_8v_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2948 := __args[0] +_ = V2948 +V2949 := __args[1] +_ = V2949 +V2950 := __args[2] +_ = V2950 +V2951 := __args[3] +_ = V2951 +reg296757 := PrimEqual(V2950, V2949) +if reg296757 == True { +reg296758 := MakeNumber(1) +reg296759 := PrimNumberAdd(V2950, reg296758) +__ctx.TailApply(__defun__shen_4copyfromvector, V2948, V2951, V2950, reg296759) +return +} else { +reg296761 := MakeNumber(1) +reg296762 := PrimNumberAdd(V2949, reg296761) +reg296763 := MakeNumber(1) +reg296764 := PrimNumberAdd(V2949, reg296763) +reg296765 := __e.Call(__defun__shen_4copyfromvector, V2948, V2951, V2949, reg296764) +__ctx.TailApply(__defun__shen_4_8v_1help, V2948, reg296762, V2950, reg296765) +return +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.@v-help", value: __defun__shen_4_8v_1help}) + +__defun__shen_4copyfromvector = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2956 := __args[0] +_ = V2956 +V2957 := __args[1] +_ = V2957 +V2958 := __args[2] +_ = V2958 +V2959 := __args[3] +_ = V2959 +reg296767 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg296768 := __e.Call(__defun___5_1vector, V2956, V2958) +__ctx.TailApply(__defun__vector_1_6, V2957, V2959, reg296768) +return +}, 0) +reg296770 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +__ctx.Return(V2957) +return +}, 1) +reg296771 := __e.Try(reg296767).Catch(reg296770) +__ctx.Return(reg296771) +return +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.copyfromvector", value: __defun__shen_4copyfromvector}) + +__defun__hdv = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2961 := __args[0] +_ = V2961 +reg296772 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg296773 := MakeNumber(1) +__ctx.TailApply(__defun___5_1vector, V2961, reg296773) +return +}, 0) +reg296775 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg296776 := MakeString("hdv needs a non-empty vector as an argument; not ") +reg296777 := MakeString("\n") +reg296778 := MakeSymbol("shen.s") +reg296779 := __e.Call(__defun__shen_4app, V2961, reg296777, reg296778) +reg296780 := PrimStringConcat(reg296776, reg296779) +reg296781 := PrimSimpleError(reg296780) +__ctx.Return(reg296781) +return +}, 1) +reg296782 := __e.Try(reg296772).Catch(reg296775) +__ctx.Return(reg296782) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "hdv", value: __defun__hdv}) + +__defun__tlv = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2963 := __args[0] +_ = V2963 +reg296783 := __e.Call(__defun__limit, V2963) +Limit := reg296783 +_ = Limit +reg296784 := MakeNumber(0) +reg296785 := PrimEqual(Limit, reg296784) +if reg296785 == True { +reg296786 := MakeString("cannot take the tail of the empty vector\n") +reg296787 := PrimSimpleError(reg296786) +__ctx.Return(reg296787) +return +} else { +reg296788 := MakeNumber(1) +reg296789 := PrimEqual(Limit, reg296788) +if reg296789 == True { +reg296790 := MakeNumber(0) +__ctx.TailApply(__defun__vector, reg296790) +return +} else { +reg296792 := MakeNumber(1) +reg296793 := PrimNumberSubtract(Limit, reg296792) +reg296794 := __e.Call(__defun__vector, reg296793) +NewVector := reg296794 +_ = NewVector +reg296795 := MakeNumber(2) +reg296796 := MakeNumber(1) +reg296797 := PrimNumberSubtract(Limit, reg296796) +reg296798 := __e.Call(__defun__vector, reg296797) +__ctx.TailApply(__defun__shen_4tlv_1help, V2963, reg296795, Limit, reg296798) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "tlv", value: __defun__tlv}) + +__defun__shen_4tlv_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2969 := __args[0] +_ = V2969 +V2970 := __args[1] +_ = V2970 +V2971 := __args[2] +_ = V2971 +V2972 := __args[3] +_ = V2972 +reg296800 := PrimEqual(V2971, V2970) +if reg296800 == True { +reg296801 := MakeNumber(1) +reg296802 := PrimNumberSubtract(V2971, reg296801) +__ctx.TailApply(__defun__shen_4copyfromvector, V2969, V2972, V2971, reg296802) +return +} else { +reg296804 := MakeNumber(1) +reg296805 := PrimNumberAdd(V2970, reg296804) +reg296806 := MakeNumber(1) +reg296807 := PrimNumberSubtract(V2970, reg296806) +reg296808 := __e.Call(__defun__shen_4copyfromvector, V2969, V2972, V2970, reg296807) +__ctx.TailApply(__defun__shen_4tlv_1help, V2969, reg296805, V2971, reg296808) +return +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.tlv-help", value: __defun__shen_4tlv_1help}) + +__defun__assoc = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2984 := __args[0] +_ = V2984 +V2985 := __args[1] +_ = V2985 +reg296810 := Nil; +reg296811 := PrimEqual(reg296810, V2985) +if reg296811 == True { +reg296812 := Nil; +__ctx.Return(reg296812) +return +} else { +reg296813 := PrimIsPair(V2985) +var reg296828 Obj +if reg296813 == True { +reg296814 := PrimHead(V2985) +reg296815 := PrimIsPair(reg296814) +var reg296823 Obj +if reg296815 == True { +reg296816 := PrimHead(V2985) +reg296817 := PrimHead(reg296816) +reg296818 := PrimEqual(reg296817, V2984) +var reg296821 Obj +if reg296818 == True { +reg296819 := True; +reg296821 = reg296819 +} else { +reg296820 := False; +reg296821 = reg296820 +} +reg296823 = reg296821 +} else { +reg296822 := False; +reg296823 = reg296822 +} +var reg296826 Obj +if reg296823 == True { +reg296824 := True; +reg296826 = reg296824 +} else { +reg296825 := False; +reg296826 = reg296825 +} +reg296828 = reg296826 +} else { +reg296827 := False; +reg296828 = reg296827 +} +if reg296828 == True { +reg296829 := PrimHead(V2985) +__ctx.Return(reg296829) +return +} else { +reg296830 := PrimIsPair(V2985) +if reg296830 == True { +reg296831 := PrimTail(V2985) +__ctx.TailApply(__defun__assoc, V2984, reg296831) +return +} else { +reg296833 := MakeSymbol("assoc") +__ctx.TailApply(__defun__shen_4f__error, reg296833) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "assoc", value: __defun__assoc}) + +__defun__shen_4assoc_1set = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V2992 := __args[0] +_ = V2992 +V2993 := __args[1] +_ = V2993 +V2994 := __args[2] +_ = V2994 +reg296835 := Nil; +reg296836 := PrimEqual(reg296835, V2994) +if reg296836 == True { +reg296837 := PrimCons(V2992, V2993) +reg296838 := Nil; +reg296839 := PrimCons(reg296837, reg296838) +__ctx.Return(reg296839) +return +} else { +reg296840 := PrimIsPair(V2994) +var reg296855 Obj +if reg296840 == True { +reg296841 := PrimHead(V2994) +reg296842 := PrimIsPair(reg296841) +var reg296850 Obj +if reg296842 == True { +reg296843 := PrimHead(V2994) +reg296844 := PrimHead(reg296843) +reg296845 := PrimEqual(reg296844, V2992) +var reg296848 Obj +if reg296845 == True { +reg296846 := True; +reg296848 = reg296846 +} else { +reg296847 := False; +reg296848 = reg296847 +} +reg296850 = reg296848 +} else { +reg296849 := False; +reg296850 = reg296849 +} +var reg296853 Obj +if reg296850 == True { +reg296851 := True; +reg296853 = reg296851 +} else { +reg296852 := False; +reg296853 = reg296852 +} +reg296855 = reg296853 +} else { +reg296854 := False; +reg296855 = reg296854 +} +if reg296855 == True { +reg296856 := PrimHead(V2994) +reg296857 := PrimHead(reg296856) +reg296858 := PrimCons(reg296857, V2993) +reg296859 := PrimTail(V2994) +reg296860 := PrimCons(reg296858, reg296859) +__ctx.Return(reg296860) +return +} else { +reg296861 := PrimIsPair(V2994) +if reg296861 == True { +reg296862 := PrimHead(V2994) +reg296863 := PrimTail(V2994) +reg296864 := __e.Call(__defun__shen_4assoc_1set, V2992, V2993, reg296863) +reg296865 := PrimCons(reg296862, reg296864) +__ctx.Return(reg296865) +return +} else { +reg296866 := MakeSymbol("shen.assoc-set") +__ctx.TailApply(__defun__shen_4f__error, reg296866) +return +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.assoc-set", value: __defun__shen_4assoc_1set}) + +__defun__shen_4assoc_1rm = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3000 := __args[0] +_ = V3000 +V3001 := __args[1] +_ = V3001 +reg296868 := Nil; +reg296869 := PrimEqual(reg296868, V3001) +if reg296869 == True { +reg296870 := Nil; +__ctx.Return(reg296870) +return +} else { +reg296871 := PrimIsPair(V3001) +var reg296886 Obj +if reg296871 == True { +reg296872 := PrimHead(V3001) +reg296873 := PrimIsPair(reg296872) +var reg296881 Obj +if reg296873 == True { +reg296874 := PrimHead(V3001) +reg296875 := PrimHead(reg296874) +reg296876 := PrimEqual(reg296875, V3000) +var reg296879 Obj +if reg296876 == True { +reg296877 := True; +reg296879 = reg296877 +} else { +reg296878 := False; +reg296879 = reg296878 +} +reg296881 = reg296879 +} else { +reg296880 := False; +reg296881 = reg296880 +} +var reg296884 Obj +if reg296881 == True { +reg296882 := True; +reg296884 = reg296882 +} else { +reg296883 := False; +reg296884 = reg296883 +} +reg296886 = reg296884 +} else { +reg296885 := False; +reg296886 = reg296885 +} +if reg296886 == True { +reg296887 := PrimTail(V3001) +__ctx.Return(reg296887) +return +} else { +reg296888 := PrimIsPair(V3001) +if reg296888 == True { +reg296889 := PrimHead(V3001) +reg296890 := PrimTail(V3001) +reg296891 := __e.Call(__defun__shen_4assoc_1rm, V3000, reg296890) +reg296892 := PrimCons(reg296889, reg296891) +__ctx.Return(reg296892) +return +} else { +reg296893 := MakeSymbol("shen.assoc-rm") +__ctx.TailApply(__defun__shen_4f__error, reg296893) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.assoc-rm", value: __defun__shen_4assoc_1rm}) + +__defun__boolean_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3007 := __args[0] +_ = V3007 +reg296895 := True; +reg296896 := PrimEqual(reg296895, V3007) +if reg296896 == True { +reg296897 := True; +__ctx.Return(reg296897) +return +} else { +reg296898 := False; +reg296899 := PrimEqual(reg296898, V3007) +if reg296899 == True { +reg296900 := True; +__ctx.Return(reg296900) +return +} else { +reg296901 := False; +__ctx.Return(reg296901) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "boolean?", value: __defun__boolean_2}) + +__defun__nl = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3009 := __args[0] +_ = V3009 +reg296902 := MakeNumber(0) +reg296903 := PrimEqual(reg296902, V3009) +if reg296903 == True { +reg296904 := MakeNumber(0) +__ctx.Return(reg296904) +return +} else { +reg296905 := MakeString("\n") +reg296906 := __e.Call(__defun__stoutput) +reg296907 := __e.Call(__defun__shen_4prhush, reg296905, reg296906) +_ = reg296907 +reg296908 := MakeNumber(1) +reg296909 := PrimNumberSubtract(V3009, reg296908) +__ctx.TailApply(__defun__nl, reg296909) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "nl", value: __defun__nl}) + +__defun__difference = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3014 := __args[0] +_ = V3014 +V3015 := __args[1] +_ = V3015 +reg296911 := Nil; +reg296912 := PrimEqual(reg296911, V3014) +if reg296912 == True { +reg296913 := Nil; +__ctx.Return(reg296913) +return +} else { +reg296914 := PrimIsPair(V3014) +if reg296914 == True { +reg296915 := PrimHead(V3014) +reg296916 := __e.Call(__defun__element_2, reg296915, V3015) +if reg296916 == True { +reg296917 := PrimTail(V3014) +__ctx.TailApply(__defun__difference, reg296917, V3015) +return +} else { +reg296919 := PrimHead(V3014) +reg296920 := PrimTail(V3014) +reg296921 := __e.Call(__defun__difference, reg296920, V3015) +reg296922 := PrimCons(reg296919, reg296921) +__ctx.Return(reg296922) +return +} +} else { +reg296923 := MakeSymbol("difference") +__ctx.TailApply(__defun__shen_4f__error, reg296923) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "difference", value: __defun__difference}) + +__defun__do = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3018 := __args[0] +_ = V3018 +V3019 := __args[1] +_ = V3019 +__ctx.Return(V3019) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "do", value: __defun__do}) + +__defun__element_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3031 := __args[0] +_ = V3031 +V3032 := __args[1] +_ = V3032 +reg296925 := Nil; +reg296926 := PrimEqual(reg296925, V3032) +if reg296926 == True { +reg296927 := False; +__ctx.Return(reg296927) +return +} else { +reg296928 := PrimIsPair(V3032) +var reg296935 Obj +if reg296928 == True { +reg296929 := PrimHead(V3032) +reg296930 := PrimEqual(reg296929, V3031) +var reg296933 Obj +if reg296930 == True { +reg296931 := True; +reg296933 = reg296931 +} else { +reg296932 := False; +reg296933 = reg296932 +} +reg296935 = reg296933 +} else { +reg296934 := False; +reg296935 = reg296934 +} +if reg296935 == True { +reg296936 := True; +__ctx.Return(reg296936) +return +} else { +reg296937 := PrimIsPair(V3032) +if reg296937 == True { +reg296938 := PrimTail(V3032) +__ctx.TailApply(__defun__element_2, V3031, reg296938) +return +} else { +reg296940 := MakeSymbol("element?") +__ctx.TailApply(__defun__shen_4f__error, reg296940) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "element?", value: __defun__element_2}) + +__defun__empty_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3038 := __args[0] +_ = V3038 +reg296942 := Nil; +reg296943 := PrimEqual(reg296942, V3038) +if reg296943 == True { +reg296944 := True; +__ctx.Return(reg296944) +return +} else { +reg296945 := False; +__ctx.Return(reg296945) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "empty?", value: __defun__empty_2}) + +__defun__fix = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3041 := __args[0] +_ = V3041 +V3042 := __args[1] +_ = V3042 +reg296946 := __e.Call(V3041, V3042) +__ctx.TailApply(__defun__shen_4fix_1help, V3041, V3042, reg296946) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "fix", value: __defun__fix}) + +__defun__shen_4fix_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3053 := __args[0] +_ = V3053 +V3054 := __args[1] +_ = V3054 +V3055 := __args[2] +_ = V3055 +reg296948 := PrimEqual(V3055, V3054) +if reg296948 == True { +__ctx.Return(V3055) +return +} else { +reg296949 := __e.Call(V3053, V3055) +__ctx.TailApply(__defun__shen_4fix_1help, V3053, V3055, reg296949) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.fix-help", value: __defun__shen_4fix_1help}) + +__defun__put = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3060 := __args[0] +_ = V3060 +V3061 := __args[1] +_ = V3061 +V3062 := __args[2] +_ = V3062 +V3063 := __args[3] +_ = V3063 +reg296951 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4_5_1dict, V3063, V3060) +return +}, 0) +reg296953 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg296954 := Nil; +__ctx.Return(reg296954) +return +}, 1) +reg296955 := __e.Try(reg296951).Catch(reg296953) +Curr := reg296955 +_ = Curr +reg296956 := __e.Call(__defun__shen_4assoc_1set, V3061, V3062, Curr) +Added := reg296956 +_ = Added +reg296957 := __e.Call(__defun__shen_4dict_1_6, V3063, V3060, Added) +Update := reg296957 +_ = Update +__ctx.Return(V3062) +return +}, 4) +__initDefs = append(__initDefs, defType{name: "put", value: __defun__put}) + +__defun__unput = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3067 := __args[0] +_ = V3067 +V3068 := __args[1] +_ = V3068 +V3069 := __args[2] +_ = V3069 +reg296958 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4_5_1dict, V3069, V3067) +return +}, 0) +reg296960 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg296961 := Nil; +__ctx.Return(reg296961) +return +}, 1) +reg296962 := __e.Try(reg296958).Catch(reg296960) +Curr := reg296962 +_ = Curr +reg296963 := __e.Call(__defun__shen_4assoc_1rm, V3068, Curr) +Removed := reg296963 +_ = Removed +reg296964 := __e.Call(__defun__shen_4dict_1_6, V3069, V3067, Removed) +Update := reg296964 +_ = Update +__ctx.Return(V3067) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "unput", value: __defun__unput}) + +__defun__get = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3073 := __args[0] +_ = V3073 +V3074 := __args[1] +_ = V3074 +V3075 := __args[2] +_ = V3075 +reg296965 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4_5_1dict, V3075, V3073) +return +}, 0) +reg296967 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg296968 := Nil; +__ctx.Return(reg296968) +return +}, 1) +reg296969 := __e.Try(reg296965).Catch(reg296967) +Entry := reg296969 +_ = Entry +reg296970 := __e.Call(__defun__assoc, V3074, Entry) +Result := reg296970 +_ = Result +reg296971 := __e.Call(__defun__empty_2, Result) +if reg296971 == True { +reg296972 := MakeString("value not found\n") +reg296973 := PrimSimpleError(reg296972) +__ctx.Return(reg296973) +return +} else { +reg296974 := PrimTail(Result) +__ctx.Return(reg296974) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "get", value: __defun__get}) + +__defun__hash = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3078 := __args[0] +_ = V3078 +V3079 := __args[1] +_ = V3079 +reg296975 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +reg296976 := PrimStringToNumber(X) +__ctx.Return(reg296976) +return +}, 1) +reg296977 := __e.Call(__defun__explode, V3078) +reg296978 := __e.Call(__defun__map, reg296975, reg296977) +reg296979 := __e.Call(__defun__sum, reg296978) +__ctx.TailApply(__defun__shen_4mod, reg296979, V3079) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "hash", value: __defun__hash}) + +__defun__shen_4mod = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3082 := __args[0] +_ = V3082 +V3083 := __args[1] +_ = V3083 +reg296981 := Nil; +reg296982 := PrimCons(V3083, reg296981) +reg296983 := __e.Call(__defun__shen_4multiples, V3082, reg296982) +__ctx.TailApply(__defun__shen_4modh, V3082, reg296983) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.mod", value: __defun__shen_4mod}) + +__defun__shen_4multiples = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3086 := __args[0] +_ = V3086 +V3087 := __args[1] +_ = V3087 +reg296985 := PrimIsPair(V3087) +var reg296992 Obj +if reg296985 == True { +reg296986 := PrimHead(V3087) +reg296987 := PrimGreatThan(reg296986, V3086) +var reg296990 Obj +if reg296987 == True { +reg296988 := True; +reg296990 = reg296988 +} else { +reg296989 := False; +reg296990 = reg296989 +} +reg296992 = reg296990 +} else { +reg296991 := False; +reg296992 = reg296991 +} +if reg296992 == True { +reg296993 := PrimTail(V3087) +__ctx.Return(reg296993) +return +} else { +reg296994 := PrimIsPair(V3087) +if reg296994 == True { +reg296995 := MakeNumber(2) +reg296996 := PrimHead(V3087) +reg296997 := PrimNumberMultiply(reg296995, reg296996) +reg296998 := PrimCons(reg296997, V3087) +__ctx.TailApply(__defun__shen_4multiples, V3086, reg296998) +return +} else { +reg297000 := MakeSymbol("shen.multiples") +__ctx.TailApply(__defun__shen_4f__error, reg297000) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.multiples", value: __defun__shen_4multiples}) + +__defun__shen_4modh = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3092 := __args[0] +_ = V3092 +V3093 := __args[1] +_ = V3093 +reg297002 := MakeNumber(0) +reg297003 := PrimEqual(reg297002, V3092) +if reg297003 == True { +reg297004 := MakeNumber(0) +__ctx.Return(reg297004) +return +} else { +reg297005 := Nil; +reg297006 := PrimEqual(reg297005, V3093) +if reg297006 == True { +__ctx.Return(V3092) +return +} else { +reg297007 := PrimIsPair(V3093) +var reg297014 Obj +if reg297007 == True { +reg297008 := PrimHead(V3093) +reg297009 := PrimGreatThan(reg297008, V3092) +var reg297012 Obj +if reg297009 == True { +reg297010 := True; +reg297012 = reg297010 +} else { +reg297011 := False; +reg297012 = reg297011 +} +reg297014 = reg297012 +} else { +reg297013 := False; +reg297014 = reg297013 +} +if reg297014 == True { +reg297015 := PrimTail(V3093) +reg297016 := __e.Call(__defun__empty_2, reg297015) +if reg297016 == True { +__ctx.Return(V3092) +return +} else { +reg297017 := PrimTail(V3093) +__ctx.TailApply(__defun__shen_4modh, V3092, reg297017) +return +} +} else { +reg297019 := PrimIsPair(V3093) +if reg297019 == True { +reg297020 := PrimHead(V3093) +reg297021 := PrimNumberSubtract(V3092, reg297020) +__ctx.TailApply(__defun__shen_4modh, reg297021, V3093) +return +} else { +reg297023 := MakeSymbol("shen.modh") +__ctx.TailApply(__defun__shen_4f__error, reg297023) +return +} +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.modh", value: __defun__shen_4modh}) + +__defun__sum = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3095 := __args[0] +_ = V3095 +reg297025 := Nil; +reg297026 := PrimEqual(reg297025, V3095) +if reg297026 == True { +reg297027 := MakeNumber(0) +__ctx.Return(reg297027) +return +} else { +reg297028 := PrimIsPair(V3095) +if reg297028 == True { +reg297029 := PrimHead(V3095) +reg297030 := PrimTail(V3095) +reg297031 := __e.Call(__defun__sum, reg297030) +reg297032 := PrimNumberAdd(reg297029, reg297031) +__ctx.Return(reg297032) +return +} else { +reg297033 := MakeSymbol("sum") +__ctx.TailApply(__defun__shen_4f__error, reg297033) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "sum", value: __defun__sum}) + +__defun__head = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3103 := __args[0] +_ = V3103 +reg297035 := PrimIsPair(V3103) +if reg297035 == True { +reg297036 := PrimHead(V3103) +__ctx.Return(reg297036) +return +} else { +reg297037 := MakeString("head expects a non-empty list") +reg297038 := PrimSimpleError(reg297037) +__ctx.Return(reg297038) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "head", value: __defun__head}) + +__defun__tail = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3111 := __args[0] +_ = V3111 +reg297039 := PrimIsPair(V3111) +if reg297039 == True { +reg297040 := PrimTail(V3111) +__ctx.Return(reg297040) +return +} else { +reg297041 := MakeString("tail expects a non-empty list") +reg297042 := PrimSimpleError(reg297041) +__ctx.Return(reg297042) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "tail", value: __defun__tail}) + +__defun__hdstr = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3113 := __args[0] +_ = V3113 +reg297043 := MakeNumber(0) +reg297044 := PrimPos(V3113, reg297043) +__ctx.Return(reg297044) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "hdstr", value: __defun__hdstr}) + +__defun__intersection = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3118 := __args[0] +_ = V3118 +V3119 := __args[1] +_ = V3119 +reg297045 := Nil; +reg297046 := PrimEqual(reg297045, V3118) +if reg297046 == True { +reg297047 := Nil; +__ctx.Return(reg297047) +return +} else { +reg297048 := PrimIsPair(V3118) +if reg297048 == True { +reg297049 := PrimHead(V3118) +reg297050 := __e.Call(__defun__element_2, reg297049, V3119) +if reg297050 == True { +reg297051 := PrimHead(V3118) +reg297052 := PrimTail(V3118) +reg297053 := __e.Call(__defun__intersection, reg297052, V3119) +reg297054 := PrimCons(reg297051, reg297053) +__ctx.Return(reg297054) +return +} else { +reg297055 := PrimTail(V3118) +__ctx.TailApply(__defun__intersection, reg297055, V3119) +return +} +} else { +reg297057 := MakeSymbol("intersection") +__ctx.TailApply(__defun__shen_4f__error, reg297057) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "intersection", value: __defun__intersection}) + +__defun__reverse = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3121 := __args[0] +_ = V3121 +reg297059 := Nil; +__ctx.TailApply(__defun__shen_4reverse__help, V3121, reg297059) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "reverse", value: __defun__reverse}) + +__defun__shen_4reverse__help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3124 := __args[0] +_ = V3124 +V3125 := __args[1] +_ = V3125 +reg297061 := Nil; +reg297062 := PrimEqual(reg297061, V3124) +if reg297062 == True { +__ctx.Return(V3125) +return +} else { +reg297063 := PrimIsPair(V3124) +if reg297063 == True { +reg297064 := PrimTail(V3124) +reg297065 := PrimHead(V3124) +reg297066 := PrimCons(reg297065, V3125) +__ctx.TailApply(__defun__shen_4reverse__help, reg297064, reg297066) +return +} else { +reg297068 := MakeSymbol("shen.reverse_help") +__ctx.TailApply(__defun__shen_4f__error, reg297068) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.reverse_help", value: __defun__shen_4reverse__help}) + +__defun__union = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3128 := __args[0] +_ = V3128 +V3129 := __args[1] +_ = V3129 +reg297070 := Nil; +reg297071 := PrimEqual(reg297070, V3128) +if reg297071 == True { +__ctx.Return(V3129) +return +} else { +reg297072 := PrimIsPair(V3128) +if reg297072 == True { +reg297073 := PrimHead(V3128) +reg297074 := __e.Call(__defun__element_2, reg297073, V3129) +if reg297074 == True { +reg297075 := PrimTail(V3128) +__ctx.TailApply(__defun__union, reg297075, V3129) +return +} else { +reg297077 := PrimHead(V3128) +reg297078 := PrimTail(V3128) +reg297079 := __e.Call(__defun__union, reg297078, V3129) +reg297080 := PrimCons(reg297077, reg297079) +__ctx.Return(reg297080) +return +} +} else { +reg297081 := MakeSymbol("union") +__ctx.TailApply(__defun__shen_4f__error, reg297081) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "union", value: __defun__union}) + +__defun__y_1or_1n_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3131 := __args[0] +_ = V3131 +reg297083 := __e.Call(__defun__shen_4proc_1nl, V3131) +reg297084 := __e.Call(__defun__stoutput) +reg297085 := __e.Call(__defun__shen_4prhush, reg297083, reg297084) +Message := reg297085 +_ = Message +reg297086 := MakeString(" (y/n) ") +reg297087 := __e.Call(__defun__stoutput) +reg297088 := __e.Call(__defun__shen_4prhush, reg297086, reg297087) +Y_1or_1N := reg297088 +_ = Y_1or_1N +reg297089 := __e.Call(__defun__stinput) +reg297090 := __e.Call(__defun__read, reg297089) +reg297091 := MakeString("") +reg297092 := MakeSymbol("shen.s") +reg297093 := __e.Call(__defun__shen_4app, reg297090, reg297091, reg297092) +Input := reg297093 +_ = Input +reg297094 := MakeString("y") +reg297095 := PrimEqual(reg297094, Input) +if reg297095 == True { +reg297096 := True; +__ctx.Return(reg297096) +return +} else { +reg297097 := MakeString("n") +reg297098 := PrimEqual(reg297097, Input) +if reg297098 == True { +reg297099 := False; +__ctx.Return(reg297099) +return +} else { +reg297100 := MakeString("please answer y or n\n") +reg297101 := __e.Call(__defun__stoutput) +reg297102 := __e.Call(__defun__shen_4prhush, reg297100, reg297101) +_ = reg297102 +__ctx.TailApply(__defun__y_1or_1n_2, V3131) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "y-or-n?", value: __defun__y_1or_1n_2}) + +__defun__not = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3133 := __args[0] +_ = V3133 +if V3133 == True { +reg297104 := False; +__ctx.Return(reg297104) +return +} else { +reg297105 := True; +__ctx.Return(reg297105) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "not", value: __defun__not}) + +__defun__subst = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3146 := __args[0] +_ = V3146 +V3147 := __args[1] +_ = V3147 +V3148 := __args[2] +_ = V3148 +reg297106 := PrimEqual(V3148, V3147) +if reg297106 == True { +__ctx.Return(V3146) +return +} else { +reg297107 := PrimIsPair(V3148) +if reg297107 == True { +reg297108 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +W := __args[0] +_ = W +__ctx.TailApply(__defun__subst, V3146, V3147, W) +return +}, 1) +__ctx.TailApply(__defun__map, reg297108, V3148) +return +} else { +__ctx.Return(V3148) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "subst", value: __defun__subst}) + +__defun__explode = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3150 := __args[0] +_ = V3150 +reg297111 := MakeString("") +reg297112 := MakeSymbol("shen.a") +reg297113 := __e.Call(__defun__shen_4app, V3150, reg297111, reg297112) +__ctx.TailApply(__defun__shen_4explode_1h, reg297113) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "explode", value: __defun__explode}) + +__defun__shen_4explode_1h = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3152 := __args[0] +_ = V3152 +reg297115 := MakeString("") +reg297116 := PrimEqual(reg297115, V3152) +if reg297116 == True { +reg297117 := Nil; +__ctx.Return(reg297117) +return +} else { +reg297118 := __e.Call(__defun__shen_4_7string_2, V3152) +if reg297118 == True { +reg297119 := MakeNumber(0) +reg297120 := PrimPos(V3152, reg297119) +reg297121 := PrimTailString(V3152) +reg297122 := __e.Call(__defun__shen_4explode_1h, reg297121) +reg297123 := PrimCons(reg297120, reg297122) +__ctx.Return(reg297123) +return +} else { +reg297124 := MakeSymbol("shen.explode-h") +__ctx.TailApply(__defun__shen_4f__error, reg297124) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.explode-h", value: __defun__shen_4explode_1h}) + +__defun__cd = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3154 := __args[0] +_ = V3154 +reg297126 := MakeSymbol("*home-directory*") +reg297127 := MakeString("") +reg297128 := PrimEqual(V3154, reg297127) +var reg297133 Obj +if reg297128 == True { +reg297129 := MakeString("") +reg297133 = reg297129 +} else { +reg297130 := MakeString("/") +reg297131 := MakeSymbol("shen.a") +reg297132 := __e.Call(__defun__shen_4app, V3154, reg297130, reg297131) +reg297133 = reg297132 +} +reg297134 := PrimSet(reg297126, reg297133) +__ctx.Return(reg297134) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "cd", value: __defun__cd}) + +__defun__shen_4for_1each = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3157 := __args[0] +_ = V3157 +V3158 := __args[1] +_ = V3158 +reg297135 := Nil; +reg297136 := PrimEqual(reg297135, V3158) +if reg297136 == True { +reg297137 := True; +__ctx.Return(reg297137) +return +} else { +reg297138 := PrimIsPair(V3158) +if reg297138 == True { +reg297139 := PrimHead(V3158) +reg297140 := __e.Call(V3157, reg297139) +__ := reg297140 +_ = __ +reg297141 := PrimTail(V3158) +__ctx.TailApply(__defun__shen_4for_1each, V3157, reg297141) +return +} else { +reg297143 := MakeSymbol("shen.for-each") +__ctx.TailApply(__defun__shen_4f__error, reg297143) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.for-each", value: __defun__shen_4for_1each}) + +__defun__map = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3161 := __args[0] +_ = V3161 +V3162 := __args[1] +_ = V3162 +reg297145 := Nil; +__ctx.TailApply(__defun__shen_4map_1h, V3161, V3162, reg297145) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "map", value: __defun__map}) + +__defun__shen_4map_1h = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3168 := __args[0] +_ = V3168 +V3169 := __args[1] +_ = V3169 +V3170 := __args[2] +_ = V3170 +reg297147 := Nil; +reg297148 := PrimEqual(reg297147, V3169) +if reg297148 == True { +__ctx.TailApply(__defun__reverse, V3170) +return +} else { +reg297150 := PrimIsPair(V3169) +if reg297150 == True { +reg297151 := PrimTail(V3169) +reg297152 := PrimHead(V3169) +reg297153 := __e.Call(V3168, reg297152) +reg297154 := PrimCons(reg297153, V3170) +__ctx.TailApply(__defun__shen_4map_1h, V3168, reg297151, reg297154) +return +} else { +reg297156 := MakeSymbol("shen.map-h") +__ctx.TailApply(__defun__shen_4f__error, reg297156) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.map-h", value: __defun__shen_4map_1h}) + +__defun__length = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3172 := __args[0] +_ = V3172 +reg297158 := MakeNumber(0) +__ctx.TailApply(__defun__shen_4length_1h, V3172, reg297158) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "length", value: __defun__length}) + +__defun__shen_4length_1h = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3175 := __args[0] +_ = V3175 +V3176 := __args[1] +_ = V3176 +reg297160 := Nil; +reg297161 := PrimEqual(reg297160, V3175) +if reg297161 == True { +__ctx.Return(V3176) +return +} else { +reg297162 := PrimTail(V3175) +reg297163 := MakeNumber(1) +reg297164 := PrimNumberAdd(V3176, reg297163) +__ctx.TailApply(__defun__shen_4length_1h, reg297162, reg297164) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.length-h", value: __defun__shen_4length_1h}) + +__defun__occurrences = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3188 := __args[0] +_ = V3188 +V3189 := __args[1] +_ = V3189 +reg297166 := PrimEqual(V3189, V3188) +if reg297166 == True { +reg297167 := MakeNumber(1) +__ctx.Return(reg297167) +return +} else { +reg297168 := PrimIsPair(V3189) +if reg297168 == True { +reg297169 := PrimHead(V3189) +reg297170 := __e.Call(__defun__occurrences, V3188, reg297169) +reg297171 := PrimTail(V3189) +reg297172 := __e.Call(__defun__occurrences, V3188, reg297171) +reg297173 := PrimNumberAdd(reg297170, reg297172) +__ctx.Return(reg297173) +return +} else { +reg297174 := MakeNumber(0) +__ctx.Return(reg297174) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "occurrences", value: __defun__occurrences}) + +__defun__nth = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3196 := __args[0] +_ = V3196 +V3197 := __args[1] +_ = V3197 +reg297175 := MakeNumber(1) +reg297176 := PrimEqual(reg297175, V3196) +var reg297182 Obj +if reg297176 == True { +reg297177 := PrimIsPair(V3197) +var reg297180 Obj +if reg297177 == True { +reg297178 := True; +reg297180 = reg297178 +} else { +reg297179 := False; +reg297180 = reg297179 +} +reg297182 = reg297180 +} else { +reg297181 := False; +reg297182 = reg297181 +} +if reg297182 == True { +reg297183 := PrimHead(V3197) +__ctx.Return(reg297183) +return +} else { +reg297184 := PrimIsPair(V3197) +if reg297184 == True { +reg297185 := MakeNumber(1) +reg297186 := PrimNumberSubtract(V3196, reg297185) +reg297187 := PrimTail(V3197) +__ctx.TailApply(__defun__nth, reg297186, reg297187) +return +} else { +reg297189 := MakeString("nth applied to ") +reg297190 := MakeString(", ") +reg297191 := MakeString("\n") +reg297192 := MakeSymbol("shen.a") +reg297193 := __e.Call(__defun__shen_4app, V3197, reg297191, reg297192) +reg297194 := PrimStringConcat(reg297190, reg297193) +reg297195 := MakeSymbol("shen.a") +reg297196 := __e.Call(__defun__shen_4app, V3196, reg297194, reg297195) +reg297197 := PrimStringConcat(reg297189, reg297196) +reg297198 := PrimSimpleError(reg297197) +__ctx.Return(reg297198) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "nth", value: __defun__nth}) + +__defun__integer_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3199 := __args[0] +_ = V3199 +reg297199 := PrimIsNumber(V3199) +if reg297199 == True { +reg297200 := __e.Call(__defun__shen_4abs, V3199) +Abs := reg297200 +_ = Abs +reg297201 := MakeNumber(1) +reg297202 := __e.Call(__defun__shen_4magless, Abs, reg297201) +reg297203 := __e.Call(__defun__shen_4integer_1test_2, Abs, reg297202) +if reg297203 == True { +reg297204 := True; +__ctx.Return(reg297204) +return +} else { +reg297205 := False; +__ctx.Return(reg297205) +return +} +} else { +reg297206 := False; +__ctx.Return(reg297206) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "integer?", value: __defun__integer_2}) + +__defun__shen_4abs = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3201 := __args[0] +_ = V3201 +reg297207 := MakeNumber(0) +reg297208 := PrimGreatThan(V3201, reg297207) +if reg297208 == True { +__ctx.Return(V3201) +return +} else { +reg297209 := MakeNumber(0) +reg297210 := PrimNumberSubtract(reg297209, V3201) +__ctx.Return(reg297210) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.abs", value: __defun__shen_4abs}) + +__defun__shen_4magless = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3204 := __args[0] +_ = V3204 +V3205 := __args[1] +_ = V3205 +reg297211 := MakeNumber(2) +reg297212 := PrimNumberMultiply(V3205, reg297211) +Nx2 := reg297212 +_ = Nx2 +reg297213 := PrimGreatThan(Nx2, V3204) +if reg297213 == True { +__ctx.Return(V3205) +return +} else { +__ctx.TailApply(__defun__shen_4magless, V3204, Nx2) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.magless", value: __defun__shen_4magless}) + +__defun__shen_4integer_1test_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3211 := __args[0] +_ = V3211 +V3212 := __args[1] +_ = V3212 +reg297215 := MakeNumber(0) +reg297216 := PrimEqual(reg297215, V3211) +if reg297216 == True { +reg297217 := True; +__ctx.Return(reg297217) +return +} else { +reg297218 := MakeNumber(1) +reg297219 := PrimGreatThan(reg297218, V3211) +if reg297219 == True { +reg297220 := False; +__ctx.Return(reg297220) +return +} else { +reg297221 := PrimNumberSubtract(V3211, V3212) +Abs_1N := reg297221 +_ = Abs_1N +reg297222 := MakeNumber(0) +reg297223 := PrimGreatThan(reg297222, Abs_1N) +if reg297223 == True { +reg297224 := PrimIsInteger(V3211) +__ctx.Return(reg297224) +return +} else { +__ctx.TailApply(__defun__shen_4integer_1test_2, Abs_1N, V3212) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.integer-test?", value: __defun__shen_4integer_1test_2}) + +__defun__mapcan = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3217 := __args[0] +_ = V3217 +V3218 := __args[1] +_ = V3218 +reg297226 := Nil; +reg297227 := PrimEqual(reg297226, V3218) +if reg297227 == True { +reg297228 := Nil; +__ctx.Return(reg297228) +return +} else { +reg297229 := PrimIsPair(V3218) +if reg297229 == True { +reg297230 := PrimHead(V3218) +reg297231 := __e.Call(V3217, reg297230) +reg297232 := PrimTail(V3218) +reg297233 := __e.Call(__defun__mapcan, V3217, reg297232) +__ctx.TailApply(__defun__append, reg297231, reg297233) +return +} else { +reg297235 := MakeSymbol("mapcan") +__ctx.TailApply(__defun__shen_4f__error, reg297235) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "mapcan", value: __defun__mapcan}) + +__defun___a_a = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3230 := __args[0] +_ = V3230 +V3231 := __args[1] +_ = V3231 +reg297237 := PrimEqual(V3231, V3230) +if reg297237 == True { +reg297238 := True; +__ctx.Return(reg297238) +return +} else { +reg297239 := False; +__ctx.Return(reg297239) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "==", value: __defun___a_a}) + +__defun__abort = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297240 := MakeString("") +reg297241 := PrimSimpleError(reg297240) +__ctx.Return(reg297241) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "abort", value: __defun__abort}) + +__defun__bound_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3233 := __args[0] +_ = V3233 +reg297242 := PrimIsSymbol(V3233) +if reg297242 == True { +reg297243 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297244 := PrimValue(V3233) +__ctx.Return(reg297244) +return +}, 0) +reg297245 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg297246 := MakeSymbol("shen.this-symbol-is-unbound") +__ctx.Return(reg297246) +return +}, 1) +reg297247 := __e.Try(reg297243).Catch(reg297245) +Val := reg297247 +_ = Val +reg297248 := MakeSymbol("shen.this-symbol-is-unbound") +reg297249 := PrimEqual(Val, reg297248) +var reg297252 Obj +if reg297249 == True { +reg297250 := False; +reg297252 = reg297250 +} else { +reg297251 := True; +reg297252 = reg297251 +} +if reg297252 == True { +reg297253 := True; +__ctx.Return(reg297253) +return +} else { +reg297254 := False; +__ctx.Return(reg297254) +return +} +} else { +reg297255 := False; +__ctx.Return(reg297255) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "bound?", value: __defun__bound_2}) + +__defun__shen_4string_1_6bytes = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3235 := __args[0] +_ = V3235 +reg297256 := MakeString("") +reg297257 := PrimEqual(reg297256, V3235) +if reg297257 == True { +reg297258 := Nil; +__ctx.Return(reg297258) +return +} else { +reg297259 := MakeNumber(0) +reg297260 := PrimPos(V3235, reg297259) +reg297261 := PrimStringToNumber(reg297260) +reg297262 := PrimTailString(V3235) +reg297263 := __e.Call(__defun__shen_4string_1_6bytes, reg297262) +reg297264 := PrimCons(reg297261, reg297263) +__ctx.Return(reg297264) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.string->bytes", value: __defun__shen_4string_1_6bytes}) + +__defun__maxinferences = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3237 := __args[0] +_ = V3237 +reg297265 := MakeSymbol("shen.*maxinferences*") +reg297266 := PrimSet(reg297265, V3237) +__ctx.Return(reg297266) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "maxinferences", value: __defun__maxinferences}) + +__defun__inferences = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297267 := MakeSymbol("shen.*infs*") +reg297268 := PrimValue(reg297267) +__ctx.Return(reg297268) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "inferences", value: __defun__inferences}) + +__defun__protect = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3239 := __args[0] +_ = V3239 +__ctx.Return(V3239) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "protect", value: __defun__protect}) + +__defun__stoutput = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297269 := MakeSymbol("*stoutput*") +reg297270 := PrimValue(reg297269) +__ctx.Return(reg297270) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "stoutput", value: __defun__stoutput}) + +__defun__sterror = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297271 := MakeSymbol("*sterror*") +reg297272 := PrimValue(reg297271) +__ctx.Return(reg297272) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "sterror", value: __defun__sterror}) + +__defun__string_1_6symbol = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3241 := __args[0] +_ = V3241 +reg297273 := PrimIntern(V3241) +Symbol := reg297273 +_ = Symbol +reg297274 := PrimIsSymbol(Symbol) +if reg297274 == True { +__ctx.Return(Symbol) +return +} else { +reg297275 := MakeString("cannot intern ") +reg297276 := MakeString(" to a symbol") +reg297277 := MakeSymbol("shen.s") +reg297278 := __e.Call(__defun__shen_4app, V3241, reg297276, reg297277) +reg297279 := PrimStringConcat(reg297275, reg297278) +reg297280 := PrimSimpleError(reg297279) +__ctx.Return(reg297280) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "string->symbol", value: __defun__string_1_6symbol}) + +__defun__optimise = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3247 := __args[0] +_ = V3247 +reg297281 := MakeSymbol("+") +reg297282 := PrimEqual(reg297281, V3247) +if reg297282 == True { +reg297283 := MakeSymbol("shen.*optimise*") +reg297284 := True; +reg297285 := PrimSet(reg297283, reg297284) +__ctx.Return(reg297285) +return +} else { +reg297286 := MakeSymbol("-") +reg297287 := PrimEqual(reg297286, V3247) +if reg297287 == True { +reg297288 := MakeSymbol("shen.*optimise*") +reg297289 := False; +reg297290 := PrimSet(reg297288, reg297289) +__ctx.Return(reg297290) +return +} else { +reg297291 := MakeString("optimise expects a + or a -.\n") +reg297292 := PrimSimpleError(reg297291) +__ctx.Return(reg297292) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "optimise", value: __defun__optimise}) + +__defun__os = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297293 := MakeSymbol("*os*") +reg297294 := PrimValue(reg297293) +__ctx.Return(reg297294) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "os", value: __defun__os}) + +__defun__language = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297295 := MakeSymbol("*language*") +reg297296 := PrimValue(reg297295) +__ctx.Return(reg297296) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "language", value: __defun__language}) + +__defun__version = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297297 := MakeSymbol("*version*") +reg297298 := PrimValue(reg297297) +__ctx.Return(reg297298) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "version", value: __defun__version}) + +__defun__port = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297299 := MakeSymbol("*port*") +reg297300 := PrimValue(reg297299) +__ctx.Return(reg297300) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "port", value: __defun__port}) + +__defun__porters = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297301 := MakeSymbol("*porters*") +reg297302 := PrimValue(reg297301) +__ctx.Return(reg297302) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "porters", value: __defun__porters}) + +__defun__implementation = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297303 := MakeSymbol("*implementation*") +reg297304 := PrimValue(reg297303) +__ctx.Return(reg297304) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "implementation", value: __defun__implementation}) + +__defun__release = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297305 := MakeSymbol("*release*") +reg297306 := PrimValue(reg297305) +__ctx.Return(reg297306) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "release", value: __defun__release}) + +__defun__package_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3249 := __args[0] +_ = V3249 +reg297307 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297308 := __e.Call(__defun__external, V3249) +_ = reg297308 +reg297309 := True; +__ctx.Return(reg297309) +return +}, 0) +reg297310 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg297311 := False; +__ctx.Return(reg297311) +return +}, 1) +reg297312 := __e.Try(reg297307).Catch(reg297310) +__ctx.Return(reg297312) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "package?", value: __defun__package_2}) + +__defun__function = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3251 := __args[0] +_ = V3251 +__ctx.TailApply(__defun__shen_4lookup_1func, V3251) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "function", value: __defun__function}) + +__defun__shen_4lookup_1func = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3253 := __args[0] +_ = V3253 +reg297314 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg297315 := MakeSymbol("shen.lambda-form") +reg297316 := MakeSymbol("*property-vector*") +reg297317 := PrimValue(reg297316) +__ctx.TailApply(__defun__get, V3253, reg297315, reg297317) +return +}, 0) +reg297319 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg297320 := MakeString(" has no lambda expansion\n") +reg297321 := MakeSymbol("shen.a") +reg297322 := __e.Call(__defun__shen_4app, V3253, reg297320, reg297321) +reg297323 := PrimSimpleError(reg297322) +__ctx.Return(reg297323) +return +}, 1) +reg297324 := __e.Try(reg297314).Catch(reg297319) +__ctx.Return(reg297324) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.lookup-func", value: __defun__shen_4lookup_1func}) + +} diff --git a/cmd/shen/toplevel.go b/cmd/shen/toplevel.go new file mode 100644 index 0000000..10a1961 --- /dev/null +++ b/cmd/shen/toplevel.go @@ -0,0 +1,1642 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__shen_4shen Obj // shen.shen +var __defun__shen_4loop Obj // shen.loop +var __defun__shen_4toplevel_1display_1exception Obj // shen.toplevel-display-exception +var __defun__shen_4credits Obj // shen.credits +var __defun__shen_4initialise__environment Obj // shen.initialise_environment +var __defun__shen_4multiple_1set Obj // shen.multiple-set +var __defun__destroy Obj // destroy +var __defun__shen_4read_1evaluate_1print Obj // shen.read-evaluate-print +var __defun__shen_4retrieve_1from_1history_1if_1needed Obj // shen.retrieve-from-history-if-needed +var __defun__shen_4percent Obj // shen.percent +var __defun__shen_4exclamation Obj // shen.exclamation +var __defun__shen_4prbytes Obj // shen.prbytes +var __defun__shen_4update__history Obj // shen.update_history +var __defun__shen_4toplineread Obj // shen.toplineread +var __defun__shen_4toplineread__loop Obj // shen.toplineread_loop +var __defun__shen_4hat Obj // shen.hat +var __defun__shen_4newline Obj // shen.newline +var __defun__shen_4carriage_1return Obj // shen.carriage-return +var __defun__tc Obj // tc +var __defun__shen_4prompt Obj // shen.prompt +var __defun__shen_4toplevel Obj // shen.toplevel +var __defun__shen_4find_1past_1inputs Obj // shen.find-past-inputs +var __defun__shen_4make_1key Obj // shen.make-key +var __defun__shen_4trim_1gubbins Obj // shen.trim-gubbins +var __defun__shen_4space Obj // shen.space +var __defun__shen_4tab Obj // shen.tab +var __defun__shen_4left_1round Obj // shen.left-round +var __defun__shen_4find Obj // shen.find +var __defun__shen_4prefix_2 Obj // shen.prefix? +var __defun__shen_4print_1past_1inputs Obj // shen.print-past-inputs +var __defun__shen_4toplevel__evaluate Obj // shen.toplevel_evaluate +var __defun__shen_4typecheck_1and_1evaluate Obj // shen.typecheck-and-evaluate +var __defun__shen_4pretty_1type Obj // shen.pretty-type +var __defun__shen_4extract_1pvars Obj // shen.extract-pvars +var __defun__shen_4mult__subst Obj // shen.mult_subst + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291459 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg291459) +return +}, 0)) +__defun__shen_4shen = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291460 := __e.Call(__defun__shen_4credits) +_ = reg291460 +__ctx.TailApply(__defun__shen_4loop) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.shen", value: __defun__shen_4shen}) + +__defun__shen_4loop = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291462 := __e.Call(__defun__shen_4initialise__environment) +_ = reg291462 +reg291463 := __e.Call(__defun__shen_4prompt) +_ = reg291463 +reg291464 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4read_1evaluate_1print) +return +}, 0) +reg291466 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +__ctx.TailApply(__defun__shen_4toplevel_1display_1exception, E) +return +}, 1) +reg291468 := __e.Try(reg291464).Catch(reg291466) +_ = reg291468 +__ctx.TailApply(__defun__shen_4loop) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.loop", value: __defun__shen_4loop}) + +__defun__shen_4toplevel_1display_1exception = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3935 := __args[0] +_ = V3935 +reg291470 := PrimErrorToString(V3935) +reg291471 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__pr, reg291470, reg291471) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.toplevel-display-exception", value: __defun__shen_4toplevel_1display_1exception}) + +__defun__shen_4credits = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291473 := MakeString("\nShen, copyright (C) 2010-2015 Mark Tarver\n") +reg291474 := __e.Call(__defun__stoutput) +reg291475 := __e.Call(__defun__shen_4prhush, reg291473, reg291474) +_ = reg291475 +reg291476 := MakeString("www.shenlanguage.org, ") +reg291477 := MakeSymbol("*version*") +reg291478 := PrimValue(reg291477) +reg291479 := MakeString("\n") +reg291480 := MakeSymbol("shen.a") +reg291481 := __e.Call(__defun__shen_4app, reg291478, reg291479, reg291480) +reg291482 := PrimStringConcat(reg291476, reg291481) +reg291483 := __e.Call(__defun__stoutput) +reg291484 := __e.Call(__defun__shen_4prhush, reg291482, reg291483) +_ = reg291484 +reg291485 := MakeString("running under ") +reg291486 := MakeSymbol("*language*") +reg291487 := PrimValue(reg291486) +reg291488 := MakeString(", implementation: ") +reg291489 := MakeSymbol("*implementation*") +reg291490 := PrimValue(reg291489) +reg291491 := MakeString("") +reg291492 := MakeSymbol("shen.a") +reg291493 := __e.Call(__defun__shen_4app, reg291490, reg291491, reg291492) +reg291494 := PrimStringConcat(reg291488, reg291493) +reg291495 := MakeSymbol("shen.a") +reg291496 := __e.Call(__defun__shen_4app, reg291487, reg291494, reg291495) +reg291497 := PrimStringConcat(reg291485, reg291496) +reg291498 := __e.Call(__defun__stoutput) +reg291499 := __e.Call(__defun__shen_4prhush, reg291497, reg291498) +_ = reg291499 +reg291500 := MakeString("\nport ") +reg291501 := MakeSymbol("*port*") +reg291502 := PrimValue(reg291501) +reg291503 := MakeString(" ported by ") +reg291504 := MakeSymbol("*porters*") +reg291505 := PrimValue(reg291504) +reg291506 := MakeString("\n") +reg291507 := MakeSymbol("shen.a") +reg291508 := __e.Call(__defun__shen_4app, reg291505, reg291506, reg291507) +reg291509 := PrimStringConcat(reg291503, reg291508) +reg291510 := MakeSymbol("shen.a") +reg291511 := __e.Call(__defun__shen_4app, reg291502, reg291509, reg291510) +reg291512 := PrimStringConcat(reg291500, reg291511) +reg291513 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__shen_4prhush, reg291512, reg291513) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.credits", value: __defun__shen_4credits}) + +__defun__shen_4initialise__environment = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291515 := MakeSymbol("shen.*call*") +reg291516 := MakeNumber(0) +reg291517 := MakeSymbol("shen.*infs*") +reg291518 := MakeNumber(0) +reg291519 := MakeSymbol("shen.*process-counter*") +reg291520 := MakeNumber(0) +reg291521 := MakeSymbol("shen.*catch*") +reg291522 := MakeNumber(0) +reg291523 := Nil; +reg291524 := PrimCons(reg291522, reg291523) +reg291525 := PrimCons(reg291521, reg291524) +reg291526 := PrimCons(reg291520, reg291525) +reg291527 := PrimCons(reg291519, reg291526) +reg291528 := PrimCons(reg291518, reg291527) +reg291529 := PrimCons(reg291517, reg291528) +reg291530 := PrimCons(reg291516, reg291529) +reg291531 := PrimCons(reg291515, reg291530) +__ctx.TailApply(__defun__shen_4multiple_1set, reg291531) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.initialise_environment", value: __defun__shen_4initialise__environment}) + +__defun__shen_4multiple_1set = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3937 := __args[0] +_ = V3937 +reg291533 := Nil; +reg291534 := PrimEqual(reg291533, V3937) +if reg291534 == True { +reg291535 := Nil; +__ctx.Return(reg291535) +return +} else { +reg291536 := PrimIsPair(V3937) +var reg291543 Obj +if reg291536 == True { +reg291537 := PrimTail(V3937) +reg291538 := PrimIsPair(reg291537) +var reg291541 Obj +if reg291538 == True { +reg291539 := True; +reg291541 = reg291539 +} else { +reg291540 := False; +reg291541 = reg291540 +} +reg291543 = reg291541 +} else { +reg291542 := False; +reg291543 = reg291542 +} +if reg291543 == True { +reg291544 := PrimHead(V3937) +reg291545 := PrimTail(V3937) +reg291546 := PrimHead(reg291545) +reg291547 := PrimSet(reg291544, reg291546) +_ = reg291547 +reg291548 := PrimTail(V3937) +reg291549 := PrimTail(reg291548) +__ctx.TailApply(__defun__shen_4multiple_1set, reg291549) +return +} else { +reg291551 := MakeSymbol("shen.multiple-set") +__ctx.TailApply(__defun__shen_4f__error, reg291551) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.multiple-set", value: __defun__shen_4multiple_1set}) + +__defun__destroy = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3939 := __args[0] +_ = V3939 +reg291553 := MakeSymbol("symbol") +__ctx.TailApply(__defun__declare, V3939, reg291553) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "destroy", value: __defun__destroy}) + +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291555 := MakeSymbol("shen.*history*") +reg291556 := Nil; +reg291557 := PrimSet(reg291555, reg291556) +__ctx.Return(reg291557) +return +}, 0)) +__defun__shen_4read_1evaluate_1print = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291558 := __e.Call(__defun__shen_4toplineread) +Lineread := reg291558 +_ = Lineread +reg291559 := MakeSymbol("shen.*history*") +reg291560 := PrimValue(reg291559) +History := reg291560 +_ = History +reg291561 := __e.Call(__defun__shen_4retrieve_1from_1history_1if_1needed, Lineread, History) +NewLineread := reg291561 +_ = NewLineread +reg291562 := __e.Call(__defun__shen_4update__history, NewLineread, History) +NewHistory := reg291562 +_ = NewHistory +reg291563 := __e.Call(__defun__fst, NewLineread) +Parsed := reg291563 +_ = Parsed +__ctx.TailApply(__defun__shen_4toplevel, Parsed) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.read-evaluate-print", value: __defun__shen_4read_1evaluate_1print}) + +__defun__shen_4retrieve_1from_1history_1if_1needed = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3951 := __args[0] +_ = V3951 +V3952 := __args[1] +_ = V3952 +reg291565 := __e.Call(__defun__tuple_2, V3951) +var reg291585 Obj +if reg291565 == True { +reg291566 := __e.Call(__defun__snd, V3951) +reg291567 := PrimIsPair(reg291566) +var reg291580 Obj +if reg291567 == True { +reg291568 := __e.Call(__defun__snd, V3951) +reg291569 := PrimHead(reg291568) +reg291570 := __e.Call(__defun__shen_4space) +reg291571 := __e.Call(__defun__shen_4newline) +reg291572 := Nil; +reg291573 := PrimCons(reg291571, reg291572) +reg291574 := PrimCons(reg291570, reg291573) +reg291575 := __e.Call(__defun__element_2, reg291569, reg291574) +var reg291578 Obj +if reg291575 == True { +reg291576 := True; +reg291578 = reg291576 +} else { +reg291577 := False; +reg291578 = reg291577 +} +reg291580 = reg291578 +} else { +reg291579 := False; +reg291580 = reg291579 +} +var reg291583 Obj +if reg291580 == True { +reg291581 := True; +reg291583 = reg291581 +} else { +reg291582 := False; +reg291583 = reg291582 +} +reg291585 = reg291583 +} else { +reg291584 := False; +reg291585 = reg291584 +} +if reg291585 == True { +reg291586 := __e.Call(__defun__fst, V3951) +reg291587 := __e.Call(__defun__snd, V3951) +reg291588 := PrimTail(reg291587) +reg291589 := __e.Call(__defun___8p, reg291586, reg291588) +__ctx.TailApply(__defun__shen_4retrieve_1from_1history_1if_1needed, reg291589, V3952) +return +} else { +reg291591 := __e.Call(__defun__tuple_2, V3951) +var reg291641 Obj +if reg291591 == True { +reg291592 := __e.Call(__defun__snd, V3951) +reg291593 := PrimIsPair(reg291592) +var reg291636 Obj +if reg291593 == True { +reg291594 := __e.Call(__defun__snd, V3951) +reg291595 := PrimTail(reg291594) +reg291596 := PrimIsPair(reg291595) +var reg291631 Obj +if reg291596 == True { +reg291597 := Nil; +reg291598 := __e.Call(__defun__snd, V3951) +reg291599 := PrimTail(reg291598) +reg291600 := PrimTail(reg291599) +reg291601 := PrimEqual(reg291597, reg291600) +var reg291626 Obj +if reg291601 == True { +reg291602 := PrimIsPair(V3952) +var reg291621 Obj +if reg291602 == True { +reg291603 := __e.Call(__defun__snd, V3951) +reg291604 := PrimHead(reg291603) +reg291605 := __e.Call(__defun__shen_4exclamation) +reg291606 := PrimEqual(reg291604, reg291605) +var reg291616 Obj +if reg291606 == True { +reg291607 := __e.Call(__defun__snd, V3951) +reg291608 := PrimTail(reg291607) +reg291609 := PrimHead(reg291608) +reg291610 := __e.Call(__defun__shen_4exclamation) +reg291611 := PrimEqual(reg291609, reg291610) +var reg291614 Obj +if reg291611 == True { +reg291612 := True; +reg291614 = reg291612 +} else { +reg291613 := False; +reg291614 = reg291613 +} +reg291616 = reg291614 +} else { +reg291615 := False; +reg291616 = reg291615 +} +var reg291619 Obj +if reg291616 == True { +reg291617 := True; +reg291619 = reg291617 +} else { +reg291618 := False; +reg291619 = reg291618 +} +reg291621 = reg291619 +} else { +reg291620 := False; +reg291621 = reg291620 +} +var reg291624 Obj +if reg291621 == True { +reg291622 := True; +reg291624 = reg291622 +} else { +reg291623 := False; +reg291624 = reg291623 +} +reg291626 = reg291624 +} else { +reg291625 := False; +reg291626 = reg291625 +} +var reg291629 Obj +if reg291626 == True { +reg291627 := True; +reg291629 = reg291627 +} else { +reg291628 := False; +reg291629 = reg291628 +} +reg291631 = reg291629 +} else { +reg291630 := False; +reg291631 = reg291630 +} +var reg291634 Obj +if reg291631 == True { +reg291632 := True; +reg291634 = reg291632 +} else { +reg291633 := False; +reg291634 = reg291633 +} +reg291636 = reg291634 +} else { +reg291635 := False; +reg291636 = reg291635 +} +var reg291639 Obj +if reg291636 == True { +reg291637 := True; +reg291639 = reg291637 +} else { +reg291638 := False; +reg291639 = reg291638 +} +reg291641 = reg291639 +} else { +reg291640 := False; +reg291641 = reg291640 +} +if reg291641 == True { +reg291642 := PrimHead(V3952) +reg291643 := __e.Call(__defun__snd, reg291642) +reg291644 := __e.Call(__defun__shen_4prbytes, reg291643) +PastPrint := reg291644 +_ = PastPrint +reg291645 := PrimHead(V3952) +__ctx.Return(reg291645) +return +} else { +reg291646 := __e.Call(__defun__tuple_2, V3951) +var reg291662 Obj +if reg291646 == True { +reg291647 := __e.Call(__defun__snd, V3951) +reg291648 := PrimIsPair(reg291647) +var reg291657 Obj +if reg291648 == True { +reg291649 := __e.Call(__defun__snd, V3951) +reg291650 := PrimHead(reg291649) +reg291651 := __e.Call(__defun__shen_4exclamation) +reg291652 := PrimEqual(reg291650, reg291651) +var reg291655 Obj +if reg291652 == True { +reg291653 := True; +reg291655 = reg291653 +} else { +reg291654 := False; +reg291655 = reg291654 +} +reg291657 = reg291655 +} else { +reg291656 := False; +reg291657 = reg291656 +} +var reg291660 Obj +if reg291657 == True { +reg291658 := True; +reg291660 = reg291658 +} else { +reg291659 := False; +reg291660 = reg291659 +} +reg291662 = reg291660 +} else { +reg291661 := False; +reg291662 = reg291661 +} +if reg291662 == True { +reg291663 := __e.Call(__defun__snd, V3951) +reg291664 := PrimTail(reg291663) +reg291665 := __e.Call(__defun__shen_4make_1key, reg291664, V3952) +Key_2 := reg291665 +_ = Key_2 +reg291666 := __e.Call(__defun__shen_4find_1past_1inputs, Key_2, V3952) +reg291667 := __e.Call(__defun__head, reg291666) +Find := reg291667 +_ = Find +reg291668 := __e.Call(__defun__snd, Find) +reg291669 := __e.Call(__defun__shen_4prbytes, reg291668) +PastPrint := reg291669 +_ = PastPrint +__ctx.Return(Find) +return +} else { +reg291670 := __e.Call(__defun__tuple_2, V3951) +var reg291695 Obj +if reg291670 == True { +reg291671 := __e.Call(__defun__snd, V3951) +reg291672 := PrimIsPair(reg291671) +var reg291690 Obj +if reg291672 == True { +reg291673 := Nil; +reg291674 := __e.Call(__defun__snd, V3951) +reg291675 := PrimTail(reg291674) +reg291676 := PrimEqual(reg291673, reg291675) +var reg291685 Obj +if reg291676 == True { +reg291677 := __e.Call(__defun__snd, V3951) +reg291678 := PrimHead(reg291677) +reg291679 := __e.Call(__defun__shen_4percent) +reg291680 := PrimEqual(reg291678, reg291679) +var reg291683 Obj +if reg291680 == True { +reg291681 := True; +reg291683 = reg291681 +} else { +reg291682 := False; +reg291683 = reg291682 +} +reg291685 = reg291683 +} else { +reg291684 := False; +reg291685 = reg291684 +} +var reg291688 Obj +if reg291685 == True { +reg291686 := True; +reg291688 = reg291686 +} else { +reg291687 := False; +reg291688 = reg291687 +} +reg291690 = reg291688 +} else { +reg291689 := False; +reg291690 = reg291689 +} +var reg291693 Obj +if reg291690 == True { +reg291691 := True; +reg291693 = reg291691 +} else { +reg291692 := False; +reg291693 = reg291692 +} +reg291695 = reg291693 +} else { +reg291694 := False; +reg291695 = reg291694 +} +if reg291695 == True { +reg291696 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +reg291697 := True; +__ctx.Return(reg291697) +return +}, 1) +reg291698 := __e.Call(__defun__reverse, V3952) +reg291699 := MakeNumber(0) +reg291700 := __e.Call(__defun__shen_4print_1past_1inputs, reg291696, reg291698, reg291699) +_ = reg291700 +__ctx.TailApply(__defun__abort) +return +} else { +reg291702 := __e.Call(__defun__tuple_2, V3951) +var reg291718 Obj +if reg291702 == True { +reg291703 := __e.Call(__defun__snd, V3951) +reg291704 := PrimIsPair(reg291703) +var reg291713 Obj +if reg291704 == True { +reg291705 := __e.Call(__defun__snd, V3951) +reg291706 := PrimHead(reg291705) +reg291707 := __e.Call(__defun__shen_4percent) +reg291708 := PrimEqual(reg291706, reg291707) +var reg291711 Obj +if reg291708 == True { +reg291709 := True; +reg291711 = reg291709 +} else { +reg291710 := False; +reg291711 = reg291710 +} +reg291713 = reg291711 +} else { +reg291712 := False; +reg291713 = reg291712 +} +var reg291716 Obj +if reg291713 == True { +reg291714 := True; +reg291716 = reg291714 +} else { +reg291715 := False; +reg291716 = reg291715 +} +reg291718 = reg291716 +} else { +reg291717 := False; +reg291718 = reg291717 +} +if reg291718 == True { +reg291719 := __e.Call(__defun__snd, V3951) +reg291720 := PrimTail(reg291719) +reg291721 := __e.Call(__defun__shen_4make_1key, reg291720, V3952) +Key_2 := reg291721 +_ = Key_2 +reg291722 := __e.Call(__defun__reverse, V3952) +reg291723 := MakeNumber(0) +reg291724 := __e.Call(__defun__shen_4print_1past_1inputs, Key_2, reg291722, reg291723) +Pastprint := reg291724 +_ = Pastprint +__ctx.TailApply(__defun__abort) +return +} else { +__ctx.Return(V3951) +return +} +} +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.retrieve-from-history-if-needed", value: __defun__shen_4retrieve_1from_1history_1if_1needed}) + +__defun__shen_4percent = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291726 := MakeNumber(37) +__ctx.Return(reg291726) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.percent", value: __defun__shen_4percent}) + +__defun__shen_4exclamation = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291727 := MakeNumber(33) +__ctx.Return(reg291727) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.exclamation", value: __defun__shen_4exclamation}) + +__defun__shen_4prbytes = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3954 := __args[0] +_ = V3954 +reg291728 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Byte := __args[0] +_ = Byte +reg291729 := PrimNumberToString(Byte) +reg291730 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__pr, reg291729, reg291730) +return +}, 1) +reg291732 := __e.Call(__defun__shen_4for_1each, reg291728, V3954) +_ = reg291732 +reg291733 := MakeNumber(1) +__ctx.TailApply(__defun__nl, reg291733) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.prbytes", value: __defun__shen_4prbytes}) + +__defun__shen_4update__history = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3957 := __args[0] +_ = V3957 +V3958 := __args[1] +_ = V3958 +reg291735 := MakeSymbol("shen.*history*") +reg291736 := PrimCons(V3957, V3958) +reg291737 := PrimSet(reg291735, reg291736) +__ctx.Return(reg291737) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.update_history", value: __defun__shen_4update__history}) + +__defun__shen_4toplineread = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291738 := __e.Call(__defun__stinput) +reg291739 := __e.Call(__defun__shen_4read_1char_1code, reg291738) +reg291740 := Nil; +__ctx.TailApply(__defun__shen_4toplineread__loop, reg291739, reg291740) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.toplineread", value: __defun__shen_4toplineread}) + +__defun__shen_4toplineread__loop = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3962 := __args[0] +_ = V3962 +V3963 := __args[1] +_ = V3963 +reg291742 := __e.Call(__defun__shen_4hat) +reg291743 := PrimEqual(V3962, reg291742) +if reg291743 == True { +reg291744 := MakeString("line read aborted") +reg291745 := PrimSimpleError(reg291744) +__ctx.Return(reg291745) +return +} else { +reg291746 := __e.Call(__defun__shen_4newline) +reg291747 := __e.Call(__defun__shen_4carriage_1return) +reg291748 := Nil; +reg291749 := PrimCons(reg291747, reg291748) +reg291750 := PrimCons(reg291746, reg291749) +reg291751 := __e.Call(__defun__element_2, V3962, reg291750) +if reg291751 == True { +reg291752 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4_5st__input_6, X) +return +}, 1) +reg291754 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg291755 := MakeSymbol("shen.nextline") +__ctx.Return(reg291755) +return +}, 1) +reg291756 := __e.Call(__defun__compile, reg291752, V3963, reg291754) +Line := reg291756 +_ = Line +reg291757 := __e.Call(__defun__shen_4record_1it, V3963) +It := reg291757 +_ = It +reg291758 := MakeSymbol("shen.nextline") +reg291759 := PrimEqual(Line, reg291758) +var reg291765 Obj +if reg291759 == True { +reg291760 := True; +reg291765 = reg291760 +} else { +reg291761 := __e.Call(__defun__empty_2, Line) +var reg291764 Obj +if reg291761 == True { +reg291762 := True; +reg291764 = reg291762 +} else { +reg291763 := False; +reg291764 = reg291763 +} +reg291765 = reg291764 +} +if reg291765 == True { +reg291766 := __e.Call(__defun__stinput) +reg291767 := __e.Call(__defun__shen_4read_1char_1code, reg291766) +reg291768 := Nil; +reg291769 := PrimCons(V3962, reg291768) +reg291770 := __e.Call(__defun__append, V3963, reg291769) +__ctx.TailApply(__defun__shen_4toplineread__loop, reg291767, reg291770) +return +} else { +__ctx.TailApply(__defun___8p, Line, V3963) +return +} +} else { +reg291773 := __e.Call(__defun__stinput) +reg291774 := __e.Call(__defun__shen_4read_1char_1code, reg291773) +reg291775 := MakeNumber(-1) +reg291776 := PrimEqual(V3962, reg291775) +var reg291780 Obj +if reg291776 == True { +reg291780 = V3963 +} else { +reg291777 := Nil; +reg291778 := PrimCons(V3962, reg291777) +reg291779 := __e.Call(__defun__append, V3963, reg291778) +reg291780 = reg291779 +} +__ctx.TailApply(__defun__shen_4toplineread__loop, reg291774, reg291780) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.toplineread_loop", value: __defun__shen_4toplineread__loop}) + +__defun__shen_4hat = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291782 := MakeNumber(94) +__ctx.Return(reg291782) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.hat", value: __defun__shen_4hat}) + +__defun__shen_4newline = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291783 := MakeNumber(10) +__ctx.Return(reg291783) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.newline", value: __defun__shen_4newline}) + +__defun__shen_4carriage_1return = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291784 := MakeNumber(13) +__ctx.Return(reg291784) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.carriage-return", value: __defun__shen_4carriage_1return}) + +__defun__tc = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3969 := __args[0] +_ = V3969 +reg291785 := MakeSymbol("+") +reg291786 := PrimEqual(reg291785, V3969) +if reg291786 == True { +reg291787 := MakeSymbol("shen.*tc*") +reg291788 := True; +reg291789 := PrimSet(reg291787, reg291788) +__ctx.Return(reg291789) +return +} else { +reg291790 := MakeSymbol("-") +reg291791 := PrimEqual(reg291790, V3969) +if reg291791 == True { +reg291792 := MakeSymbol("shen.*tc*") +reg291793 := False; +reg291794 := PrimSet(reg291792, reg291793) +__ctx.Return(reg291794) +return +} else { +reg291795 := MakeString("tc expects a + or -") +reg291796 := PrimSimpleError(reg291795) +__ctx.Return(reg291796) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "tc", value: __defun__tc}) + +__defun__shen_4prompt = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291797 := MakeSymbol("shen.*tc*") +reg291798 := PrimValue(reg291797) +if reg291798 == True { +reg291799 := MakeString("\n\n(") +reg291800 := MakeSymbol("shen.*history*") +reg291801 := PrimValue(reg291800) +reg291802 := __e.Call(__defun__length, reg291801) +reg291803 := MakeString("+) ") +reg291804 := MakeSymbol("shen.a") +reg291805 := __e.Call(__defun__shen_4app, reg291802, reg291803, reg291804) +reg291806 := PrimStringConcat(reg291799, reg291805) +reg291807 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__shen_4prhush, reg291806, reg291807) +return +} else { +reg291809 := MakeString("\n\n(") +reg291810 := MakeSymbol("shen.*history*") +reg291811 := PrimValue(reg291810) +reg291812 := __e.Call(__defun__length, reg291811) +reg291813 := MakeString("-) ") +reg291814 := MakeSymbol("shen.a") +reg291815 := __e.Call(__defun__shen_4app, reg291812, reg291813, reg291814) +reg291816 := PrimStringConcat(reg291809, reg291815) +reg291817 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__shen_4prhush, reg291816, reg291817) +return +} +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.prompt", value: __defun__shen_4prompt}) + +__defun__shen_4toplevel = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3971 := __args[0] +_ = V3971 +reg291819 := MakeSymbol("shen.*tc*") +reg291820 := PrimValue(reg291819) +__ctx.TailApply(__defun__shen_4toplevel__evaluate, V3971, reg291820) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.toplevel", value: __defun__shen_4toplevel}) + +__defun__shen_4find_1past_1inputs = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3974 := __args[0] +_ = V3974 +V3975 := __args[1] +_ = V3975 +reg291822 := __e.Call(__defun__shen_4find, V3974, V3975) +F := reg291822 +_ = F +reg291823 := __e.Call(__defun__empty_2, F) +if reg291823 == True { +reg291824 := MakeString("input not found\n") +reg291825 := PrimSimpleError(reg291824) +__ctx.Return(reg291825) +return +} else { +__ctx.Return(F) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.find-past-inputs", value: __defun__shen_4find_1past_1inputs}) + +__defun__shen_4make_1key = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3978 := __args[0] +_ = V3978 +V3979 := __args[1] +_ = V3979 +reg291826 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4_5st__input_6, X) +return +}, 1) +reg291828 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg291829 := PrimIsPair(E) +if reg291829 == True { +reg291830 := MakeString("parse error here: ") +reg291831 := MakeString("\n") +reg291832 := MakeSymbol("shen.s") +reg291833 := __e.Call(__defun__shen_4app, E, reg291831, reg291832) +reg291834 := PrimStringConcat(reg291830, reg291833) +reg291835 := PrimSimpleError(reg291834) +__ctx.Return(reg291835) +return +} else { +reg291836 := MakeString("parse error\n") +reg291837 := PrimSimpleError(reg291836) +__ctx.Return(reg291837) +return +} +}, 1) +reg291838 := __e.Call(__defun__compile, reg291826, V3978, reg291828) +reg291839 := PrimHead(reg291838) +Atom := reg291839 +_ = Atom +reg291840 := PrimIsInteger(Atom) +if reg291840 == True { +reg291841 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +reg291842 := MakeNumber(1) +reg291843 := PrimNumberAdd(Atom, reg291842) +reg291844 := __e.Call(__defun__reverse, V3979) +reg291845 := __e.Call(__defun__nth, reg291843, reg291844) +reg291846 := PrimEqual(X, reg291845) +__ctx.Return(reg291846) +return +}, 1) +__ctx.Return(reg291841) +return +} else { +reg291847 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +reg291848 := __e.Call(__defun__snd, X) +reg291849 := __e.Call(__defun__shen_4trim_1gubbins, reg291848) +__ctx.TailApply(__defun__shen_4prefix_2, V3978, reg291849) +return +}, 1) +__ctx.Return(reg291847) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.make-key", value: __defun__shen_4make_1key}) + +__defun__shen_4trim_1gubbins = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3981 := __args[0] +_ = V3981 +reg291851 := PrimIsPair(V3981) +var reg291859 Obj +if reg291851 == True { +reg291852 := PrimHead(V3981) +reg291853 := __e.Call(__defun__shen_4space) +reg291854 := PrimEqual(reg291852, reg291853) +var reg291857 Obj +if reg291854 == True { +reg291855 := True; +reg291857 = reg291855 +} else { +reg291856 := False; +reg291857 = reg291856 +} +reg291859 = reg291857 +} else { +reg291858 := False; +reg291859 = reg291858 +} +if reg291859 == True { +reg291860 := PrimTail(V3981) +__ctx.TailApply(__defun__shen_4trim_1gubbins, reg291860) +return +} else { +reg291862 := PrimIsPair(V3981) +var reg291870 Obj +if reg291862 == True { +reg291863 := PrimHead(V3981) +reg291864 := __e.Call(__defun__shen_4newline) +reg291865 := PrimEqual(reg291863, reg291864) +var reg291868 Obj +if reg291865 == True { +reg291866 := True; +reg291868 = reg291866 +} else { +reg291867 := False; +reg291868 = reg291867 +} +reg291870 = reg291868 +} else { +reg291869 := False; +reg291870 = reg291869 +} +if reg291870 == True { +reg291871 := PrimTail(V3981) +__ctx.TailApply(__defun__shen_4trim_1gubbins, reg291871) +return +} else { +reg291873 := PrimIsPair(V3981) +var reg291881 Obj +if reg291873 == True { +reg291874 := PrimHead(V3981) +reg291875 := __e.Call(__defun__shen_4carriage_1return) +reg291876 := PrimEqual(reg291874, reg291875) +var reg291879 Obj +if reg291876 == True { +reg291877 := True; +reg291879 = reg291877 +} else { +reg291878 := False; +reg291879 = reg291878 +} +reg291881 = reg291879 +} else { +reg291880 := False; +reg291881 = reg291880 +} +if reg291881 == True { +reg291882 := PrimTail(V3981) +__ctx.TailApply(__defun__shen_4trim_1gubbins, reg291882) +return +} else { +reg291884 := PrimIsPair(V3981) +var reg291892 Obj +if reg291884 == True { +reg291885 := PrimHead(V3981) +reg291886 := __e.Call(__defun__shen_4tab) +reg291887 := PrimEqual(reg291885, reg291886) +var reg291890 Obj +if reg291887 == True { +reg291888 := True; +reg291890 = reg291888 +} else { +reg291889 := False; +reg291890 = reg291889 +} +reg291892 = reg291890 +} else { +reg291891 := False; +reg291892 = reg291891 +} +if reg291892 == True { +reg291893 := PrimTail(V3981) +__ctx.TailApply(__defun__shen_4trim_1gubbins, reg291893) +return +} else { +reg291895 := PrimIsPair(V3981) +var reg291903 Obj +if reg291895 == True { +reg291896 := PrimHead(V3981) +reg291897 := __e.Call(__defun__shen_4left_1round) +reg291898 := PrimEqual(reg291896, reg291897) +var reg291901 Obj +if reg291898 == True { +reg291899 := True; +reg291901 = reg291899 +} else { +reg291900 := False; +reg291901 = reg291900 +} +reg291903 = reg291901 +} else { +reg291902 := False; +reg291903 = reg291902 +} +if reg291903 == True { +reg291904 := PrimTail(V3981) +__ctx.TailApply(__defun__shen_4trim_1gubbins, reg291904) +return +} else { +__ctx.Return(V3981) +return +} +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.trim-gubbins", value: __defun__shen_4trim_1gubbins}) + +__defun__shen_4space = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291906 := MakeNumber(32) +__ctx.Return(reg291906) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.space", value: __defun__shen_4space}) + +__defun__shen_4tab = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291907 := MakeNumber(9) +__ctx.Return(reg291907) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.tab", value: __defun__shen_4tab}) + +__defun__shen_4left_1round = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg291908 := MakeNumber(40) +__ctx.Return(reg291908) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.left-round", value: __defun__shen_4left_1round}) + +__defun__shen_4find = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V3990 := __args[0] +_ = V3990 +V3991 := __args[1] +_ = V3991 +reg291909 := Nil; +reg291910 := PrimEqual(reg291909, V3991) +if reg291910 == True { +reg291911 := Nil; +__ctx.Return(reg291911) +return +} else { +reg291912 := PrimIsPair(V3991) +var reg291919 Obj +if reg291912 == True { +reg291913 := PrimHead(V3991) +reg291914 := __e.Call(V3990, reg291913) +var reg291917 Obj +if reg291914 == True { +reg291915 := True; +reg291917 = reg291915 +} else { +reg291916 := False; +reg291917 = reg291916 +} +reg291919 = reg291917 +} else { +reg291918 := False; +reg291919 = reg291918 +} +if reg291919 == True { +reg291920 := PrimHead(V3991) +reg291921 := PrimTail(V3991) +reg291922 := __e.Call(__defun__shen_4find, V3990, reg291921) +reg291923 := PrimCons(reg291920, reg291922) +__ctx.Return(reg291923) +return +} else { +reg291924 := PrimIsPair(V3991) +if reg291924 == True { +reg291925 := PrimTail(V3991) +__ctx.TailApply(__defun__shen_4find, V3990, reg291925) +return +} else { +reg291927 := MakeSymbol("shen.find") +__ctx.TailApply(__defun__shen_4f__error, reg291927) +return +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.find", value: __defun__shen_4find}) + +__defun__shen_4prefix_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4005 := __args[0] +_ = V4005 +V4006 := __args[1] +_ = V4006 +reg291929 := Nil; +reg291930 := PrimEqual(reg291929, V4005) +if reg291930 == True { +reg291931 := True; +__ctx.Return(reg291931) +return +} else { +reg291932 := PrimIsPair(V4005) +var reg291946 Obj +if reg291932 == True { +reg291933 := PrimIsPair(V4006) +var reg291941 Obj +if reg291933 == True { +reg291934 := PrimHead(V4006) +reg291935 := PrimHead(V4005) +reg291936 := PrimEqual(reg291934, reg291935) +var reg291939 Obj +if reg291936 == True { +reg291937 := True; +reg291939 = reg291937 +} else { +reg291938 := False; +reg291939 = reg291938 +} +reg291941 = reg291939 +} else { +reg291940 := False; +reg291941 = reg291940 +} +var reg291944 Obj +if reg291941 == True { +reg291942 := True; +reg291944 = reg291942 +} else { +reg291943 := False; +reg291944 = reg291943 +} +reg291946 = reg291944 +} else { +reg291945 := False; +reg291946 = reg291945 +} +if reg291946 == True { +reg291947 := PrimTail(V4005) +reg291948 := PrimTail(V4006) +__ctx.TailApply(__defun__shen_4prefix_2, reg291947, reg291948) +return +} else { +reg291950 := False; +__ctx.Return(reg291950) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.prefix?", value: __defun__shen_4prefix_2}) + +__defun__shen_4print_1past_1inputs = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4018 := __args[0] +_ = V4018 +V4019 := __args[1] +_ = V4019 +V4020 := __args[2] +_ = V4020 +reg291951 := Nil; +reg291952 := PrimEqual(reg291951, V4019) +if reg291952 == True { +reg291953 := MakeSymbol("_") +__ctx.Return(reg291953) +return +} else { +reg291954 := PrimIsPair(V4019) +var reg291962 Obj +if reg291954 == True { +reg291955 := PrimHead(V4019) +reg291956 := __e.Call(V4018, reg291955) +reg291957 := PrimNot(reg291956) +var reg291960 Obj +if reg291957 == True { +reg291958 := True; +reg291960 = reg291958 +} else { +reg291959 := False; +reg291960 = reg291959 +} +reg291962 = reg291960 +} else { +reg291961 := False; +reg291962 = reg291961 +} +if reg291962 == True { +reg291963 := PrimTail(V4019) +reg291964 := MakeNumber(1) +reg291965 := PrimNumberAdd(V4020, reg291964) +__ctx.TailApply(__defun__shen_4print_1past_1inputs, V4018, reg291963, reg291965) +return +} else { +reg291967 := PrimIsPair(V4019) +var reg291974 Obj +if reg291967 == True { +reg291968 := PrimHead(V4019) +reg291969 := __e.Call(__defun__tuple_2, reg291968) +var reg291972 Obj +if reg291969 == True { +reg291970 := True; +reg291972 = reg291970 +} else { +reg291971 := False; +reg291972 = reg291971 +} +reg291974 = reg291972 +} else { +reg291973 := False; +reg291974 = reg291973 +} +if reg291974 == True { +reg291975 := MakeString(". ") +reg291976 := MakeSymbol("shen.a") +reg291977 := __e.Call(__defun__shen_4app, V4020, reg291975, reg291976) +reg291978 := __e.Call(__defun__stoutput) +reg291979 := __e.Call(__defun__shen_4prhush, reg291977, reg291978) +_ = reg291979 +reg291980 := PrimHead(V4019) +reg291981 := __e.Call(__defun__snd, reg291980) +reg291982 := __e.Call(__defun__shen_4prbytes, reg291981) +_ = reg291982 +reg291983 := PrimTail(V4019) +reg291984 := MakeNumber(1) +reg291985 := PrimNumberAdd(V4020, reg291984) +__ctx.TailApply(__defun__shen_4print_1past_1inputs, V4018, reg291983, reg291985) +return +} else { +reg291987 := MakeSymbol("shen.print-past-inputs") +__ctx.TailApply(__defun__shen_4f__error, reg291987) +return +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.print-past-inputs", value: __defun__shen_4print_1past_1inputs}) + +__defun__shen_4toplevel__evaluate = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4023 := __args[0] +_ = V4023 +V4024 := __args[1] +_ = V4024 +reg291989 := PrimIsPair(V4023) +var reg292030 Obj +if reg291989 == True { +reg291990 := PrimTail(V4023) +reg291991 := PrimIsPair(reg291990) +var reg292025 Obj +if reg291991 == True { +reg291992 := MakeSymbol(":") +reg291993 := PrimTail(V4023) +reg291994 := PrimHead(reg291993) +reg291995 := PrimEqual(reg291992, reg291994) +var reg292020 Obj +if reg291995 == True { +reg291996 := PrimTail(V4023) +reg291997 := PrimTail(reg291996) +reg291998 := PrimIsPair(reg291997) +var reg292015 Obj +if reg291998 == True { +reg291999 := Nil; +reg292000 := PrimTail(V4023) +reg292001 := PrimTail(reg292000) +reg292002 := PrimTail(reg292001) +reg292003 := PrimEqual(reg291999, reg292002) +var reg292010 Obj +if reg292003 == True { +reg292004 := True; +reg292005 := PrimEqual(reg292004, V4024) +var reg292008 Obj +if reg292005 == True { +reg292006 := True; +reg292008 = reg292006 +} else { +reg292007 := False; +reg292008 = reg292007 +} +reg292010 = reg292008 +} else { +reg292009 := False; +reg292010 = reg292009 +} +var reg292013 Obj +if reg292010 == True { +reg292011 := True; +reg292013 = reg292011 +} else { +reg292012 := False; +reg292013 = reg292012 +} +reg292015 = reg292013 +} else { +reg292014 := False; +reg292015 = reg292014 +} +var reg292018 Obj +if reg292015 == True { +reg292016 := True; +reg292018 = reg292016 +} else { +reg292017 := False; +reg292018 = reg292017 +} +reg292020 = reg292018 +} else { +reg292019 := False; +reg292020 = reg292019 +} +var reg292023 Obj +if reg292020 == True { +reg292021 := True; +reg292023 = reg292021 +} else { +reg292022 := False; +reg292023 = reg292022 +} +reg292025 = reg292023 +} else { +reg292024 := False; +reg292025 = reg292024 +} +var reg292028 Obj +if reg292025 == True { +reg292026 := True; +reg292028 = reg292026 +} else { +reg292027 := False; +reg292028 = reg292027 +} +reg292030 = reg292028 +} else { +reg292029 := False; +reg292030 = reg292029 +} +if reg292030 == True { +reg292031 := PrimHead(V4023) +reg292032 := PrimTail(V4023) +reg292033 := PrimTail(reg292032) +reg292034 := PrimHead(reg292033) +__ctx.TailApply(__defun__shen_4typecheck_1and_1evaluate, reg292031, reg292034) +return +} else { +reg292036 := PrimIsPair(V4023) +var reg292043 Obj +if reg292036 == True { +reg292037 := PrimTail(V4023) +reg292038 := PrimIsPair(reg292037) +var reg292041 Obj +if reg292038 == True { +reg292039 := True; +reg292041 = reg292039 +} else { +reg292040 := False; +reg292041 = reg292040 +} +reg292043 = reg292041 +} else { +reg292042 := False; +reg292043 = reg292042 +} +if reg292043 == True { +reg292044 := PrimHead(V4023) +reg292045 := Nil; +reg292046 := PrimCons(reg292044, reg292045) +reg292047 := __e.Call(__defun__shen_4toplevel__evaluate, reg292046, V4024) +_ = reg292047 +reg292048 := MakeNumber(1) +reg292049 := __e.Call(__defun__nl, reg292048) +_ = reg292049 +reg292050 := PrimTail(V4023) +__ctx.TailApply(__defun__shen_4toplevel__evaluate, reg292050, V4024) +return +} else { +reg292052 := PrimIsPair(V4023) +var reg292067 Obj +if reg292052 == True { +reg292053 := Nil; +reg292054 := PrimTail(V4023) +reg292055 := PrimEqual(reg292053, reg292054) +var reg292062 Obj +if reg292055 == True { +reg292056 := True; +reg292057 := PrimEqual(reg292056, V4024) +var reg292060 Obj +if reg292057 == True { +reg292058 := True; +reg292060 = reg292058 +} else { +reg292059 := False; +reg292060 = reg292059 +} +reg292062 = reg292060 +} else { +reg292061 := False; +reg292062 = reg292061 +} +var reg292065 Obj +if reg292062 == True { +reg292063 := True; +reg292065 = reg292063 +} else { +reg292064 := False; +reg292065 = reg292064 +} +reg292067 = reg292065 +} else { +reg292066 := False; +reg292067 = reg292066 +} +if reg292067 == True { +reg292068 := PrimHead(V4023) +reg292069 := MakeSymbol("A") +reg292070 := __e.Call(__defun__gensym, reg292069) +__ctx.TailApply(__defun__shen_4typecheck_1and_1evaluate, reg292068, reg292070) +return +} else { +reg292072 := PrimIsPair(V4023) +var reg292087 Obj +if reg292072 == True { +reg292073 := Nil; +reg292074 := PrimTail(V4023) +reg292075 := PrimEqual(reg292073, reg292074) +var reg292082 Obj +if reg292075 == True { +reg292076 := False; +reg292077 := PrimEqual(reg292076, V4024) +var reg292080 Obj +if reg292077 == True { +reg292078 := True; +reg292080 = reg292078 +} else { +reg292079 := False; +reg292080 = reg292079 +} +reg292082 = reg292080 +} else { +reg292081 := False; +reg292082 = reg292081 +} +var reg292085 Obj +if reg292082 == True { +reg292083 := True; +reg292085 = reg292083 +} else { +reg292084 := False; +reg292085 = reg292084 +} +reg292087 = reg292085 +} else { +reg292086 := False; +reg292087 = reg292086 +} +if reg292087 == True { +reg292088 := PrimHead(V4023) +reg292089 := __e.Call(__defun__shen_4eval_1without_1macros, reg292088) +Eval := reg292089 +_ = Eval +__ctx.TailApply(__defun__print, Eval) +return +} else { +reg292091 := MakeSymbol("shen.toplevel_evaluate") +__ctx.TailApply(__defun__shen_4f__error, reg292091) +return +} +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.toplevel_evaluate", value: __defun__shen_4toplevel__evaluate}) + +__defun__shen_4typecheck_1and_1evaluate = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4027 := __args[0] +_ = V4027 +V4028 := __args[1] +_ = V4028 +reg292093 := __e.Call(__defun__shen_4typecheck, V4027, V4028) +Typecheck := reg292093 +_ = Typecheck +reg292094 := False; +reg292095 := PrimEqual(Typecheck, reg292094) +if reg292095 == True { +reg292096 := MakeString("type error\n") +reg292097 := PrimSimpleError(reg292096) +__ctx.Return(reg292097) +return +} else { +reg292098 := __e.Call(__defun__shen_4eval_1without_1macros, V4027) +Eval := reg292098 +_ = Eval +reg292099 := __e.Call(__defun__shen_4pretty_1type, Typecheck) +Type := reg292099 +_ = Type +reg292100 := MakeString(" : ") +reg292101 := MakeString("") +reg292102 := MakeSymbol("shen.r") +reg292103 := __e.Call(__defun__shen_4app, Type, reg292101, reg292102) +reg292104 := PrimStringConcat(reg292100, reg292103) +reg292105 := MakeSymbol("shen.s") +reg292106 := __e.Call(__defun__shen_4app, Eval, reg292104, reg292105) +reg292107 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__shen_4prhush, reg292106, reg292107) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.typecheck-and-evaluate", value: __defun__shen_4typecheck_1and_1evaluate}) + +__defun__shen_4pretty_1type = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4030 := __args[0] +_ = V4030 +reg292109 := MakeSymbol("shen.*alphabet*") +reg292110 := PrimValue(reg292109) +reg292111 := __e.Call(__defun__shen_4extract_1pvars, V4030) +__ctx.TailApply(__defun__shen_4mult__subst, reg292110, reg292111, V4030) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.pretty-type", value: __defun__shen_4pretty_1type}) + +__defun__shen_4extract_1pvars = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4036 := __args[0] +_ = V4036 +reg292113 := __e.Call(__defun__shen_4pvar_2, V4036) +if reg292113 == True { +reg292114 := Nil; +reg292115 := PrimCons(V4036, reg292114) +__ctx.Return(reg292115) +return +} else { +reg292116 := PrimIsPair(V4036) +if reg292116 == True { +reg292117 := PrimHead(V4036) +reg292118 := __e.Call(__defun__shen_4extract_1pvars, reg292117) +reg292119 := PrimTail(V4036) +reg292120 := __e.Call(__defun__shen_4extract_1pvars, reg292119) +__ctx.TailApply(__defun__union, reg292118, reg292120) +return +} else { +reg292122 := Nil; +__ctx.Return(reg292122) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.extract-pvars", value: __defun__shen_4extract_1pvars}) + +__defun__shen_4mult__subst = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4044 := __args[0] +_ = V4044 +V4045 := __args[1] +_ = V4045 +V4046 := __args[2] +_ = V4046 +reg292123 := Nil; +reg292124 := PrimEqual(reg292123, V4044) +if reg292124 == True { +__ctx.Return(V4046) +return +} else { +reg292125 := Nil; +reg292126 := PrimEqual(reg292125, V4045) +if reg292126 == True { +__ctx.Return(V4046) +return +} else { +reg292127 := PrimIsPair(V4044) +var reg292133 Obj +if reg292127 == True { +reg292128 := PrimIsPair(V4045) +var reg292131 Obj +if reg292128 == True { +reg292129 := True; +reg292131 = reg292129 +} else { +reg292130 := False; +reg292131 = reg292130 +} +reg292133 = reg292131 +} else { +reg292132 := False; +reg292133 = reg292132 +} +if reg292133 == True { +reg292134 := PrimTail(V4044) +reg292135 := PrimTail(V4045) +reg292136 := PrimHead(V4044) +reg292137 := PrimHead(V4045) +reg292138 := __e.Call(__defun__subst, reg292136, reg292137, V4046) +__ctx.TailApply(__defun__shen_4mult__subst, reg292134, reg292135, reg292138) +return +} else { +reg292140 := MakeSymbol("shen.mult_subst") +__ctx.TailApply(__defun__shen_4f__error, reg292140) +return +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.mult_subst", value: __defun__shen_4mult__subst}) + +} diff --git a/cmd/shen/track.go b/cmd/shen/track.go new file mode 100644 index 0000000..dcb2215 --- /dev/null +++ b/cmd/shen/track.go @@ -0,0 +1,905 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__shen_4f__error Obj // shen.f_error +var __defun__shen_4tracked_2 Obj // shen.tracked? +var __defun__track Obj // track +var __defun__shen_4track_1function Obj // shen.track-function +var __defun__shen_4insert_1tracking_1code Obj // shen.insert-tracking-code +var __defun__step Obj // step +var __defun__spy Obj // spy +var __defun__shen_4terpri_1or_1read_1char Obj // shen.terpri-or-read-char +var __defun__shen_4check_1byte Obj // shen.check-byte +var __defun__shen_4input_1track Obj // shen.input-track +var __defun__shen_4recursively_1print Obj // shen.recursively-print +var __defun__shen_4spaces Obj // shen.spaces +var __defun__shen_4output_1track Obj // shen.output-track +var __defun__untrack Obj // untrack +var __defun__profile Obj // profile +var __defun__shen_4profile_1help Obj // shen.profile-help +var __defun__unprofile Obj // unprofile +var __defun__shen_4profile_1func Obj // shen.profile-func +var __defun__profile_1results Obj // profile-results +var __defun__shen_4get_1profile Obj // shen.get-profile +var __defun__shen_4put_1profile Obj // shen.put-profile + +func init() { + __initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + reg307342 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") + __ctx.Return(reg307342) + return + }, 0)) + __defun__shen_4f__error = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4048 := __args[0] + _ = V4048 + reg307343 := MakeString("partial function ") + reg307344 := MakeString(";\n") + reg307345 := MakeSymbol("shen.a") + reg307346 := __e.Call(__defun__shen_4app, V4048, reg307344, reg307345) + reg307347 := PrimStringConcat(reg307343, reg307346) + reg307348 := __e.Call(__defun__stoutput) + reg307349 := __e.Call(__defun__shen_4prhush, reg307347, reg307348) + _ = reg307349 + reg307350 := __e.Call(__defun__shen_4tracked_2, V4048) + reg307351 := PrimNot(reg307350) + var reg307362 Obj + if reg307351 == True { + reg307352 := MakeString("track ") + reg307353 := MakeString("? ") + reg307354 := MakeSymbol("shen.a") + reg307355 := __e.Call(__defun__shen_4app, V4048, reg307353, reg307354) + reg307356 := PrimStringConcat(reg307352, reg307355) + reg307357 := __e.Call(__defun__y_1or_1n_2, reg307356) + var reg307360 Obj + if reg307357 == True { + reg307358 := True + reg307360 = reg307358 + } else { + reg307359 := False + reg307360 = reg307359 + } + reg307362 = reg307360 + } else { + reg307361 := False + reg307362 = reg307361 + } + var reg307366 Obj + if reg307362 == True { + reg307363 := __e.Call(__defun__ps, V4048) + reg307364 := __e.Call(__defun__shen_4track_1function, reg307363) + reg307366 = reg307364 + } else { + reg307365 := MakeSymbol("shen.ok") + reg307366 = reg307365 + } + _ = reg307366 + reg307367 := MakeString("aborted") + reg307368 := PrimSimpleError(reg307367) + __ctx.Return(reg307368) + return + }, 1) + __initDefs = append(__initDefs, defType{name: "shen.f_error", value: __defun__shen_4f__error}) + + __defun__shen_4tracked_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4050 := __args[0] + _ = V4050 + reg307369 := MakeSymbol("shen.*tracking*") + reg307370 := PrimValue(reg307369) + __ctx.TailApply(__defun__element_2, V4050, reg307370) + return + }, 1) + __initDefs = append(__initDefs, defType{name: "shen.tracked?", value: __defun__shen_4tracked_2}) + + __defun__track = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4052 := __args[0] + _ = V4052 + reg307372 := __e.Call(__defun__ps, V4052) + Source := reg307372 + _ = Source + __ctx.TailApply(__defun__shen_4track_1function, Source) + return + }, 1) + __initDefs = append(__initDefs, defType{name: "track", value: __defun__track}) + + __defun__shen_4track_1function = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4054 := __args[0] + _ = V4054 + reg307374 := PrimIsPair(V4054) + var reg307417 Obj + if reg307374 == True { + reg307375 := MakeSymbol("defun") + reg307376 := PrimHead(V4054) + reg307377 := PrimEqual(reg307375, reg307376) + var reg307412 Obj + if reg307377 == True { + reg307378 := PrimTail(V4054) + reg307379 := PrimIsPair(reg307378) + var reg307407 Obj + if reg307379 == True { + reg307380 := PrimTail(V4054) + reg307381 := PrimTail(reg307380) + reg307382 := PrimIsPair(reg307381) + var reg307402 Obj + if reg307382 == True { + reg307383 := PrimTail(V4054) + reg307384 := PrimTail(reg307383) + reg307385 := PrimTail(reg307384) + reg307386 := PrimIsPair(reg307385) + var reg307397 Obj + if reg307386 == True { + reg307387 := Nil + reg307388 := PrimTail(V4054) + reg307389 := PrimTail(reg307388) + reg307390 := PrimTail(reg307389) + reg307391 := PrimTail(reg307390) + reg307392 := PrimEqual(reg307387, reg307391) + var reg307395 Obj + if reg307392 == True { + reg307393 := True + reg307395 = reg307393 + } else { + reg307394 := False + reg307395 = reg307394 + } + reg307397 = reg307395 + } else { + reg307396 := False + reg307397 = reg307396 + } + var reg307400 Obj + if reg307397 == True { + reg307398 := True + reg307400 = reg307398 + } else { + reg307399 := False + reg307400 = reg307399 + } + reg307402 = reg307400 + } else { + reg307401 := False + reg307402 = reg307401 + } + var reg307405 Obj + if reg307402 == True { + reg307403 := True + reg307405 = reg307403 + } else { + reg307404 := False + reg307405 = reg307404 + } + reg307407 = reg307405 + } else { + reg307406 := False + reg307407 = reg307406 + } + var reg307410 Obj + if reg307407 == True { + reg307408 := True + reg307410 = reg307408 + } else { + reg307409 := False + reg307410 = reg307409 + } + reg307412 = reg307410 + } else { + reg307411 := False + reg307412 = reg307411 + } + var reg307415 Obj + if reg307412 == True { + reg307413 := True + reg307415 = reg307413 + } else { + reg307414 := False + reg307415 = reg307414 + } + reg307417 = reg307415 + } else { + reg307416 := False + reg307417 = reg307416 + } + if reg307417 == True { + reg307418 := MakeSymbol("defun") + reg307419 := PrimTail(V4054) + reg307420 := PrimHead(reg307419) + reg307421 := PrimTail(V4054) + reg307422 := PrimTail(reg307421) + reg307423 := PrimHead(reg307422) + reg307424 := PrimTail(V4054) + reg307425 := PrimHead(reg307424) + reg307426 := PrimTail(V4054) + reg307427 := PrimTail(reg307426) + reg307428 := PrimHead(reg307427) + reg307429 := PrimTail(V4054) + reg307430 := PrimTail(reg307429) + reg307431 := PrimTail(reg307430) + reg307432 := PrimHead(reg307431) + reg307433 := __e.Call(__defun__shen_4insert_1tracking_1code, reg307425, reg307428, reg307432) + reg307434 := Nil + reg307435 := PrimCons(reg307433, reg307434) + reg307436 := PrimCons(reg307423, reg307435) + reg307437 := PrimCons(reg307420, reg307436) + reg307438 := PrimCons(reg307418, reg307437) + KL := reg307438 + _ = KL + reg307439 := PrimEvalKL(__e, KL) + Ob := reg307439 + _ = Ob + reg307440 := MakeSymbol("shen.*tracking*") + reg307441 := MakeSymbol("shen.*tracking*") + reg307442 := PrimValue(reg307441) + reg307443 := PrimCons(Ob, reg307442) + reg307444 := PrimSet(reg307440, reg307443) + Tr := reg307444 + _ = Tr + __ctx.Return(Ob) + return + } else { + reg307445 := MakeSymbol("shen.track-function") + __ctx.TailApply(__defun__shen_4f__error, reg307445) + return + } + }, 1) + __initDefs = append(__initDefs, defType{name: "shen.track-function", value: __defun__shen_4track_1function}) + + __defun__shen_4insert_1tracking_1code = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4058 := __args[0] + _ = V4058 + V4059 := __args[1] + _ = V4059 + V4060 := __args[2] + _ = V4060 + reg307447 := MakeSymbol("do") + reg307448 := MakeSymbol("set") + reg307449 := MakeSymbol("shen.*call*") + reg307450 := MakeSymbol("+") + reg307451 := MakeSymbol("value") + reg307452 := MakeSymbol("shen.*call*") + reg307453 := Nil + reg307454 := PrimCons(reg307452, reg307453) + reg307455 := PrimCons(reg307451, reg307454) + reg307456 := MakeNumber(1) + reg307457 := Nil + reg307458 := PrimCons(reg307456, reg307457) + reg307459 := PrimCons(reg307455, reg307458) + reg307460 := PrimCons(reg307450, reg307459) + reg307461 := Nil + reg307462 := PrimCons(reg307460, reg307461) + reg307463 := PrimCons(reg307449, reg307462) + reg307464 := PrimCons(reg307448, reg307463) + reg307465 := MakeSymbol("do") + reg307466 := MakeSymbol("shen.input-track") + reg307467 := MakeSymbol("value") + reg307468 := MakeSymbol("shen.*call*") + reg307469 := Nil + reg307470 := PrimCons(reg307468, reg307469) + reg307471 := PrimCons(reg307467, reg307470) + reg307472 := __e.Call(__defun__shen_4cons__form, V4059) + reg307473 := Nil + reg307474 := PrimCons(reg307472, reg307473) + reg307475 := PrimCons(V4058, reg307474) + reg307476 := PrimCons(reg307471, reg307475) + reg307477 := PrimCons(reg307466, reg307476) + reg307478 := MakeSymbol("do") + reg307479 := MakeSymbol("shen.terpri-or-read-char") + reg307480 := Nil + reg307481 := PrimCons(reg307479, reg307480) + reg307482 := MakeSymbol("let") + reg307483 := MakeSymbol("Result") + reg307484 := MakeSymbol("do") + reg307485 := MakeSymbol("shen.output-track") + reg307486 := MakeSymbol("value") + reg307487 := MakeSymbol("shen.*call*") + reg307488 := Nil + reg307489 := PrimCons(reg307487, reg307488) + reg307490 := PrimCons(reg307486, reg307489) + reg307491 := MakeSymbol("Result") + reg307492 := Nil + reg307493 := PrimCons(reg307491, reg307492) + reg307494 := PrimCons(V4058, reg307493) + reg307495 := PrimCons(reg307490, reg307494) + reg307496 := PrimCons(reg307485, reg307495) + reg307497 := MakeSymbol("do") + reg307498 := MakeSymbol("set") + reg307499 := MakeSymbol("shen.*call*") + reg307500 := MakeSymbol("-") + reg307501 := MakeSymbol("value") + reg307502 := MakeSymbol("shen.*call*") + reg307503 := Nil + reg307504 := PrimCons(reg307502, reg307503) + reg307505 := PrimCons(reg307501, reg307504) + reg307506 := MakeNumber(1) + reg307507 := Nil + reg307508 := PrimCons(reg307506, reg307507) + reg307509 := PrimCons(reg307505, reg307508) + reg307510 := PrimCons(reg307500, reg307509) + reg307511 := Nil + reg307512 := PrimCons(reg307510, reg307511) + reg307513 := PrimCons(reg307499, reg307512) + reg307514 := PrimCons(reg307498, reg307513) + reg307515 := MakeSymbol("do") + reg307516 := MakeSymbol("shen.terpri-or-read-char") + reg307517 := Nil + reg307518 := PrimCons(reg307516, reg307517) + reg307519 := MakeSymbol("Result") + reg307520 := Nil + reg307521 := PrimCons(reg307519, reg307520) + reg307522 := PrimCons(reg307518, reg307521) + reg307523 := PrimCons(reg307515, reg307522) + reg307524 := Nil + reg307525 := PrimCons(reg307523, reg307524) + reg307526 := PrimCons(reg307514, reg307525) + reg307527 := PrimCons(reg307497, reg307526) + reg307528 := Nil + reg307529 := PrimCons(reg307527, reg307528) + reg307530 := PrimCons(reg307496, reg307529) + reg307531 := PrimCons(reg307484, reg307530) + reg307532 := Nil + reg307533 := PrimCons(reg307531, reg307532) + reg307534 := PrimCons(V4060, reg307533) + reg307535 := PrimCons(reg307483, reg307534) + reg307536 := PrimCons(reg307482, reg307535) + reg307537 := Nil + reg307538 := PrimCons(reg307536, reg307537) + reg307539 := PrimCons(reg307481, reg307538) + reg307540 := PrimCons(reg307478, reg307539) + reg307541 := Nil + reg307542 := PrimCons(reg307540, reg307541) + reg307543 := PrimCons(reg307477, reg307542) + reg307544 := PrimCons(reg307465, reg307543) + reg307545 := Nil + reg307546 := PrimCons(reg307544, reg307545) + reg307547 := PrimCons(reg307464, reg307546) + reg307548 := PrimCons(reg307447, reg307547) + __ctx.Return(reg307548) + return + }, 3) + __initDefs = append(__initDefs, defType{name: "shen.insert-tracking-code", value: __defun__shen_4insert_1tracking_1code}) + + __initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + reg307549 := MakeSymbol("shen.*step*") + reg307550 := False + reg307551 := PrimSet(reg307549, reg307550) + __ctx.Return(reg307551) + return + }, 0)) + __defun__step = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4066 := __args[0] + _ = V4066 + reg307552 := MakeSymbol("+") + reg307553 := PrimEqual(reg307552, V4066) + if reg307553 == True { + reg307554 := MakeSymbol("shen.*step*") + reg307555 := True + reg307556 := PrimSet(reg307554, reg307555) + __ctx.Return(reg307556) + return + } else { + reg307557 := MakeSymbol("-") + reg307558 := PrimEqual(reg307557, V4066) + if reg307558 == True { + reg307559 := MakeSymbol("shen.*step*") + reg307560 := False + reg307561 := PrimSet(reg307559, reg307560) + __ctx.Return(reg307561) + return + } else { + reg307562 := MakeString("step expects a + or a -.\n") + reg307563 := PrimSimpleError(reg307562) + __ctx.Return(reg307563) + return + } + } + }, 1) + __initDefs = append(__initDefs, defType{name: "step", value: __defun__step}) + + __defun__spy = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4072 := __args[0] + _ = V4072 + reg307564 := MakeSymbol("+") + reg307565 := PrimEqual(reg307564, V4072) + if reg307565 == True { + reg307566 := MakeSymbol("shen.*spy*") + reg307567 := True + reg307568 := PrimSet(reg307566, reg307567) + __ctx.Return(reg307568) + return + } else { + reg307569 := MakeSymbol("-") + reg307570 := PrimEqual(reg307569, V4072) + if reg307570 == True { + reg307571 := MakeSymbol("shen.*spy*") + reg307572 := False + reg307573 := PrimSet(reg307571, reg307572) + __ctx.Return(reg307573) + return + } else { + reg307574 := MakeString("spy expects a + or a -.\n") + reg307575 := PrimSimpleError(reg307574) + __ctx.Return(reg307575) + return + } + } + }, 1) + __initDefs = append(__initDefs, defType{name: "spy", value: __defun__spy}) + + __defun__shen_4terpri_1or_1read_1char = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + reg307576 := MakeSymbol("shen.*step*") + reg307577 := PrimValue(reg307576) + if reg307577 == True { + reg307578 := MakeSymbol("*stinput*") + reg307579 := PrimValue(reg307578) + reg307580 := PrimReadByte(reg307579) + __ctx.TailApply(__defun__shen_4check_1byte, reg307580) + return + } else { + reg307582 := MakeNumber(1) + __ctx.TailApply(__defun__nl, reg307582) + return + } + }, 0) + __initDefs = append(__initDefs, defType{name: "shen.terpri-or-read-char", value: __defun__shen_4terpri_1or_1read_1char}) + + __defun__shen_4check_1byte = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4078 := __args[0] + _ = V4078 + reg307584 := __e.Call(__defun__shen_4hat) + reg307585 := PrimEqual(V4078, reg307584) + if reg307585 == True { + reg307586 := MakeString("aborted") + reg307587 := PrimSimpleError(reg307586) + __ctx.Return(reg307587) + return + } else { + reg307588 := True + __ctx.Return(reg307588) + return + } + }, 1) + __initDefs = append(__initDefs, defType{name: "shen.check-byte", value: __defun__shen_4check_1byte}) + + __defun__shen_4input_1track = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4082 := __args[0] + _ = V4082 + V4083 := __args[1] + _ = V4083 + V4084 := __args[2] + _ = V4084 + reg307589 := MakeString("\n") + reg307590 := __e.Call(__defun__shen_4spaces, V4082) + reg307591 := MakeString("<") + reg307592 := MakeString("> Inputs to ") + reg307593 := MakeString(" \n") + reg307594 := __e.Call(__defun__shen_4spaces, V4082) + reg307595 := MakeString("") + reg307596 := MakeSymbol("shen.a") + reg307597 := __e.Call(__defun__shen_4app, reg307594, reg307595, reg307596) + reg307598 := PrimStringConcat(reg307593, reg307597) + reg307599 := MakeSymbol("shen.a") + reg307600 := __e.Call(__defun__shen_4app, V4083, reg307598, reg307599) + reg307601 := PrimStringConcat(reg307592, reg307600) + reg307602 := MakeSymbol("shen.a") + reg307603 := __e.Call(__defun__shen_4app, V4082, reg307601, reg307602) + reg307604 := PrimStringConcat(reg307591, reg307603) + reg307605 := MakeSymbol("shen.a") + reg307606 := __e.Call(__defun__shen_4app, reg307590, reg307604, reg307605) + reg307607 := PrimStringConcat(reg307589, reg307606) + reg307608 := __e.Call(__defun__stoutput) + reg307609 := __e.Call(__defun__shen_4prhush, reg307607, reg307608) + _ = reg307609 + __ctx.TailApply(__defun__shen_4recursively_1print, V4084) + return + }, 3) + __initDefs = append(__initDefs, defType{name: "shen.input-track", value: __defun__shen_4input_1track}) + + __defun__shen_4recursively_1print = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4086 := __args[0] + _ = V4086 + reg307611 := Nil + reg307612 := PrimEqual(reg307611, V4086) + if reg307612 == True { + reg307613 := MakeString(" ==>") + reg307614 := __e.Call(__defun__stoutput) + __ctx.TailApply(__defun__shen_4prhush, reg307613, reg307614) + return + } else { + reg307616 := PrimIsPair(V4086) + if reg307616 == True { + reg307617 := PrimHead(V4086) + reg307618 := __e.Call(__defun__print, reg307617) + _ = reg307618 + reg307619 := MakeString(", ") + reg307620 := __e.Call(__defun__stoutput) + reg307621 := __e.Call(__defun__shen_4prhush, reg307619, reg307620) + _ = reg307621 + reg307622 := PrimTail(V4086) + __ctx.TailApply(__defun__shen_4recursively_1print, reg307622) + return + } else { + reg307624 := MakeSymbol("shen.recursively-print") + __ctx.TailApply(__defun__shen_4f__error, reg307624) + return + } + } + }, 1) + __initDefs = append(__initDefs, defType{name: "shen.recursively-print", value: __defun__shen_4recursively_1print}) + + __defun__shen_4spaces = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4088 := __args[0] + _ = V4088 + reg307626 := MakeNumber(0) + reg307627 := PrimEqual(reg307626, V4088) + if reg307627 == True { + reg307628 := MakeString("") + __ctx.Return(reg307628) + return + } else { + reg307629 := MakeString(" ") + reg307630 := MakeNumber(1) + reg307631 := PrimNumberSubtract(V4088, reg307630) + reg307632 := __e.Call(__defun__shen_4spaces, reg307631) + reg307633 := PrimStringConcat(reg307629, reg307632) + __ctx.Return(reg307633) + return + } + }, 1) + __initDefs = append(__initDefs, defType{name: "shen.spaces", value: __defun__shen_4spaces}) + + __defun__shen_4output_1track = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4092 := __args[0] + _ = V4092 + V4093 := __args[1] + _ = V4093 + V4094 := __args[2] + _ = V4094 + reg307634 := MakeString("\n") + reg307635 := __e.Call(__defun__shen_4spaces, V4092) + reg307636 := MakeString("<") + reg307637 := MakeString("> Output from ") + reg307638 := MakeString(" \n") + reg307639 := __e.Call(__defun__shen_4spaces, V4092) + reg307640 := MakeString("==> ") + reg307641 := MakeString("") + reg307642 := MakeSymbol("shen.s") + reg307643 := __e.Call(__defun__shen_4app, V4094, reg307641, reg307642) + reg307644 := PrimStringConcat(reg307640, reg307643) + reg307645 := MakeSymbol("shen.a") + reg307646 := __e.Call(__defun__shen_4app, reg307639, reg307644, reg307645) + reg307647 := PrimStringConcat(reg307638, reg307646) + reg307648 := MakeSymbol("shen.a") + reg307649 := __e.Call(__defun__shen_4app, V4093, reg307647, reg307648) + reg307650 := PrimStringConcat(reg307637, reg307649) + reg307651 := MakeSymbol("shen.a") + reg307652 := __e.Call(__defun__shen_4app, V4092, reg307650, reg307651) + reg307653 := PrimStringConcat(reg307636, reg307652) + reg307654 := MakeSymbol("shen.a") + reg307655 := __e.Call(__defun__shen_4app, reg307635, reg307653, reg307654) + reg307656 := PrimStringConcat(reg307634, reg307655) + reg307657 := __e.Call(__defun__stoutput) + __ctx.TailApply(__defun__shen_4prhush, reg307656, reg307657) + return + }, 3) + __initDefs = append(__initDefs, defType{name: "shen.output-track", value: __defun__shen_4output_1track}) + + __defun__untrack = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4096 := __args[0] + _ = V4096 + reg307659 := MakeSymbol("shen.*tracking*") + reg307660 := PrimValue(reg307659) + Tracking := reg307660 + _ = Tracking + reg307661 := MakeSymbol("shen.*tracking*") + reg307662 := __e.Call(__defun__remove, V4096, Tracking) + reg307663 := PrimSet(reg307661, reg307662) + Tracking = reg307663 + _ = Tracking + reg307664 := __e.Call(__defun__ps, V4096) + __ctx.TailApply(__defun__eval, reg307664) + return + }, 1) + __initDefs = append(__initDefs, defType{name: "untrack", value: __defun__untrack}) + + __defun__profile = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4098 := __args[0] + _ = V4098 + reg307666 := __e.Call(__defun__ps, V4098) + __ctx.TailApply(__defun__shen_4profile_1help, reg307666) + return + }, 1) + __initDefs = append(__initDefs, defType{name: "profile", value: __defun__profile}) + + __defun__shen_4profile_1help = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4104 := __args[0] + _ = V4104 + reg307668 := PrimIsPair(V4104) + var reg307711 Obj + if reg307668 == True { + reg307669 := MakeSymbol("defun") + reg307670 := PrimHead(V4104) + reg307671 := PrimEqual(reg307669, reg307670) + var reg307706 Obj + if reg307671 == True { + reg307672 := PrimTail(V4104) + reg307673 := PrimIsPair(reg307672) + var reg307701 Obj + if reg307673 == True { + reg307674 := PrimTail(V4104) + reg307675 := PrimTail(reg307674) + reg307676 := PrimIsPair(reg307675) + var reg307696 Obj + if reg307676 == True { + reg307677 := PrimTail(V4104) + reg307678 := PrimTail(reg307677) + reg307679 := PrimTail(reg307678) + reg307680 := PrimIsPair(reg307679) + var reg307691 Obj + if reg307680 == True { + reg307681 := Nil + reg307682 := PrimTail(V4104) + reg307683 := PrimTail(reg307682) + reg307684 := PrimTail(reg307683) + reg307685 := PrimTail(reg307684) + reg307686 := PrimEqual(reg307681, reg307685) + var reg307689 Obj + if reg307686 == True { + reg307687 := True + reg307689 = reg307687 + } else { + reg307688 := False + reg307689 = reg307688 + } + reg307691 = reg307689 + } else { + reg307690 := False + reg307691 = reg307690 + } + var reg307694 Obj + if reg307691 == True { + reg307692 := True + reg307694 = reg307692 + } else { + reg307693 := False + reg307694 = reg307693 + } + reg307696 = reg307694 + } else { + reg307695 := False + reg307696 = reg307695 + } + var reg307699 Obj + if reg307696 == True { + reg307697 := True + reg307699 = reg307697 + } else { + reg307698 := False + reg307699 = reg307698 + } + reg307701 = reg307699 + } else { + reg307700 := False + reg307701 = reg307700 + } + var reg307704 Obj + if reg307701 == True { + reg307702 := True + reg307704 = reg307702 + } else { + reg307703 := False + reg307704 = reg307703 + } + reg307706 = reg307704 + } else { + reg307705 := False + reg307706 = reg307705 + } + var reg307709 Obj + if reg307706 == True { + reg307707 := True + reg307709 = reg307707 + } else { + reg307708 := False + reg307709 = reg307708 + } + reg307711 = reg307709 + } else { + reg307710 := False + reg307711 = reg307710 + } + if reg307711 == True { + reg307712 := MakeSymbol("shen.f") + reg307713 := __e.Call(__defun__gensym, reg307712) + G := reg307713 + _ = G + reg307714 := MakeSymbol("defun") + reg307715 := PrimTail(V4104) + reg307716 := PrimHead(reg307715) + reg307717 := PrimTail(V4104) + reg307718 := PrimTail(reg307717) + reg307719 := PrimHead(reg307718) + reg307720 := PrimTail(V4104) + reg307721 := PrimHead(reg307720) + reg307722 := PrimTail(V4104) + reg307723 := PrimTail(reg307722) + reg307724 := PrimHead(reg307723) + reg307725 := PrimTail(V4104) + reg307726 := PrimTail(reg307725) + reg307727 := PrimHead(reg307726) + reg307728 := PrimCons(G, reg307727) + reg307729 := __e.Call(__defun__shen_4profile_1func, reg307721, reg307724, reg307728) + reg307730 := Nil + reg307731 := PrimCons(reg307729, reg307730) + reg307732 := PrimCons(reg307719, reg307731) + reg307733 := PrimCons(reg307716, reg307732) + reg307734 := PrimCons(reg307714, reg307733) + Profile := reg307734 + _ = Profile + reg307735 := MakeSymbol("defun") + reg307736 := PrimTail(V4104) + reg307737 := PrimTail(reg307736) + reg307738 := PrimHead(reg307737) + reg307739 := PrimTail(V4104) + reg307740 := PrimHead(reg307739) + reg307741 := PrimTail(V4104) + reg307742 := PrimTail(reg307741) + reg307743 := PrimTail(reg307742) + reg307744 := PrimHead(reg307743) + reg307745 := __e.Call(__defun__subst, G, reg307740, reg307744) + reg307746 := Nil + reg307747 := PrimCons(reg307745, reg307746) + reg307748 := PrimCons(reg307738, reg307747) + reg307749 := PrimCons(G, reg307748) + reg307750 := PrimCons(reg307735, reg307749) + Def := reg307750 + _ = Def + reg307751 := __e.Call(__defun__shen_4eval_1without_1macros, Profile) + CompileProfile := reg307751 + _ = CompileProfile + reg307752 := __e.Call(__defun__shen_4eval_1without_1macros, Def) + CompileG := reg307752 + _ = CompileG + reg307753 := PrimTail(V4104) + reg307754 := PrimHead(reg307753) + __ctx.Return(reg307754) + return + } else { + reg307755 := MakeString("Cannot profile.\n") + reg307756 := PrimSimpleError(reg307755) + __ctx.Return(reg307756) + return + } + }, 1) + __initDefs = append(__initDefs, defType{name: "shen.profile-help", value: __defun__shen_4profile_1help}) + + __defun__unprofile = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4106 := __args[0] + _ = V4106 + __ctx.TailApply(__defun__untrack, V4106) + return + }, 1) + __initDefs = append(__initDefs, defType{name: "unprofile", value: __defun__unprofile}) + + __defun__shen_4profile_1func = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4110 := __args[0] + _ = V4110 + V4111 := __args[1] + _ = V4111 + V4112 := __args[2] + _ = V4112 + reg307758 := MakeSymbol("let") + reg307759 := MakeSymbol("Start") + reg307760 := MakeSymbol("get-time") + reg307761 := MakeSymbol("run") + reg307762 := Nil + reg307763 := PrimCons(reg307761, reg307762) + reg307764 := PrimCons(reg307760, reg307763) + reg307765 := MakeSymbol("let") + reg307766 := MakeSymbol("Result") + reg307767 := MakeSymbol("let") + reg307768 := MakeSymbol("Finish") + reg307769 := MakeSymbol("-") + reg307770 := MakeSymbol("get-time") + reg307771 := MakeSymbol("run") + reg307772 := Nil + reg307773 := PrimCons(reg307771, reg307772) + reg307774 := PrimCons(reg307770, reg307773) + reg307775 := MakeSymbol("Start") + reg307776 := Nil + reg307777 := PrimCons(reg307775, reg307776) + reg307778 := PrimCons(reg307774, reg307777) + reg307779 := PrimCons(reg307769, reg307778) + reg307780 := MakeSymbol("let") + reg307781 := MakeSymbol("Record") + reg307782 := MakeSymbol("shen.put-profile") + reg307783 := MakeSymbol("+") + reg307784 := MakeSymbol("shen.get-profile") + reg307785 := Nil + reg307786 := PrimCons(V4110, reg307785) + reg307787 := PrimCons(reg307784, reg307786) + reg307788 := MakeSymbol("Finish") + reg307789 := Nil + reg307790 := PrimCons(reg307788, reg307789) + reg307791 := PrimCons(reg307787, reg307790) + reg307792 := PrimCons(reg307783, reg307791) + reg307793 := Nil + reg307794 := PrimCons(reg307792, reg307793) + reg307795 := PrimCons(V4110, reg307794) + reg307796 := PrimCons(reg307782, reg307795) + reg307797 := MakeSymbol("Result") + reg307798 := Nil + reg307799 := PrimCons(reg307797, reg307798) + reg307800 := PrimCons(reg307796, reg307799) + reg307801 := PrimCons(reg307781, reg307800) + reg307802 := PrimCons(reg307780, reg307801) + reg307803 := Nil + reg307804 := PrimCons(reg307802, reg307803) + reg307805 := PrimCons(reg307779, reg307804) + reg307806 := PrimCons(reg307768, reg307805) + reg307807 := PrimCons(reg307767, reg307806) + reg307808 := Nil + reg307809 := PrimCons(reg307807, reg307808) + reg307810 := PrimCons(V4112, reg307809) + reg307811 := PrimCons(reg307766, reg307810) + reg307812 := PrimCons(reg307765, reg307811) + reg307813 := Nil + reg307814 := PrimCons(reg307812, reg307813) + reg307815 := PrimCons(reg307764, reg307814) + reg307816 := PrimCons(reg307759, reg307815) + reg307817 := PrimCons(reg307758, reg307816) + __ctx.Return(reg307817) + return + }, 3) + __initDefs = append(__initDefs, defType{name: "shen.profile-func", value: __defun__shen_4profile_1func}) + + __defun__profile_1results = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4114 := __args[0] + _ = V4114 + reg307818 := __e.Call(__defun__shen_4get_1profile, V4114) + Results := reg307818 + _ = Results + reg307819 := MakeNumber(0) + reg307820 := __e.Call(__defun__shen_4put_1profile, V4114, reg307819) + Initialise := reg307820 + _ = Initialise + __ctx.TailApply(__defun___8p, V4114, Results) + return + }, 1) + __initDefs = append(__initDefs, defType{name: "profile-results", value: __defun__profile_1results}) + + __defun__shen_4get_1profile = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4116 := __args[0] + _ = V4116 + reg307822 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + reg307823 := MakeSymbol("profile") + reg307824 := MakeSymbol("*property-vector*") + reg307825 := PrimValue(reg307824) + __ctx.TailApply(__defun__get, V4116, reg307823, reg307825) + return + }, 0) + reg307827 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + E := __args[0] + _ = E + reg307828 := MakeNumber(0) + __ctx.Return(reg307828) + return + }, 1) + reg307829 := __e.Try(reg307822).Catch(reg307827) + __ctx.Return(reg307829) + return + }, 1) + __initDefs = append(__initDefs, defType{name: "shen.get-profile", value: __defun__shen_4get_1profile}) + + __defun__shen_4put_1profile = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { + V4119 := __args[0] + _ = V4119 + V4120 := __args[1] + _ = V4120 + reg307830 := MakeSymbol("profile") + reg307831 := MakeSymbol("*property-vector*") + reg307832 := PrimValue(reg307831) + __ctx.TailApply(__defun__put, V4119, reg307830, V4120, reg307832) + return + }, 2) + __initDefs = append(__initDefs, defType{name: "shen.put-profile", value: __defun__shen_4put_1profile}) + +} diff --git a/cmd/shen/types.go b/cmd/shen/types.go new file mode 100644 index 0000000..695bf48 --- /dev/null +++ b/cmd/shen/types.go @@ -0,0 +1,2624 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__declare Obj // declare +var __defun__shen_4demodulate Obj // shen.demodulate +var __defun__shen_4variancy_1test Obj // shen.variancy-test +var __defun__shen_4variant_2 Obj // shen.variant? + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316482 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg316482) +return +}, 0)) +__defun__declare = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4123 := __args[0] +_ = V4123 +V4124 := __args[1] +_ = V4124 +reg316483 := MakeSymbol("shen.*signedfuncs*") +reg316484 := PrimCons(V4123, V4124) +reg316485 := MakeSymbol("shen.*signedfuncs*") +reg316486 := PrimValue(reg316485) +reg316487 := PrimCons(reg316484, reg316486) +reg316488 := PrimSet(reg316483, reg316487) +Record := reg316488 +_ = Record +reg316489 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +__ctx.TailApply(__defun__shen_4variancy_1test, V4123, V4124) +return +}, 0) +reg316491 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg316492 := MakeSymbol("shen.skip") +__ctx.Return(reg316492) +return +}, 1) +reg316493 := __e.Try(reg316489).Catch(reg316491) +Variancy := reg316493 +_ = Variancy +reg316494 := __e.Call(__defun__shen_4demodulate, V4124) +reg316495 := __e.Call(__defun__shen_4rcons__form, reg316494) +Type := reg316495 +_ = Type +reg316496 := MakeSymbol("shen.type-signature-of-") +reg316497 := __e.Call(__defun__concat, reg316496, V4123) +F_d := reg316497 +_ = F_d +reg316498 := MakeNumber(1) +reg316499 := __e.Call(__defun__shen_4parameters, reg316498) +Parameters := reg316499 +_ = Parameters +reg316500 := MakeSymbol("X") +reg316501 := Nil; +reg316502 := PrimCons(reg316500, reg316501) +reg316503 := PrimCons(F_d, reg316502) +reg316504 := MakeSymbol(":-") +reg316505 := MakeSymbol("unify!") +reg316506 := MakeSymbol("X") +reg316507 := Nil; +reg316508 := PrimCons(Type, reg316507) +reg316509 := PrimCons(reg316506, reg316508) +reg316510 := PrimCons(reg316505, reg316509) +reg316511 := Nil; +reg316512 := PrimCons(reg316510, reg316511) +reg316513 := Nil; +reg316514 := PrimCons(reg316512, reg316513) +reg316515 := PrimCons(reg316504, reg316514) +reg316516 := PrimCons(reg316503, reg316515) +Clause := reg316516 +_ = Clause +reg316517 := __e.Call(__defun__shen_4aum, Clause, Parameters) +AUM__instruction := reg316517 +_ = AUM__instruction +reg316518 := __e.Call(__defun__shen_4aum__to__shen, AUM__instruction) +Code := reg316518 +_ = Code +reg316519 := MakeSymbol("define") +reg316520 := MakeSymbol("ProcessN") +reg316521 := MakeSymbol("Continuation") +reg316522 := Nil; +reg316523 := PrimCons(reg316521, reg316522) +reg316524 := PrimCons(reg316520, reg316523) +reg316525 := MakeSymbol("->") +reg316526 := Nil; +reg316527 := PrimCons(Code, reg316526) +reg316528 := PrimCons(reg316525, reg316527) +reg316529 := __e.Call(__defun__append, reg316524, reg316528) +reg316530 := __e.Call(__defun__append, Parameters, reg316529) +reg316531 := PrimCons(F_d, reg316530) +reg316532 := PrimCons(reg316519, reg316531) +ShenDef := reg316532 +_ = ShenDef +reg316533 := __e.Call(__defun__shen_4eval_1without_1macros, ShenDef) +Eval := reg316533 +_ = Eval +__ctx.Return(V4123) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "declare", value: __defun__declare}) + +__defun__shen_4demodulate = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4126 := __args[0] +_ = V4126 +reg316534 := MakeSymbol("shen.*demodulation-function*") +reg316535 := PrimValue(reg316534) +reg316536 := __e.Call(__defun__shen_4walk, reg316535, V4126) +Demod := reg316536 +_ = Demod +reg316537 := PrimEqual(Demod, V4126) +if reg316537 == True { +__ctx.Return(V4126) +return +} else { +__ctx.TailApply(__defun__shen_4demodulate, Demod) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.demodulate", value: __defun__shen_4demodulate}) + +__defun__shen_4variancy_1test = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4129 := __args[0] +_ = V4129 +V4130 := __args[1] +_ = V4130 +reg316539 := MakeSymbol("B") +reg316540 := __e.Call(__defun__shen_4typecheck, V4129, reg316539) +TypeF := reg316540 +_ = TypeF +reg316541 := MakeSymbol("symbol") +reg316542 := PrimEqual(reg316541, TypeF) +var reg316554 Obj +if reg316542 == True { +reg316543 := MakeSymbol("shen.skip") +reg316554 = reg316543 +} else { +reg316544 := __e.Call(__defun__shen_4variant_2, TypeF, V4130) +var reg316553 Obj +if reg316544 == True { +reg316545 := MakeSymbol("shen.skip") +reg316553 = reg316545 +} else { +reg316546 := MakeString("warning: changing the type of ") +reg316547 := MakeString(" may create errors\n") +reg316548 := MakeSymbol("shen.a") +reg316549 := __e.Call(__defun__shen_4app, V4129, reg316547, reg316548) +reg316550 := PrimStringConcat(reg316546, reg316549) +reg316551 := __e.Call(__defun__stoutput) +reg316552 := __e.Call(__defun__shen_4prhush, reg316550, reg316551) +reg316553 = reg316552 +} +reg316554 = reg316553 +} +Check := reg316554 +_ = Check +reg316555 := MakeSymbol("shen.skip") +__ctx.Return(reg316555) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.variancy-test", value: __defun__shen_4variancy_1test}) + +__defun__shen_4variant_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4143 := __args[0] +_ = V4143 +V4144 := __args[1] +_ = V4144 +reg316556 := PrimEqual(V4144, V4143) +if reg316556 == True { +reg316557 := True; +__ctx.Return(reg316557) +return +} else { +reg316558 := PrimIsPair(V4143) +var reg316572 Obj +if reg316558 == True { +reg316559 := PrimIsPair(V4144) +var reg316567 Obj +if reg316559 == True { +reg316560 := PrimHead(V4144) +reg316561 := PrimHead(V4143) +reg316562 := PrimEqual(reg316560, reg316561) +var reg316565 Obj +if reg316562 == True { +reg316563 := True; +reg316565 = reg316563 +} else { +reg316564 := False; +reg316565 = reg316564 +} +reg316567 = reg316565 +} else { +reg316566 := False; +reg316567 = reg316566 +} +var reg316570 Obj +if reg316567 == True { +reg316568 := True; +reg316570 = reg316568 +} else { +reg316569 := False; +reg316570 = reg316569 +} +reg316572 = reg316570 +} else { +reg316571 := False; +reg316572 = reg316571 +} +if reg316572 == True { +reg316573 := PrimTail(V4143) +reg316574 := PrimTail(V4144) +__ctx.TailApply(__defun__shen_4variant_2, reg316573, reg316574) +return +} else { +reg316576 := PrimIsPair(V4143) +var reg316596 Obj +if reg316576 == True { +reg316577 := PrimIsPair(V4144) +var reg316591 Obj +if reg316577 == True { +reg316578 := PrimHead(V4143) +reg316579 := __e.Call(__defun__shen_4pvar_2, reg316578) +var reg316586 Obj +if reg316579 == True { +reg316580 := PrimHead(V4144) +reg316581 := PrimIsVariable(reg316580) +var reg316584 Obj +if reg316581 == True { +reg316582 := True; +reg316584 = reg316582 +} else { +reg316583 := False; +reg316584 = reg316583 +} +reg316586 = reg316584 +} else { +reg316585 := False; +reg316586 = reg316585 +} +var reg316589 Obj +if reg316586 == True { +reg316587 := True; +reg316589 = reg316587 +} else { +reg316588 := False; +reg316589 = reg316588 +} +reg316591 = reg316589 +} else { +reg316590 := False; +reg316591 = reg316590 +} +var reg316594 Obj +if reg316591 == True { +reg316592 := True; +reg316594 = reg316592 +} else { +reg316593 := False; +reg316594 = reg316593 +} +reg316596 = reg316594 +} else { +reg316595 := False; +reg316596 = reg316595 +} +if reg316596 == True { +reg316597 := MakeSymbol("shen.a") +reg316598 := PrimHead(V4143) +reg316599 := PrimTail(V4143) +reg316600 := __e.Call(__defun__subst, reg316597, reg316598, reg316599) +reg316601 := MakeSymbol("shen.a") +reg316602 := PrimHead(V4144) +reg316603 := PrimTail(V4144) +reg316604 := __e.Call(__defun__subst, reg316601, reg316602, reg316603) +__ctx.TailApply(__defun__shen_4variant_2, reg316600, reg316604) +return +} else { +reg316606 := PrimIsPair(V4143) +var reg316626 Obj +if reg316606 == True { +reg316607 := PrimHead(V4143) +reg316608 := PrimIsPair(reg316607) +var reg316621 Obj +if reg316608 == True { +reg316609 := PrimIsPair(V4144) +var reg316616 Obj +if reg316609 == True { +reg316610 := PrimHead(V4144) +reg316611 := PrimIsPair(reg316610) +var reg316614 Obj +if reg316611 == True { +reg316612 := True; +reg316614 = reg316612 +} else { +reg316613 := False; +reg316614 = reg316613 +} +reg316616 = reg316614 +} else { +reg316615 := False; +reg316616 = reg316615 +} +var reg316619 Obj +if reg316616 == True { +reg316617 := True; +reg316619 = reg316617 +} else { +reg316618 := False; +reg316619 = reg316618 +} +reg316621 = reg316619 +} else { +reg316620 := False; +reg316621 = reg316620 +} +var reg316624 Obj +if reg316621 == True { +reg316622 := True; +reg316624 = reg316622 +} else { +reg316623 := False; +reg316624 = reg316623 +} +reg316626 = reg316624 +} else { +reg316625 := False; +reg316626 = reg316625 +} +if reg316626 == True { +reg316627 := PrimHead(V4143) +reg316628 := PrimTail(V4143) +reg316629 := __e.Call(__defun__append, reg316627, reg316628) +reg316630 := PrimHead(V4144) +reg316631 := PrimTail(V4144) +reg316632 := __e.Call(__defun__append, reg316630, reg316631) +__ctx.TailApply(__defun__shen_4variant_2, reg316629, reg316632) +return +} else { +reg316634 := False; +__ctx.Return(reg316634) +return +} +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.variant?", value: __defun__shen_4variant_2}) + +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316635 := MakeSymbol("absvector?") +reg316636 := MakeSymbol("A") +reg316637 := MakeSymbol("-->") +reg316638 := MakeSymbol("boolean") +reg316639 := Nil; +reg316640 := PrimCons(reg316638, reg316639) +reg316641 := PrimCons(reg316637, reg316640) +reg316642 := PrimCons(reg316636, reg316641) +__ctx.TailApply(__defun__declare, reg316635, reg316642) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316644 := MakeSymbol("adjoin") +reg316645 := MakeSymbol("A") +reg316646 := MakeSymbol("-->") +reg316647 := MakeSymbol("list") +reg316648 := MakeSymbol("A") +reg316649 := Nil; +reg316650 := PrimCons(reg316648, reg316649) +reg316651 := PrimCons(reg316647, reg316650) +reg316652 := MakeSymbol("-->") +reg316653 := MakeSymbol("list") +reg316654 := MakeSymbol("A") +reg316655 := Nil; +reg316656 := PrimCons(reg316654, reg316655) +reg316657 := PrimCons(reg316653, reg316656) +reg316658 := Nil; +reg316659 := PrimCons(reg316657, reg316658) +reg316660 := PrimCons(reg316652, reg316659) +reg316661 := PrimCons(reg316651, reg316660) +reg316662 := Nil; +reg316663 := PrimCons(reg316661, reg316662) +reg316664 := PrimCons(reg316646, reg316663) +reg316665 := PrimCons(reg316645, reg316664) +__ctx.TailApply(__defun__declare, reg316644, reg316665) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316667 := MakeSymbol("and") +reg316668 := MakeSymbol("boolean") +reg316669 := MakeSymbol("-->") +reg316670 := MakeSymbol("boolean") +reg316671 := MakeSymbol("-->") +reg316672 := MakeSymbol("boolean") +reg316673 := Nil; +reg316674 := PrimCons(reg316672, reg316673) +reg316675 := PrimCons(reg316671, reg316674) +reg316676 := PrimCons(reg316670, reg316675) +reg316677 := Nil; +reg316678 := PrimCons(reg316676, reg316677) +reg316679 := PrimCons(reg316669, reg316678) +reg316680 := PrimCons(reg316668, reg316679) +__ctx.TailApply(__defun__declare, reg316667, reg316680) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316682 := MakeSymbol("shen.app") +reg316683 := MakeSymbol("A") +reg316684 := MakeSymbol("-->") +reg316685 := MakeSymbol("string") +reg316686 := MakeSymbol("-->") +reg316687 := MakeSymbol("symbol") +reg316688 := MakeSymbol("-->") +reg316689 := MakeSymbol("string") +reg316690 := Nil; +reg316691 := PrimCons(reg316689, reg316690) +reg316692 := PrimCons(reg316688, reg316691) +reg316693 := PrimCons(reg316687, reg316692) +reg316694 := Nil; +reg316695 := PrimCons(reg316693, reg316694) +reg316696 := PrimCons(reg316686, reg316695) +reg316697 := PrimCons(reg316685, reg316696) +reg316698 := Nil; +reg316699 := PrimCons(reg316697, reg316698) +reg316700 := PrimCons(reg316684, reg316699) +reg316701 := PrimCons(reg316683, reg316700) +__ctx.TailApply(__defun__declare, reg316682, reg316701) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316703 := MakeSymbol("append") +reg316704 := MakeSymbol("list") +reg316705 := MakeSymbol("A") +reg316706 := Nil; +reg316707 := PrimCons(reg316705, reg316706) +reg316708 := PrimCons(reg316704, reg316707) +reg316709 := MakeSymbol("-->") +reg316710 := MakeSymbol("list") +reg316711 := MakeSymbol("A") +reg316712 := Nil; +reg316713 := PrimCons(reg316711, reg316712) +reg316714 := PrimCons(reg316710, reg316713) +reg316715 := MakeSymbol("-->") +reg316716 := MakeSymbol("list") +reg316717 := MakeSymbol("A") +reg316718 := Nil; +reg316719 := PrimCons(reg316717, reg316718) +reg316720 := PrimCons(reg316716, reg316719) +reg316721 := Nil; +reg316722 := PrimCons(reg316720, reg316721) +reg316723 := PrimCons(reg316715, reg316722) +reg316724 := PrimCons(reg316714, reg316723) +reg316725 := Nil; +reg316726 := PrimCons(reg316724, reg316725) +reg316727 := PrimCons(reg316709, reg316726) +reg316728 := PrimCons(reg316708, reg316727) +__ctx.TailApply(__defun__declare, reg316703, reg316728) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316730 := MakeSymbol("arity") +reg316731 := MakeSymbol("A") +reg316732 := MakeSymbol("-->") +reg316733 := MakeSymbol("number") +reg316734 := Nil; +reg316735 := PrimCons(reg316733, reg316734) +reg316736 := PrimCons(reg316732, reg316735) +reg316737 := PrimCons(reg316731, reg316736) +__ctx.TailApply(__defun__declare, reg316730, reg316737) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316739 := MakeSymbol("assoc") +reg316740 := MakeSymbol("A") +reg316741 := MakeSymbol("-->") +reg316742 := MakeSymbol("list") +reg316743 := MakeSymbol("list") +reg316744 := MakeSymbol("A") +reg316745 := Nil; +reg316746 := PrimCons(reg316744, reg316745) +reg316747 := PrimCons(reg316743, reg316746) +reg316748 := Nil; +reg316749 := PrimCons(reg316747, reg316748) +reg316750 := PrimCons(reg316742, reg316749) +reg316751 := MakeSymbol("-->") +reg316752 := MakeSymbol("list") +reg316753 := MakeSymbol("A") +reg316754 := Nil; +reg316755 := PrimCons(reg316753, reg316754) +reg316756 := PrimCons(reg316752, reg316755) +reg316757 := Nil; +reg316758 := PrimCons(reg316756, reg316757) +reg316759 := PrimCons(reg316751, reg316758) +reg316760 := PrimCons(reg316750, reg316759) +reg316761 := Nil; +reg316762 := PrimCons(reg316760, reg316761) +reg316763 := PrimCons(reg316741, reg316762) +reg316764 := PrimCons(reg316740, reg316763) +__ctx.TailApply(__defun__declare, reg316739, reg316764) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316766 := MakeSymbol("boolean?") +reg316767 := MakeSymbol("A") +reg316768 := MakeSymbol("-->") +reg316769 := MakeSymbol("boolean") +reg316770 := Nil; +reg316771 := PrimCons(reg316769, reg316770) +reg316772 := PrimCons(reg316768, reg316771) +reg316773 := PrimCons(reg316767, reg316772) +__ctx.TailApply(__defun__declare, reg316766, reg316773) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316775 := MakeSymbol("bound?") +reg316776 := MakeSymbol("symbol") +reg316777 := MakeSymbol("-->") +reg316778 := MakeSymbol("boolean") +reg316779 := Nil; +reg316780 := PrimCons(reg316778, reg316779) +reg316781 := PrimCons(reg316777, reg316780) +reg316782 := PrimCons(reg316776, reg316781) +__ctx.TailApply(__defun__declare, reg316775, reg316782) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316784 := MakeSymbol("cd") +reg316785 := MakeSymbol("string") +reg316786 := MakeSymbol("-->") +reg316787 := MakeSymbol("string") +reg316788 := Nil; +reg316789 := PrimCons(reg316787, reg316788) +reg316790 := PrimCons(reg316786, reg316789) +reg316791 := PrimCons(reg316785, reg316790) +__ctx.TailApply(__defun__declare, reg316784, reg316791) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316793 := MakeSymbol("close") +reg316794 := MakeSymbol("stream") +reg316795 := MakeSymbol("A") +reg316796 := Nil; +reg316797 := PrimCons(reg316795, reg316796) +reg316798 := PrimCons(reg316794, reg316797) +reg316799 := MakeSymbol("-->") +reg316800 := MakeSymbol("list") +reg316801 := MakeSymbol("B") +reg316802 := Nil; +reg316803 := PrimCons(reg316801, reg316802) +reg316804 := PrimCons(reg316800, reg316803) +reg316805 := Nil; +reg316806 := PrimCons(reg316804, reg316805) +reg316807 := PrimCons(reg316799, reg316806) +reg316808 := PrimCons(reg316798, reg316807) +__ctx.TailApply(__defun__declare, reg316793, reg316808) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316810 := MakeSymbol("cn") +reg316811 := MakeSymbol("string") +reg316812 := MakeSymbol("-->") +reg316813 := MakeSymbol("string") +reg316814 := MakeSymbol("-->") +reg316815 := MakeSymbol("string") +reg316816 := Nil; +reg316817 := PrimCons(reg316815, reg316816) +reg316818 := PrimCons(reg316814, reg316817) +reg316819 := PrimCons(reg316813, reg316818) +reg316820 := Nil; +reg316821 := PrimCons(reg316819, reg316820) +reg316822 := PrimCons(reg316812, reg316821) +reg316823 := PrimCons(reg316811, reg316822) +__ctx.TailApply(__defun__declare, reg316810, reg316823) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316825 := MakeSymbol("compile") +reg316826 := MakeSymbol("A") +reg316827 := MakeSymbol("shen.==>") +reg316828 := MakeSymbol("B") +reg316829 := Nil; +reg316830 := PrimCons(reg316828, reg316829) +reg316831 := PrimCons(reg316827, reg316830) +reg316832 := PrimCons(reg316826, reg316831) +reg316833 := MakeSymbol("-->") +reg316834 := MakeSymbol("A") +reg316835 := MakeSymbol("-->") +reg316836 := MakeSymbol("A") +reg316837 := MakeSymbol("-->") +reg316838 := MakeSymbol("B") +reg316839 := Nil; +reg316840 := PrimCons(reg316838, reg316839) +reg316841 := PrimCons(reg316837, reg316840) +reg316842 := PrimCons(reg316836, reg316841) +reg316843 := MakeSymbol("-->") +reg316844 := MakeSymbol("B") +reg316845 := Nil; +reg316846 := PrimCons(reg316844, reg316845) +reg316847 := PrimCons(reg316843, reg316846) +reg316848 := PrimCons(reg316842, reg316847) +reg316849 := Nil; +reg316850 := PrimCons(reg316848, reg316849) +reg316851 := PrimCons(reg316835, reg316850) +reg316852 := PrimCons(reg316834, reg316851) +reg316853 := Nil; +reg316854 := PrimCons(reg316852, reg316853) +reg316855 := PrimCons(reg316833, reg316854) +reg316856 := PrimCons(reg316832, reg316855) +__ctx.TailApply(__defun__declare, reg316825, reg316856) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316858 := MakeSymbol("cons?") +reg316859 := MakeSymbol("A") +reg316860 := MakeSymbol("-->") +reg316861 := MakeSymbol("boolean") +reg316862 := Nil; +reg316863 := PrimCons(reg316861, reg316862) +reg316864 := PrimCons(reg316860, reg316863) +reg316865 := PrimCons(reg316859, reg316864) +__ctx.TailApply(__defun__declare, reg316858, reg316865) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316867 := MakeSymbol("destroy") +reg316868 := MakeSymbol("A") +reg316869 := MakeSymbol("-->") +reg316870 := MakeSymbol("B") +reg316871 := Nil; +reg316872 := PrimCons(reg316870, reg316871) +reg316873 := PrimCons(reg316869, reg316872) +reg316874 := PrimCons(reg316868, reg316873) +reg316875 := MakeSymbol("-->") +reg316876 := MakeSymbol("symbol") +reg316877 := Nil; +reg316878 := PrimCons(reg316876, reg316877) +reg316879 := PrimCons(reg316875, reg316878) +reg316880 := PrimCons(reg316874, reg316879) +__ctx.TailApply(__defun__declare, reg316867, reg316880) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316882 := MakeSymbol("difference") +reg316883 := MakeSymbol("list") +reg316884 := MakeSymbol("A") +reg316885 := Nil; +reg316886 := PrimCons(reg316884, reg316885) +reg316887 := PrimCons(reg316883, reg316886) +reg316888 := MakeSymbol("-->") +reg316889 := MakeSymbol("list") +reg316890 := MakeSymbol("A") +reg316891 := Nil; +reg316892 := PrimCons(reg316890, reg316891) +reg316893 := PrimCons(reg316889, reg316892) +reg316894 := MakeSymbol("-->") +reg316895 := MakeSymbol("list") +reg316896 := MakeSymbol("A") +reg316897 := Nil; +reg316898 := PrimCons(reg316896, reg316897) +reg316899 := PrimCons(reg316895, reg316898) +reg316900 := Nil; +reg316901 := PrimCons(reg316899, reg316900) +reg316902 := PrimCons(reg316894, reg316901) +reg316903 := PrimCons(reg316893, reg316902) +reg316904 := Nil; +reg316905 := PrimCons(reg316903, reg316904) +reg316906 := PrimCons(reg316888, reg316905) +reg316907 := PrimCons(reg316887, reg316906) +__ctx.TailApply(__defun__declare, reg316882, reg316907) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316909 := MakeSymbol("do") +reg316910 := MakeSymbol("A") +reg316911 := MakeSymbol("-->") +reg316912 := MakeSymbol("B") +reg316913 := MakeSymbol("-->") +reg316914 := MakeSymbol("B") +reg316915 := Nil; +reg316916 := PrimCons(reg316914, reg316915) +reg316917 := PrimCons(reg316913, reg316916) +reg316918 := PrimCons(reg316912, reg316917) +reg316919 := Nil; +reg316920 := PrimCons(reg316918, reg316919) +reg316921 := PrimCons(reg316911, reg316920) +reg316922 := PrimCons(reg316910, reg316921) +__ctx.TailApply(__defun__declare, reg316909, reg316922) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316924 := MakeSymbol("") +reg316925 := MakeSymbol("list") +reg316926 := MakeSymbol("A") +reg316927 := Nil; +reg316928 := PrimCons(reg316926, reg316927) +reg316929 := PrimCons(reg316925, reg316928) +reg316930 := MakeSymbol("shen.==>") +reg316931 := MakeSymbol("list") +reg316932 := MakeSymbol("B") +reg316933 := Nil; +reg316934 := PrimCons(reg316932, reg316933) +reg316935 := PrimCons(reg316931, reg316934) +reg316936 := Nil; +reg316937 := PrimCons(reg316935, reg316936) +reg316938 := PrimCons(reg316930, reg316937) +reg316939 := PrimCons(reg316929, reg316938) +__ctx.TailApply(__defun__declare, reg316924, reg316939) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316941 := MakeSymbol("") +reg316942 := MakeSymbol("list") +reg316943 := MakeSymbol("A") +reg316944 := Nil; +reg316945 := PrimCons(reg316943, reg316944) +reg316946 := PrimCons(reg316942, reg316945) +reg316947 := MakeSymbol("shen.==>") +reg316948 := MakeSymbol("list") +reg316949 := MakeSymbol("A") +reg316950 := Nil; +reg316951 := PrimCons(reg316949, reg316950) +reg316952 := PrimCons(reg316948, reg316951) +reg316953 := Nil; +reg316954 := PrimCons(reg316952, reg316953) +reg316955 := PrimCons(reg316947, reg316954) +reg316956 := PrimCons(reg316946, reg316955) +__ctx.TailApply(__defun__declare, reg316941, reg316956) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316958 := MakeSymbol("element?") +reg316959 := MakeSymbol("A") +reg316960 := MakeSymbol("-->") +reg316961 := MakeSymbol("list") +reg316962 := MakeSymbol("A") +reg316963 := Nil; +reg316964 := PrimCons(reg316962, reg316963) +reg316965 := PrimCons(reg316961, reg316964) +reg316966 := MakeSymbol("-->") +reg316967 := MakeSymbol("boolean") +reg316968 := Nil; +reg316969 := PrimCons(reg316967, reg316968) +reg316970 := PrimCons(reg316966, reg316969) +reg316971 := PrimCons(reg316965, reg316970) +reg316972 := Nil; +reg316973 := PrimCons(reg316971, reg316972) +reg316974 := PrimCons(reg316960, reg316973) +reg316975 := PrimCons(reg316959, reg316974) +__ctx.TailApply(__defun__declare, reg316958, reg316975) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316977 := MakeSymbol("empty?") +reg316978 := MakeSymbol("A") +reg316979 := MakeSymbol("-->") +reg316980 := MakeSymbol("boolean") +reg316981 := Nil; +reg316982 := PrimCons(reg316980, reg316981) +reg316983 := PrimCons(reg316979, reg316982) +reg316984 := PrimCons(reg316978, reg316983) +__ctx.TailApply(__defun__declare, reg316977, reg316984) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316986 := MakeSymbol("enable-type-theory") +reg316987 := MakeSymbol("symbol") +reg316988 := MakeSymbol("-->") +reg316989 := MakeSymbol("boolean") +reg316990 := Nil; +reg316991 := PrimCons(reg316989, reg316990) +reg316992 := PrimCons(reg316988, reg316991) +reg316993 := PrimCons(reg316987, reg316992) +__ctx.TailApply(__defun__declare, reg316986, reg316993) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg316995 := MakeSymbol("external") +reg316996 := MakeSymbol("symbol") +reg316997 := MakeSymbol("-->") +reg316998 := MakeSymbol("list") +reg316999 := MakeSymbol("symbol") +reg317000 := Nil; +reg317001 := PrimCons(reg316999, reg317000) +reg317002 := PrimCons(reg316998, reg317001) +reg317003 := Nil; +reg317004 := PrimCons(reg317002, reg317003) +reg317005 := PrimCons(reg316997, reg317004) +reg317006 := PrimCons(reg316996, reg317005) +__ctx.TailApply(__defun__declare, reg316995, reg317006) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317008 := MakeSymbol("error-to-string") +reg317009 := MakeSymbol("exception") +reg317010 := MakeSymbol("-->") +reg317011 := MakeSymbol("string") +reg317012 := Nil; +reg317013 := PrimCons(reg317011, reg317012) +reg317014 := PrimCons(reg317010, reg317013) +reg317015 := PrimCons(reg317009, reg317014) +__ctx.TailApply(__defun__declare, reg317008, reg317015) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317017 := MakeSymbol("explode") +reg317018 := MakeSymbol("A") +reg317019 := MakeSymbol("-->") +reg317020 := MakeSymbol("list") +reg317021 := MakeSymbol("string") +reg317022 := Nil; +reg317023 := PrimCons(reg317021, reg317022) +reg317024 := PrimCons(reg317020, reg317023) +reg317025 := Nil; +reg317026 := PrimCons(reg317024, reg317025) +reg317027 := PrimCons(reg317019, reg317026) +reg317028 := PrimCons(reg317018, reg317027) +__ctx.TailApply(__defun__declare, reg317017, reg317028) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317030 := MakeSymbol("fail") +reg317031 := MakeSymbol("-->") +reg317032 := MakeSymbol("symbol") +reg317033 := Nil; +reg317034 := PrimCons(reg317032, reg317033) +reg317035 := PrimCons(reg317031, reg317034) +__ctx.TailApply(__defun__declare, reg317030, reg317035) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317037 := MakeSymbol("fail-if") +reg317038 := MakeSymbol("symbol") +reg317039 := MakeSymbol("-->") +reg317040 := MakeSymbol("boolean") +reg317041 := Nil; +reg317042 := PrimCons(reg317040, reg317041) +reg317043 := PrimCons(reg317039, reg317042) +reg317044 := PrimCons(reg317038, reg317043) +reg317045 := MakeSymbol("-->") +reg317046 := MakeSymbol("symbol") +reg317047 := MakeSymbol("-->") +reg317048 := MakeSymbol("symbol") +reg317049 := Nil; +reg317050 := PrimCons(reg317048, reg317049) +reg317051 := PrimCons(reg317047, reg317050) +reg317052 := PrimCons(reg317046, reg317051) +reg317053 := Nil; +reg317054 := PrimCons(reg317052, reg317053) +reg317055 := PrimCons(reg317045, reg317054) +reg317056 := PrimCons(reg317044, reg317055) +__ctx.TailApply(__defun__declare, reg317037, reg317056) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317058 := MakeSymbol("fix") +reg317059 := MakeSymbol("A") +reg317060 := MakeSymbol("-->") +reg317061 := MakeSymbol("A") +reg317062 := Nil; +reg317063 := PrimCons(reg317061, reg317062) +reg317064 := PrimCons(reg317060, reg317063) +reg317065 := PrimCons(reg317059, reg317064) +reg317066 := MakeSymbol("-->") +reg317067 := MakeSymbol("A") +reg317068 := MakeSymbol("-->") +reg317069 := MakeSymbol("A") +reg317070 := Nil; +reg317071 := PrimCons(reg317069, reg317070) +reg317072 := PrimCons(reg317068, reg317071) +reg317073 := PrimCons(reg317067, reg317072) +reg317074 := Nil; +reg317075 := PrimCons(reg317073, reg317074) +reg317076 := PrimCons(reg317066, reg317075) +reg317077 := PrimCons(reg317065, reg317076) +__ctx.TailApply(__defun__declare, reg317058, reg317077) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317079 := MakeSymbol("freeze") +reg317080 := MakeSymbol("A") +reg317081 := MakeSymbol("-->") +reg317082 := MakeSymbol("lazy") +reg317083 := MakeSymbol("A") +reg317084 := Nil; +reg317085 := PrimCons(reg317083, reg317084) +reg317086 := PrimCons(reg317082, reg317085) +reg317087 := Nil; +reg317088 := PrimCons(reg317086, reg317087) +reg317089 := PrimCons(reg317081, reg317088) +reg317090 := PrimCons(reg317080, reg317089) +__ctx.TailApply(__defun__declare, reg317079, reg317090) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317092 := MakeSymbol("fst") +reg317093 := MakeSymbol("A") +reg317094 := MakeSymbol("*") +reg317095 := MakeSymbol("B") +reg317096 := Nil; +reg317097 := PrimCons(reg317095, reg317096) +reg317098 := PrimCons(reg317094, reg317097) +reg317099 := PrimCons(reg317093, reg317098) +reg317100 := MakeSymbol("-->") +reg317101 := MakeSymbol("A") +reg317102 := Nil; +reg317103 := PrimCons(reg317101, reg317102) +reg317104 := PrimCons(reg317100, reg317103) +reg317105 := PrimCons(reg317099, reg317104) +__ctx.TailApply(__defun__declare, reg317092, reg317105) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317107 := MakeSymbol("function") +reg317108 := MakeSymbol("A") +reg317109 := MakeSymbol("-->") +reg317110 := MakeSymbol("B") +reg317111 := Nil; +reg317112 := PrimCons(reg317110, reg317111) +reg317113 := PrimCons(reg317109, reg317112) +reg317114 := PrimCons(reg317108, reg317113) +reg317115 := MakeSymbol("-->") +reg317116 := MakeSymbol("A") +reg317117 := MakeSymbol("-->") +reg317118 := MakeSymbol("B") +reg317119 := Nil; +reg317120 := PrimCons(reg317118, reg317119) +reg317121 := PrimCons(reg317117, reg317120) +reg317122 := PrimCons(reg317116, reg317121) +reg317123 := Nil; +reg317124 := PrimCons(reg317122, reg317123) +reg317125 := PrimCons(reg317115, reg317124) +reg317126 := PrimCons(reg317114, reg317125) +__ctx.TailApply(__defun__declare, reg317107, reg317126) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317128 := MakeSymbol("gensym") +reg317129 := MakeSymbol("symbol") +reg317130 := MakeSymbol("-->") +reg317131 := MakeSymbol("symbol") +reg317132 := Nil; +reg317133 := PrimCons(reg317131, reg317132) +reg317134 := PrimCons(reg317130, reg317133) +reg317135 := PrimCons(reg317129, reg317134) +__ctx.TailApply(__defun__declare, reg317128, reg317135) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317137 := MakeSymbol("<-vector") +reg317138 := MakeSymbol("vector") +reg317139 := MakeSymbol("A") +reg317140 := Nil; +reg317141 := PrimCons(reg317139, reg317140) +reg317142 := PrimCons(reg317138, reg317141) +reg317143 := MakeSymbol("-->") +reg317144 := MakeSymbol("number") +reg317145 := MakeSymbol("-->") +reg317146 := MakeSymbol("A") +reg317147 := Nil; +reg317148 := PrimCons(reg317146, reg317147) +reg317149 := PrimCons(reg317145, reg317148) +reg317150 := PrimCons(reg317144, reg317149) +reg317151 := Nil; +reg317152 := PrimCons(reg317150, reg317151) +reg317153 := PrimCons(reg317143, reg317152) +reg317154 := PrimCons(reg317142, reg317153) +__ctx.TailApply(__defun__declare, reg317137, reg317154) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317156 := MakeSymbol("vector->") +reg317157 := MakeSymbol("vector") +reg317158 := MakeSymbol("A") +reg317159 := Nil; +reg317160 := PrimCons(reg317158, reg317159) +reg317161 := PrimCons(reg317157, reg317160) +reg317162 := MakeSymbol("-->") +reg317163 := MakeSymbol("number") +reg317164 := MakeSymbol("-->") +reg317165 := MakeSymbol("A") +reg317166 := MakeSymbol("-->") +reg317167 := MakeSymbol("vector") +reg317168 := MakeSymbol("A") +reg317169 := Nil; +reg317170 := PrimCons(reg317168, reg317169) +reg317171 := PrimCons(reg317167, reg317170) +reg317172 := Nil; +reg317173 := PrimCons(reg317171, reg317172) +reg317174 := PrimCons(reg317166, reg317173) +reg317175 := PrimCons(reg317165, reg317174) +reg317176 := Nil; +reg317177 := PrimCons(reg317175, reg317176) +reg317178 := PrimCons(reg317164, reg317177) +reg317179 := PrimCons(reg317163, reg317178) +reg317180 := Nil; +reg317181 := PrimCons(reg317179, reg317180) +reg317182 := PrimCons(reg317162, reg317181) +reg317183 := PrimCons(reg317161, reg317182) +__ctx.TailApply(__defun__declare, reg317156, reg317183) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317185 := MakeSymbol("vector") +reg317186 := MakeSymbol("number") +reg317187 := MakeSymbol("-->") +reg317188 := MakeSymbol("vector") +reg317189 := MakeSymbol("A") +reg317190 := Nil; +reg317191 := PrimCons(reg317189, reg317190) +reg317192 := PrimCons(reg317188, reg317191) +reg317193 := Nil; +reg317194 := PrimCons(reg317192, reg317193) +reg317195 := PrimCons(reg317187, reg317194) +reg317196 := PrimCons(reg317186, reg317195) +__ctx.TailApply(__defun__declare, reg317185, reg317196) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317198 := MakeSymbol("get-time") +reg317199 := MakeSymbol("symbol") +reg317200 := MakeSymbol("-->") +reg317201 := MakeSymbol("number") +reg317202 := Nil; +reg317203 := PrimCons(reg317201, reg317202) +reg317204 := PrimCons(reg317200, reg317203) +reg317205 := PrimCons(reg317199, reg317204) +__ctx.TailApply(__defun__declare, reg317198, reg317205) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317207 := MakeSymbol("hash") +reg317208 := MakeSymbol("A") +reg317209 := MakeSymbol("-->") +reg317210 := MakeSymbol("number") +reg317211 := MakeSymbol("-->") +reg317212 := MakeSymbol("number") +reg317213 := Nil; +reg317214 := PrimCons(reg317212, reg317213) +reg317215 := PrimCons(reg317211, reg317214) +reg317216 := PrimCons(reg317210, reg317215) +reg317217 := Nil; +reg317218 := PrimCons(reg317216, reg317217) +reg317219 := PrimCons(reg317209, reg317218) +reg317220 := PrimCons(reg317208, reg317219) +__ctx.TailApply(__defun__declare, reg317207, reg317220) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317222 := MakeSymbol("head") +reg317223 := MakeSymbol("list") +reg317224 := MakeSymbol("A") +reg317225 := Nil; +reg317226 := PrimCons(reg317224, reg317225) +reg317227 := PrimCons(reg317223, reg317226) +reg317228 := MakeSymbol("-->") +reg317229 := MakeSymbol("A") +reg317230 := Nil; +reg317231 := PrimCons(reg317229, reg317230) +reg317232 := PrimCons(reg317228, reg317231) +reg317233 := PrimCons(reg317227, reg317232) +__ctx.TailApply(__defun__declare, reg317222, reg317233) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317235 := MakeSymbol("hdv") +reg317236 := MakeSymbol("vector") +reg317237 := MakeSymbol("A") +reg317238 := Nil; +reg317239 := PrimCons(reg317237, reg317238) +reg317240 := PrimCons(reg317236, reg317239) +reg317241 := MakeSymbol("-->") +reg317242 := MakeSymbol("A") +reg317243 := Nil; +reg317244 := PrimCons(reg317242, reg317243) +reg317245 := PrimCons(reg317241, reg317244) +reg317246 := PrimCons(reg317240, reg317245) +__ctx.TailApply(__defun__declare, reg317235, reg317246) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317248 := MakeSymbol("hdstr") +reg317249 := MakeSymbol("string") +reg317250 := MakeSymbol("-->") +reg317251 := MakeSymbol("string") +reg317252 := Nil; +reg317253 := PrimCons(reg317251, reg317252) +reg317254 := PrimCons(reg317250, reg317253) +reg317255 := PrimCons(reg317249, reg317254) +__ctx.TailApply(__defun__declare, reg317248, reg317255) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317257 := MakeSymbol("if") +reg317258 := MakeSymbol("boolean") +reg317259 := MakeSymbol("-->") +reg317260 := MakeSymbol("A") +reg317261 := MakeSymbol("-->") +reg317262 := MakeSymbol("A") +reg317263 := MakeSymbol("-->") +reg317264 := MakeSymbol("A") +reg317265 := Nil; +reg317266 := PrimCons(reg317264, reg317265) +reg317267 := PrimCons(reg317263, reg317266) +reg317268 := PrimCons(reg317262, reg317267) +reg317269 := Nil; +reg317270 := PrimCons(reg317268, reg317269) +reg317271 := PrimCons(reg317261, reg317270) +reg317272 := PrimCons(reg317260, reg317271) +reg317273 := Nil; +reg317274 := PrimCons(reg317272, reg317273) +reg317275 := PrimCons(reg317259, reg317274) +reg317276 := PrimCons(reg317258, reg317275) +__ctx.TailApply(__defun__declare, reg317257, reg317276) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317278 := MakeSymbol("it") +reg317279 := MakeSymbol("-->") +reg317280 := MakeSymbol("string") +reg317281 := Nil; +reg317282 := PrimCons(reg317280, reg317281) +reg317283 := PrimCons(reg317279, reg317282) +__ctx.TailApply(__defun__declare, reg317278, reg317283) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317285 := MakeSymbol("implementation") +reg317286 := MakeSymbol("-->") +reg317287 := MakeSymbol("string") +reg317288 := Nil; +reg317289 := PrimCons(reg317287, reg317288) +reg317290 := PrimCons(reg317286, reg317289) +__ctx.TailApply(__defun__declare, reg317285, reg317290) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317292 := MakeSymbol("include") +reg317293 := MakeSymbol("list") +reg317294 := MakeSymbol("symbol") +reg317295 := Nil; +reg317296 := PrimCons(reg317294, reg317295) +reg317297 := PrimCons(reg317293, reg317296) +reg317298 := MakeSymbol("-->") +reg317299 := MakeSymbol("list") +reg317300 := MakeSymbol("symbol") +reg317301 := Nil; +reg317302 := PrimCons(reg317300, reg317301) +reg317303 := PrimCons(reg317299, reg317302) +reg317304 := Nil; +reg317305 := PrimCons(reg317303, reg317304) +reg317306 := PrimCons(reg317298, reg317305) +reg317307 := PrimCons(reg317297, reg317306) +__ctx.TailApply(__defun__declare, reg317292, reg317307) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317309 := MakeSymbol("include-all-but") +reg317310 := MakeSymbol("list") +reg317311 := MakeSymbol("symbol") +reg317312 := Nil; +reg317313 := PrimCons(reg317311, reg317312) +reg317314 := PrimCons(reg317310, reg317313) +reg317315 := MakeSymbol("-->") +reg317316 := MakeSymbol("list") +reg317317 := MakeSymbol("symbol") +reg317318 := Nil; +reg317319 := PrimCons(reg317317, reg317318) +reg317320 := PrimCons(reg317316, reg317319) +reg317321 := Nil; +reg317322 := PrimCons(reg317320, reg317321) +reg317323 := PrimCons(reg317315, reg317322) +reg317324 := PrimCons(reg317314, reg317323) +__ctx.TailApply(__defun__declare, reg317309, reg317324) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317326 := MakeSymbol("inferences") +reg317327 := MakeSymbol("-->") +reg317328 := MakeSymbol("number") +reg317329 := Nil; +reg317330 := PrimCons(reg317328, reg317329) +reg317331 := PrimCons(reg317327, reg317330) +__ctx.TailApply(__defun__declare, reg317326, reg317331) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317333 := MakeSymbol("shen.insert") +reg317334 := MakeSymbol("A") +reg317335 := MakeSymbol("-->") +reg317336 := MakeSymbol("string") +reg317337 := MakeSymbol("-->") +reg317338 := MakeSymbol("string") +reg317339 := Nil; +reg317340 := PrimCons(reg317338, reg317339) +reg317341 := PrimCons(reg317337, reg317340) +reg317342 := PrimCons(reg317336, reg317341) +reg317343 := Nil; +reg317344 := PrimCons(reg317342, reg317343) +reg317345 := PrimCons(reg317335, reg317344) +reg317346 := PrimCons(reg317334, reg317345) +__ctx.TailApply(__defun__declare, reg317333, reg317346) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317348 := MakeSymbol("integer?") +reg317349 := MakeSymbol("A") +reg317350 := MakeSymbol("-->") +reg317351 := MakeSymbol("boolean") +reg317352 := Nil; +reg317353 := PrimCons(reg317351, reg317352) +reg317354 := PrimCons(reg317350, reg317353) +reg317355 := PrimCons(reg317349, reg317354) +__ctx.TailApply(__defun__declare, reg317348, reg317355) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317357 := MakeSymbol("internal") +reg317358 := MakeSymbol("symbol") +reg317359 := MakeSymbol("-->") +reg317360 := MakeSymbol("list") +reg317361 := MakeSymbol("symbol") +reg317362 := Nil; +reg317363 := PrimCons(reg317361, reg317362) +reg317364 := PrimCons(reg317360, reg317363) +reg317365 := Nil; +reg317366 := PrimCons(reg317364, reg317365) +reg317367 := PrimCons(reg317359, reg317366) +reg317368 := PrimCons(reg317358, reg317367) +__ctx.TailApply(__defun__declare, reg317357, reg317368) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317370 := MakeSymbol("intersection") +reg317371 := MakeSymbol("list") +reg317372 := MakeSymbol("A") +reg317373 := Nil; +reg317374 := PrimCons(reg317372, reg317373) +reg317375 := PrimCons(reg317371, reg317374) +reg317376 := MakeSymbol("-->") +reg317377 := MakeSymbol("list") +reg317378 := MakeSymbol("A") +reg317379 := Nil; +reg317380 := PrimCons(reg317378, reg317379) +reg317381 := PrimCons(reg317377, reg317380) +reg317382 := MakeSymbol("-->") +reg317383 := MakeSymbol("list") +reg317384 := MakeSymbol("A") +reg317385 := Nil; +reg317386 := PrimCons(reg317384, reg317385) +reg317387 := PrimCons(reg317383, reg317386) +reg317388 := Nil; +reg317389 := PrimCons(reg317387, reg317388) +reg317390 := PrimCons(reg317382, reg317389) +reg317391 := PrimCons(reg317381, reg317390) +reg317392 := Nil; +reg317393 := PrimCons(reg317391, reg317392) +reg317394 := PrimCons(reg317376, reg317393) +reg317395 := PrimCons(reg317375, reg317394) +__ctx.TailApply(__defun__declare, reg317370, reg317395) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317397 := MakeSymbol("kill") +reg317398 := MakeSymbol("-->") +reg317399 := MakeSymbol("A") +reg317400 := Nil; +reg317401 := PrimCons(reg317399, reg317400) +reg317402 := PrimCons(reg317398, reg317401) +__ctx.TailApply(__defun__declare, reg317397, reg317402) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317404 := MakeSymbol("language") +reg317405 := MakeSymbol("-->") +reg317406 := MakeSymbol("string") +reg317407 := Nil; +reg317408 := PrimCons(reg317406, reg317407) +reg317409 := PrimCons(reg317405, reg317408) +__ctx.TailApply(__defun__declare, reg317404, reg317409) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317411 := MakeSymbol("length") +reg317412 := MakeSymbol("list") +reg317413 := MakeSymbol("A") +reg317414 := Nil; +reg317415 := PrimCons(reg317413, reg317414) +reg317416 := PrimCons(reg317412, reg317415) +reg317417 := MakeSymbol("-->") +reg317418 := MakeSymbol("number") +reg317419 := Nil; +reg317420 := PrimCons(reg317418, reg317419) +reg317421 := PrimCons(reg317417, reg317420) +reg317422 := PrimCons(reg317416, reg317421) +__ctx.TailApply(__defun__declare, reg317411, reg317422) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317424 := MakeSymbol("limit") +reg317425 := MakeSymbol("vector") +reg317426 := MakeSymbol("A") +reg317427 := Nil; +reg317428 := PrimCons(reg317426, reg317427) +reg317429 := PrimCons(reg317425, reg317428) +reg317430 := MakeSymbol("-->") +reg317431 := MakeSymbol("number") +reg317432 := Nil; +reg317433 := PrimCons(reg317431, reg317432) +reg317434 := PrimCons(reg317430, reg317433) +reg317435 := PrimCons(reg317429, reg317434) +__ctx.TailApply(__defun__declare, reg317424, reg317435) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317437 := MakeSymbol("load") +reg317438 := MakeSymbol("string") +reg317439 := MakeSymbol("-->") +reg317440 := MakeSymbol("symbol") +reg317441 := Nil; +reg317442 := PrimCons(reg317440, reg317441) +reg317443 := PrimCons(reg317439, reg317442) +reg317444 := PrimCons(reg317438, reg317443) +__ctx.TailApply(__defun__declare, reg317437, reg317444) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317446 := MakeSymbol("map") +reg317447 := MakeSymbol("A") +reg317448 := MakeSymbol("-->") +reg317449 := MakeSymbol("B") +reg317450 := Nil; +reg317451 := PrimCons(reg317449, reg317450) +reg317452 := PrimCons(reg317448, reg317451) +reg317453 := PrimCons(reg317447, reg317452) +reg317454 := MakeSymbol("-->") +reg317455 := MakeSymbol("list") +reg317456 := MakeSymbol("A") +reg317457 := Nil; +reg317458 := PrimCons(reg317456, reg317457) +reg317459 := PrimCons(reg317455, reg317458) +reg317460 := MakeSymbol("-->") +reg317461 := MakeSymbol("list") +reg317462 := MakeSymbol("B") +reg317463 := Nil; +reg317464 := PrimCons(reg317462, reg317463) +reg317465 := PrimCons(reg317461, reg317464) +reg317466 := Nil; +reg317467 := PrimCons(reg317465, reg317466) +reg317468 := PrimCons(reg317460, reg317467) +reg317469 := PrimCons(reg317459, reg317468) +reg317470 := Nil; +reg317471 := PrimCons(reg317469, reg317470) +reg317472 := PrimCons(reg317454, reg317471) +reg317473 := PrimCons(reg317453, reg317472) +__ctx.TailApply(__defun__declare, reg317446, reg317473) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317475 := MakeSymbol("mapcan") +reg317476 := MakeSymbol("A") +reg317477 := MakeSymbol("-->") +reg317478 := MakeSymbol("list") +reg317479 := MakeSymbol("B") +reg317480 := Nil; +reg317481 := PrimCons(reg317479, reg317480) +reg317482 := PrimCons(reg317478, reg317481) +reg317483 := Nil; +reg317484 := PrimCons(reg317482, reg317483) +reg317485 := PrimCons(reg317477, reg317484) +reg317486 := PrimCons(reg317476, reg317485) +reg317487 := MakeSymbol("-->") +reg317488 := MakeSymbol("list") +reg317489 := MakeSymbol("A") +reg317490 := Nil; +reg317491 := PrimCons(reg317489, reg317490) +reg317492 := PrimCons(reg317488, reg317491) +reg317493 := MakeSymbol("-->") +reg317494 := MakeSymbol("list") +reg317495 := MakeSymbol("B") +reg317496 := Nil; +reg317497 := PrimCons(reg317495, reg317496) +reg317498 := PrimCons(reg317494, reg317497) +reg317499 := Nil; +reg317500 := PrimCons(reg317498, reg317499) +reg317501 := PrimCons(reg317493, reg317500) +reg317502 := PrimCons(reg317492, reg317501) +reg317503 := Nil; +reg317504 := PrimCons(reg317502, reg317503) +reg317505 := PrimCons(reg317487, reg317504) +reg317506 := PrimCons(reg317486, reg317505) +__ctx.TailApply(__defun__declare, reg317475, reg317506) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317508 := MakeSymbol("maxinferences") +reg317509 := MakeSymbol("number") +reg317510 := MakeSymbol("-->") +reg317511 := MakeSymbol("number") +reg317512 := Nil; +reg317513 := PrimCons(reg317511, reg317512) +reg317514 := PrimCons(reg317510, reg317513) +reg317515 := PrimCons(reg317509, reg317514) +__ctx.TailApply(__defun__declare, reg317508, reg317515) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317517 := MakeSymbol("n->string") +reg317518 := MakeSymbol("number") +reg317519 := MakeSymbol("-->") +reg317520 := MakeSymbol("string") +reg317521 := Nil; +reg317522 := PrimCons(reg317520, reg317521) +reg317523 := PrimCons(reg317519, reg317522) +reg317524 := PrimCons(reg317518, reg317523) +__ctx.TailApply(__defun__declare, reg317517, reg317524) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317526 := MakeSymbol("nl") +reg317527 := MakeSymbol("number") +reg317528 := MakeSymbol("-->") +reg317529 := MakeSymbol("number") +reg317530 := Nil; +reg317531 := PrimCons(reg317529, reg317530) +reg317532 := PrimCons(reg317528, reg317531) +reg317533 := PrimCons(reg317527, reg317532) +__ctx.TailApply(__defun__declare, reg317526, reg317533) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317535 := MakeSymbol("not") +reg317536 := MakeSymbol("boolean") +reg317537 := MakeSymbol("-->") +reg317538 := MakeSymbol("boolean") +reg317539 := Nil; +reg317540 := PrimCons(reg317538, reg317539) +reg317541 := PrimCons(reg317537, reg317540) +reg317542 := PrimCons(reg317536, reg317541) +__ctx.TailApply(__defun__declare, reg317535, reg317542) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317544 := MakeSymbol("nth") +reg317545 := MakeSymbol("number") +reg317546 := MakeSymbol("-->") +reg317547 := MakeSymbol("list") +reg317548 := MakeSymbol("A") +reg317549 := Nil; +reg317550 := PrimCons(reg317548, reg317549) +reg317551 := PrimCons(reg317547, reg317550) +reg317552 := MakeSymbol("-->") +reg317553 := MakeSymbol("A") +reg317554 := Nil; +reg317555 := PrimCons(reg317553, reg317554) +reg317556 := PrimCons(reg317552, reg317555) +reg317557 := PrimCons(reg317551, reg317556) +reg317558 := Nil; +reg317559 := PrimCons(reg317557, reg317558) +reg317560 := PrimCons(reg317546, reg317559) +reg317561 := PrimCons(reg317545, reg317560) +__ctx.TailApply(__defun__declare, reg317544, reg317561) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317563 := MakeSymbol("number?") +reg317564 := MakeSymbol("A") +reg317565 := MakeSymbol("-->") +reg317566 := MakeSymbol("boolean") +reg317567 := Nil; +reg317568 := PrimCons(reg317566, reg317567) +reg317569 := PrimCons(reg317565, reg317568) +reg317570 := PrimCons(reg317564, reg317569) +__ctx.TailApply(__defun__declare, reg317563, reg317570) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317572 := MakeSymbol("occurrences") +reg317573 := MakeSymbol("A") +reg317574 := MakeSymbol("-->") +reg317575 := MakeSymbol("B") +reg317576 := MakeSymbol("-->") +reg317577 := MakeSymbol("number") +reg317578 := Nil; +reg317579 := PrimCons(reg317577, reg317578) +reg317580 := PrimCons(reg317576, reg317579) +reg317581 := PrimCons(reg317575, reg317580) +reg317582 := Nil; +reg317583 := PrimCons(reg317581, reg317582) +reg317584 := PrimCons(reg317574, reg317583) +reg317585 := PrimCons(reg317573, reg317584) +__ctx.TailApply(__defun__declare, reg317572, reg317585) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317587 := MakeSymbol("occurs-check") +reg317588 := MakeSymbol("symbol") +reg317589 := MakeSymbol("-->") +reg317590 := MakeSymbol("boolean") +reg317591 := Nil; +reg317592 := PrimCons(reg317590, reg317591) +reg317593 := PrimCons(reg317589, reg317592) +reg317594 := PrimCons(reg317588, reg317593) +__ctx.TailApply(__defun__declare, reg317587, reg317594) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317596 := MakeSymbol("optimise") +reg317597 := MakeSymbol("symbol") +reg317598 := MakeSymbol("-->") +reg317599 := MakeSymbol("boolean") +reg317600 := Nil; +reg317601 := PrimCons(reg317599, reg317600) +reg317602 := PrimCons(reg317598, reg317601) +reg317603 := PrimCons(reg317597, reg317602) +__ctx.TailApply(__defun__declare, reg317596, reg317603) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317605 := MakeSymbol("or") +reg317606 := MakeSymbol("boolean") +reg317607 := MakeSymbol("-->") +reg317608 := MakeSymbol("boolean") +reg317609 := MakeSymbol("-->") +reg317610 := MakeSymbol("boolean") +reg317611 := Nil; +reg317612 := PrimCons(reg317610, reg317611) +reg317613 := PrimCons(reg317609, reg317612) +reg317614 := PrimCons(reg317608, reg317613) +reg317615 := Nil; +reg317616 := PrimCons(reg317614, reg317615) +reg317617 := PrimCons(reg317607, reg317616) +reg317618 := PrimCons(reg317606, reg317617) +__ctx.TailApply(__defun__declare, reg317605, reg317618) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317620 := MakeSymbol("os") +reg317621 := MakeSymbol("-->") +reg317622 := MakeSymbol("string") +reg317623 := Nil; +reg317624 := PrimCons(reg317622, reg317623) +reg317625 := PrimCons(reg317621, reg317624) +__ctx.TailApply(__defun__declare, reg317620, reg317625) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317627 := MakeSymbol("package?") +reg317628 := MakeSymbol("symbol") +reg317629 := MakeSymbol("-->") +reg317630 := MakeSymbol("boolean") +reg317631 := Nil; +reg317632 := PrimCons(reg317630, reg317631) +reg317633 := PrimCons(reg317629, reg317632) +reg317634 := PrimCons(reg317628, reg317633) +__ctx.TailApply(__defun__declare, reg317627, reg317634) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317636 := MakeSymbol("port") +reg317637 := MakeSymbol("-->") +reg317638 := MakeSymbol("string") +reg317639 := Nil; +reg317640 := PrimCons(reg317638, reg317639) +reg317641 := PrimCons(reg317637, reg317640) +__ctx.TailApply(__defun__declare, reg317636, reg317641) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317643 := MakeSymbol("porters") +reg317644 := MakeSymbol("-->") +reg317645 := MakeSymbol("string") +reg317646 := Nil; +reg317647 := PrimCons(reg317645, reg317646) +reg317648 := PrimCons(reg317644, reg317647) +__ctx.TailApply(__defun__declare, reg317643, reg317648) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317650 := MakeSymbol("pos") +reg317651 := MakeSymbol("string") +reg317652 := MakeSymbol("-->") +reg317653 := MakeSymbol("number") +reg317654 := MakeSymbol("-->") +reg317655 := MakeSymbol("string") +reg317656 := Nil; +reg317657 := PrimCons(reg317655, reg317656) +reg317658 := PrimCons(reg317654, reg317657) +reg317659 := PrimCons(reg317653, reg317658) +reg317660 := Nil; +reg317661 := PrimCons(reg317659, reg317660) +reg317662 := PrimCons(reg317652, reg317661) +reg317663 := PrimCons(reg317651, reg317662) +__ctx.TailApply(__defun__declare, reg317650, reg317663) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317665 := MakeSymbol("pr") +reg317666 := MakeSymbol("string") +reg317667 := MakeSymbol("-->") +reg317668 := MakeSymbol("stream") +reg317669 := MakeSymbol("out") +reg317670 := Nil; +reg317671 := PrimCons(reg317669, reg317670) +reg317672 := PrimCons(reg317668, reg317671) +reg317673 := MakeSymbol("-->") +reg317674 := MakeSymbol("string") +reg317675 := Nil; +reg317676 := PrimCons(reg317674, reg317675) +reg317677 := PrimCons(reg317673, reg317676) +reg317678 := PrimCons(reg317672, reg317677) +reg317679 := Nil; +reg317680 := PrimCons(reg317678, reg317679) +reg317681 := PrimCons(reg317667, reg317680) +reg317682 := PrimCons(reg317666, reg317681) +__ctx.TailApply(__defun__declare, reg317665, reg317682) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317684 := MakeSymbol("print") +reg317685 := MakeSymbol("A") +reg317686 := MakeSymbol("-->") +reg317687 := MakeSymbol("A") +reg317688 := Nil; +reg317689 := PrimCons(reg317687, reg317688) +reg317690 := PrimCons(reg317686, reg317689) +reg317691 := PrimCons(reg317685, reg317690) +__ctx.TailApply(__defun__declare, reg317684, reg317691) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317693 := MakeSymbol("profile") +reg317694 := MakeSymbol("A") +reg317695 := MakeSymbol("-->") +reg317696 := MakeSymbol("B") +reg317697 := Nil; +reg317698 := PrimCons(reg317696, reg317697) +reg317699 := PrimCons(reg317695, reg317698) +reg317700 := PrimCons(reg317694, reg317699) +reg317701 := MakeSymbol("-->") +reg317702 := MakeSymbol("A") +reg317703 := MakeSymbol("-->") +reg317704 := MakeSymbol("B") +reg317705 := Nil; +reg317706 := PrimCons(reg317704, reg317705) +reg317707 := PrimCons(reg317703, reg317706) +reg317708 := PrimCons(reg317702, reg317707) +reg317709 := Nil; +reg317710 := PrimCons(reg317708, reg317709) +reg317711 := PrimCons(reg317701, reg317710) +reg317712 := PrimCons(reg317700, reg317711) +__ctx.TailApply(__defun__declare, reg317693, reg317712) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317714 := MakeSymbol("preclude") +reg317715 := MakeSymbol("list") +reg317716 := MakeSymbol("symbol") +reg317717 := Nil; +reg317718 := PrimCons(reg317716, reg317717) +reg317719 := PrimCons(reg317715, reg317718) +reg317720 := MakeSymbol("-->") +reg317721 := MakeSymbol("list") +reg317722 := MakeSymbol("symbol") +reg317723 := Nil; +reg317724 := PrimCons(reg317722, reg317723) +reg317725 := PrimCons(reg317721, reg317724) +reg317726 := Nil; +reg317727 := PrimCons(reg317725, reg317726) +reg317728 := PrimCons(reg317720, reg317727) +reg317729 := PrimCons(reg317719, reg317728) +__ctx.TailApply(__defun__declare, reg317714, reg317729) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317731 := MakeSymbol("shen.proc-nl") +reg317732 := MakeSymbol("string") +reg317733 := MakeSymbol("-->") +reg317734 := MakeSymbol("string") +reg317735 := Nil; +reg317736 := PrimCons(reg317734, reg317735) +reg317737 := PrimCons(reg317733, reg317736) +reg317738 := PrimCons(reg317732, reg317737) +__ctx.TailApply(__defun__declare, reg317731, reg317738) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317740 := MakeSymbol("profile-results") +reg317741 := MakeSymbol("A") +reg317742 := MakeSymbol("-->") +reg317743 := MakeSymbol("B") +reg317744 := Nil; +reg317745 := PrimCons(reg317743, reg317744) +reg317746 := PrimCons(reg317742, reg317745) +reg317747 := PrimCons(reg317741, reg317746) +reg317748 := MakeSymbol("-->") +reg317749 := MakeSymbol("A") +reg317750 := MakeSymbol("-->") +reg317751 := MakeSymbol("B") +reg317752 := Nil; +reg317753 := PrimCons(reg317751, reg317752) +reg317754 := PrimCons(reg317750, reg317753) +reg317755 := PrimCons(reg317749, reg317754) +reg317756 := MakeSymbol("*") +reg317757 := MakeSymbol("number") +reg317758 := Nil; +reg317759 := PrimCons(reg317757, reg317758) +reg317760 := PrimCons(reg317756, reg317759) +reg317761 := PrimCons(reg317755, reg317760) +reg317762 := Nil; +reg317763 := PrimCons(reg317761, reg317762) +reg317764 := PrimCons(reg317748, reg317763) +reg317765 := PrimCons(reg317747, reg317764) +__ctx.TailApply(__defun__declare, reg317740, reg317765) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317767 := MakeSymbol("protect") +reg317768 := MakeSymbol("symbol") +reg317769 := MakeSymbol("-->") +reg317770 := MakeSymbol("symbol") +reg317771 := Nil; +reg317772 := PrimCons(reg317770, reg317771) +reg317773 := PrimCons(reg317769, reg317772) +reg317774 := PrimCons(reg317768, reg317773) +__ctx.TailApply(__defun__declare, reg317767, reg317774) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317776 := MakeSymbol("preclude-all-but") +reg317777 := MakeSymbol("list") +reg317778 := MakeSymbol("symbol") +reg317779 := Nil; +reg317780 := PrimCons(reg317778, reg317779) +reg317781 := PrimCons(reg317777, reg317780) +reg317782 := MakeSymbol("-->") +reg317783 := MakeSymbol("list") +reg317784 := MakeSymbol("symbol") +reg317785 := Nil; +reg317786 := PrimCons(reg317784, reg317785) +reg317787 := PrimCons(reg317783, reg317786) +reg317788 := Nil; +reg317789 := PrimCons(reg317787, reg317788) +reg317790 := PrimCons(reg317782, reg317789) +reg317791 := PrimCons(reg317781, reg317790) +__ctx.TailApply(__defun__declare, reg317776, reg317791) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317793 := MakeSymbol("shen.prhush") +reg317794 := MakeSymbol("string") +reg317795 := MakeSymbol("-->") +reg317796 := MakeSymbol("stream") +reg317797 := MakeSymbol("out") +reg317798 := Nil; +reg317799 := PrimCons(reg317797, reg317798) +reg317800 := PrimCons(reg317796, reg317799) +reg317801 := MakeSymbol("-->") +reg317802 := MakeSymbol("string") +reg317803 := Nil; +reg317804 := PrimCons(reg317802, reg317803) +reg317805 := PrimCons(reg317801, reg317804) +reg317806 := PrimCons(reg317800, reg317805) +reg317807 := Nil; +reg317808 := PrimCons(reg317806, reg317807) +reg317809 := PrimCons(reg317795, reg317808) +reg317810 := PrimCons(reg317794, reg317809) +__ctx.TailApply(__defun__declare, reg317793, reg317810) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317812 := MakeSymbol("ps") +reg317813 := MakeSymbol("symbol") +reg317814 := MakeSymbol("-->") +reg317815 := MakeSymbol("list") +reg317816 := MakeSymbol("unit") +reg317817 := Nil; +reg317818 := PrimCons(reg317816, reg317817) +reg317819 := PrimCons(reg317815, reg317818) +reg317820 := Nil; +reg317821 := PrimCons(reg317819, reg317820) +reg317822 := PrimCons(reg317814, reg317821) +reg317823 := PrimCons(reg317813, reg317822) +__ctx.TailApply(__defun__declare, reg317812, reg317823) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317825 := MakeSymbol("read") +reg317826 := MakeSymbol("stream") +reg317827 := MakeSymbol("in") +reg317828 := Nil; +reg317829 := PrimCons(reg317827, reg317828) +reg317830 := PrimCons(reg317826, reg317829) +reg317831 := MakeSymbol("-->") +reg317832 := MakeSymbol("unit") +reg317833 := Nil; +reg317834 := PrimCons(reg317832, reg317833) +reg317835 := PrimCons(reg317831, reg317834) +reg317836 := PrimCons(reg317830, reg317835) +__ctx.TailApply(__defun__declare, reg317825, reg317836) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317838 := MakeSymbol("read-byte") +reg317839 := MakeSymbol("stream") +reg317840 := MakeSymbol("in") +reg317841 := Nil; +reg317842 := PrimCons(reg317840, reg317841) +reg317843 := PrimCons(reg317839, reg317842) +reg317844 := MakeSymbol("-->") +reg317845 := MakeSymbol("number") +reg317846 := Nil; +reg317847 := PrimCons(reg317845, reg317846) +reg317848 := PrimCons(reg317844, reg317847) +reg317849 := PrimCons(reg317843, reg317848) +__ctx.TailApply(__defun__declare, reg317838, reg317849) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317851 := MakeSymbol("read-file-as-bytelist") +reg317852 := MakeSymbol("string") +reg317853 := MakeSymbol("-->") +reg317854 := MakeSymbol("list") +reg317855 := MakeSymbol("number") +reg317856 := Nil; +reg317857 := PrimCons(reg317855, reg317856) +reg317858 := PrimCons(reg317854, reg317857) +reg317859 := Nil; +reg317860 := PrimCons(reg317858, reg317859) +reg317861 := PrimCons(reg317853, reg317860) +reg317862 := PrimCons(reg317852, reg317861) +__ctx.TailApply(__defun__declare, reg317851, reg317862) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317864 := MakeSymbol("read-file-as-string") +reg317865 := MakeSymbol("string") +reg317866 := MakeSymbol("-->") +reg317867 := MakeSymbol("string") +reg317868 := Nil; +reg317869 := PrimCons(reg317867, reg317868) +reg317870 := PrimCons(reg317866, reg317869) +reg317871 := PrimCons(reg317865, reg317870) +__ctx.TailApply(__defun__declare, reg317864, reg317871) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317873 := MakeSymbol("read-file") +reg317874 := MakeSymbol("string") +reg317875 := MakeSymbol("-->") +reg317876 := MakeSymbol("list") +reg317877 := MakeSymbol("unit") +reg317878 := Nil; +reg317879 := PrimCons(reg317877, reg317878) +reg317880 := PrimCons(reg317876, reg317879) +reg317881 := Nil; +reg317882 := PrimCons(reg317880, reg317881) +reg317883 := PrimCons(reg317875, reg317882) +reg317884 := PrimCons(reg317874, reg317883) +__ctx.TailApply(__defun__declare, reg317873, reg317884) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317886 := MakeSymbol("read-from-string") +reg317887 := MakeSymbol("string") +reg317888 := MakeSymbol("-->") +reg317889 := MakeSymbol("list") +reg317890 := MakeSymbol("unit") +reg317891 := Nil; +reg317892 := PrimCons(reg317890, reg317891) +reg317893 := PrimCons(reg317889, reg317892) +reg317894 := Nil; +reg317895 := PrimCons(reg317893, reg317894) +reg317896 := PrimCons(reg317888, reg317895) +reg317897 := PrimCons(reg317887, reg317896) +__ctx.TailApply(__defun__declare, reg317886, reg317897) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317899 := MakeSymbol("release") +reg317900 := MakeSymbol("-->") +reg317901 := MakeSymbol("string") +reg317902 := Nil; +reg317903 := PrimCons(reg317901, reg317902) +reg317904 := PrimCons(reg317900, reg317903) +__ctx.TailApply(__defun__declare, reg317899, reg317904) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317906 := MakeSymbol("remove") +reg317907 := MakeSymbol("A") +reg317908 := MakeSymbol("-->") +reg317909 := MakeSymbol("list") +reg317910 := MakeSymbol("A") +reg317911 := Nil; +reg317912 := PrimCons(reg317910, reg317911) +reg317913 := PrimCons(reg317909, reg317912) +reg317914 := MakeSymbol("-->") +reg317915 := MakeSymbol("list") +reg317916 := MakeSymbol("A") +reg317917 := Nil; +reg317918 := PrimCons(reg317916, reg317917) +reg317919 := PrimCons(reg317915, reg317918) +reg317920 := Nil; +reg317921 := PrimCons(reg317919, reg317920) +reg317922 := PrimCons(reg317914, reg317921) +reg317923 := PrimCons(reg317913, reg317922) +reg317924 := Nil; +reg317925 := PrimCons(reg317923, reg317924) +reg317926 := PrimCons(reg317908, reg317925) +reg317927 := PrimCons(reg317907, reg317926) +__ctx.TailApply(__defun__declare, reg317906, reg317927) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317929 := MakeSymbol("reverse") +reg317930 := MakeSymbol("list") +reg317931 := MakeSymbol("A") +reg317932 := Nil; +reg317933 := PrimCons(reg317931, reg317932) +reg317934 := PrimCons(reg317930, reg317933) +reg317935 := MakeSymbol("-->") +reg317936 := MakeSymbol("list") +reg317937 := MakeSymbol("A") +reg317938 := Nil; +reg317939 := PrimCons(reg317937, reg317938) +reg317940 := PrimCons(reg317936, reg317939) +reg317941 := Nil; +reg317942 := PrimCons(reg317940, reg317941) +reg317943 := PrimCons(reg317935, reg317942) +reg317944 := PrimCons(reg317934, reg317943) +__ctx.TailApply(__defun__declare, reg317929, reg317944) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317946 := MakeSymbol("simple-error") +reg317947 := MakeSymbol("string") +reg317948 := MakeSymbol("-->") +reg317949 := MakeSymbol("A") +reg317950 := Nil; +reg317951 := PrimCons(reg317949, reg317950) +reg317952 := PrimCons(reg317948, reg317951) +reg317953 := PrimCons(reg317947, reg317952) +__ctx.TailApply(__defun__declare, reg317946, reg317953) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317955 := MakeSymbol("snd") +reg317956 := MakeSymbol("A") +reg317957 := MakeSymbol("*") +reg317958 := MakeSymbol("B") +reg317959 := Nil; +reg317960 := PrimCons(reg317958, reg317959) +reg317961 := PrimCons(reg317957, reg317960) +reg317962 := PrimCons(reg317956, reg317961) +reg317963 := MakeSymbol("-->") +reg317964 := MakeSymbol("B") +reg317965 := Nil; +reg317966 := PrimCons(reg317964, reg317965) +reg317967 := PrimCons(reg317963, reg317966) +reg317968 := PrimCons(reg317962, reg317967) +__ctx.TailApply(__defun__declare, reg317955, reg317968) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317970 := MakeSymbol("specialise") +reg317971 := MakeSymbol("symbol") +reg317972 := MakeSymbol("-->") +reg317973 := MakeSymbol("symbol") +reg317974 := Nil; +reg317975 := PrimCons(reg317973, reg317974) +reg317976 := PrimCons(reg317972, reg317975) +reg317977 := PrimCons(reg317971, reg317976) +__ctx.TailApply(__defun__declare, reg317970, reg317977) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317979 := MakeSymbol("spy") +reg317980 := MakeSymbol("symbol") +reg317981 := MakeSymbol("-->") +reg317982 := MakeSymbol("boolean") +reg317983 := Nil; +reg317984 := PrimCons(reg317982, reg317983) +reg317985 := PrimCons(reg317981, reg317984) +reg317986 := PrimCons(reg317980, reg317985) +__ctx.TailApply(__defun__declare, reg317979, reg317986) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317988 := MakeSymbol("step") +reg317989 := MakeSymbol("symbol") +reg317990 := MakeSymbol("-->") +reg317991 := MakeSymbol("boolean") +reg317992 := Nil; +reg317993 := PrimCons(reg317991, reg317992) +reg317994 := PrimCons(reg317990, reg317993) +reg317995 := PrimCons(reg317989, reg317994) +__ctx.TailApply(__defun__declare, reg317988, reg317995) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg317997 := MakeSymbol("stinput") +reg317998 := MakeSymbol("-->") +reg317999 := MakeSymbol("stream") +reg318000 := MakeSymbol("in") +reg318001 := Nil; +reg318002 := PrimCons(reg318000, reg318001) +reg318003 := PrimCons(reg317999, reg318002) +reg318004 := Nil; +reg318005 := PrimCons(reg318003, reg318004) +reg318006 := PrimCons(reg317998, reg318005) +__ctx.TailApply(__defun__declare, reg317997, reg318006) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318008 := MakeSymbol("sterror") +reg318009 := MakeSymbol("-->") +reg318010 := MakeSymbol("stream") +reg318011 := MakeSymbol("out") +reg318012 := Nil; +reg318013 := PrimCons(reg318011, reg318012) +reg318014 := PrimCons(reg318010, reg318013) +reg318015 := Nil; +reg318016 := PrimCons(reg318014, reg318015) +reg318017 := PrimCons(reg318009, reg318016) +__ctx.TailApply(__defun__declare, reg318008, reg318017) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318019 := MakeSymbol("stoutput") +reg318020 := MakeSymbol("-->") +reg318021 := MakeSymbol("stream") +reg318022 := MakeSymbol("out") +reg318023 := Nil; +reg318024 := PrimCons(reg318022, reg318023) +reg318025 := PrimCons(reg318021, reg318024) +reg318026 := Nil; +reg318027 := PrimCons(reg318025, reg318026) +reg318028 := PrimCons(reg318020, reg318027) +__ctx.TailApply(__defun__declare, reg318019, reg318028) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318030 := MakeSymbol("string?") +reg318031 := MakeSymbol("A") +reg318032 := MakeSymbol("-->") +reg318033 := MakeSymbol("boolean") +reg318034 := Nil; +reg318035 := PrimCons(reg318033, reg318034) +reg318036 := PrimCons(reg318032, reg318035) +reg318037 := PrimCons(reg318031, reg318036) +__ctx.TailApply(__defun__declare, reg318030, reg318037) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318039 := MakeSymbol("str") +reg318040 := MakeSymbol("A") +reg318041 := MakeSymbol("-->") +reg318042 := MakeSymbol("string") +reg318043 := Nil; +reg318044 := PrimCons(reg318042, reg318043) +reg318045 := PrimCons(reg318041, reg318044) +reg318046 := PrimCons(reg318040, reg318045) +__ctx.TailApply(__defun__declare, reg318039, reg318046) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318048 := MakeSymbol("string->n") +reg318049 := MakeSymbol("string") +reg318050 := MakeSymbol("-->") +reg318051 := MakeSymbol("number") +reg318052 := Nil; +reg318053 := PrimCons(reg318051, reg318052) +reg318054 := PrimCons(reg318050, reg318053) +reg318055 := PrimCons(reg318049, reg318054) +__ctx.TailApply(__defun__declare, reg318048, reg318055) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318057 := MakeSymbol("string->symbol") +reg318058 := MakeSymbol("string") +reg318059 := MakeSymbol("-->") +reg318060 := MakeSymbol("symbol") +reg318061 := Nil; +reg318062 := PrimCons(reg318060, reg318061) +reg318063 := PrimCons(reg318059, reg318062) +reg318064 := PrimCons(reg318058, reg318063) +__ctx.TailApply(__defun__declare, reg318057, reg318064) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318066 := MakeSymbol("sum") +reg318067 := MakeSymbol("list") +reg318068 := MakeSymbol("number") +reg318069 := Nil; +reg318070 := PrimCons(reg318068, reg318069) +reg318071 := PrimCons(reg318067, reg318070) +reg318072 := MakeSymbol("-->") +reg318073 := MakeSymbol("number") +reg318074 := Nil; +reg318075 := PrimCons(reg318073, reg318074) +reg318076 := PrimCons(reg318072, reg318075) +reg318077 := PrimCons(reg318071, reg318076) +__ctx.TailApply(__defun__declare, reg318066, reg318077) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318079 := MakeSymbol("symbol?") +reg318080 := MakeSymbol("A") +reg318081 := MakeSymbol("-->") +reg318082 := MakeSymbol("boolean") +reg318083 := Nil; +reg318084 := PrimCons(reg318082, reg318083) +reg318085 := PrimCons(reg318081, reg318084) +reg318086 := PrimCons(reg318080, reg318085) +__ctx.TailApply(__defun__declare, reg318079, reg318086) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318088 := MakeSymbol("systemf") +reg318089 := MakeSymbol("symbol") +reg318090 := MakeSymbol("-->") +reg318091 := MakeSymbol("symbol") +reg318092 := Nil; +reg318093 := PrimCons(reg318091, reg318092) +reg318094 := PrimCons(reg318090, reg318093) +reg318095 := PrimCons(reg318089, reg318094) +__ctx.TailApply(__defun__declare, reg318088, reg318095) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318097 := MakeSymbol("tail") +reg318098 := MakeSymbol("list") +reg318099 := MakeSymbol("A") +reg318100 := Nil; +reg318101 := PrimCons(reg318099, reg318100) +reg318102 := PrimCons(reg318098, reg318101) +reg318103 := MakeSymbol("-->") +reg318104 := MakeSymbol("list") +reg318105 := MakeSymbol("A") +reg318106 := Nil; +reg318107 := PrimCons(reg318105, reg318106) +reg318108 := PrimCons(reg318104, reg318107) +reg318109 := Nil; +reg318110 := PrimCons(reg318108, reg318109) +reg318111 := PrimCons(reg318103, reg318110) +reg318112 := PrimCons(reg318102, reg318111) +__ctx.TailApply(__defun__declare, reg318097, reg318112) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318114 := MakeSymbol("tlstr") +reg318115 := MakeSymbol("string") +reg318116 := MakeSymbol("-->") +reg318117 := MakeSymbol("string") +reg318118 := Nil; +reg318119 := PrimCons(reg318117, reg318118) +reg318120 := PrimCons(reg318116, reg318119) +reg318121 := PrimCons(reg318115, reg318120) +__ctx.TailApply(__defun__declare, reg318114, reg318121) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318123 := MakeSymbol("tlv") +reg318124 := MakeSymbol("vector") +reg318125 := MakeSymbol("A") +reg318126 := Nil; +reg318127 := PrimCons(reg318125, reg318126) +reg318128 := PrimCons(reg318124, reg318127) +reg318129 := MakeSymbol("-->") +reg318130 := MakeSymbol("vector") +reg318131 := MakeSymbol("A") +reg318132 := Nil; +reg318133 := PrimCons(reg318131, reg318132) +reg318134 := PrimCons(reg318130, reg318133) +reg318135 := Nil; +reg318136 := PrimCons(reg318134, reg318135) +reg318137 := PrimCons(reg318129, reg318136) +reg318138 := PrimCons(reg318128, reg318137) +__ctx.TailApply(__defun__declare, reg318123, reg318138) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318140 := MakeSymbol("tc") +reg318141 := MakeSymbol("symbol") +reg318142 := MakeSymbol("-->") +reg318143 := MakeSymbol("boolean") +reg318144 := Nil; +reg318145 := PrimCons(reg318143, reg318144) +reg318146 := PrimCons(reg318142, reg318145) +reg318147 := PrimCons(reg318141, reg318146) +__ctx.TailApply(__defun__declare, reg318140, reg318147) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318149 := MakeSymbol("tc?") +reg318150 := MakeSymbol("-->") +reg318151 := MakeSymbol("boolean") +reg318152 := Nil; +reg318153 := PrimCons(reg318151, reg318152) +reg318154 := PrimCons(reg318150, reg318153) +__ctx.TailApply(__defun__declare, reg318149, reg318154) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318156 := MakeSymbol("thaw") +reg318157 := MakeSymbol("lazy") +reg318158 := MakeSymbol("A") +reg318159 := Nil; +reg318160 := PrimCons(reg318158, reg318159) +reg318161 := PrimCons(reg318157, reg318160) +reg318162 := MakeSymbol("-->") +reg318163 := MakeSymbol("A") +reg318164 := Nil; +reg318165 := PrimCons(reg318163, reg318164) +reg318166 := PrimCons(reg318162, reg318165) +reg318167 := PrimCons(reg318161, reg318166) +__ctx.TailApply(__defun__declare, reg318156, reg318167) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318169 := MakeSymbol("track") +reg318170 := MakeSymbol("symbol") +reg318171 := MakeSymbol("-->") +reg318172 := MakeSymbol("symbol") +reg318173 := Nil; +reg318174 := PrimCons(reg318172, reg318173) +reg318175 := PrimCons(reg318171, reg318174) +reg318176 := PrimCons(reg318170, reg318175) +__ctx.TailApply(__defun__declare, reg318169, reg318176) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318178 := MakeSymbol("trap-error") +reg318179 := MakeSymbol("A") +reg318180 := MakeSymbol("-->") +reg318181 := MakeSymbol("exception") +reg318182 := MakeSymbol("-->") +reg318183 := MakeSymbol("A") +reg318184 := Nil; +reg318185 := PrimCons(reg318183, reg318184) +reg318186 := PrimCons(reg318182, reg318185) +reg318187 := PrimCons(reg318181, reg318186) +reg318188 := MakeSymbol("-->") +reg318189 := MakeSymbol("A") +reg318190 := Nil; +reg318191 := PrimCons(reg318189, reg318190) +reg318192 := PrimCons(reg318188, reg318191) +reg318193 := PrimCons(reg318187, reg318192) +reg318194 := Nil; +reg318195 := PrimCons(reg318193, reg318194) +reg318196 := PrimCons(reg318180, reg318195) +reg318197 := PrimCons(reg318179, reg318196) +__ctx.TailApply(__defun__declare, reg318178, reg318197) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318199 := MakeSymbol("tuple?") +reg318200 := MakeSymbol("A") +reg318201 := MakeSymbol("-->") +reg318202 := MakeSymbol("boolean") +reg318203 := Nil; +reg318204 := PrimCons(reg318202, reg318203) +reg318205 := PrimCons(reg318201, reg318204) +reg318206 := PrimCons(reg318200, reg318205) +__ctx.TailApply(__defun__declare, reg318199, reg318206) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318208 := MakeSymbol("undefmacro") +reg318209 := MakeSymbol("symbol") +reg318210 := MakeSymbol("-->") +reg318211 := MakeSymbol("symbol") +reg318212 := Nil; +reg318213 := PrimCons(reg318211, reg318212) +reg318214 := PrimCons(reg318210, reg318213) +reg318215 := PrimCons(reg318209, reg318214) +__ctx.TailApply(__defun__declare, reg318208, reg318215) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318217 := MakeSymbol("union") +reg318218 := MakeSymbol("list") +reg318219 := MakeSymbol("A") +reg318220 := Nil; +reg318221 := PrimCons(reg318219, reg318220) +reg318222 := PrimCons(reg318218, reg318221) +reg318223 := MakeSymbol("-->") +reg318224 := MakeSymbol("list") +reg318225 := MakeSymbol("A") +reg318226 := Nil; +reg318227 := PrimCons(reg318225, reg318226) +reg318228 := PrimCons(reg318224, reg318227) +reg318229 := MakeSymbol("-->") +reg318230 := MakeSymbol("list") +reg318231 := MakeSymbol("A") +reg318232 := Nil; +reg318233 := PrimCons(reg318231, reg318232) +reg318234 := PrimCons(reg318230, reg318233) +reg318235 := Nil; +reg318236 := PrimCons(reg318234, reg318235) +reg318237 := PrimCons(reg318229, reg318236) +reg318238 := PrimCons(reg318228, reg318237) +reg318239 := Nil; +reg318240 := PrimCons(reg318238, reg318239) +reg318241 := PrimCons(reg318223, reg318240) +reg318242 := PrimCons(reg318222, reg318241) +__ctx.TailApply(__defun__declare, reg318217, reg318242) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318244 := MakeSymbol("unprofile") +reg318245 := MakeSymbol("A") +reg318246 := MakeSymbol("-->") +reg318247 := MakeSymbol("B") +reg318248 := Nil; +reg318249 := PrimCons(reg318247, reg318248) +reg318250 := PrimCons(reg318246, reg318249) +reg318251 := PrimCons(reg318245, reg318250) +reg318252 := MakeSymbol("-->") +reg318253 := MakeSymbol("A") +reg318254 := MakeSymbol("-->") +reg318255 := MakeSymbol("B") +reg318256 := Nil; +reg318257 := PrimCons(reg318255, reg318256) +reg318258 := PrimCons(reg318254, reg318257) +reg318259 := PrimCons(reg318253, reg318258) +reg318260 := Nil; +reg318261 := PrimCons(reg318259, reg318260) +reg318262 := PrimCons(reg318252, reg318261) +reg318263 := PrimCons(reg318251, reg318262) +__ctx.TailApply(__defun__declare, reg318244, reg318263) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318265 := MakeSymbol("untrack") +reg318266 := MakeSymbol("symbol") +reg318267 := MakeSymbol("-->") +reg318268 := MakeSymbol("symbol") +reg318269 := Nil; +reg318270 := PrimCons(reg318268, reg318269) +reg318271 := PrimCons(reg318267, reg318270) +reg318272 := PrimCons(reg318266, reg318271) +__ctx.TailApply(__defun__declare, reg318265, reg318272) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318274 := MakeSymbol("unspecialise") +reg318275 := MakeSymbol("symbol") +reg318276 := MakeSymbol("-->") +reg318277 := MakeSymbol("symbol") +reg318278 := Nil; +reg318279 := PrimCons(reg318277, reg318278) +reg318280 := PrimCons(reg318276, reg318279) +reg318281 := PrimCons(reg318275, reg318280) +__ctx.TailApply(__defun__declare, reg318274, reg318281) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318283 := MakeSymbol("variable?") +reg318284 := MakeSymbol("A") +reg318285 := MakeSymbol("-->") +reg318286 := MakeSymbol("boolean") +reg318287 := Nil; +reg318288 := PrimCons(reg318286, reg318287) +reg318289 := PrimCons(reg318285, reg318288) +reg318290 := PrimCons(reg318284, reg318289) +__ctx.TailApply(__defun__declare, reg318283, reg318290) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318292 := MakeSymbol("vector?") +reg318293 := MakeSymbol("A") +reg318294 := MakeSymbol("-->") +reg318295 := MakeSymbol("boolean") +reg318296 := Nil; +reg318297 := PrimCons(reg318295, reg318296) +reg318298 := PrimCons(reg318294, reg318297) +reg318299 := PrimCons(reg318293, reg318298) +__ctx.TailApply(__defun__declare, reg318292, reg318299) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318301 := MakeSymbol("version") +reg318302 := MakeSymbol("-->") +reg318303 := MakeSymbol("string") +reg318304 := Nil; +reg318305 := PrimCons(reg318303, reg318304) +reg318306 := PrimCons(reg318302, reg318305) +__ctx.TailApply(__defun__declare, reg318301, reg318306) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318308 := MakeSymbol("write-to-file") +reg318309 := MakeSymbol("string") +reg318310 := MakeSymbol("-->") +reg318311 := MakeSymbol("A") +reg318312 := MakeSymbol("-->") +reg318313 := MakeSymbol("A") +reg318314 := Nil; +reg318315 := PrimCons(reg318313, reg318314) +reg318316 := PrimCons(reg318312, reg318315) +reg318317 := PrimCons(reg318311, reg318316) +reg318318 := Nil; +reg318319 := PrimCons(reg318317, reg318318) +reg318320 := PrimCons(reg318310, reg318319) +reg318321 := PrimCons(reg318309, reg318320) +__ctx.TailApply(__defun__declare, reg318308, reg318321) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318323 := MakeSymbol("write-byte") +reg318324 := MakeSymbol("number") +reg318325 := MakeSymbol("-->") +reg318326 := MakeSymbol("stream") +reg318327 := MakeSymbol("out") +reg318328 := Nil; +reg318329 := PrimCons(reg318327, reg318328) +reg318330 := PrimCons(reg318326, reg318329) +reg318331 := MakeSymbol("-->") +reg318332 := MakeSymbol("number") +reg318333 := Nil; +reg318334 := PrimCons(reg318332, reg318333) +reg318335 := PrimCons(reg318331, reg318334) +reg318336 := PrimCons(reg318330, reg318335) +reg318337 := Nil; +reg318338 := PrimCons(reg318336, reg318337) +reg318339 := PrimCons(reg318325, reg318338) +reg318340 := PrimCons(reg318324, reg318339) +__ctx.TailApply(__defun__declare, reg318323, reg318340) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318342 := MakeSymbol("y-or-n?") +reg318343 := MakeSymbol("string") +reg318344 := MakeSymbol("-->") +reg318345 := MakeSymbol("boolean") +reg318346 := Nil; +reg318347 := PrimCons(reg318345, reg318346) +reg318348 := PrimCons(reg318344, reg318347) +reg318349 := PrimCons(reg318343, reg318348) +__ctx.TailApply(__defun__declare, reg318342, reg318349) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318351 := MakeSymbol(">") +reg318352 := MakeSymbol("number") +reg318353 := MakeSymbol("-->") +reg318354 := MakeSymbol("number") +reg318355 := MakeSymbol("-->") +reg318356 := MakeSymbol("boolean") +reg318357 := Nil; +reg318358 := PrimCons(reg318356, reg318357) +reg318359 := PrimCons(reg318355, reg318358) +reg318360 := PrimCons(reg318354, reg318359) +reg318361 := Nil; +reg318362 := PrimCons(reg318360, reg318361) +reg318363 := PrimCons(reg318353, reg318362) +reg318364 := PrimCons(reg318352, reg318363) +__ctx.TailApply(__defun__declare, reg318351, reg318364) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318366 := MakeSymbol("<") +reg318367 := MakeSymbol("number") +reg318368 := MakeSymbol("-->") +reg318369 := MakeSymbol("number") +reg318370 := MakeSymbol("-->") +reg318371 := MakeSymbol("boolean") +reg318372 := Nil; +reg318373 := PrimCons(reg318371, reg318372) +reg318374 := PrimCons(reg318370, reg318373) +reg318375 := PrimCons(reg318369, reg318374) +reg318376 := Nil; +reg318377 := PrimCons(reg318375, reg318376) +reg318378 := PrimCons(reg318368, reg318377) +reg318379 := PrimCons(reg318367, reg318378) +__ctx.TailApply(__defun__declare, reg318366, reg318379) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318381 := MakeSymbol(">=") +reg318382 := MakeSymbol("number") +reg318383 := MakeSymbol("-->") +reg318384 := MakeSymbol("number") +reg318385 := MakeSymbol("-->") +reg318386 := MakeSymbol("boolean") +reg318387 := Nil; +reg318388 := PrimCons(reg318386, reg318387) +reg318389 := PrimCons(reg318385, reg318388) +reg318390 := PrimCons(reg318384, reg318389) +reg318391 := Nil; +reg318392 := PrimCons(reg318390, reg318391) +reg318393 := PrimCons(reg318383, reg318392) +reg318394 := PrimCons(reg318382, reg318393) +__ctx.TailApply(__defun__declare, reg318381, reg318394) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318396 := MakeSymbol("<=") +reg318397 := MakeSymbol("number") +reg318398 := MakeSymbol("-->") +reg318399 := MakeSymbol("number") +reg318400 := MakeSymbol("-->") +reg318401 := MakeSymbol("boolean") +reg318402 := Nil; +reg318403 := PrimCons(reg318401, reg318402) +reg318404 := PrimCons(reg318400, reg318403) +reg318405 := PrimCons(reg318399, reg318404) +reg318406 := Nil; +reg318407 := PrimCons(reg318405, reg318406) +reg318408 := PrimCons(reg318398, reg318407) +reg318409 := PrimCons(reg318397, reg318408) +__ctx.TailApply(__defun__declare, reg318396, reg318409) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318411 := MakeSymbol("=") +reg318412 := MakeSymbol("A") +reg318413 := MakeSymbol("-->") +reg318414 := MakeSymbol("A") +reg318415 := MakeSymbol("-->") +reg318416 := MakeSymbol("boolean") +reg318417 := Nil; +reg318418 := PrimCons(reg318416, reg318417) +reg318419 := PrimCons(reg318415, reg318418) +reg318420 := PrimCons(reg318414, reg318419) +reg318421 := Nil; +reg318422 := PrimCons(reg318420, reg318421) +reg318423 := PrimCons(reg318413, reg318422) +reg318424 := PrimCons(reg318412, reg318423) +__ctx.TailApply(__defun__declare, reg318411, reg318424) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318426 := MakeSymbol("+") +reg318427 := MakeSymbol("number") +reg318428 := MakeSymbol("-->") +reg318429 := MakeSymbol("number") +reg318430 := MakeSymbol("-->") +reg318431 := MakeSymbol("number") +reg318432 := Nil; +reg318433 := PrimCons(reg318431, reg318432) +reg318434 := PrimCons(reg318430, reg318433) +reg318435 := PrimCons(reg318429, reg318434) +reg318436 := Nil; +reg318437 := PrimCons(reg318435, reg318436) +reg318438 := PrimCons(reg318428, reg318437) +reg318439 := PrimCons(reg318427, reg318438) +__ctx.TailApply(__defun__declare, reg318426, reg318439) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318441 := MakeSymbol("/") +reg318442 := MakeSymbol("number") +reg318443 := MakeSymbol("-->") +reg318444 := MakeSymbol("number") +reg318445 := MakeSymbol("-->") +reg318446 := MakeSymbol("number") +reg318447 := Nil; +reg318448 := PrimCons(reg318446, reg318447) +reg318449 := PrimCons(reg318445, reg318448) +reg318450 := PrimCons(reg318444, reg318449) +reg318451 := Nil; +reg318452 := PrimCons(reg318450, reg318451) +reg318453 := PrimCons(reg318443, reg318452) +reg318454 := PrimCons(reg318442, reg318453) +__ctx.TailApply(__defun__declare, reg318441, reg318454) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318456 := MakeSymbol("-") +reg318457 := MakeSymbol("number") +reg318458 := MakeSymbol("-->") +reg318459 := MakeSymbol("number") +reg318460 := MakeSymbol("-->") +reg318461 := MakeSymbol("number") +reg318462 := Nil; +reg318463 := PrimCons(reg318461, reg318462) +reg318464 := PrimCons(reg318460, reg318463) +reg318465 := PrimCons(reg318459, reg318464) +reg318466 := Nil; +reg318467 := PrimCons(reg318465, reg318466) +reg318468 := PrimCons(reg318458, reg318467) +reg318469 := PrimCons(reg318457, reg318468) +__ctx.TailApply(__defun__declare, reg318456, reg318469) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318471 := MakeSymbol("*") +reg318472 := MakeSymbol("number") +reg318473 := MakeSymbol("-->") +reg318474 := MakeSymbol("number") +reg318475 := MakeSymbol("-->") +reg318476 := MakeSymbol("number") +reg318477 := Nil; +reg318478 := PrimCons(reg318476, reg318477) +reg318479 := PrimCons(reg318475, reg318478) +reg318480 := PrimCons(reg318474, reg318479) +reg318481 := Nil; +reg318482 := PrimCons(reg318480, reg318481) +reg318483 := PrimCons(reg318473, reg318482) +reg318484 := PrimCons(reg318472, reg318483) +__ctx.TailApply(__defun__declare, reg318471, reg318484) +return +}, 0)) +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg318486 := MakeSymbol("==") +reg318487 := MakeSymbol("A") +reg318488 := MakeSymbol("-->") +reg318489 := MakeSymbol("B") +reg318490 := MakeSymbol("-->") +reg318491 := MakeSymbol("boolean") +reg318492 := Nil; +reg318493 := PrimCons(reg318491, reg318492) +reg318494 := PrimCons(reg318490, reg318493) +reg318495 := PrimCons(reg318489, reg318494) +reg318496 := Nil; +reg318497 := PrimCons(reg318495, reg318496) +reg318498 := PrimCons(reg318488, reg318497) +reg318499 := PrimCons(reg318487, reg318498) +__ctx.TailApply(__defun__declare, reg318486, reg318499) +return +}, 0)) +} diff --git a/cmd/shen/writer.go b/cmd/shen/writer.go new file mode 100644 index 0000000..eb15bf5 --- /dev/null +++ b/cmd/shen/writer.go @@ -0,0 +1,1697 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__pr Obj // pr +var __defun__shen_4prh Obj // shen.prh +var __defun__shen_4write_1char_1and_1inc Obj // shen.write-char-and-inc +var __defun__print Obj // print +var __defun__shen_4prhush Obj // shen.prhush +var __defun__shen_4mkstr Obj // shen.mkstr +var __defun__shen_4mkstr_1l Obj // shen.mkstr-l +var __defun__shen_4insert_1l Obj // shen.insert-l +var __defun__shen_4factor_1cn Obj // shen.factor-cn +var __defun__shen_4proc_1nl Obj // shen.proc-nl +var __defun__shen_4mkstr_1r Obj // shen.mkstr-r +var __defun__shen_4insert Obj // shen.insert +var __defun__shen_4insert_1h Obj // shen.insert-h +var __defun__shen_4app Obj // shen.app +var __defun__shen_4arg_1_6str Obj // shen.arg->str +var __defun__shen_4list_1_6str Obj // shen.list->str +var __defun__shen_4maxseq Obj // shen.maxseq +var __defun__shen_4iter_1list Obj // shen.iter-list +var __defun__shen_4str_1_6str Obj // shen.str->str +var __defun__shen_4vector_1_6str Obj // shen.vector->str +var __defun__shen_4print_1vector_2 Obj // shen.print-vector? +var __defun__shen_4fbound_2 Obj // shen.fbound? +var __defun__shen_4tuple Obj // shen.tuple +var __defun__shen_4dictionary Obj // shen.dictionary +var __defun__shen_4iter_1vector Obj // shen.iter-vector +var __defun__shen_4atom_1_6str Obj // shen.atom->str +var __defun__shen_4funexstring Obj // shen.funexstring +var __defun__shen_4list_2 Obj // shen.list? + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg308027 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg308027) +return +}, 0)) +__defun__pr = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4147 := __args[0] +_ = V4147 +V4148 := __args[1] +_ = V4148 +reg308028 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg308029 := MakeNumber(0) +__ctx.TailApply(__defun__shen_4prh, V4147, V4148, reg308029) +return +}, 0) +reg308031 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +__ctx.Return(V4147) +return +}, 1) +reg308032 := __e.Try(reg308028).Catch(reg308031) +__ctx.Return(reg308032) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "pr", value: __defun__pr}) + +__defun__shen_4prh = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4152 := __args[0] +_ = V4152 +V4153 := __args[1] +_ = V4153 +V4154 := __args[2] +_ = V4154 +reg308033 := __e.Call(__defun__shen_4write_1char_1and_1inc, V4152, V4153, V4154) +__ctx.TailApply(__defun__shen_4prh, V4152, V4153, reg308033) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.prh", value: __defun__shen_4prh}) + +__defun__shen_4write_1char_1and_1inc = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4158 := __args[0] +_ = V4158 +V4159 := __args[1] +_ = V4159 +V4160 := __args[2] +_ = V4160 +reg308035 := PrimPos(V4158, V4160) +reg308036 := PrimStringToNumber(reg308035) +reg308037 := PrimWriteByte(reg308036, V4159) +_ = reg308037 +reg308038 := MakeNumber(1) +reg308039 := PrimNumberAdd(V4160, reg308038) +__ctx.Return(reg308039) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.write-char-and-inc", value: __defun__shen_4write_1char_1and_1inc}) + +__defun__print = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4162 := __args[0] +_ = V4162 +reg308040 := MakeString("~S") +reg308041 := __e.Call(__defun__shen_4insert, V4162, reg308040) +String := reg308041 +_ = String +reg308042 := __e.Call(__defun__stoutput) +reg308043 := __e.Call(__defun__shen_4prhush, String, reg308042) +Print := reg308043 +_ = Print +__ctx.Return(V4162) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "print", value: __defun__print}) + +__defun__shen_4prhush = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4165 := __args[0] +_ = V4165 +V4166 := __args[1] +_ = V4166 +reg308044 := MakeSymbol("*hush*") +reg308045 := PrimValue(reg308044) +if reg308045 == True { +__ctx.Return(V4165) +return +} else { +__ctx.TailApply(__defun__pr, V4165, V4166) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.prhush", value: __defun__shen_4prhush}) + +__defun__shen_4mkstr = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4169 := __args[0] +_ = V4169 +V4170 := __args[1] +_ = V4170 +reg308047 := PrimIsString(V4169) +if reg308047 == True { +reg308048 := __e.Call(__defun__shen_4proc_1nl, V4169) +__ctx.TailApply(__defun__shen_4mkstr_1l, reg308048, V4170) +return +} else { +reg308050 := MakeSymbol("shen.proc-nl") +reg308051 := Nil; +reg308052 := PrimCons(V4169, reg308051) +reg308053 := PrimCons(reg308050, reg308052) +__ctx.TailApply(__defun__shen_4mkstr_1r, reg308053, V4170) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.mkstr", value: __defun__shen_4mkstr}) + +__defun__shen_4mkstr_1l = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4173 := __args[0] +_ = V4173 +V4174 := __args[1] +_ = V4174 +reg308055 := Nil; +reg308056 := PrimEqual(reg308055, V4174) +if reg308056 == True { +__ctx.Return(V4173) +return +} else { +reg308057 := PrimIsPair(V4174) +if reg308057 == True { +reg308058 := PrimHead(V4174) +reg308059 := __e.Call(__defun__shen_4insert_1l, reg308058, V4173) +reg308060 := PrimTail(V4174) +__ctx.TailApply(__defun__shen_4mkstr_1l, reg308059, reg308060) +return +} else { +reg308062 := MakeSymbol("shen.mkstr-l") +__ctx.TailApply(__defun__shen_4f__error, reg308062) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.mkstr-l", value: __defun__shen_4mkstr_1l}) + +__defun__shen_4insert_1l = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4179 := __args[0] +_ = V4179 +V4180 := __args[1] +_ = V4180 +reg308064 := MakeString("") +reg308065 := PrimEqual(reg308064, V4180) +if reg308065 == True { +reg308066 := MakeString("") +__ctx.Return(reg308066) +return +} else { +reg308067 := __e.Call(__defun__shen_4_7string_2, V4180) +var reg308093 Obj +if reg308067 == True { +reg308068 := MakeString("~") +reg308069 := MakeNumber(0) +reg308070 := PrimPos(V4180, reg308069) +reg308071 := PrimEqual(reg308068, reg308070) +var reg308088 Obj +if reg308071 == True { +reg308072 := PrimTailString(V4180) +reg308073 := __e.Call(__defun__shen_4_7string_2, reg308072) +var reg308083 Obj +if reg308073 == True { +reg308074 := MakeString("A") +reg308075 := PrimTailString(V4180) +reg308076 := MakeNumber(0) +reg308077 := PrimPos(reg308075, reg308076) +reg308078 := PrimEqual(reg308074, reg308077) +var reg308081 Obj +if reg308078 == True { +reg308079 := True; +reg308081 = reg308079 +} else { +reg308080 := False; +reg308081 = reg308080 +} +reg308083 = reg308081 +} else { +reg308082 := False; +reg308083 = reg308082 +} +var reg308086 Obj +if reg308083 == True { +reg308084 := True; +reg308086 = reg308084 +} else { +reg308085 := False; +reg308086 = reg308085 +} +reg308088 = reg308086 +} else { +reg308087 := False; +reg308088 = reg308087 +} +var reg308091 Obj +if reg308088 == True { +reg308089 := True; +reg308091 = reg308089 +} else { +reg308090 := False; +reg308091 = reg308090 +} +reg308093 = reg308091 +} else { +reg308092 := False; +reg308093 = reg308092 +} +if reg308093 == True { +reg308094 := MakeSymbol("shen.app") +reg308095 := PrimTailString(V4180) +reg308096 := PrimTailString(reg308095) +reg308097 := MakeSymbol("shen.a") +reg308098 := Nil; +reg308099 := PrimCons(reg308097, reg308098) +reg308100 := PrimCons(reg308096, reg308099) +reg308101 := PrimCons(V4179, reg308100) +reg308102 := PrimCons(reg308094, reg308101) +__ctx.Return(reg308102) +return +} else { +reg308103 := __e.Call(__defun__shen_4_7string_2, V4180) +var reg308129 Obj +if reg308103 == True { +reg308104 := MakeString("~") +reg308105 := MakeNumber(0) +reg308106 := PrimPos(V4180, reg308105) +reg308107 := PrimEqual(reg308104, reg308106) +var reg308124 Obj +if reg308107 == True { +reg308108 := PrimTailString(V4180) +reg308109 := __e.Call(__defun__shen_4_7string_2, reg308108) +var reg308119 Obj +if reg308109 == True { +reg308110 := MakeString("R") +reg308111 := PrimTailString(V4180) +reg308112 := MakeNumber(0) +reg308113 := PrimPos(reg308111, reg308112) +reg308114 := PrimEqual(reg308110, reg308113) +var reg308117 Obj +if reg308114 == True { +reg308115 := True; +reg308117 = reg308115 +} else { +reg308116 := False; +reg308117 = reg308116 +} +reg308119 = reg308117 +} else { +reg308118 := False; +reg308119 = reg308118 +} +var reg308122 Obj +if reg308119 == True { +reg308120 := True; +reg308122 = reg308120 +} else { +reg308121 := False; +reg308122 = reg308121 +} +reg308124 = reg308122 +} else { +reg308123 := False; +reg308124 = reg308123 +} +var reg308127 Obj +if reg308124 == True { +reg308125 := True; +reg308127 = reg308125 +} else { +reg308126 := False; +reg308127 = reg308126 +} +reg308129 = reg308127 +} else { +reg308128 := False; +reg308129 = reg308128 +} +if reg308129 == True { +reg308130 := MakeSymbol("shen.app") +reg308131 := PrimTailString(V4180) +reg308132 := PrimTailString(reg308131) +reg308133 := MakeSymbol("shen.r") +reg308134 := Nil; +reg308135 := PrimCons(reg308133, reg308134) +reg308136 := PrimCons(reg308132, reg308135) +reg308137 := PrimCons(V4179, reg308136) +reg308138 := PrimCons(reg308130, reg308137) +__ctx.Return(reg308138) +return +} else { +reg308139 := __e.Call(__defun__shen_4_7string_2, V4180) +var reg308165 Obj +if reg308139 == True { +reg308140 := MakeString("~") +reg308141 := MakeNumber(0) +reg308142 := PrimPos(V4180, reg308141) +reg308143 := PrimEqual(reg308140, reg308142) +var reg308160 Obj +if reg308143 == True { +reg308144 := PrimTailString(V4180) +reg308145 := __e.Call(__defun__shen_4_7string_2, reg308144) +var reg308155 Obj +if reg308145 == True { +reg308146 := MakeString("S") +reg308147 := PrimTailString(V4180) +reg308148 := MakeNumber(0) +reg308149 := PrimPos(reg308147, reg308148) +reg308150 := PrimEqual(reg308146, reg308149) +var reg308153 Obj +if reg308150 == True { +reg308151 := True; +reg308153 = reg308151 +} else { +reg308152 := False; +reg308153 = reg308152 +} +reg308155 = reg308153 +} else { +reg308154 := False; +reg308155 = reg308154 +} +var reg308158 Obj +if reg308155 == True { +reg308156 := True; +reg308158 = reg308156 +} else { +reg308157 := False; +reg308158 = reg308157 +} +reg308160 = reg308158 +} else { +reg308159 := False; +reg308160 = reg308159 +} +var reg308163 Obj +if reg308160 == True { +reg308161 := True; +reg308163 = reg308161 +} else { +reg308162 := False; +reg308163 = reg308162 +} +reg308165 = reg308163 +} else { +reg308164 := False; +reg308165 = reg308164 +} +if reg308165 == True { +reg308166 := MakeSymbol("shen.app") +reg308167 := PrimTailString(V4180) +reg308168 := PrimTailString(reg308167) +reg308169 := MakeSymbol("shen.s") +reg308170 := Nil; +reg308171 := PrimCons(reg308169, reg308170) +reg308172 := PrimCons(reg308168, reg308171) +reg308173 := PrimCons(V4179, reg308172) +reg308174 := PrimCons(reg308166, reg308173) +__ctx.Return(reg308174) +return +} else { +reg308175 := __e.Call(__defun__shen_4_7string_2, V4180) +if reg308175 == True { +reg308176 := MakeSymbol("cn") +reg308177 := MakeNumber(0) +reg308178 := PrimPos(V4180, reg308177) +reg308179 := PrimTailString(V4180) +reg308180 := __e.Call(__defun__shen_4insert_1l, V4179, reg308179) +reg308181 := Nil; +reg308182 := PrimCons(reg308180, reg308181) +reg308183 := PrimCons(reg308178, reg308182) +reg308184 := PrimCons(reg308176, reg308183) +__ctx.TailApply(__defun__shen_4factor_1cn, reg308184) +return +} else { +reg308186 := PrimIsPair(V4180) +var reg308219 Obj +if reg308186 == True { +reg308187 := MakeSymbol("cn") +reg308188 := PrimHead(V4180) +reg308189 := PrimEqual(reg308187, reg308188) +var reg308214 Obj +if reg308189 == True { +reg308190 := PrimTail(V4180) +reg308191 := PrimIsPair(reg308190) +var reg308209 Obj +if reg308191 == True { +reg308192 := PrimTail(V4180) +reg308193 := PrimTail(reg308192) +reg308194 := PrimIsPair(reg308193) +var reg308204 Obj +if reg308194 == True { +reg308195 := Nil; +reg308196 := PrimTail(V4180) +reg308197 := PrimTail(reg308196) +reg308198 := PrimTail(reg308197) +reg308199 := PrimEqual(reg308195, reg308198) +var reg308202 Obj +if reg308199 == True { +reg308200 := True; +reg308202 = reg308200 +} else { +reg308201 := False; +reg308202 = reg308201 +} +reg308204 = reg308202 +} else { +reg308203 := False; +reg308204 = reg308203 +} +var reg308207 Obj +if reg308204 == True { +reg308205 := True; +reg308207 = reg308205 +} else { +reg308206 := False; +reg308207 = reg308206 +} +reg308209 = reg308207 +} else { +reg308208 := False; +reg308209 = reg308208 +} +var reg308212 Obj +if reg308209 == True { +reg308210 := True; +reg308212 = reg308210 +} else { +reg308211 := False; +reg308212 = reg308211 +} +reg308214 = reg308212 +} else { +reg308213 := False; +reg308214 = reg308213 +} +var reg308217 Obj +if reg308214 == True { +reg308215 := True; +reg308217 = reg308215 +} else { +reg308216 := False; +reg308217 = reg308216 +} +reg308219 = reg308217 +} else { +reg308218 := False; +reg308219 = reg308218 +} +if reg308219 == True { +reg308220 := MakeSymbol("cn") +reg308221 := PrimTail(V4180) +reg308222 := PrimHead(reg308221) +reg308223 := PrimTail(V4180) +reg308224 := PrimTail(reg308223) +reg308225 := PrimHead(reg308224) +reg308226 := __e.Call(__defun__shen_4insert_1l, V4179, reg308225) +reg308227 := Nil; +reg308228 := PrimCons(reg308226, reg308227) +reg308229 := PrimCons(reg308222, reg308228) +reg308230 := PrimCons(reg308220, reg308229) +__ctx.Return(reg308230) +return +} else { +reg308231 := PrimIsPair(V4180) +var reg308274 Obj +if reg308231 == True { +reg308232 := MakeSymbol("shen.app") +reg308233 := PrimHead(V4180) +reg308234 := PrimEqual(reg308232, reg308233) +var reg308269 Obj +if reg308234 == True { +reg308235 := PrimTail(V4180) +reg308236 := PrimIsPair(reg308235) +var reg308264 Obj +if reg308236 == True { +reg308237 := PrimTail(V4180) +reg308238 := PrimTail(reg308237) +reg308239 := PrimIsPair(reg308238) +var reg308259 Obj +if reg308239 == True { +reg308240 := PrimTail(V4180) +reg308241 := PrimTail(reg308240) +reg308242 := PrimTail(reg308241) +reg308243 := PrimIsPair(reg308242) +var reg308254 Obj +if reg308243 == True { +reg308244 := Nil; +reg308245 := PrimTail(V4180) +reg308246 := PrimTail(reg308245) +reg308247 := PrimTail(reg308246) +reg308248 := PrimTail(reg308247) +reg308249 := PrimEqual(reg308244, reg308248) +var reg308252 Obj +if reg308249 == True { +reg308250 := True; +reg308252 = reg308250 +} else { +reg308251 := False; +reg308252 = reg308251 +} +reg308254 = reg308252 +} else { +reg308253 := False; +reg308254 = reg308253 +} +var reg308257 Obj +if reg308254 == True { +reg308255 := True; +reg308257 = reg308255 +} else { +reg308256 := False; +reg308257 = reg308256 +} +reg308259 = reg308257 +} else { +reg308258 := False; +reg308259 = reg308258 +} +var reg308262 Obj +if reg308259 == True { +reg308260 := True; +reg308262 = reg308260 +} else { +reg308261 := False; +reg308262 = reg308261 +} +reg308264 = reg308262 +} else { +reg308263 := False; +reg308264 = reg308263 +} +var reg308267 Obj +if reg308264 == True { +reg308265 := True; +reg308267 = reg308265 +} else { +reg308266 := False; +reg308267 = reg308266 +} +reg308269 = reg308267 +} else { +reg308268 := False; +reg308269 = reg308268 +} +var reg308272 Obj +if reg308269 == True { +reg308270 := True; +reg308272 = reg308270 +} else { +reg308271 := False; +reg308272 = reg308271 +} +reg308274 = reg308272 +} else { +reg308273 := False; +reg308274 = reg308273 +} +if reg308274 == True { +reg308275 := MakeSymbol("shen.app") +reg308276 := PrimTail(V4180) +reg308277 := PrimHead(reg308276) +reg308278 := PrimTail(V4180) +reg308279 := PrimTail(reg308278) +reg308280 := PrimHead(reg308279) +reg308281 := __e.Call(__defun__shen_4insert_1l, V4179, reg308280) +reg308282 := PrimTail(V4180) +reg308283 := PrimTail(reg308282) +reg308284 := PrimTail(reg308283) +reg308285 := PrimCons(reg308281, reg308284) +reg308286 := PrimCons(reg308277, reg308285) +reg308287 := PrimCons(reg308275, reg308286) +__ctx.Return(reg308287) +return +} else { +reg308288 := MakeSymbol("shen.insert-l") +__ctx.TailApply(__defun__shen_4f__error, reg308288) +return +} +} +} +} +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.insert-l", value: __defun__shen_4insert_1l}) + +__defun__shen_4factor_1cn = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4182 := __args[0] +_ = V4182 +reg308290 := PrimIsPair(V4182) +var reg308396 Obj +if reg308290 == True { +reg308291 := MakeSymbol("cn") +reg308292 := PrimHead(V4182) +reg308293 := PrimEqual(reg308291, reg308292) +var reg308391 Obj +if reg308293 == True { +reg308294 := PrimTail(V4182) +reg308295 := PrimIsPair(reg308294) +var reg308386 Obj +if reg308295 == True { +reg308296 := PrimTail(V4182) +reg308297 := PrimTail(reg308296) +reg308298 := PrimIsPair(reg308297) +var reg308381 Obj +if reg308298 == True { +reg308299 := PrimTail(V4182) +reg308300 := PrimTail(reg308299) +reg308301 := PrimHead(reg308300) +reg308302 := PrimIsPair(reg308301) +var reg308376 Obj +if reg308302 == True { +reg308303 := MakeSymbol("cn") +reg308304 := PrimTail(V4182) +reg308305 := PrimTail(reg308304) +reg308306 := PrimHead(reg308305) +reg308307 := PrimHead(reg308306) +reg308308 := PrimEqual(reg308303, reg308307) +var reg308371 Obj +if reg308308 == True { +reg308309 := PrimTail(V4182) +reg308310 := PrimTail(reg308309) +reg308311 := PrimHead(reg308310) +reg308312 := PrimTail(reg308311) +reg308313 := PrimIsPair(reg308312) +var reg308366 Obj +if reg308313 == True { +reg308314 := PrimTail(V4182) +reg308315 := PrimTail(reg308314) +reg308316 := PrimHead(reg308315) +reg308317 := PrimTail(reg308316) +reg308318 := PrimTail(reg308317) +reg308319 := PrimIsPair(reg308318) +var reg308361 Obj +if reg308319 == True { +reg308320 := Nil; +reg308321 := PrimTail(V4182) +reg308322 := PrimTail(reg308321) +reg308323 := PrimHead(reg308322) +reg308324 := PrimTail(reg308323) +reg308325 := PrimTail(reg308324) +reg308326 := PrimTail(reg308325) +reg308327 := PrimEqual(reg308320, reg308326) +var reg308356 Obj +if reg308327 == True { +reg308328 := Nil; +reg308329 := PrimTail(V4182) +reg308330 := PrimTail(reg308329) +reg308331 := PrimTail(reg308330) +reg308332 := PrimEqual(reg308328, reg308331) +var reg308351 Obj +if reg308332 == True { +reg308333 := PrimTail(V4182) +reg308334 := PrimHead(reg308333) +reg308335 := PrimIsString(reg308334) +var reg308346 Obj +if reg308335 == True { +reg308336 := PrimTail(V4182) +reg308337 := PrimTail(reg308336) +reg308338 := PrimHead(reg308337) +reg308339 := PrimTail(reg308338) +reg308340 := PrimHead(reg308339) +reg308341 := PrimIsString(reg308340) +var reg308344 Obj +if reg308341 == True { +reg308342 := True; +reg308344 = reg308342 +} else { +reg308343 := False; +reg308344 = reg308343 +} +reg308346 = reg308344 +} else { +reg308345 := False; +reg308346 = reg308345 +} +var reg308349 Obj +if reg308346 == True { +reg308347 := True; +reg308349 = reg308347 +} else { +reg308348 := False; +reg308349 = reg308348 +} +reg308351 = reg308349 +} else { +reg308350 := False; +reg308351 = reg308350 +} +var reg308354 Obj +if reg308351 == True { +reg308352 := True; +reg308354 = reg308352 +} else { +reg308353 := False; +reg308354 = reg308353 +} +reg308356 = reg308354 +} else { +reg308355 := False; +reg308356 = reg308355 +} +var reg308359 Obj +if reg308356 == True { +reg308357 := True; +reg308359 = reg308357 +} else { +reg308358 := False; +reg308359 = reg308358 +} +reg308361 = reg308359 +} else { +reg308360 := False; +reg308361 = reg308360 +} +var reg308364 Obj +if reg308361 == True { +reg308362 := True; +reg308364 = reg308362 +} else { +reg308363 := False; +reg308364 = reg308363 +} +reg308366 = reg308364 +} else { +reg308365 := False; +reg308366 = reg308365 +} +var reg308369 Obj +if reg308366 == True { +reg308367 := True; +reg308369 = reg308367 +} else { +reg308368 := False; +reg308369 = reg308368 +} +reg308371 = reg308369 +} else { +reg308370 := False; +reg308371 = reg308370 +} +var reg308374 Obj +if reg308371 == True { +reg308372 := True; +reg308374 = reg308372 +} else { +reg308373 := False; +reg308374 = reg308373 +} +reg308376 = reg308374 +} else { +reg308375 := False; +reg308376 = reg308375 +} +var reg308379 Obj +if reg308376 == True { +reg308377 := True; +reg308379 = reg308377 +} else { +reg308378 := False; +reg308379 = reg308378 +} +reg308381 = reg308379 +} else { +reg308380 := False; +reg308381 = reg308380 +} +var reg308384 Obj +if reg308381 == True { +reg308382 := True; +reg308384 = reg308382 +} else { +reg308383 := False; +reg308384 = reg308383 +} +reg308386 = reg308384 +} else { +reg308385 := False; +reg308386 = reg308385 +} +var reg308389 Obj +if reg308386 == True { +reg308387 := True; +reg308389 = reg308387 +} else { +reg308388 := False; +reg308389 = reg308388 +} +reg308391 = reg308389 +} else { +reg308390 := False; +reg308391 = reg308390 +} +var reg308394 Obj +if reg308391 == True { +reg308392 := True; +reg308394 = reg308392 +} else { +reg308393 := False; +reg308394 = reg308393 +} +reg308396 = reg308394 +} else { +reg308395 := False; +reg308396 = reg308395 +} +if reg308396 == True { +reg308397 := MakeSymbol("cn") +reg308398 := PrimTail(V4182) +reg308399 := PrimHead(reg308398) +reg308400 := PrimTail(V4182) +reg308401 := PrimTail(reg308400) +reg308402 := PrimHead(reg308401) +reg308403 := PrimTail(reg308402) +reg308404 := PrimHead(reg308403) +reg308405 := PrimStringConcat(reg308399, reg308404) +reg308406 := PrimTail(V4182) +reg308407 := PrimTail(reg308406) +reg308408 := PrimHead(reg308407) +reg308409 := PrimTail(reg308408) +reg308410 := PrimTail(reg308409) +reg308411 := PrimCons(reg308405, reg308410) +reg308412 := PrimCons(reg308397, reg308411) +__ctx.Return(reg308412) +return +} else { +__ctx.Return(V4182) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.factor-cn", value: __defun__shen_4factor_1cn}) + +__defun__shen_4proc_1nl = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4184 := __args[0] +_ = V4184 +reg308413 := MakeString("") +reg308414 := PrimEqual(reg308413, V4184) +if reg308414 == True { +reg308415 := MakeString("") +__ctx.Return(reg308415) +return +} else { +reg308416 := __e.Call(__defun__shen_4_7string_2, V4184) +var reg308442 Obj +if reg308416 == True { +reg308417 := MakeString("~") +reg308418 := MakeNumber(0) +reg308419 := PrimPos(V4184, reg308418) +reg308420 := PrimEqual(reg308417, reg308419) +var reg308437 Obj +if reg308420 == True { +reg308421 := PrimTailString(V4184) +reg308422 := __e.Call(__defun__shen_4_7string_2, reg308421) +var reg308432 Obj +if reg308422 == True { +reg308423 := MakeString("%") +reg308424 := PrimTailString(V4184) +reg308425 := MakeNumber(0) +reg308426 := PrimPos(reg308424, reg308425) +reg308427 := PrimEqual(reg308423, reg308426) +var reg308430 Obj +if reg308427 == True { +reg308428 := True; +reg308430 = reg308428 +} else { +reg308429 := False; +reg308430 = reg308429 +} +reg308432 = reg308430 +} else { +reg308431 := False; +reg308432 = reg308431 +} +var reg308435 Obj +if reg308432 == True { +reg308433 := True; +reg308435 = reg308433 +} else { +reg308434 := False; +reg308435 = reg308434 +} +reg308437 = reg308435 +} else { +reg308436 := False; +reg308437 = reg308436 +} +var reg308440 Obj +if reg308437 == True { +reg308438 := True; +reg308440 = reg308438 +} else { +reg308439 := False; +reg308440 = reg308439 +} +reg308442 = reg308440 +} else { +reg308441 := False; +reg308442 = reg308441 +} +if reg308442 == True { +reg308443 := MakeNumber(10) +reg308444 := PrimNumberToString(reg308443) +reg308445 := PrimTailString(V4184) +reg308446 := PrimTailString(reg308445) +reg308447 := __e.Call(__defun__shen_4proc_1nl, reg308446) +reg308448 := PrimStringConcat(reg308444, reg308447) +__ctx.Return(reg308448) +return +} else { +reg308449 := __e.Call(__defun__shen_4_7string_2, V4184) +if reg308449 == True { +reg308450 := MakeNumber(0) +reg308451 := PrimPos(V4184, reg308450) +reg308452 := PrimTailString(V4184) +reg308453 := __e.Call(__defun__shen_4proc_1nl, reg308452) +reg308454 := PrimStringConcat(reg308451, reg308453) +__ctx.Return(reg308454) +return +} else { +reg308455 := MakeSymbol("shen.proc-nl") +__ctx.TailApply(__defun__shen_4f__error, reg308455) +return +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.proc-nl", value: __defun__shen_4proc_1nl}) + +__defun__shen_4mkstr_1r = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4187 := __args[0] +_ = V4187 +V4188 := __args[1] +_ = V4188 +reg308457 := Nil; +reg308458 := PrimEqual(reg308457, V4188) +if reg308458 == True { +__ctx.Return(V4187) +return +} else { +reg308459 := PrimIsPair(V4188) +if reg308459 == True { +reg308460 := MakeSymbol("shen.insert") +reg308461 := PrimHead(V4188) +reg308462 := Nil; +reg308463 := PrimCons(V4187, reg308462) +reg308464 := PrimCons(reg308461, reg308463) +reg308465 := PrimCons(reg308460, reg308464) +reg308466 := PrimTail(V4188) +__ctx.TailApply(__defun__shen_4mkstr_1r, reg308465, reg308466) +return +} else { +reg308468 := MakeSymbol("shen.mkstr-r") +__ctx.TailApply(__defun__shen_4f__error, reg308468) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.mkstr-r", value: __defun__shen_4mkstr_1r}) + +__defun__shen_4insert = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4191 := __args[0] +_ = V4191 +V4192 := __args[1] +_ = V4192 +reg308470 := MakeString("") +__ctx.TailApply(__defun__shen_4insert_1h, V4191, V4192, reg308470) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.insert", value: __defun__shen_4insert}) + +__defun__shen_4insert_1h = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4198 := __args[0] +_ = V4198 +V4199 := __args[1] +_ = V4199 +V4200 := __args[2] +_ = V4200 +reg308472 := MakeString("") +reg308473 := PrimEqual(reg308472, V4199) +if reg308473 == True { +__ctx.Return(V4200) +return +} else { +reg308474 := __e.Call(__defun__shen_4_7string_2, V4199) +var reg308500 Obj +if reg308474 == True { +reg308475 := MakeString("~") +reg308476 := MakeNumber(0) +reg308477 := PrimPos(V4199, reg308476) +reg308478 := PrimEqual(reg308475, reg308477) +var reg308495 Obj +if reg308478 == True { +reg308479 := PrimTailString(V4199) +reg308480 := __e.Call(__defun__shen_4_7string_2, reg308479) +var reg308490 Obj +if reg308480 == True { +reg308481 := MakeString("A") +reg308482 := PrimTailString(V4199) +reg308483 := MakeNumber(0) +reg308484 := PrimPos(reg308482, reg308483) +reg308485 := PrimEqual(reg308481, reg308484) +var reg308488 Obj +if reg308485 == True { +reg308486 := True; +reg308488 = reg308486 +} else { +reg308487 := False; +reg308488 = reg308487 +} +reg308490 = reg308488 +} else { +reg308489 := False; +reg308490 = reg308489 +} +var reg308493 Obj +if reg308490 == True { +reg308491 := True; +reg308493 = reg308491 +} else { +reg308492 := False; +reg308493 = reg308492 +} +reg308495 = reg308493 +} else { +reg308494 := False; +reg308495 = reg308494 +} +var reg308498 Obj +if reg308495 == True { +reg308496 := True; +reg308498 = reg308496 +} else { +reg308497 := False; +reg308498 = reg308497 +} +reg308500 = reg308498 +} else { +reg308499 := False; +reg308500 = reg308499 +} +if reg308500 == True { +reg308501 := PrimTailString(V4199) +reg308502 := PrimTailString(reg308501) +reg308503 := MakeSymbol("shen.a") +reg308504 := __e.Call(__defun__shen_4app, V4198, reg308502, reg308503) +reg308505 := PrimStringConcat(V4200, reg308504) +__ctx.Return(reg308505) +return +} else { +reg308506 := __e.Call(__defun__shen_4_7string_2, V4199) +var reg308532 Obj +if reg308506 == True { +reg308507 := MakeString("~") +reg308508 := MakeNumber(0) +reg308509 := PrimPos(V4199, reg308508) +reg308510 := PrimEqual(reg308507, reg308509) +var reg308527 Obj +if reg308510 == True { +reg308511 := PrimTailString(V4199) +reg308512 := __e.Call(__defun__shen_4_7string_2, reg308511) +var reg308522 Obj +if reg308512 == True { +reg308513 := MakeString("R") +reg308514 := PrimTailString(V4199) +reg308515 := MakeNumber(0) +reg308516 := PrimPos(reg308514, reg308515) +reg308517 := PrimEqual(reg308513, reg308516) +var reg308520 Obj +if reg308517 == True { +reg308518 := True; +reg308520 = reg308518 +} else { +reg308519 := False; +reg308520 = reg308519 +} +reg308522 = reg308520 +} else { +reg308521 := False; +reg308522 = reg308521 +} +var reg308525 Obj +if reg308522 == True { +reg308523 := True; +reg308525 = reg308523 +} else { +reg308524 := False; +reg308525 = reg308524 +} +reg308527 = reg308525 +} else { +reg308526 := False; +reg308527 = reg308526 +} +var reg308530 Obj +if reg308527 == True { +reg308528 := True; +reg308530 = reg308528 +} else { +reg308529 := False; +reg308530 = reg308529 +} +reg308532 = reg308530 +} else { +reg308531 := False; +reg308532 = reg308531 +} +if reg308532 == True { +reg308533 := PrimTailString(V4199) +reg308534 := PrimTailString(reg308533) +reg308535 := MakeSymbol("shen.r") +reg308536 := __e.Call(__defun__shen_4app, V4198, reg308534, reg308535) +reg308537 := PrimStringConcat(V4200, reg308536) +__ctx.Return(reg308537) +return +} else { +reg308538 := __e.Call(__defun__shen_4_7string_2, V4199) +var reg308564 Obj +if reg308538 == True { +reg308539 := MakeString("~") +reg308540 := MakeNumber(0) +reg308541 := PrimPos(V4199, reg308540) +reg308542 := PrimEqual(reg308539, reg308541) +var reg308559 Obj +if reg308542 == True { +reg308543 := PrimTailString(V4199) +reg308544 := __e.Call(__defun__shen_4_7string_2, reg308543) +var reg308554 Obj +if reg308544 == True { +reg308545 := MakeString("S") +reg308546 := PrimTailString(V4199) +reg308547 := MakeNumber(0) +reg308548 := PrimPos(reg308546, reg308547) +reg308549 := PrimEqual(reg308545, reg308548) +var reg308552 Obj +if reg308549 == True { +reg308550 := True; +reg308552 = reg308550 +} else { +reg308551 := False; +reg308552 = reg308551 +} +reg308554 = reg308552 +} else { +reg308553 := False; +reg308554 = reg308553 +} +var reg308557 Obj +if reg308554 == True { +reg308555 := True; +reg308557 = reg308555 +} else { +reg308556 := False; +reg308557 = reg308556 +} +reg308559 = reg308557 +} else { +reg308558 := False; +reg308559 = reg308558 +} +var reg308562 Obj +if reg308559 == True { +reg308560 := True; +reg308562 = reg308560 +} else { +reg308561 := False; +reg308562 = reg308561 +} +reg308564 = reg308562 +} else { +reg308563 := False; +reg308564 = reg308563 +} +if reg308564 == True { +reg308565 := PrimTailString(V4199) +reg308566 := PrimTailString(reg308565) +reg308567 := MakeSymbol("shen.s") +reg308568 := __e.Call(__defun__shen_4app, V4198, reg308566, reg308567) +reg308569 := PrimStringConcat(V4200, reg308568) +__ctx.Return(reg308569) +return +} else { +reg308570 := __e.Call(__defun__shen_4_7string_2, V4199) +if reg308570 == True { +reg308571 := PrimTailString(V4199) +reg308572 := MakeNumber(0) +reg308573 := PrimPos(V4199, reg308572) +reg308574 := PrimStringConcat(V4200, reg308573) +__ctx.TailApply(__defun__shen_4insert_1h, V4198, reg308571, reg308574) +return +} else { +reg308576 := MakeSymbol("shen.insert-h") +__ctx.TailApply(__defun__shen_4f__error, reg308576) +return +} +} +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.insert-h", value: __defun__shen_4insert_1h}) + +__defun__shen_4app = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4204 := __args[0] +_ = V4204 +V4205 := __args[1] +_ = V4205 +V4206 := __args[2] +_ = V4206 +reg308578 := __e.Call(__defun__shen_4arg_1_6str, V4204, V4206) +reg308579 := PrimStringConcat(reg308578, V4205) +__ctx.Return(reg308579) +return +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.app", value: __defun__shen_4app}) + +__defun__shen_4arg_1_6str = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4214 := __args[0] +_ = V4214 +V4215 := __args[1] +_ = V4215 +reg308580 := __e.Call(__defun__fail) +reg308581 := PrimEqual(V4214, reg308580) +if reg308581 == True { +reg308582 := MakeString("...") +__ctx.Return(reg308582) +return +} else { +reg308583 := __e.Call(__defun__shen_4list_2, V4214) +if reg308583 == True { +__ctx.TailApply(__defun__shen_4list_1_6str, V4214, V4215) +return +} else { +reg308585 := PrimIsString(V4214) +if reg308585 == True { +__ctx.TailApply(__defun__shen_4str_1_6str, V4214, V4215) +return +} else { +reg308587 := PrimIsVector(V4214) +if reg308587 == True { +__ctx.TailApply(__defun__shen_4vector_1_6str, V4214, V4215) +return +} else { +__ctx.TailApply(__defun__shen_4atom_1_6str, V4214) +return +} +} +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.arg->str", value: __defun__shen_4arg_1_6str}) + +__defun__shen_4list_1_6str = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4218 := __args[0] +_ = V4218 +V4219 := __args[1] +_ = V4219 +reg308590 := MakeSymbol("shen.r") +reg308591 := PrimEqual(reg308590, V4219) +if reg308591 == True { +reg308592 := MakeString("(") +reg308593 := MakeSymbol("shen.r") +reg308594 := __e.Call(__defun__shen_4maxseq) +reg308595 := __e.Call(__defun__shen_4iter_1list, V4218, reg308593, reg308594) +reg308596 := MakeString(")") +reg308597 := __e.Call(__defun___8s, reg308595, reg308596) +__ctx.TailApply(__defun___8s, reg308592, reg308597) +return +} else { +reg308599 := MakeString("[") +reg308600 := __e.Call(__defun__shen_4maxseq) +reg308601 := __e.Call(__defun__shen_4iter_1list, V4218, V4219, reg308600) +reg308602 := MakeString("]") +reg308603 := __e.Call(__defun___8s, reg308601, reg308602) +__ctx.TailApply(__defun___8s, reg308599, reg308603) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.list->str", value: __defun__shen_4list_1_6str}) + +__defun__shen_4maxseq = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg308605 := MakeSymbol("*maximum-print-sequence-size*") +reg308606 := PrimValue(reg308605) +__ctx.Return(reg308606) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.maxseq", value: __defun__shen_4maxseq}) + +__defun__shen_4iter_1list = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4233 := __args[0] +_ = V4233 +V4234 := __args[1] +_ = V4234 +V4235 := __args[2] +_ = V4235 +reg308607 := Nil; +reg308608 := PrimEqual(reg308607, V4233) +if reg308608 == True { +reg308609 := MakeString("") +__ctx.Return(reg308609) +return +} else { +reg308610 := MakeNumber(0) +reg308611 := PrimEqual(reg308610, V4235) +if reg308611 == True { +reg308612 := MakeString("... etc") +__ctx.Return(reg308612) +return +} else { +reg308613 := PrimIsPair(V4233) +var reg308621 Obj +if reg308613 == True { +reg308614 := Nil; +reg308615 := PrimTail(V4233) +reg308616 := PrimEqual(reg308614, reg308615) +var reg308619 Obj +if reg308616 == True { +reg308617 := True; +reg308619 = reg308617 +} else { +reg308618 := False; +reg308619 = reg308618 +} +reg308621 = reg308619 +} else { +reg308620 := False; +reg308621 = reg308620 +} +if reg308621 == True { +reg308622 := PrimHead(V4233) +__ctx.TailApply(__defun__shen_4arg_1_6str, reg308622, V4234) +return +} else { +reg308624 := PrimIsPair(V4233) +if reg308624 == True { +reg308625 := PrimHead(V4233) +reg308626 := __e.Call(__defun__shen_4arg_1_6str, reg308625, V4234) +reg308627 := MakeString(" ") +reg308628 := PrimTail(V4233) +reg308629 := MakeNumber(1) +reg308630 := PrimNumberSubtract(V4235, reg308629) +reg308631 := __e.Call(__defun__shen_4iter_1list, reg308628, V4234, reg308630) +reg308632 := __e.Call(__defun___8s, reg308627, reg308631) +__ctx.TailApply(__defun___8s, reg308626, reg308632) +return +} else { +reg308634 := MakeString("|") +reg308635 := MakeString(" ") +reg308636 := __e.Call(__defun__shen_4arg_1_6str, V4233, V4234) +reg308637 := __e.Call(__defun___8s, reg308635, reg308636) +__ctx.TailApply(__defun___8s, reg308634, reg308637) +return +} +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.iter-list", value: __defun__shen_4iter_1list}) + +__defun__shen_4str_1_6str = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4242 := __args[0] +_ = V4242 +V4243 := __args[1] +_ = V4243 +reg308639 := MakeSymbol("shen.a") +reg308640 := PrimEqual(reg308639, V4243) +if reg308640 == True { +__ctx.Return(V4242) +return +} else { +reg308641 := MakeNumber(34) +reg308642 := PrimNumberToString(reg308641) +reg308643 := MakeNumber(34) +reg308644 := PrimNumberToString(reg308643) +reg308645 := __e.Call(__defun___8s, V4242, reg308644) +__ctx.TailApply(__defun___8s, reg308642, reg308645) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.str->str", value: __defun__shen_4str_1_6str}) + +__defun__shen_4vector_1_6str = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4246 := __args[0] +_ = V4246 +V4247 := __args[1] +_ = V4247 +reg308648 := __e.Call(__defun__shen_4print_1vector_2, V4246) +if reg308648 == True { +reg308649 := MakeNumber(0) +reg308650 := PrimVectorGet(V4246, reg308649) +reg308651 := __e.Call(__defun__function, reg308650) +f308647 := reg308651 +_ = f308647 +__ctx.TailApply(f308647, V4246) +return +} else { +reg308653 := __e.Call(__defun__vector_2, V4246) +if reg308653 == True { +reg308654 := MakeString("<") +reg308655 := MakeNumber(1) +reg308656 := __e.Call(__defun__shen_4maxseq) +reg308657 := __e.Call(__defun__shen_4iter_1vector, V4246, reg308655, V4247, reg308656) +reg308658 := MakeString(">") +reg308659 := __e.Call(__defun___8s, reg308657, reg308658) +__ctx.TailApply(__defun___8s, reg308654, reg308659) +return +} else { +reg308661 := MakeString("<") +reg308662 := MakeString("<") +reg308663 := MakeNumber(0) +reg308664 := __e.Call(__defun__shen_4maxseq) +reg308665 := __e.Call(__defun__shen_4iter_1vector, V4246, reg308663, V4247, reg308664) +reg308666 := MakeString(">>") +reg308667 := __e.Call(__defun___8s, reg308665, reg308666) +reg308668 := __e.Call(__defun___8s, reg308662, reg308667) +__ctx.TailApply(__defun___8s, reg308661, reg308668) +return +} +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.vector->str", value: __defun__shen_4vector_1_6str}) + +__defun__shen_4print_1vector_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4249 := __args[0] +_ = V4249 +reg308670 := MakeNumber(0) +reg308671 := PrimVectorGet(V4249, reg308670) +Zero := reg308671 +_ = Zero +reg308672 := MakeSymbol("shen.tuple") +reg308673 := PrimEqual(Zero, reg308672) +if reg308673 == True { +reg308674 := True; +__ctx.Return(reg308674) +return +} else { +reg308675 := MakeSymbol("shen.pvar") +reg308676 := PrimEqual(Zero, reg308675) +if reg308676 == True { +reg308677 := True; +__ctx.Return(reg308677) +return +} else { +reg308678 := MakeSymbol("shen.dictionary") +reg308679 := PrimEqual(Zero, reg308678) +if reg308679 == True { +reg308680 := True; +__ctx.Return(reg308680) +return +} else { +reg308681 := PrimIsNumber(Zero) +reg308682 := PrimNot(reg308681) +if reg308682 == True { +__ctx.TailApply(__defun__shen_4fbound_2, Zero) +return +} else { +reg308684 := False; +__ctx.Return(reg308684) +return +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.print-vector?", value: __defun__shen_4print_1vector_2}) + +__defun__shen_4fbound_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4251 := __args[0] +_ = V4251 +reg308685 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg308686 := __e.Call(__defun__shen_4lookup_1func, V4251) +_ = reg308686 +reg308687 := True; +__ctx.Return(reg308687) +return +}, 0) +reg308688 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg308689 := False; +__ctx.Return(reg308689) +return +}, 1) +reg308690 := __e.Try(reg308685).Catch(reg308688) +__ctx.Return(reg308690) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.fbound?", value: __defun__shen_4fbound_2}) + +__defun__shen_4tuple = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4253 := __args[0] +_ = V4253 +reg308691 := MakeString("(@p ") +reg308692 := MakeNumber(1) +reg308693 := PrimVectorGet(V4253, reg308692) +reg308694 := MakeString(" ") +reg308695 := MakeNumber(2) +reg308696 := PrimVectorGet(V4253, reg308695) +reg308697 := MakeString(")") +reg308698 := MakeSymbol("shen.s") +reg308699 := __e.Call(__defun__shen_4app, reg308696, reg308697, reg308698) +reg308700 := PrimStringConcat(reg308694, reg308699) +reg308701 := MakeSymbol("shen.s") +reg308702 := __e.Call(__defun__shen_4app, reg308693, reg308700, reg308701) +reg308703 := PrimStringConcat(reg308691, reg308702) +__ctx.Return(reg308703) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.tuple", value: __defun__shen_4tuple}) + +__defun__shen_4dictionary = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4255 := __args[0] +_ = V4255 +reg308704 := MakeString("(dict ...)") +__ctx.Return(reg308704) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.dictionary", value: __defun__shen_4dictionary}) + +__defun__shen_4iter_1vector = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4266 := __args[0] +_ = V4266 +V4267 := __args[1] +_ = V4267 +V4268 := __args[2] +_ = V4268 +V4269 := __args[3] +_ = V4269 +reg308705 := MakeNumber(0) +reg308706 := PrimEqual(reg308705, V4269) +if reg308706 == True { +reg308707 := MakeString("... etc") +__ctx.Return(reg308707) +return +} else { +reg308708 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg308709 := PrimVectorGet(V4266, V4267) +__ctx.Return(reg308709) +return +}, 0) +reg308710 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg308711 := MakeSymbol("shen.out-of-bounds") +__ctx.Return(reg308711) +return +}, 1) +reg308712 := __e.Try(reg308708).Catch(reg308710) +Item := reg308712 +_ = Item +reg308713 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg308714 := MakeNumber(1) +reg308715 := PrimNumberAdd(V4267, reg308714) +reg308716 := PrimVectorGet(V4266, reg308715) +__ctx.Return(reg308716) +return +}, 0) +reg308717 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +reg308718 := MakeSymbol("shen.out-of-bounds") +__ctx.Return(reg308718) +return +}, 1) +reg308719 := __e.Try(reg308713).Catch(reg308717) +Next := reg308719 +_ = Next +reg308720 := MakeSymbol("shen.out-of-bounds") +reg308721 := PrimEqual(Item, reg308720) +if reg308721 == True { +reg308722 := MakeString("") +__ctx.Return(reg308722) +return +} else { +reg308723 := MakeSymbol("shen.out-of-bounds") +reg308724 := PrimEqual(Next, reg308723) +if reg308724 == True { +__ctx.TailApply(__defun__shen_4arg_1_6str, Item, V4268) +return +} else { +reg308726 := __e.Call(__defun__shen_4arg_1_6str, Item, V4268) +reg308727 := MakeString(" ") +reg308728 := MakeNumber(1) +reg308729 := PrimNumberAdd(V4267, reg308728) +reg308730 := MakeNumber(1) +reg308731 := PrimNumberSubtract(V4269, reg308730) +reg308732 := __e.Call(__defun__shen_4iter_1vector, V4266, reg308729, V4268, reg308731) +reg308733 := __e.Call(__defun___8s, reg308727, reg308732) +__ctx.TailApply(__defun___8s, reg308726, reg308733) +return +} +} +} +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.iter-vector", value: __defun__shen_4iter_1vector}) + +__defun__shen_4atom_1_6str = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4271 := __args[0] +_ = V4271 +reg308735 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg308736 := PrimStr(V4271) +__ctx.Return(reg308736) +return +}, 0) +reg308737 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +E := __args[0] +_ = E +__ctx.TailApply(__defun__shen_4funexstring) +return +}, 1) +reg308739 := __e.Try(reg308735).Catch(reg308737) +__ctx.Return(reg308739) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.atom->str", value: __defun__shen_4atom_1_6str}) + +__defun__shen_4funexstring = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg308740 := MakeString("\x10") +reg308741 := MakeString("f") +reg308742 := MakeString("u") +reg308743 := MakeString("n") +reg308744 := MakeString("e") +reg308745 := MakeString("x") +reg308746 := PrimIntern(reg308745) +reg308747 := __e.Call(__defun__gensym, reg308746) +reg308748 := MakeSymbol("shen.a") +reg308749 := __e.Call(__defun__shen_4arg_1_6str, reg308747, reg308748) +reg308750 := MakeString("\x11") +reg308751 := __e.Call(__defun___8s, reg308749, reg308750) +reg308752 := __e.Call(__defun___8s, reg308744, reg308751) +reg308753 := __e.Call(__defun___8s, reg308743, reg308752) +reg308754 := __e.Call(__defun___8s, reg308742, reg308753) +reg308755 := __e.Call(__defun___8s, reg308741, reg308754) +__ctx.TailApply(__defun___8s, reg308740, reg308755) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "shen.funexstring", value: __defun__shen_4funexstring}) + +__defun__shen_4list_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4273 := __args[0] +_ = V4273 +reg308757 := __e.Call(__defun__empty_2, V4273) +if reg308757 == True { +reg308758 := True; +__ctx.Return(reg308758) +return +} else { +reg308759 := PrimIsPair(V4273) +if reg308759 == True { +reg308760 := True; +__ctx.Return(reg308760) +return +} else { +reg308761 := False; +__ctx.Return(reg308761) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.list?", value: __defun__shen_4list_2}) + +} diff --git a/cmd/shen/yacc.go b/cmd/shen/yacc.go new file mode 100644 index 0000000..6df63b3 --- /dev/null +++ b/cmd/shen/yacc.go @@ -0,0 +1,2030 @@ +package main + +import . "github.com/tiancaiamao/shen-go/kl" + +var __defun__shen_4yacc Obj // shen.yacc +var __defun__shen_4yacc_1_6shen Obj // shen.yacc->shen +var __defun__shen_4kill_1code Obj // shen.kill-code +var __defun__kill Obj // kill +var __defun__shen_4analyse_1kill Obj // shen.analyse-kill +var __defun__shen_4split__cc__rules Obj // shen.split_cc_rules +var __defun__shen_4split__cc__rule Obj // shen.split_cc_rule +var __defun__shen_4semantic_1completion_1warning Obj // shen.semantic-completion-warning +var __defun__shen_4default__semantics Obj // shen.default_semantics +var __defun__shen_4grammar__symbol_2 Obj // shen.grammar_symbol? +var __defun__shen_4yacc__cases Obj // shen.yacc_cases +var __defun__shen_4cc__body Obj // shen.cc_body +var __defun__shen_4syntax Obj // shen.syntax +var __defun__shen_4list_1stream Obj // shen.list-stream +var __defun__shen_4decons Obj // shen.decons +var __defun__shen_4insert_1runon Obj // shen.insert-runon +var __defun__shen_4strip_1pathname Obj // shen.strip-pathname +var __defun__shen_4recursive__descent Obj // shen.recursive_descent +var __defun__shen_4variable_1match Obj // shen.variable-match +var __defun__shen_4terminal_2 Obj // shen.terminal? +var __defun__shen_4jump__stream_2 Obj // shen.jump_stream? +var __defun__shen_4check__stream Obj // shen.check_stream +var __defun__shen_4jump__stream Obj // shen.jump_stream +var __defun__shen_4semantics Obj // shen.semantics +var __defun__shen_4pair Obj // shen.pair +var __defun__shen_4hdtl Obj // shen.hdtl +var __defun__shen_4hdhd Obj // shen.hdhd +var __defun__shen_4tlhd Obj // shen.tlhd +var __defun__shen_4snd_1or_1fail Obj // shen.snd-or-fail +var __defun__fail Obj // fail +var __defun___5_b_6 Obj // +var __defun___5e_6 Obj // + +func init() { +__initExprs = append(__initExprs, MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg298913 := MakeString("Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.") +__ctx.Return(reg298913) +return +}, 0)) +__defun__shen_4yacc = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4275 := __args[0] +_ = V4275 +reg298914 := PrimIsPair(V4275) +var reg298929 Obj +if reg298914 == True { +reg298915 := MakeSymbol("defcc") +reg298916 := PrimHead(V4275) +reg298917 := PrimEqual(reg298915, reg298916) +var reg298924 Obj +if reg298917 == True { +reg298918 := PrimTail(V4275) +reg298919 := PrimIsPair(reg298918) +var reg298922 Obj +if reg298919 == True { +reg298920 := True; +reg298922 = reg298920 +} else { +reg298921 := False; +reg298922 = reg298921 +} +reg298924 = reg298922 +} else { +reg298923 := False; +reg298924 = reg298923 +} +var reg298927 Obj +if reg298924 == True { +reg298925 := True; +reg298927 = reg298925 +} else { +reg298926 := False; +reg298927 = reg298926 +} +reg298929 = reg298927 +} else { +reg298928 := False; +reg298929 = reg298928 +} +if reg298929 == True { +reg298930 := PrimTail(V4275) +reg298931 := PrimHead(reg298930) +reg298932 := PrimTail(V4275) +reg298933 := PrimTail(reg298932) +__ctx.TailApply(__defun__shen_4yacc_1_6shen, reg298931, reg298933) +return +} else { +reg298935 := MakeSymbol("shen.yacc") +__ctx.TailApply(__defun__shen_4f__error, reg298935) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.yacc", value: __defun__shen_4yacc}) + +__defun__shen_4yacc_1_6shen = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4278 := __args[0] +_ = V4278 +V4279 := __args[1] +_ = V4279 +reg298937 := True; +reg298938 := Nil; +reg298939 := __e.Call(__defun__shen_4split__cc__rules, reg298937, V4279, reg298938) +CCRules := reg298939 +_ = CCRules +reg298940 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +__ctx.TailApply(__defun__shen_4cc__body, X) +return +}, 1) +reg298942 := __e.Call(__defun__map, reg298940, CCRules) +CCBody := reg298942 +_ = CCBody +reg298943 := __e.Call(__defun__shen_4yacc__cases, CCBody) +YaccCases := reg298943 +_ = YaccCases +reg298944 := MakeSymbol("define") +reg298945 := MakeSymbol("Stream") +reg298946 := MakeSymbol("->") +reg298947 := __e.Call(__defun__shen_4kill_1code, YaccCases) +reg298948 := Nil; +reg298949 := PrimCons(reg298947, reg298948) +reg298950 := PrimCons(reg298946, reg298949) +reg298951 := PrimCons(reg298945, reg298950) +reg298952 := PrimCons(V4278, reg298951) +reg298953 := PrimCons(reg298944, reg298952) +__ctx.Return(reg298953) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.yacc->shen", value: __defun__shen_4yacc_1_6shen}) + +__defun__shen_4kill_1code = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4281 := __args[0] +_ = V4281 +reg298954 := MakeSymbol("kill") +reg298955 := __e.Call(__defun__occurrences, reg298954, V4281) +reg298956 := MakeNumber(0) +reg298957 := PrimGreatThan(reg298955, reg298956) +if reg298957 == True { +reg298958 := MakeSymbol("trap-error") +reg298959 := MakeSymbol("lambda") +reg298960 := MakeSymbol("E") +reg298961 := MakeSymbol("shen.analyse-kill") +reg298962 := MakeSymbol("E") +reg298963 := Nil; +reg298964 := PrimCons(reg298962, reg298963) +reg298965 := PrimCons(reg298961, reg298964) +reg298966 := Nil; +reg298967 := PrimCons(reg298965, reg298966) +reg298968 := PrimCons(reg298960, reg298967) +reg298969 := PrimCons(reg298959, reg298968) +reg298970 := Nil; +reg298971 := PrimCons(reg298969, reg298970) +reg298972 := PrimCons(V4281, reg298971) +reg298973 := PrimCons(reg298958, reg298972) +__ctx.Return(reg298973) +return +} else { +__ctx.Return(V4281) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.kill-code", value: __defun__shen_4kill_1code}) + +__defun__kill = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg298974 := MakeString("yacc kill") +reg298975 := PrimSimpleError(reg298974) +__ctx.Return(reg298975) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "kill", value: __defun__kill}) + +__defun__shen_4analyse_1kill = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4283 := __args[0] +_ = V4283 +reg298976 := PrimErrorToString(V4283) +String := reg298976 +_ = String +reg298977 := MakeString("yacc kill") +reg298978 := PrimEqual(String, reg298977) +if reg298978 == True { +__ctx.TailApply(__defun__fail) +return +} else { +__ctx.Return(V4283) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.analyse-kill", value: __defun__shen_4analyse_1kill}) + +__defun__shen_4split__cc__rules = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4289 := __args[0] +_ = V4289 +V4290 := __args[1] +_ = V4290 +V4291 := __args[2] +_ = V4291 +reg298980 := Nil; +reg298981 := PrimEqual(reg298980, V4290) +var reg298988 Obj +if reg298981 == True { +reg298982 := Nil; +reg298983 := PrimEqual(reg298982, V4291) +var reg298986 Obj +if reg298983 == True { +reg298984 := True; +reg298986 = reg298984 +} else { +reg298985 := False; +reg298986 = reg298985 +} +reg298988 = reg298986 +} else { +reg298987 := False; +reg298988 = reg298987 +} +if reg298988 == True { +reg298989 := Nil; +__ctx.Return(reg298989) +return +} else { +reg298990 := Nil; +reg298991 := PrimEqual(reg298990, V4290) +if reg298991 == True { +reg298992 := __e.Call(__defun__reverse, V4291) +reg298993 := Nil; +reg298994 := __e.Call(__defun__shen_4split__cc__rule, V4289, reg298992, reg298993) +reg298995 := Nil; +reg298996 := PrimCons(reg298994, reg298995) +__ctx.Return(reg298996) +return +} else { +reg298997 := PrimIsPair(V4290) +var reg299005 Obj +if reg298997 == True { +reg298998 := MakeSymbol(";") +reg298999 := PrimHead(V4290) +reg299000 := PrimEqual(reg298998, reg298999) +var reg299003 Obj +if reg299000 == True { +reg299001 := True; +reg299003 = reg299001 +} else { +reg299002 := False; +reg299003 = reg299002 +} +reg299005 = reg299003 +} else { +reg299004 := False; +reg299005 = reg299004 +} +if reg299005 == True { +reg299006 := __e.Call(__defun__reverse, V4291) +reg299007 := Nil; +reg299008 := __e.Call(__defun__shen_4split__cc__rule, V4289, reg299006, reg299007) +reg299009 := PrimTail(V4290) +reg299010 := Nil; +reg299011 := __e.Call(__defun__shen_4split__cc__rules, V4289, reg299009, reg299010) +reg299012 := PrimCons(reg299008, reg299011) +__ctx.Return(reg299012) +return +} else { +reg299013 := PrimIsPair(V4290) +if reg299013 == True { +reg299014 := PrimTail(V4290) +reg299015 := PrimHead(V4290) +reg299016 := PrimCons(reg299015, V4291) +__ctx.TailApply(__defun__shen_4split__cc__rules, V4289, reg299014, reg299016) +return +} else { +reg299018 := MakeSymbol("shen.split_cc_rules") +__ctx.TailApply(__defun__shen_4f__error, reg299018) +return +} +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.split_cc_rules", value: __defun__shen_4split__cc__rules}) + +__defun__shen_4split__cc__rule = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4299 := __args[0] +_ = V4299 +V4300 := __args[1] +_ = V4300 +V4301 := __args[2] +_ = V4301 +reg299020 := PrimIsPair(V4300) +var reg299044 Obj +if reg299020 == True { +reg299021 := MakeSymbol(":=") +reg299022 := PrimHead(V4300) +reg299023 := PrimEqual(reg299021, reg299022) +var reg299039 Obj +if reg299023 == True { +reg299024 := PrimTail(V4300) +reg299025 := PrimIsPair(reg299024) +var reg299034 Obj +if reg299025 == True { +reg299026 := Nil; +reg299027 := PrimTail(V4300) +reg299028 := PrimTail(reg299027) +reg299029 := PrimEqual(reg299026, reg299028) +var reg299032 Obj +if reg299029 == True { +reg299030 := True; +reg299032 = reg299030 +} else { +reg299031 := False; +reg299032 = reg299031 +} +reg299034 = reg299032 +} else { +reg299033 := False; +reg299034 = reg299033 +} +var reg299037 Obj +if reg299034 == True { +reg299035 := True; +reg299037 = reg299035 +} else { +reg299036 := False; +reg299037 = reg299036 +} +reg299039 = reg299037 +} else { +reg299038 := False; +reg299039 = reg299038 +} +var reg299042 Obj +if reg299039 == True { +reg299040 := True; +reg299042 = reg299040 +} else { +reg299041 := False; +reg299042 = reg299041 +} +reg299044 = reg299042 +} else { +reg299043 := False; +reg299044 = reg299043 +} +if reg299044 == True { +reg299045 := __e.Call(__defun__reverse, V4301) +reg299046 := PrimTail(V4300) +reg299047 := PrimCons(reg299045, reg299046) +__ctx.Return(reg299047) +return +} else { +reg299048 := PrimIsPair(V4300) +var reg299101 Obj +if reg299048 == True { +reg299049 := MakeSymbol(":=") +reg299050 := PrimHead(V4300) +reg299051 := PrimEqual(reg299049, reg299050) +var reg299096 Obj +if reg299051 == True { +reg299052 := PrimTail(V4300) +reg299053 := PrimIsPair(reg299052) +var reg299091 Obj +if reg299053 == True { +reg299054 := PrimTail(V4300) +reg299055 := PrimTail(reg299054) +reg299056 := PrimIsPair(reg299055) +var reg299086 Obj +if reg299056 == True { +reg299057 := MakeSymbol("where") +reg299058 := PrimTail(V4300) +reg299059 := PrimTail(reg299058) +reg299060 := PrimHead(reg299059) +reg299061 := PrimEqual(reg299057, reg299060) +var reg299081 Obj +if reg299061 == True { +reg299062 := PrimTail(V4300) +reg299063 := PrimTail(reg299062) +reg299064 := PrimTail(reg299063) +reg299065 := PrimIsPair(reg299064) +var reg299076 Obj +if reg299065 == True { +reg299066 := Nil; +reg299067 := PrimTail(V4300) +reg299068 := PrimTail(reg299067) +reg299069 := PrimTail(reg299068) +reg299070 := PrimTail(reg299069) +reg299071 := PrimEqual(reg299066, reg299070) +var reg299074 Obj +if reg299071 == True { +reg299072 := True; +reg299074 = reg299072 +} else { +reg299073 := False; +reg299074 = reg299073 +} +reg299076 = reg299074 +} else { +reg299075 := False; +reg299076 = reg299075 +} +var reg299079 Obj +if reg299076 == True { +reg299077 := True; +reg299079 = reg299077 +} else { +reg299078 := False; +reg299079 = reg299078 +} +reg299081 = reg299079 +} else { +reg299080 := False; +reg299081 = reg299080 +} +var reg299084 Obj +if reg299081 == True { +reg299082 := True; +reg299084 = reg299082 +} else { +reg299083 := False; +reg299084 = reg299083 +} +reg299086 = reg299084 +} else { +reg299085 := False; +reg299086 = reg299085 +} +var reg299089 Obj +if reg299086 == True { +reg299087 := True; +reg299089 = reg299087 +} else { +reg299088 := False; +reg299089 = reg299088 +} +reg299091 = reg299089 +} else { +reg299090 := False; +reg299091 = reg299090 +} +var reg299094 Obj +if reg299091 == True { +reg299092 := True; +reg299094 = reg299092 +} else { +reg299093 := False; +reg299094 = reg299093 +} +reg299096 = reg299094 +} else { +reg299095 := False; +reg299096 = reg299095 +} +var reg299099 Obj +if reg299096 == True { +reg299097 := True; +reg299099 = reg299097 +} else { +reg299098 := False; +reg299099 = reg299098 +} +reg299101 = reg299099 +} else { +reg299100 := False; +reg299101 = reg299100 +} +if reg299101 == True { +reg299102 := __e.Call(__defun__reverse, V4301) +reg299103 := MakeSymbol("where") +reg299104 := PrimTail(V4300) +reg299105 := PrimTail(reg299104) +reg299106 := PrimTail(reg299105) +reg299107 := PrimHead(reg299106) +reg299108 := PrimTail(V4300) +reg299109 := PrimHead(reg299108) +reg299110 := Nil; +reg299111 := PrimCons(reg299109, reg299110) +reg299112 := PrimCons(reg299107, reg299111) +reg299113 := PrimCons(reg299103, reg299112) +reg299114 := Nil; +reg299115 := PrimCons(reg299113, reg299114) +reg299116 := PrimCons(reg299102, reg299115) +__ctx.Return(reg299116) +return +} else { +reg299117 := Nil; +reg299118 := PrimEqual(reg299117, V4300) +if reg299118 == True { +reg299119 := __e.Call(__defun__shen_4semantic_1completion_1warning, V4299, V4301) +_ = reg299119 +reg299120 := MakeSymbol(":=") +reg299121 := __e.Call(__defun__reverse, V4301) +reg299122 := __e.Call(__defun__shen_4default__semantics, reg299121) +reg299123 := Nil; +reg299124 := PrimCons(reg299122, reg299123) +reg299125 := PrimCons(reg299120, reg299124) +__ctx.TailApply(__defun__shen_4split__cc__rule, V4299, reg299125, V4301) +return +} else { +reg299127 := PrimIsPair(V4300) +if reg299127 == True { +reg299128 := PrimTail(V4300) +reg299129 := PrimHead(V4300) +reg299130 := PrimCons(reg299129, V4301) +__ctx.TailApply(__defun__shen_4split__cc__rule, V4299, reg299128, reg299130) +return +} else { +reg299132 := MakeSymbol("shen.split_cc_rule") +__ctx.TailApply(__defun__shen_4f__error, reg299132) +return +} +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.split_cc_rule", value: __defun__shen_4split__cc__rule}) + +__defun__shen_4semantic_1completion_1warning = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4312 := __args[0] +_ = V4312 +V4313 := __args[1] +_ = V4313 +reg299134 := True; +reg299135 := PrimEqual(reg299134, V4312) +if reg299135 == True { +reg299136 := MakeString("warning: ") +reg299137 := __e.Call(__defun__stoutput) +reg299138 := __e.Call(__defun__shen_4prhush, reg299136, reg299137) +_ = reg299138 +reg299139 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +X := __args[0] +_ = X +reg299140 := MakeString(" ") +reg299141 := MakeSymbol("shen.a") +reg299142 := __e.Call(__defun__shen_4app, X, reg299140, reg299141) +reg299143 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__shen_4prhush, reg299142, reg299143) +return +}, 1) +reg299145 := __e.Call(__defun__reverse, V4313) +reg299146 := __e.Call(__defun__shen_4for_1each, reg299139, reg299145) +_ = reg299146 +reg299147 := MakeString("has no semantics.\n") +reg299148 := __e.Call(__defun__stoutput) +__ctx.TailApply(__defun__shen_4prhush, reg299147, reg299148) +return +} else { +reg299150 := MakeSymbol("shen.skip") +__ctx.Return(reg299150) +return +} +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.semantic-completion-warning", value: __defun__shen_4semantic_1completion_1warning}) + +__defun__shen_4default__semantics = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4315 := __args[0] +_ = V4315 +reg299151 := Nil; +reg299152 := PrimEqual(reg299151, V4315) +if reg299152 == True { +reg299153 := Nil; +__ctx.Return(reg299153) +return +} else { +reg299154 := PrimIsPair(V4315) +var reg299169 Obj +if reg299154 == True { +reg299155 := Nil; +reg299156 := PrimTail(V4315) +reg299157 := PrimEqual(reg299155, reg299156) +var reg299164 Obj +if reg299157 == True { +reg299158 := PrimHead(V4315) +reg299159 := __e.Call(__defun__shen_4grammar__symbol_2, reg299158) +var reg299162 Obj +if reg299159 == True { +reg299160 := True; +reg299162 = reg299160 +} else { +reg299161 := False; +reg299162 = reg299161 +} +reg299164 = reg299162 +} else { +reg299163 := False; +reg299164 = reg299163 +} +var reg299167 Obj +if reg299164 == True { +reg299165 := True; +reg299167 = reg299165 +} else { +reg299166 := False; +reg299167 = reg299166 +} +reg299169 = reg299167 +} else { +reg299168 := False; +reg299169 = reg299168 +} +if reg299169 == True { +reg299170 := PrimHead(V4315) +__ctx.Return(reg299170) +return +} else { +reg299171 := PrimIsPair(V4315) +var reg299178 Obj +if reg299171 == True { +reg299172 := PrimHead(V4315) +reg299173 := __e.Call(__defun__shen_4grammar__symbol_2, reg299172) +var reg299176 Obj +if reg299173 == True { +reg299174 := True; +reg299176 = reg299174 +} else { +reg299175 := False; +reg299176 = reg299175 +} +reg299178 = reg299176 +} else { +reg299177 := False; +reg299178 = reg299177 +} +if reg299178 == True { +reg299179 := MakeSymbol("append") +reg299180 := PrimHead(V4315) +reg299181 := PrimTail(V4315) +reg299182 := __e.Call(__defun__shen_4default__semantics, reg299181) +reg299183 := Nil; +reg299184 := PrimCons(reg299182, reg299183) +reg299185 := PrimCons(reg299180, reg299184) +reg299186 := PrimCons(reg299179, reg299185) +__ctx.Return(reg299186) +return +} else { +reg299187 := PrimIsPair(V4315) +if reg299187 == True { +reg299188 := MakeSymbol("cons") +reg299189 := PrimHead(V4315) +reg299190 := PrimTail(V4315) +reg299191 := __e.Call(__defun__shen_4default__semantics, reg299190) +reg299192 := Nil; +reg299193 := PrimCons(reg299191, reg299192) +reg299194 := PrimCons(reg299189, reg299193) +reg299195 := PrimCons(reg299188, reg299194) +__ctx.Return(reg299195) +return +} else { +reg299196 := MakeSymbol("shen.default_semantics") +__ctx.TailApply(__defun__shen_4f__error, reg299196) +return +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.default_semantics", value: __defun__shen_4default__semantics}) + +__defun__shen_4grammar__symbol_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4317 := __args[0] +_ = V4317 +reg299198 := PrimIsSymbol(V4317) +if reg299198 == True { +reg299199 := __e.Call(__defun__explode, V4317) +reg299200 := __e.Call(__defun__shen_4strip_1pathname, reg299199) +Cs := reg299200 +_ = Cs +reg299201 := PrimHead(Cs) +reg299202 := MakeString("<") +reg299203 := PrimEqual(reg299201, reg299202) +var reg299212 Obj +if reg299203 == True { +reg299204 := __e.Call(__defun__reverse, Cs) +reg299205 := PrimHead(reg299204) +reg299206 := MakeString(">") +reg299207 := PrimEqual(reg299205, reg299206) +var reg299210 Obj +if reg299207 == True { +reg299208 := True; +reg299210 = reg299208 +} else { +reg299209 := False; +reg299210 = reg299209 +} +reg299212 = reg299210 +} else { +reg299211 := False; +reg299212 = reg299211 +} +if reg299212 == True { +reg299213 := True; +__ctx.Return(reg299213) +return +} else { +reg299214 := False; +__ctx.Return(reg299214) +return +} +} else { +reg299215 := False; +__ctx.Return(reg299215) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.grammar_symbol?", value: __defun__shen_4grammar__symbol_2}) + +__defun__shen_4yacc__cases = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4319 := __args[0] +_ = V4319 +reg299216 := PrimIsPair(V4319) +var reg299224 Obj +if reg299216 == True { +reg299217 := Nil; +reg299218 := PrimTail(V4319) +reg299219 := PrimEqual(reg299217, reg299218) +var reg299222 Obj +if reg299219 == True { +reg299220 := True; +reg299222 = reg299220 +} else { +reg299221 := False; +reg299222 = reg299221 +} +reg299224 = reg299222 +} else { +reg299223 := False; +reg299224 = reg299223 +} +if reg299224 == True { +reg299225 := PrimHead(V4319) +__ctx.Return(reg299225) +return +} else { +reg299226 := PrimIsPair(V4319) +if reg299226 == True { +reg299227 := MakeSymbol("YaccParse") +P := reg299227 +_ = P +reg299228 := MakeSymbol("let") +reg299229 := PrimHead(V4319) +reg299230 := MakeSymbol("if") +reg299231 := MakeSymbol("=") +reg299232 := MakeSymbol("fail") +reg299233 := Nil; +reg299234 := PrimCons(reg299232, reg299233) +reg299235 := Nil; +reg299236 := PrimCons(reg299234, reg299235) +reg299237 := PrimCons(P, reg299236) +reg299238 := PrimCons(reg299231, reg299237) +reg299239 := PrimTail(V4319) +reg299240 := __e.Call(__defun__shen_4yacc__cases, reg299239) +reg299241 := Nil; +reg299242 := PrimCons(P, reg299241) +reg299243 := PrimCons(reg299240, reg299242) +reg299244 := PrimCons(reg299238, reg299243) +reg299245 := PrimCons(reg299230, reg299244) +reg299246 := Nil; +reg299247 := PrimCons(reg299245, reg299246) +reg299248 := PrimCons(reg299229, reg299247) +reg299249 := PrimCons(P, reg299248) +reg299250 := PrimCons(reg299228, reg299249) +__ctx.Return(reg299250) +return +} else { +reg299251 := MakeSymbol("shen.yacc_cases") +__ctx.TailApply(__defun__shen_4f__error, reg299251) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.yacc_cases", value: __defun__shen_4yacc__cases}) + +__defun__shen_4cc__body = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4321 := __args[0] +_ = V4321 +reg299253 := PrimIsPair(V4321) +var reg299269 Obj +if reg299253 == True { +reg299254 := PrimTail(V4321) +reg299255 := PrimIsPair(reg299254) +var reg299264 Obj +if reg299255 == True { +reg299256 := Nil; +reg299257 := PrimTail(V4321) +reg299258 := PrimTail(reg299257) +reg299259 := PrimEqual(reg299256, reg299258) +var reg299262 Obj +if reg299259 == True { +reg299260 := True; +reg299262 = reg299260 +} else { +reg299261 := False; +reg299262 = reg299261 +} +reg299264 = reg299262 +} else { +reg299263 := False; +reg299264 = reg299263 +} +var reg299267 Obj +if reg299264 == True { +reg299265 := True; +reg299267 = reg299265 +} else { +reg299266 := False; +reg299267 = reg299266 +} +reg299269 = reg299267 +} else { +reg299268 := False; +reg299269 = reg299268 +} +if reg299269 == True { +reg299270 := PrimHead(V4321) +reg299271 := MakeSymbol("Stream") +reg299272 := PrimTail(V4321) +reg299273 := PrimHead(reg299272) +__ctx.TailApply(__defun__shen_4syntax, reg299270, reg299271, reg299273) +return +} else { +reg299275 := MakeSymbol("shen.cc_body") +__ctx.TailApply(__defun__shen_4f__error, reg299275) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.cc_body", value: __defun__shen_4cc__body}) + +__defun__shen_4syntax = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4325 := __args[0] +_ = V4325 +V4326 := __args[1] +_ = V4326 +V4327 := __args[2] +_ = V4327 +reg299277 := Nil; +reg299278 := PrimEqual(reg299277, V4325) +var reg299317 Obj +if reg299278 == True { +reg299279 := PrimIsPair(V4327) +var reg299312 Obj +if reg299279 == True { +reg299280 := MakeSymbol("where") +reg299281 := PrimHead(V4327) +reg299282 := PrimEqual(reg299280, reg299281) +var reg299307 Obj +if reg299282 == True { +reg299283 := PrimTail(V4327) +reg299284 := PrimIsPair(reg299283) +var reg299302 Obj +if reg299284 == True { +reg299285 := PrimTail(V4327) +reg299286 := PrimTail(reg299285) +reg299287 := PrimIsPair(reg299286) +var reg299297 Obj +if reg299287 == True { +reg299288 := Nil; +reg299289 := PrimTail(V4327) +reg299290 := PrimTail(reg299289) +reg299291 := PrimTail(reg299290) +reg299292 := PrimEqual(reg299288, reg299291) +var reg299295 Obj +if reg299292 == True { +reg299293 := True; +reg299295 = reg299293 +} else { +reg299294 := False; +reg299295 = reg299294 +} +reg299297 = reg299295 +} else { +reg299296 := False; +reg299297 = reg299296 +} +var reg299300 Obj +if reg299297 == True { +reg299298 := True; +reg299300 = reg299298 +} else { +reg299299 := False; +reg299300 = reg299299 +} +reg299302 = reg299300 +} else { +reg299301 := False; +reg299302 = reg299301 +} +var reg299305 Obj +if reg299302 == True { +reg299303 := True; +reg299305 = reg299303 +} else { +reg299304 := False; +reg299305 = reg299304 +} +reg299307 = reg299305 +} else { +reg299306 := False; +reg299307 = reg299306 +} +var reg299310 Obj +if reg299307 == True { +reg299308 := True; +reg299310 = reg299308 +} else { +reg299309 := False; +reg299310 = reg299309 +} +reg299312 = reg299310 +} else { +reg299311 := False; +reg299312 = reg299311 +} +var reg299315 Obj +if reg299312 == True { +reg299313 := True; +reg299315 = reg299313 +} else { +reg299314 := False; +reg299315 = reg299314 +} +reg299317 = reg299315 +} else { +reg299316 := False; +reg299317 = reg299316 +} +if reg299317 == True { +reg299318 := MakeSymbol("if") +reg299319 := PrimTail(V4327) +reg299320 := PrimHead(reg299319) +reg299321 := __e.Call(__defun__shen_4semantics, reg299320) +reg299322 := MakeSymbol("shen.pair") +reg299323 := MakeSymbol("hd") +reg299324 := Nil; +reg299325 := PrimCons(V4326, reg299324) +reg299326 := PrimCons(reg299323, reg299325) +reg299327 := PrimTail(V4327) +reg299328 := PrimTail(reg299327) +reg299329 := PrimHead(reg299328) +reg299330 := __e.Call(__defun__shen_4semantics, reg299329) +reg299331 := Nil; +reg299332 := PrimCons(reg299330, reg299331) +reg299333 := PrimCons(reg299326, reg299332) +reg299334 := PrimCons(reg299322, reg299333) +reg299335 := MakeSymbol("fail") +reg299336 := Nil; +reg299337 := PrimCons(reg299335, reg299336) +reg299338 := Nil; +reg299339 := PrimCons(reg299337, reg299338) +reg299340 := PrimCons(reg299334, reg299339) +reg299341 := PrimCons(reg299321, reg299340) +reg299342 := PrimCons(reg299318, reg299341) +__ctx.Return(reg299342) +return +} else { +reg299343 := Nil; +reg299344 := PrimEqual(reg299343, V4325) +if reg299344 == True { +reg299345 := MakeSymbol("shen.pair") +reg299346 := MakeSymbol("hd") +reg299347 := Nil; +reg299348 := PrimCons(V4326, reg299347) +reg299349 := PrimCons(reg299346, reg299348) +reg299350 := __e.Call(__defun__shen_4semantics, V4327) +reg299351 := Nil; +reg299352 := PrimCons(reg299350, reg299351) +reg299353 := PrimCons(reg299349, reg299352) +reg299354 := PrimCons(reg299345, reg299353) +__ctx.Return(reg299354) +return +} else { +reg299355 := PrimIsPair(V4325) +if reg299355 == True { +reg299356 := PrimHead(V4325) +reg299357 := __e.Call(__defun__shen_4grammar__symbol_2, reg299356) +if reg299357 == True { +__ctx.TailApply(__defun__shen_4recursive__descent, V4325, V4326, V4327) +return +} else { +reg299359 := PrimHead(V4325) +reg299360 := PrimIsVariable(reg299359) +if reg299360 == True { +__ctx.TailApply(__defun__shen_4variable_1match, V4325, V4326, V4327) +return +} else { +reg299362 := PrimHead(V4325) +reg299363 := __e.Call(__defun__shen_4jump__stream_2, reg299362) +if reg299363 == True { +__ctx.TailApply(__defun__shen_4jump__stream, V4325, V4326, V4327) +return +} else { +reg299365 := PrimHead(V4325) +reg299366 := __e.Call(__defun__shen_4terminal_2, reg299365) +if reg299366 == True { +__ctx.TailApply(__defun__shen_4check__stream, V4325, V4326, V4327) +return +} else { +reg299368 := PrimHead(V4325) +reg299369 := PrimIsPair(reg299368) +if reg299369 == True { +reg299370 := PrimHead(V4325) +reg299371 := __e.Call(__defun__shen_4decons, reg299370) +reg299372 := PrimTail(V4325) +__ctx.TailApply(__defun__shen_4list_1stream, reg299371, reg299372, V4326, V4327) +return +} else { +reg299374 := PrimHead(V4325) +reg299375 := MakeString(" is not legal syntax\n") +reg299376 := MakeSymbol("shen.a") +reg299377 := __e.Call(__defun__shen_4app, reg299374, reg299375, reg299376) +reg299378 := PrimSimpleError(reg299377) +__ctx.Return(reg299378) +return +} +} +} +} +} +} else { +reg299379 := MakeSymbol("shen.syntax") +__ctx.TailApply(__defun__shen_4f__error, reg299379) +return +} +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.syntax", value: __defun__shen_4syntax}) + +__defun__shen_4list_1stream = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4332 := __args[0] +_ = V4332 +V4333 := __args[1] +_ = V4333 +V4334 := __args[2] +_ = V4334 +V4335 := __args[3] +_ = V4335 +reg299381 := MakeSymbol("and") +reg299382 := MakeSymbol("cons?") +reg299383 := MakeSymbol("hd") +reg299384 := Nil; +reg299385 := PrimCons(V4334, reg299384) +reg299386 := PrimCons(reg299383, reg299385) +reg299387 := Nil; +reg299388 := PrimCons(reg299386, reg299387) +reg299389 := PrimCons(reg299382, reg299388) +reg299390 := MakeSymbol("cons?") +reg299391 := MakeSymbol("shen.hdhd") +reg299392 := Nil; +reg299393 := PrimCons(V4334, reg299392) +reg299394 := PrimCons(reg299391, reg299393) +reg299395 := Nil; +reg299396 := PrimCons(reg299394, reg299395) +reg299397 := PrimCons(reg299390, reg299396) +reg299398 := Nil; +reg299399 := PrimCons(reg299397, reg299398) +reg299400 := PrimCons(reg299389, reg299399) +reg299401 := PrimCons(reg299381, reg299400) +Test := reg299401 +_ = Test +reg299402 := MakeSymbol("shen.place") +reg299403 := __e.Call(__defun__gensym, reg299402) +Placeholder := reg299403 +_ = Placeholder +reg299404 := MakeSymbol("shen.pair") +reg299405 := MakeSymbol("shen.tlhd") +reg299406 := Nil; +reg299407 := PrimCons(V4334, reg299406) +reg299408 := PrimCons(reg299405, reg299407) +reg299409 := MakeSymbol("shen.hdtl") +reg299410 := Nil; +reg299411 := PrimCons(V4334, reg299410) +reg299412 := PrimCons(reg299409, reg299411) +reg299413 := Nil; +reg299414 := PrimCons(reg299412, reg299413) +reg299415 := PrimCons(reg299408, reg299414) +reg299416 := PrimCons(reg299404, reg299415) +reg299417 := __e.Call(__defun__shen_4syntax, V4333, reg299416, V4335) +RunOn := reg299417 +_ = RunOn +reg299418 := MakeSymbol("shen.pair") +reg299419 := MakeSymbol("shen.hdhd") +reg299420 := Nil; +reg299421 := PrimCons(V4334, reg299420) +reg299422 := PrimCons(reg299419, reg299421) +reg299423 := MakeSymbol("shen.hdtl") +reg299424 := Nil; +reg299425 := PrimCons(V4334, reg299424) +reg299426 := PrimCons(reg299423, reg299425) +reg299427 := Nil; +reg299428 := PrimCons(reg299426, reg299427) +reg299429 := PrimCons(reg299422, reg299428) +reg299430 := PrimCons(reg299418, reg299429) +reg299431 := __e.Call(__defun__shen_4syntax, V4332, reg299430, Placeholder) +reg299432 := __e.Call(__defun__shen_4insert_1runon, RunOn, Placeholder, reg299431) +Action := reg299432 +_ = Action +reg299433 := MakeSymbol("if") +reg299434 := MakeSymbol("fail") +reg299435 := Nil; +reg299436 := PrimCons(reg299434, reg299435) +reg299437 := Nil; +reg299438 := PrimCons(reg299436, reg299437) +reg299439 := PrimCons(Action, reg299438) +reg299440 := PrimCons(Test, reg299439) +reg299441 := PrimCons(reg299433, reg299440) +__ctx.Return(reg299441) +return +}, 4) +__initDefs = append(__initDefs, defType{name: "shen.list-stream", value: __defun__shen_4list_1stream}) + +__defun__shen_4decons = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4337 := __args[0] +_ = V4337 +reg299442 := PrimIsPair(V4337) +var reg299485 Obj +if reg299442 == True { +reg299443 := MakeSymbol("cons") +reg299444 := PrimHead(V4337) +reg299445 := PrimEqual(reg299443, reg299444) +var reg299480 Obj +if reg299445 == True { +reg299446 := PrimTail(V4337) +reg299447 := PrimIsPair(reg299446) +var reg299475 Obj +if reg299447 == True { +reg299448 := PrimTail(V4337) +reg299449 := PrimTail(reg299448) +reg299450 := PrimIsPair(reg299449) +var reg299470 Obj +if reg299450 == True { +reg299451 := Nil; +reg299452 := PrimTail(V4337) +reg299453 := PrimTail(reg299452) +reg299454 := PrimHead(reg299453) +reg299455 := PrimEqual(reg299451, reg299454) +var reg299465 Obj +if reg299455 == True { +reg299456 := Nil; +reg299457 := PrimTail(V4337) +reg299458 := PrimTail(reg299457) +reg299459 := PrimTail(reg299458) +reg299460 := PrimEqual(reg299456, reg299459) +var reg299463 Obj +if reg299460 == True { +reg299461 := True; +reg299463 = reg299461 +} else { +reg299462 := False; +reg299463 = reg299462 +} +reg299465 = reg299463 +} else { +reg299464 := False; +reg299465 = reg299464 +} +var reg299468 Obj +if reg299465 == True { +reg299466 := True; +reg299468 = reg299466 +} else { +reg299467 := False; +reg299468 = reg299467 +} +reg299470 = reg299468 +} else { +reg299469 := False; +reg299470 = reg299469 +} +var reg299473 Obj +if reg299470 == True { +reg299471 := True; +reg299473 = reg299471 +} else { +reg299472 := False; +reg299473 = reg299472 +} +reg299475 = reg299473 +} else { +reg299474 := False; +reg299475 = reg299474 +} +var reg299478 Obj +if reg299475 == True { +reg299476 := True; +reg299478 = reg299476 +} else { +reg299477 := False; +reg299478 = reg299477 +} +reg299480 = reg299478 +} else { +reg299479 := False; +reg299480 = reg299479 +} +var reg299483 Obj +if reg299480 == True { +reg299481 := True; +reg299483 = reg299481 +} else { +reg299482 := False; +reg299483 = reg299482 +} +reg299485 = reg299483 +} else { +reg299484 := False; +reg299485 = reg299484 +} +if reg299485 == True { +reg299486 := PrimTail(V4337) +reg299487 := PrimHead(reg299486) +reg299488 := Nil; +reg299489 := PrimCons(reg299487, reg299488) +__ctx.Return(reg299489) +return +} else { +reg299490 := PrimIsPair(V4337) +var reg299523 Obj +if reg299490 == True { +reg299491 := MakeSymbol("cons") +reg299492 := PrimHead(V4337) +reg299493 := PrimEqual(reg299491, reg299492) +var reg299518 Obj +if reg299493 == True { +reg299494 := PrimTail(V4337) +reg299495 := PrimIsPair(reg299494) +var reg299513 Obj +if reg299495 == True { +reg299496 := PrimTail(V4337) +reg299497 := PrimTail(reg299496) +reg299498 := PrimIsPair(reg299497) +var reg299508 Obj +if reg299498 == True { +reg299499 := Nil; +reg299500 := PrimTail(V4337) +reg299501 := PrimTail(reg299500) +reg299502 := PrimTail(reg299501) +reg299503 := PrimEqual(reg299499, reg299502) +var reg299506 Obj +if reg299503 == True { +reg299504 := True; +reg299506 = reg299504 +} else { +reg299505 := False; +reg299506 = reg299505 +} +reg299508 = reg299506 +} else { +reg299507 := False; +reg299508 = reg299507 +} +var reg299511 Obj +if reg299508 == True { +reg299509 := True; +reg299511 = reg299509 +} else { +reg299510 := False; +reg299511 = reg299510 +} +reg299513 = reg299511 +} else { +reg299512 := False; +reg299513 = reg299512 +} +var reg299516 Obj +if reg299513 == True { +reg299514 := True; +reg299516 = reg299514 +} else { +reg299515 := False; +reg299516 = reg299515 +} +reg299518 = reg299516 +} else { +reg299517 := False; +reg299518 = reg299517 +} +var reg299521 Obj +if reg299518 == True { +reg299519 := True; +reg299521 = reg299519 +} else { +reg299520 := False; +reg299521 = reg299520 +} +reg299523 = reg299521 +} else { +reg299522 := False; +reg299523 = reg299522 +} +if reg299523 == True { +reg299524 := PrimTail(V4337) +reg299525 := PrimHead(reg299524) +reg299526 := PrimTail(V4337) +reg299527 := PrimTail(reg299526) +reg299528 := PrimHead(reg299527) +reg299529 := __e.Call(__defun__shen_4decons, reg299528) +reg299530 := PrimCons(reg299525, reg299529) +__ctx.Return(reg299530) +return +} else { +__ctx.Return(V4337) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.decons", value: __defun__shen_4decons}) + +__defun__shen_4insert_1runon = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4352 := __args[0] +_ = V4352 +V4353 := __args[1] +_ = V4353 +V4354 := __args[2] +_ = V4354 +reg299531 := PrimIsPair(V4354) +var reg299573 Obj +if reg299531 == True { +reg299532 := MakeSymbol("shen.pair") +reg299533 := PrimHead(V4354) +reg299534 := PrimEqual(reg299532, reg299533) +var reg299568 Obj +if reg299534 == True { +reg299535 := PrimTail(V4354) +reg299536 := PrimIsPair(reg299535) +var reg299563 Obj +if reg299536 == True { +reg299537 := PrimTail(V4354) +reg299538 := PrimTail(reg299537) +reg299539 := PrimIsPair(reg299538) +var reg299558 Obj +if reg299539 == True { +reg299540 := Nil; +reg299541 := PrimTail(V4354) +reg299542 := PrimTail(reg299541) +reg299543 := PrimTail(reg299542) +reg299544 := PrimEqual(reg299540, reg299543) +var reg299553 Obj +if reg299544 == True { +reg299545 := PrimTail(V4354) +reg299546 := PrimTail(reg299545) +reg299547 := PrimHead(reg299546) +reg299548 := PrimEqual(reg299547, V4353) +var reg299551 Obj +if reg299548 == True { +reg299549 := True; +reg299551 = reg299549 +} else { +reg299550 := False; +reg299551 = reg299550 +} +reg299553 = reg299551 +} else { +reg299552 := False; +reg299553 = reg299552 +} +var reg299556 Obj +if reg299553 == True { +reg299554 := True; +reg299556 = reg299554 +} else { +reg299555 := False; +reg299556 = reg299555 +} +reg299558 = reg299556 +} else { +reg299557 := False; +reg299558 = reg299557 +} +var reg299561 Obj +if reg299558 == True { +reg299559 := True; +reg299561 = reg299559 +} else { +reg299560 := False; +reg299561 = reg299560 +} +reg299563 = reg299561 +} else { +reg299562 := False; +reg299563 = reg299562 +} +var reg299566 Obj +if reg299563 == True { +reg299564 := True; +reg299566 = reg299564 +} else { +reg299565 := False; +reg299566 = reg299565 +} +reg299568 = reg299566 +} else { +reg299567 := False; +reg299568 = reg299567 +} +var reg299571 Obj +if reg299568 == True { +reg299569 := True; +reg299571 = reg299569 +} else { +reg299570 := False; +reg299571 = reg299570 +} +reg299573 = reg299571 +} else { +reg299572 := False; +reg299573 = reg299572 +} +if reg299573 == True { +__ctx.Return(V4352) +return +} else { +reg299574 := PrimIsPair(V4354) +if reg299574 == True { +reg299575 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4insert_1runon, V4352, V4353, Z) +return +}, 1) +__ctx.TailApply(__defun__map, reg299575, V4354) +return +} else { +__ctx.Return(V4354) +return +} +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.insert-runon", value: __defun__shen_4insert_1runon}) + +__defun__shen_4strip_1pathname = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4360 := __args[0] +_ = V4360 +reg299578 := MakeString(".") +reg299579 := __e.Call(__defun__element_2, reg299578, V4360) +reg299580 := PrimNot(reg299579) +if reg299580 == True { +__ctx.Return(V4360) +return +} else { +reg299581 := PrimIsPair(V4360) +if reg299581 == True { +reg299582 := PrimTail(V4360) +__ctx.TailApply(__defun__shen_4strip_1pathname, reg299582) +return +} else { +reg299584 := MakeSymbol("shen.strip-pathname") +__ctx.TailApply(__defun__shen_4f__error, reg299584) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.strip-pathname", value: __defun__shen_4strip_1pathname}) + +__defun__shen_4recursive__descent = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4364 := __args[0] +_ = V4364 +V4365 := __args[1] +_ = V4365 +V4366 := __args[2] +_ = V4366 +reg299586 := PrimIsPair(V4364) +if reg299586 == True { +reg299587 := PrimHead(V4364) +reg299588 := Nil; +reg299589 := PrimCons(V4365, reg299588) +reg299590 := PrimCons(reg299587, reg299589) +Test := reg299590 +_ = Test +reg299591 := PrimTail(V4364) +reg299592 := MakeSymbol("Parse_") +reg299593 := PrimHead(V4364) +reg299594 := __e.Call(__defun__concat, reg299592, reg299593) +reg299595 := __e.Call(__defun__shen_4syntax, reg299591, reg299594, V4366) +Action := reg299595 +_ = Action +reg299596 := MakeSymbol("fail") +reg299597 := Nil; +reg299598 := PrimCons(reg299596, reg299597) +Else := reg299598 +_ = Else +reg299599 := MakeSymbol("let") +reg299600 := MakeSymbol("Parse_") +reg299601 := PrimHead(V4364) +reg299602 := __e.Call(__defun__concat, reg299600, reg299601) +reg299603 := MakeSymbol("if") +reg299604 := MakeSymbol("not") +reg299605 := MakeSymbol("=") +reg299606 := MakeSymbol("fail") +reg299607 := Nil; +reg299608 := PrimCons(reg299606, reg299607) +reg299609 := MakeSymbol("Parse_") +reg299610 := PrimHead(V4364) +reg299611 := __e.Call(__defun__concat, reg299609, reg299610) +reg299612 := Nil; +reg299613 := PrimCons(reg299611, reg299612) +reg299614 := PrimCons(reg299608, reg299613) +reg299615 := PrimCons(reg299605, reg299614) +reg299616 := Nil; +reg299617 := PrimCons(reg299615, reg299616) +reg299618 := PrimCons(reg299604, reg299617) +reg299619 := Nil; +reg299620 := PrimCons(Else, reg299619) +reg299621 := PrimCons(Action, reg299620) +reg299622 := PrimCons(reg299618, reg299621) +reg299623 := PrimCons(reg299603, reg299622) +reg299624 := Nil; +reg299625 := PrimCons(reg299623, reg299624) +reg299626 := PrimCons(Test, reg299625) +reg299627 := PrimCons(reg299602, reg299626) +reg299628 := PrimCons(reg299599, reg299627) +__ctx.Return(reg299628) +return +} else { +reg299629 := MakeSymbol("shen.recursive_descent") +__ctx.TailApply(__defun__shen_4f__error, reg299629) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.recursive_descent", value: __defun__shen_4recursive__descent}) + +__defun__shen_4variable_1match = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4370 := __args[0] +_ = V4370 +V4371 := __args[1] +_ = V4371 +V4372 := __args[2] +_ = V4372 +reg299631 := PrimIsPair(V4370) +if reg299631 == True { +reg299632 := MakeSymbol("cons?") +reg299633 := MakeSymbol("hd") +reg299634 := Nil; +reg299635 := PrimCons(V4371, reg299634) +reg299636 := PrimCons(reg299633, reg299635) +reg299637 := Nil; +reg299638 := PrimCons(reg299636, reg299637) +reg299639 := PrimCons(reg299632, reg299638) +Test := reg299639 +_ = Test +reg299640 := MakeSymbol("let") +reg299641 := MakeSymbol("Parse_") +reg299642 := PrimHead(V4370) +reg299643 := __e.Call(__defun__concat, reg299641, reg299642) +reg299644 := MakeSymbol("shen.hdhd") +reg299645 := Nil; +reg299646 := PrimCons(V4371, reg299645) +reg299647 := PrimCons(reg299644, reg299646) +reg299648 := PrimTail(V4370) +reg299649 := MakeSymbol("shen.pair") +reg299650 := MakeSymbol("shen.tlhd") +reg299651 := Nil; +reg299652 := PrimCons(V4371, reg299651) +reg299653 := PrimCons(reg299650, reg299652) +reg299654 := MakeSymbol("shen.hdtl") +reg299655 := Nil; +reg299656 := PrimCons(V4371, reg299655) +reg299657 := PrimCons(reg299654, reg299656) +reg299658 := Nil; +reg299659 := PrimCons(reg299657, reg299658) +reg299660 := PrimCons(reg299653, reg299659) +reg299661 := PrimCons(reg299649, reg299660) +reg299662 := __e.Call(__defun__shen_4syntax, reg299648, reg299661, V4372) +reg299663 := Nil; +reg299664 := PrimCons(reg299662, reg299663) +reg299665 := PrimCons(reg299647, reg299664) +reg299666 := PrimCons(reg299643, reg299665) +reg299667 := PrimCons(reg299640, reg299666) +Action := reg299667 +_ = Action +reg299668 := MakeSymbol("fail") +reg299669 := Nil; +reg299670 := PrimCons(reg299668, reg299669) +Else := reg299670 +_ = Else +reg299671 := MakeSymbol("if") +reg299672 := Nil; +reg299673 := PrimCons(Else, reg299672) +reg299674 := PrimCons(Action, reg299673) +reg299675 := PrimCons(Test, reg299674) +reg299676 := PrimCons(reg299671, reg299675) +__ctx.Return(reg299676) +return +} else { +reg299677 := MakeSymbol("shen.variable-match") +__ctx.TailApply(__defun__shen_4f__error, reg299677) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.variable-match", value: __defun__shen_4variable_1match}) + +__defun__shen_4terminal_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4382 := __args[0] +_ = V4382 +reg299679 := PrimIsPair(V4382) +if reg299679 == True { +reg299680 := False; +__ctx.Return(reg299680) +return +} else { +reg299681 := PrimIsVariable(V4382) +if reg299681 == True { +reg299682 := False; +__ctx.Return(reg299682) +return +} else { +reg299683 := True; +__ctx.Return(reg299683) +return +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.terminal?", value: __defun__shen_4terminal_2}) + +__defun__shen_4jump__stream_2 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4388 := __args[0] +_ = V4388 +reg299684 := MakeSymbol("_") +reg299685 := PrimEqual(V4388, reg299684) +if reg299685 == True { +reg299686 := True; +__ctx.Return(reg299686) +return +} else { +reg299687 := False; +__ctx.Return(reg299687) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.jump_stream?", value: __defun__shen_4jump__stream_2}) + +__defun__shen_4check__stream = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4392 := __args[0] +_ = V4392 +V4393 := __args[1] +_ = V4393 +V4394 := __args[2] +_ = V4394 +reg299688 := PrimIsPair(V4392) +if reg299688 == True { +reg299689 := MakeSymbol("and") +reg299690 := MakeSymbol("cons?") +reg299691 := MakeSymbol("hd") +reg299692 := Nil; +reg299693 := PrimCons(V4393, reg299692) +reg299694 := PrimCons(reg299691, reg299693) +reg299695 := Nil; +reg299696 := PrimCons(reg299694, reg299695) +reg299697 := PrimCons(reg299690, reg299696) +reg299698 := MakeSymbol("=") +reg299699 := PrimHead(V4392) +reg299700 := MakeSymbol("shen.hdhd") +reg299701 := Nil; +reg299702 := PrimCons(V4393, reg299701) +reg299703 := PrimCons(reg299700, reg299702) +reg299704 := Nil; +reg299705 := PrimCons(reg299703, reg299704) +reg299706 := PrimCons(reg299699, reg299705) +reg299707 := PrimCons(reg299698, reg299706) +reg299708 := Nil; +reg299709 := PrimCons(reg299707, reg299708) +reg299710 := PrimCons(reg299697, reg299709) +reg299711 := PrimCons(reg299689, reg299710) +Test := reg299711 +_ = Test +reg299712 := MakeSymbol("NewStream") +reg299713 := __e.Call(__defun__gensym, reg299712) +NewStr := reg299713 +_ = NewStr +reg299714 := MakeSymbol("let") +reg299715 := MakeSymbol("shen.pair") +reg299716 := MakeSymbol("shen.tlhd") +reg299717 := Nil; +reg299718 := PrimCons(V4393, reg299717) +reg299719 := PrimCons(reg299716, reg299718) +reg299720 := MakeSymbol("shen.hdtl") +reg299721 := Nil; +reg299722 := PrimCons(V4393, reg299721) +reg299723 := PrimCons(reg299720, reg299722) +reg299724 := Nil; +reg299725 := PrimCons(reg299723, reg299724) +reg299726 := PrimCons(reg299719, reg299725) +reg299727 := PrimCons(reg299715, reg299726) +reg299728 := PrimTail(V4392) +reg299729 := __e.Call(__defun__shen_4syntax, reg299728, NewStr, V4394) +reg299730 := Nil; +reg299731 := PrimCons(reg299729, reg299730) +reg299732 := PrimCons(reg299727, reg299731) +reg299733 := PrimCons(NewStr, reg299732) +reg299734 := PrimCons(reg299714, reg299733) +Action := reg299734 +_ = Action +reg299735 := MakeSymbol("fail") +reg299736 := Nil; +reg299737 := PrimCons(reg299735, reg299736) +Else := reg299737 +_ = Else +reg299738 := MakeSymbol("if") +reg299739 := Nil; +reg299740 := PrimCons(Else, reg299739) +reg299741 := PrimCons(Action, reg299740) +reg299742 := PrimCons(Test, reg299741) +reg299743 := PrimCons(reg299738, reg299742) +__ctx.Return(reg299743) +return +} else { +reg299744 := MakeSymbol("shen.check_stream") +__ctx.TailApply(__defun__shen_4f__error, reg299744) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.check_stream", value: __defun__shen_4check__stream}) + +__defun__shen_4jump__stream = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4398 := __args[0] +_ = V4398 +V4399 := __args[1] +_ = V4399 +V4400 := __args[2] +_ = V4400 +reg299746 := PrimIsPair(V4398) +if reg299746 == True { +reg299747 := MakeSymbol("cons?") +reg299748 := MakeSymbol("hd") +reg299749 := Nil; +reg299750 := PrimCons(V4399, reg299749) +reg299751 := PrimCons(reg299748, reg299750) +reg299752 := Nil; +reg299753 := PrimCons(reg299751, reg299752) +reg299754 := PrimCons(reg299747, reg299753) +Test := reg299754 +_ = Test +reg299755 := PrimTail(V4398) +reg299756 := MakeSymbol("shen.pair") +reg299757 := MakeSymbol("shen.tlhd") +reg299758 := Nil; +reg299759 := PrimCons(V4399, reg299758) +reg299760 := PrimCons(reg299757, reg299759) +reg299761 := MakeSymbol("shen.hdtl") +reg299762 := Nil; +reg299763 := PrimCons(V4399, reg299762) +reg299764 := PrimCons(reg299761, reg299763) +reg299765 := Nil; +reg299766 := PrimCons(reg299764, reg299765) +reg299767 := PrimCons(reg299760, reg299766) +reg299768 := PrimCons(reg299756, reg299767) +reg299769 := __e.Call(__defun__shen_4syntax, reg299755, reg299768, V4400) +Action := reg299769 +_ = Action +reg299770 := MakeSymbol("fail") +reg299771 := Nil; +reg299772 := PrimCons(reg299770, reg299771) +Else := reg299772 +_ = Else +reg299773 := MakeSymbol("if") +reg299774 := Nil; +reg299775 := PrimCons(Else, reg299774) +reg299776 := PrimCons(Action, reg299775) +reg299777 := PrimCons(Test, reg299776) +reg299778 := PrimCons(reg299773, reg299777) +__ctx.Return(reg299778) +return +} else { +reg299779 := MakeSymbol("shen.jump_stream") +__ctx.TailApply(__defun__shen_4f__error, reg299779) +return +} +}, 3) +__initDefs = append(__initDefs, defType{name: "shen.jump_stream", value: __defun__shen_4jump__stream}) + +__defun__shen_4semantics = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4402 := __args[0] +_ = V4402 +reg299781 := Nil; +reg299782 := PrimEqual(reg299781, V4402) +if reg299782 == True { +reg299783 := Nil; +__ctx.Return(reg299783) +return +} else { +reg299784 := __e.Call(__defun__shen_4grammar__symbol_2, V4402) +if reg299784 == True { +reg299785 := MakeSymbol("shen.hdtl") +reg299786 := MakeSymbol("Parse_") +reg299787 := __e.Call(__defun__concat, reg299786, V4402) +reg299788 := Nil; +reg299789 := PrimCons(reg299787, reg299788) +reg299790 := PrimCons(reg299785, reg299789) +__ctx.Return(reg299790) +return +} else { +reg299791 := PrimIsVariable(V4402) +if reg299791 == True { +reg299792 := MakeSymbol("Parse_") +__ctx.TailApply(__defun__concat, reg299792, V4402) +return +} else { +reg299794 := PrimIsPair(V4402) +if reg299794 == True { +reg299795 := MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +Z := __args[0] +_ = Z +__ctx.TailApply(__defun__shen_4semantics, Z) +return +}, 1) +__ctx.TailApply(__defun__map, reg299795, V4402) +return +} else { +__ctx.Return(V4402) +return +} +} +} +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.semantics", value: __defun__shen_4semantics}) + +__defun__shen_4pair = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4405 := __args[0] +_ = V4405 +V4406 := __args[1] +_ = V4406 +reg299798 := Nil; +reg299799 := PrimCons(V4406, reg299798) +reg299800 := PrimCons(V4405, reg299799) +__ctx.Return(reg299800) +return +}, 2) +__initDefs = append(__initDefs, defType{name: "shen.pair", value: __defun__shen_4pair}) + +__defun__shen_4hdtl = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4408 := __args[0] +_ = V4408 +reg299801 := PrimTail(V4408) +reg299802 := PrimHead(reg299801) +__ctx.Return(reg299802) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.hdtl", value: __defun__shen_4hdtl}) + +__defun__shen_4hdhd = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4410 := __args[0] +_ = V4410 +reg299803 := PrimHead(V4410) +reg299804 := PrimHead(reg299803) +__ctx.Return(reg299804) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.hdhd", value: __defun__shen_4hdhd}) + +__defun__shen_4tlhd = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4412 := __args[0] +_ = V4412 +reg299805 := PrimHead(V4412) +reg299806 := PrimTail(reg299805) +__ctx.Return(reg299806) +return +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.tlhd", value: __defun__shen_4tlhd}) + +__defun__shen_4snd_1or_1fail = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4420 := __args[0] +_ = V4420 +reg299807 := PrimIsPair(V4420) +var reg299823 Obj +if reg299807 == True { +reg299808 := PrimTail(V4420) +reg299809 := PrimIsPair(reg299808) +var reg299818 Obj +if reg299809 == True { +reg299810 := Nil; +reg299811 := PrimTail(V4420) +reg299812 := PrimTail(reg299811) +reg299813 := PrimEqual(reg299810, reg299812) +var reg299816 Obj +if reg299813 == True { +reg299814 := True; +reg299816 = reg299814 +} else { +reg299815 := False; +reg299816 = reg299815 +} +reg299818 = reg299816 +} else { +reg299817 := False; +reg299818 = reg299817 +} +var reg299821 Obj +if reg299818 == True { +reg299819 := True; +reg299821 = reg299819 +} else { +reg299820 := False; +reg299821 = reg299820 +} +reg299823 = reg299821 +} else { +reg299822 := False; +reg299823 = reg299822 +} +if reg299823 == True { +reg299824 := PrimTail(V4420) +reg299825 := PrimHead(reg299824) +__ctx.Return(reg299825) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "shen.snd-or-fail", value: __defun__shen_4snd_1or_1fail}) + +__defun__fail = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +reg299827 := MakeSymbol("...") +__ctx.Return(reg299827) +return +}, 0) +__initDefs = append(__initDefs, defType{name: "fail", value: __defun__fail}) + +__defun___5_b_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4428 := __args[0] +_ = V4428 +reg299828 := PrimIsPair(V4428) +var reg299844 Obj +if reg299828 == True { +reg299829 := PrimTail(V4428) +reg299830 := PrimIsPair(reg299829) +var reg299839 Obj +if reg299830 == True { +reg299831 := Nil; +reg299832 := PrimTail(V4428) +reg299833 := PrimTail(reg299832) +reg299834 := PrimEqual(reg299831, reg299833) +var reg299837 Obj +if reg299834 == True { +reg299835 := True; +reg299837 = reg299835 +} else { +reg299836 := False; +reg299837 = reg299836 +} +reg299839 = reg299837 +} else { +reg299838 := False; +reg299839 = reg299838 +} +var reg299842 Obj +if reg299839 == True { +reg299840 := True; +reg299842 = reg299840 +} else { +reg299841 := False; +reg299842 = reg299841 +} +reg299844 = reg299842 +} else { +reg299843 := False; +reg299844 = reg299843 +} +if reg299844 == True { +reg299845 := Nil; +reg299846 := PrimHead(V4428) +reg299847 := Nil; +reg299848 := PrimCons(reg299846, reg299847) +reg299849 := PrimCons(reg299845, reg299848) +__ctx.Return(reg299849) +return +} else { +__ctx.TailApply(__defun__fail) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "", value: __defun___5_b_6}) + +__defun___5e_6 = MakeNative(func(__e *Evaluator, __ctx *ControlFlow, __args ...Obj) { +V4434 := __args[0] +_ = V4434 +reg299851 := PrimIsPair(V4434) +var reg299867 Obj +if reg299851 == True { +reg299852 := PrimTail(V4434) +reg299853 := PrimIsPair(reg299852) +var reg299862 Obj +if reg299853 == True { +reg299854 := Nil; +reg299855 := PrimTail(V4434) +reg299856 := PrimTail(reg299855) +reg299857 := PrimEqual(reg299854, reg299856) +var reg299860 Obj +if reg299857 == True { +reg299858 := True; +reg299860 = reg299858 +} else { +reg299859 := False; +reg299860 = reg299859 +} +reg299862 = reg299860 +} else { +reg299861 := False; +reg299862 = reg299861 +} +var reg299865 Obj +if reg299862 == True { +reg299863 := True; +reg299865 = reg299863 +} else { +reg299864 := False; +reg299865 = reg299864 +} +reg299867 = reg299865 +} else { +reg299866 := False; +reg299867 = reg299866 +} +if reg299867 == True { +reg299868 := PrimHead(V4434) +reg299869 := Nil; +reg299870 := Nil; +reg299871 := PrimCons(reg299869, reg299870) +reg299872 := PrimCons(reg299868, reg299871) +__ctx.Return(reg299872) +return +} else { +reg299873 := MakeSymbol("") +__ctx.TailApply(__defun__shen_4f__error, reg299873) +return +} +}, 1) +__initDefs = append(__initDefs, defType{name: "", value: __defun___5e_6}) + +} diff --git a/kl/evaluator.go b/kl/evaluator.go index ed146ab..3a5940e 100644 --- a/kl/evaluator.go +++ b/kl/evaluator.go @@ -39,11 +39,11 @@ func NewEvaluator() *Evaluator { dir, _ := os.Getwd() PrimSet(MakeSymbol("*home-directory*"), MakeString(dir)) PrimSet(MakeSymbol("*language*"), MakeString("Go")) - PrimSet(MakeSymbol("*implementation*"), MakeString("interpreter")) + PrimSet(MakeSymbol("*implementation*"), MakeString("fusion")) PrimSet(MakeSymbol("*relase*"), MakeString(runtime.Version())) PrimSet(MakeSymbol("*os*"), MakeString(runtime.GOOS)) PrimSet(MakeSymbol("*porters*"), MakeString("Arthur Mao")) - PrimSet(MakeSymbol("*port*"), MakeString("0.0.1")) + PrimSet(MakeSymbol("*port*"), MakeString("1.0.0")) // Extended by shen-go implementation PrimSet(MakeSymbol("*package-path*"), MakeString(PackagePath()))