#reader(lib"read.ss""wxme")WXME0111 ## #| This file uses the GRacket editor format. Open this file in DrRacket version 8.13 or later to read it. Most likely, it was created by saving a program in DrRacket, and it probably contains a program with non-text elements (such as images or comment boxes). http://racket-lang.org/ |# 34 7 #"wxtext\0" 3 1 6 #"wxtab\0" 1 1 8 #"wximage\0" 2 0 8 #"wxmedia\0" 4 1 34 #"(lib \"syntax-browser.ss\" \"mrlib\")\0" 1 0 36 #"(lib \"cache-image-snip.ss\" \"mrlib\")\0" 1 0 68 (0 68 ((lib "image-core.ss" "mrlib") (lib "image-core-wxme.rkt" "mrlib")) ) 1 0 16 #"drscheme:number\0" 3 0 44 #"(lib \"number-snip.ss\" \"drscheme\" \"private\")\0" 1 0 36 #"(lib \"comment-snip.ss\" \"framework\")\0" 1 0 79 (1 79 ((lib "srcloc-snip.rkt" "framework") (lib "wxme-srcloc-snip.rkt" "framework")) ) 1 0 93 (2 93 ((lib "collapsed-snipclass.ss" "framework") (lib "collapsed-snipclass-wxme.ss" "framework")) ) 0 0 43 #"(lib \"collapsed-snipclass.ss\" \"framework\")\0" 0 0 19 #"drscheme:sexp-snip\0" 0 0 29 #"drscheme:bindings-snipclass%\0" 1 0 101 (3 101 ((lib "ellipsis-snip.rkt" "drracket" "private") (lib "ellipsis-snip-wxme.rkt" "drracket" "private")) ) 2 0 88 (4 88 ((lib "pict-snip.rkt" "drracket" "private") (lib "pict-snip.rkt" "drracket" "private")) ) 1 0 55 #"((lib \"snip.rkt\" \"pict\") (lib \"snip-wxme.rkt\" \"pict\"))\0" 1 0 34 #"(lib \"bullet-snip.rkt\" \"browser\")\0" 0 0 25 #"(lib \"matrix.ss\" \"htdp\")\0" 1 0 22 #"drscheme:lambda-snip%\0" 1 0 29 #"drclickable-string-snipclass\0" 0 0 26 #"drracket:spacer-snipclass\0" 0 0 57 #"(lib \"hrule-snip.rkt\" \"macro-debugger\" \"syntax-browser\")\0" 1 0 26 #"drscheme:pict-value-snip%\0" 0 0 45 #"(lib \"image-snipr.ss\" \"slideshow\" \"private\")\0" 1 0 38 #"(lib \"pict-snipclass.ss\" \"slideshow\")\0" 2 0 55 #"(lib \"vertical-separator-snip.ss\" \"stepper\" \"private\")\0" 1 0 18 #"drscheme:xml-snip\0" 1 0 31 #"(lib \"xml-snipclass.ss\" \"xml\")\0" 1 0 21 #"drscheme:scheme-snip\0" 2 0 34 #"(lib \"scheme-snipclass.ss\" \"xml\")\0" 1 0 10 #"text-box%\0" 1 0 32 #"(lib \"text-snipclass.ss\" \"xml\")\0" 1 0 1 6 #"wxloc\0" 0 0 73 0 1 #"\0" 0 75 1 #"\0" 0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 1.0 0 0 0 1.0 0 0 0 0.0 255 255 255 0.0 1 -1 0 9 #"Standard\0" 0 75 24 #"CaskaydiaCove Nerd Font\0" 0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 1.0 0 0 0 1.0 0 0 0 0.0 255 255 255 0.0 1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1.0 1 1 1 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 2 24 #"framework:default-color\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 255 255 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1 1 1 1.0 150 0 150 1.0 0 0 0 0.0 -1 -1 2 15 #"text:ports out\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 192 46 214 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 255 0 0 1.0 0 0 0 0.0 -1 -1 2 15 #"text:ports err\0" 0 -1 1 #"\0" 1 0 -1 -1 93 -1 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 0 0 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1 1 1 1.0 0 0 175 1.0 0 0 0 0.0 -1 -1 2 17 #"text:ports value\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 57 89 216 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 34 139 34 1.0 0 0 0 0.0 -1 -1 2 27 #"Matching Parenthesis Style\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 34 139 34 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 157 157 250 1.0 0 0 0 0.0 -1 -1 2 37 #"framework:syntax-color:scheme:symbol\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 157 157 250 1.0 0 0 0 0.0 -1 -1 2 38 #"framework:syntax-color:scheme:keyword\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 157 157 250 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 249 148 40 1.0 0 0 0 0.0 -1 -1 2 38 #"framework:syntax-color:scheme:comment\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 249 148 40 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 140 212 140 1.0 0 0 0 0.0 -1 -1 2 37 #"framework:syntax-color:scheme:string\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 140 212 140 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 51 174 51 1.0 0 0 0 0.0 -1 -1 2 35 #"framework:syntax-color:scheme:text\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 51 174 51 1.0 0 0 0 0.0 -1 -1 2 39 #"framework:syntax-color:scheme:constant\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 140 212 140 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 151 69 43 1.0 0 0 0 0.0 -1 -1 2 49 #"framework:syntax-color:scheme:hash-colon-keyword\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 151 69 43 1.0 0 0 0 0.0 -1 -1 2 42 #"framework:syntax-color:scheme:parenthesis\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 151 69 43 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 0 0 1.0 0 0 0 0.0 -1 -1 2 36 #"framework:syntax-color:scheme:error\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 0 0 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 255 255 1.0 0 0 0 0.0 -1 -1 2 36 #"framework:syntax-color:scheme:other\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 255 255 1.0 0 0 0 0.0 -1 -1 2 16 #"Misspelled Text\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 255 255 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 50 163 255 1.0 0 0 0 0.0 -1 -1 2 38 #"drracket:check-syntax:lexically-bound\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 50 163 255 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 192 203 1.0 0 0 0 0.0 -1 -1 2 28 #"drracket:check-syntax:set!d\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 192 203 1.0 0 0 0 0.0 -1 -1 2 37 #"drracket:check-syntax:unused-require\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 192 203 1.0 0 0 0 0.0 -1 -1 2 36 #"drracket:check-syntax:free-variable\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 192 203 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 166 0 255 1.0 0 0 0 0.0 -1 -1 2 31 #"drracket:check-syntax:imported\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 166 0 255 1.0 0 0 0 0.0 -1 -1 2 47 #"drracket:check-syntax:my-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 192 203 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 50 205 50 1.0 0 0 0 0.0 -1 -1 2 50 #"drracket:check-syntax:their-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 50 205 50 1.0 0 0 0 0.0 -1 -1 2 48 #"drracket:check-syntax:unk-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 255 255 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 240 230 140 1.0 0 0 0 0.0 -1 -1 2 49 #"drracket:check-syntax:both-obligation-style-pref\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 240 230 140 1.0 0 0 0 0.0 -1 -1 2 26 #"plt:htdp:test-coverage-on\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 255 255 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0.0 0 0 0 0.0 205 92 92 1.0 0 0 0 1.0 -1 -1 2 27 #"plt:htdp:test-coverage-off\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0.0 0 0 0 0.0 205 92 92 1.0 0 0 0 1.0 -1 -1 4 1 #"\0" 0 70 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 4 4 #"XML\0" 0 70 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 152 251 152 1.0 0 0 0 0.0 -1 -1 2 61 #"drracket:language name and memory use at top of interactions\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 152 251 152 1.0 0 0 0 0.0 -1 -1 2 37 #"plt:module-language:test-coverage-on\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 0.0 1 1 1 1.0 255 255 255 1.0 0 0 0 0.0 -1 -1 2 38 #"plt:module-language:test-coverage-off\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0.0 0 0 0 0.0 205 92 92 1.0 0 0 0 1.0 -1 -1 0 36 #"mrlib/syntax-browser:subtitle-color\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0.0 0 0 0 0.0 100 149 237 1.0 0 0 0 1.0 -1 -1 0 42 #"mrlib/syntax-browser:focused-syntax-color\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0.0 0 0 0 0.0 50 205 50 1.0 0 0 0 1.0 -1 -1 4 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 4 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 0 191 255 1.0 0 0 0 0.0 -1 -1 4 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 0 191 255 1.0 0 0 0 0.0 -1 -1 51 1 #"\0" 0 71 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 25 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 0.5 1 1 1 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 14 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 0.5 1 1 1 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 22 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 0.5 1 1 1 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 19 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 0.5 1 1 1 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1 1 1 1.0 200 0 0 1.0 0 0 0 0.0 -1 -1 4 1 #"\0" 0 -1 1 #"\0" 1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0.0 0 0 0 0.0 0 0 0 1.0 255 255 0 1.0 -1 -1 0 1 #"\0" 0 -1 1 #"\0" 0 11 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 0 1 #"\0" 0 -1 1 #"\0" 0 11 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 255 255 255 1.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 0 11 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0.0 0 0 0 0.0 -1 -1 2 1 #"\0" 0 -1 1 #"\0" 0 11 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0.0 1.0 1.0 1.0 1.0 255 255 255 1.0 0 0 0 0.0 -1 -1 29 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 1.0 0 0 0 1.0 0 0 0 0.0 255 255 255 0.0 -1 -1 52 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 1.0 0 0 0 1.0 0 0 0 0.0 255 255 255 0.0 -1 -1 53 1 #"\0" 0 -1 1 #"\0" 1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 1.0 0 0 0 1.0 0 0 0 0.0 255 255 255 0.0 -1 -1 0 5449 0 29 3 11 #"#lang plait" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 11 #"define-type" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 4 #"numE" 0 0 25 3 2 #" (" 0 0 14 3 1 #"n" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 6 #"Number" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 5 #"boolE" 0 0 25 3 2 #" (" 0 0 14 3 1 #"b" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 7 #"Boolean" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 4 #"notE" 0 0 25 3 2 #" (" 0 0 14 3 4 #"expr" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 5 #"plusE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"lhs" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 3 #") (" 0 0 14 3 3 #"rhs" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 6 #"minusE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"lhs" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 3 #") (" 0 0 14 3 3 #"rhs" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 6 #"timesE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"lhs" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 3 #") (" 0 0 14 3 3 #"rhs" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 5 #"listE" 0 0 25 3 2 #" (" 0 0 14 3 8 #"elements" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 2 #" (" 0 0 14 3 6 #"Listof" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 4 #"))] " 0 0 17 3 6 #";; New" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 4 #"if0E" 0 0 25 3 2 #" (" 0 0 14 3 9 #"test-expr" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 3 #") (" 0 0 14 3 9 #"then-expr" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 3 #") (" 0 0 14 3 9 #"else-expr" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 4 #"recE" 0 0 25 3 2 #" (" 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 6 #"Symbol" 0 0 25 3 3 #") (" 0 0 14 3 2 #"ty" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 2 #"TE" 0 0 25 3 3 #") (" 0 0 14 3 8 #"rhs-expr" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 3 #") (" 0 0 14 3 9 #"body-expr" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 3 #"idE" 0 0 25 3 2 #" (" 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 6 #"Symbol" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 4 #"lamE" 0 0 25 3 2 #" (" 0 0 14 3 5 #"param" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 6 #"Symbol" 0 0 25 3 3 #") (" 0 0 14 3 5 #"argty" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 2 #"TE" 0 0 25 3 3 #") (" 0 0 14 3 4 #"body" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 8 #"lam-expr" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 3 #") (" 0 0 14 3 8 #"arg-expr" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 11 #"define-type" 0 0 25 3 1 #" " 0 0 14 3 5 #"Value" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 4 #"numV" 0 0 25 3 2 #" (" 0 0 14 3 1 #"n" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 6 #"Number" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 5 #"boolV" 0 0 25 3 2 #" (" 0 0 14 3 1 #"b" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 7 #"Boolean" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 5 #"listV" 0 0 25 3 2 #" (" 0 0 14 3 8 #"elements" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 2 #" (" 0 0 14 3 6 #"Listof" 0 0 25 3 1 #" " 0 0 14 3 5 #"Value" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 8 #"closureV" 0 0 25 3 2 #" (" 0 0 14 3 5 #"param" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 6 #"Symbol" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" (" 0 0 14 3 4 #"body" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" (" 0 0 14 3 3 #"env" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 8 #"ValueEnv" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 11 #"define-type" 0 0 25 3 1 #" " 0 0 14 3 2 #"TE" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 5 #"numTE" 0 0 25 3 1 #"]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 6 #"boolTE" 0 0 25 3 1 #"]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 7 #"arrowTE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"arg" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 2 #"TE" 0 0 25 3 3 #") (" 0 0 14 3 6 #"result" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 2 #"TE" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 6 #"listTE" 0 0 25 3 2 #" (" 0 0 14 3 7 #"element" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 2 #"TE" 0 0 25 3 3 #")] " 0 0 17 3 6 #";; New" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 7 #"guessTE" 0 0 25 3 2 #"])" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 11 #"define-type" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 4 #"numT" 0 0 25 3 1 #"]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 5 #"boolT" 0 0 25 3 1 #"]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 3 #"arg" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 3 #") (" 0 0 14 3 6 #"result" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 7 #"element" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 3 #")] " 0 0 17 3 6 #";; New" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 4 #"varT" 0 0 25 3 2 #" (" 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 6 #"Number" 0 0 25 3 3 #") (" 0 0 14 3 3 #"val" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 2 #" (" 0 0 14 3 5 #"Boxof" 0 0 25 3 2 #" (" 0 0 14 3 8 #"Optionof" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 5 #")))])" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 11 #"define-type" 0 0 25 3 1 #" " 0 0 14 3 8 #"ValueEnv" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 13 #"EmptyValueEnv" 0 0 25 3 1 #"]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 9 #"BindValue" 0 0 25 3 2 #" (" 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 6 #"Symbol" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 14 #" (" 0 0 14 3 5 #"value" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 5 #"Value" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 14 #" (" 0 0 14 3 4 #"rest" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 8 #"ValueEnv" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 12 #"RecBindValue" 0 0 25 3 2 #" (" 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 6 #"Symbol" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 17 #" (" 0 0 14 3 9 #"value-box" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 2 #" (" 0 0 14 3 5 #"Boxof" 0 0 25 3 1 #" " 0 0 14 3 5 #"Value" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 17 #" (" 0 0 14 3 4 #"rest" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 8 #"ValueEnv" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 11 #"define-type" 0 0 25 3 1 #" " 0 0 14 3 7 #"TypeEnv" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 12 #"EmptyTypeEnv" 0 0 25 3 1 #"]" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" [" 0 0 14 3 8 #"BindType" 0 0 25 3 2 #" (" 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 6 #"Symbol" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" (" 0 0 14 3 4 #"type" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" (" 0 0 14 3 4 #"rest" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 7 #"TypeEnv" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 17 3 63 #";; num-op : (Number Number -> Number) -> (Value Value -> Value)" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 6 #"num-op" 0 0 25 3 1 #" " 0 0 14 3 2 #"op" 0 0 25 3 1 #" " 0 0 14 3 7 #"op-name" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"y" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"numV" 0 0 25 3 2 #" (" 0 0 14 3 2 #"op" 0 0 25 3 2 #" (" 0 0 14 3 6 #"numV-n" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 3 #") (" 0 0 14 3 6 #"numV-n" 0 0 25 3 1 #" " 0 0 14 3 1 #"y" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 4 #"num+" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"y" 0 0 25 3 3 #") (" 0 0 14 3 6 #"num-op" 0 0 25 3 1 #" " 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"y" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 4 #"num-" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"y" 0 0 25 3 3 #") (" 0 0 14 3 6 #"num-op" 0 0 25 3 1 #" " 0 0 14 3 1 #"-" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"-" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"y" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 4 #"num*" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"y" 0 0 25 3 3 #") (" 0 0 14 3 6 #"num-op" 0 0 25 3 1 #" " 0 0 14 3 1 #"*" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"*" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"y" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 8 #"numzero?" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 3 #") (" 0 0 14 3 1 #"=" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 2 #" (" 0 0 14 3 6 #"numV-n" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 17 3 28 #";; interp : Exp Env -> Value" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 5 #"a-exp" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 1 #" " 0 0 14 3 5 #"a-exp" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 14 3 1 #"n" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 14 3 1 #"n" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 5 #"boolE" 0 0 25 3 1 #" " 0 0 14 3 1 #"b" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolV" 0 0 25 3 1 #" " 0 0 14 3 1 #"b" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"notE" 0 0 25 3 1 #" " 0 0 14 3 1 #"e" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolV" 0 0 25 3 2 #" (" 0 0 14 3 3 #"not" 0 0 25 3 2 #" (" 0 0 14 3 7 #"boolV-b" 0 0 25 3 2 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 1 #"e" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 5 #"))))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 5 #"plusE" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 3 #") (" 0 0 14 3 4 #"num+" 0 0 25 3 2 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #") (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 6 #"minusE" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 3 #") (" 0 0 14 3 4 #"num-" 0 0 25 3 2 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #") (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 6 #"timesE" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 3 #") (" 0 0 14 3 4 #"num*" 0 0 25 3 2 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #") (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 5 #"listE" 0 0 25 3 1 #" " 0 0 14 3 8 #"elements" 0 0 25 3 3 #") (" 0 0 14 3 5 #"listV" 0 0 25 3 2 #" (" 0 0 14 3 3 #"map" 0 0 25 3 2 #" (" 0 0 15 3 6 #"lambda" 0 0 25 3 2 #" (" 0 0 14 3 1 #"x" 0 0 25 3 3 #") (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #")) " 0 0 14 3 8 #"elements" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 3 #") (" 0 0 14 3 6 #"lookup" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"if0E" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 3 1 #" " 0 0 14 3 9 #"then-part" 0 0 25 3 1 #" " 0 0 14 3 9 #"else-part" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 14 3 2 #"if" 0 0 25 3 2 #" (" 0 0 14 3 8 #"numzero?" 0 0 25 3 2 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 9 #"then-part" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 9 #"else-part" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"recE" 0 0 25 3 1 #" " 0 0 14 3 8 #"bound-id" 0 0 25 3 1 #" " 0 0 14 3 4 #"type" 0 0 25 3 1 #" " 0 0 14 3 10 #"named-expr" 0 0 25 3 1 #" " 0 0 14 3 9 #"body-expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 15 3 4 #"let*" 0 0 25 3 3 #" ([" 0 0 14 3 12 #"value-holder" 0 0 25 3 2 #" (" 0 0 14 3 3 #"box" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 2 #"42" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" [" 0 0 14 3 7 #"new-env" 0 0 25 3 2 #" (" 0 0 14 3 12 #"RecBindValue" 0 0 25 3 1 #" " 0 0 14 3 8 #"bound-id" 0 0 25 3 1 #" " 0 0 14 3 12 #"value-holder" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 15 3 5 #"begin" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 8 #"set-box!" 0 0 25 3 1 #" " 0 0 14 3 12 #"value-holder" 0 0 25 3 2 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 10 #"named-expr" 0 0 25 3 1 #" " 0 0 14 3 7 #"new-env" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 9 #"body-expr" 0 0 25 3 1 #" " 0 0 14 3 7 #"new-env" 0 0 25 3 4 #")))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"lamE" 0 0 25 3 1 #" " 0 0 14 3 5 #"param" 0 0 25 3 1 #" " 0 0 14 3 6 #"arg-te" 0 0 25 3 1 #" " 0 0 14 3 9 #"body-expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 14 3 8 #"closureV" 0 0 25 3 1 #" " 0 0 14 3 5 #"param" 0 0 25 3 1 #" " 0 0 14 3 9 #"body-expr" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"appE" 0 0 25 3 1 #" " 0 0 14 3 8 #"lam-expr" 0 0 25 3 1 #" " 0 0 14 3 8 #"arg-expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 15 3 5 #"local" 0 0 25 3 3 #" [(" 0 0 15 3 6 #"define" 0 0 25 3 1 #" " 0 0 14 3 7 #"lam-val" 0 0 25 29 1 #"\n" 0 0 25 3 16 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 8 #"lam-expr" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 14 #" (" 0 0 15 3 6 #"define" 0 0 25 3 1 #" " 0 0 14 3 7 #"arg-val" 0 0 25 29 1 #"\n" 0 0 25 3 16 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 8 #"arg-expr" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 2 #" (" 0 0 14 3 13 #"closureV-body" 0 0 25 3 1 #" " 0 0 14 3 7 #"lam-val" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 14 #" (" 0 0 14 3 9 #"BindValue" 0 0 25 3 2 #" (" 0 0 14 3 14 #"closureV-param" 0 0 25 3 1 #" " 0 0 14 3 7 #"lam-val" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 24 #" " 0 0 14 3 7 #"arg-val" 0 0 25 29 1 #"\n" 0 0 25 3 25 #" (" 0 0 14 3 12 #"closureV-env" 0 0 25 3 1 #" " 0 0 14 3 7 #"lam-val" 0 0 25 3 7 #"))))]))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 14 3 6 #"s-expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 14 3 6 #"s-expr" 0 0 25 3 3 #") (" 0 0 14 3 13 #"EmptyValueEnv" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 5 #"check" 0 0 25 3 1 #" " 0 0 14 3 6 #"s-expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 14 3 6 #"s-expr" 0 0 25 3 3 #") (" 0 0 14 3 12 #"EmptyTypeEnv" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 6 #"lookup" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 8 #"ValueEnv" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 13 #"EmptyValueEnv" 0 0 25 3 3 #") (" 0 0 14 3 5 #"error" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 6 #"lookup" 0 0 25 3 1 #" " 0 0 19 3 15 #"\"free variable\"" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 9 #"BindValue" 0 0 25 3 1 #" " 0 0 14 3 8 #"sub-name" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 1 #" " 0 0 14 3 8 #"rest-env" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 14 3 2 #"if" 0 0 25 3 2 #" (" 0 0 14 3 6 #"equal?" 0 0 25 3 1 #" " 0 0 14 3 8 #"sub-name" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" " 0 0 14 3 3 #"num" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 6 #"lookup" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 8 #"rest-env" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 12 #"RecBindValue" 0 0 25 3 1 #" " 0 0 14 3 8 #"sub-name" 0 0 25 3 1 #" " 0 0 14 3 7 #"val-box" 0 0 25 3 1 #" " 0 0 14 3 8 #"rest-env" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 14 3 2 #"if" 0 0 25 3 2 #" (" 0 0 14 3 6 #"equal?" 0 0 25 3 1 #" " 0 0 14 3 8 #"sub-name" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 5 #"unbox" 0 0 25 3 1 #" " 0 0 14 3 7 #"val-box" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 6 #"lookup" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 8 #"rest-env" 0 0 25 3 5 #"))]))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 11 #"parse-error" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 5 #"error" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 5 #"parse" 0 0 25 3 2 #" (" 0 0 14 3 13 #"string-append" 0 0 25 3 1 #" " 0 0 19 3 15 #"\"parse error: \"" 0 0 25 3 2 #" (" 0 0 14 3 9 #"to-string" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #" " 0 0 14 3 1 #"n" 0 0 25 3 3 #") (" 0 0 14 3 8 #"list-ref" 0 0 25 3 2 #" (" 0 0 14 3 11 #"s-exp->list" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 2 #") " 0 0 14 3 1 #"n" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 5 #"local" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" [(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 14 3 1 #"i" 0 0 25 3 3 #") (" 0 0 14 3 5 #"parse" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #" " 0 0 14 3 1 #"i" 0 0 25 3 4 #")))]" 0 0 25 29 1 #"\n" 0 0 25 3 5 #" (" 0 0 15 3 4 #"cond" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" [(" 0 0 14 3 13 #"s-exp-number?" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 2 #" (" 0 0 14 3 13 #"s-exp->number" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" [(" 0 0 14 3 13 #"s-exp-symbol?" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 15 3 3 #"let" 0 0 25 3 3 #" ([" 0 0 14 3 3 #"sym" 0 0 25 3 2 #" (" 0 0 14 3 13 #"s-exp->symbol" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 15 3 4 #"case" 0 0 25 3 1 #" " 0 0 14 3 3 #"sym" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" [(" 0 0 14 3 4 #"true" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolE" 0 0 25 3 1 #" " 0 0 22 3 2 #"#t" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" [(" 0 0 14 3 5 #"false" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolE" 0 0 25 3 1 #" " 0 0 22 3 2 #"#f" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 12 #" [" 0 0 14 3 4 #"else" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 14 3 3 #"sym" 0 0 25 3 5 #")]))]" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" [(" 0 0 14 3 12 #"s-exp-match?" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"(" 0 0 14 3 4 #"list" 0 0 25 3 1 #" " 0 0 14 3 3 #"ANY" 0 0 25 3 1 #" " 0 0 14 3 3 #"..." 0 0 25 3 2 #") " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 14 3 5 #"listE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"map" 0 0 25 3 2 #" (" 0 0 15 3 6 #"lambda" 0 0 25 3 2 #" (" 0 0 14 3 3 #"elt" 0 0 25 3 3 #") (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 14 3 3 #"elt" 0 0 25 3 4 #")) (" 0 0 14 3 4 #"rest" 0 0 25 3 2 #" (" 0 0 14 3 11 #"s-exp->list" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 5 #"))))]" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" [(" 0 0 14 3 12 #"s-exp-match?" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"(" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" (" 0 0 14 3 6 #"SYMBOL" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"ANY" 0 0 25 3 2 #") " 0 0 14 3 3 #"ANY" 0 0 25 3 2 #") " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 15 3 4 #"let*" 0 0 25 3 3 #" ([" 0 0 14 3 4 #"args" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" [" 0 0 14 3 2 #"id" 0 0 25 3 2 #" (" 0 0 14 3 13 #"s-exp->symbol" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 4 #"args" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" [" 0 0 14 3 2 #"te" 0 0 25 3 2 #" (" 0 0 14 3 8 #"parse-te" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 4 #"args" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" [" 0 0 14 3 4 #"body" 0 0 25 3 2 #" (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 4 #"lamE" 0 0 25 3 1 #" " 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 2 #"te" 0 0 25 3 1 #" " 0 0 14 3 4 #"body" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" [(" 0 0 14 3 12 #"s-exp-match?" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"(" 0 0 15 3 3 #"rec" 0 0 25 3 2 #" (" 0 0 14 3 6 #"SYMBOL" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"ANY" 0 0 25 3 2 #") " 0 0 14 3 3 #"ANY" 0 0 25 3 1 #" " 0 0 14 3 3 #"ANY" 0 0 25 3 2 #") " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 15 3 4 #"let*" 0 0 25 3 3 #" ([" 0 0 14 3 4 #"args" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" [" 0 0 14 3 2 #"id" 0 0 25 3 2 #" (" 0 0 14 3 13 #"s-exp->symbol" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 4 #"args" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" [" 0 0 14 3 2 #"te" 0 0 25 3 2 #" (" 0 0 14 3 8 #"parse-te" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 4 #"args" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" [" 0 0 14 3 3 #"rhs" 0 0 25 3 2 #" (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" [" 0 0 14 3 4 #"body" 0 0 25 3 2 #" (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"3" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 4 #"recE" 0 0 25 3 1 #" " 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 2 #"te" 0 0 25 3 1 #" " 0 0 14 3 3 #"rhs" 0 0 25 3 1 #" " 0 0 14 3 4 #"body" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" [(" 0 0 14 3 12 #"s-exp-match?" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"(" 0 0 14 3 3 #"ANY" 0 0 25 3 1 #" " 0 0 14 3 3 #"ANY" 0 0 25 3 2 #") " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 15 3 4 #"cond" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" [(" 0 0 14 3 6 #"equal?" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 2 #") " 0 0 22 3 1 #"`" 0 0 14 3 3 #"not" 0 0 25 3 3 #") (" 0 0 14 3 4 #"notE" 0 0 25 3 1 #"(" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" [" 0 0 14 3 4 #"else" 0 0 25 3 2 #" (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 3 #") (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 5 #"))])]" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" [(" 0 0 14 3 11 #"s-exp-list?" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 15 3 4 #"case" 0 0 25 3 2 #" (" 0 0 14 3 13 #"s-exp->symbol" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" [(" 0 0 14 3 1 #"+" 0 0 25 3 3 #") (" 0 0 14 3 5 #"plusE" 0 0 25 3 2 #" (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 3 #") (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" [(" 0 0 14 3 1 #"-" 0 0 25 3 3 #") (" 0 0 14 3 6 #"minusE" 0 0 25 3 2 #" (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 3 #") (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" [(" 0 0 14 3 1 #"*" 0 0 25 3 3 #") (" 0 0 14 3 6 #"timesE" 0 0 25 3 2 #" (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 3 #") (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" [(" 0 0 14 3 3 #"if0" 0 0 25 3 3 #") (" 0 0 14 3 4 #"if0E" 0 0 25 3 2 #" (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 3 #") (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #") (" 0 0 14 3 2 #"px" 0 0 25 3 1 #" " 0 0 22 3 1 #"3" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" [" 0 0 14 3 4 #"else" 0 0 25 3 2 #" (" 0 0 14 3 11 #"parse-error" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 4 #")])]" 0 0 25 29 1 #"\n" 0 0 25 3 7 #" [" 0 0 14 3 4 #"else" 0 0 25 3 2 #" (" 0 0 14 3 11 #"parse-error" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 5 #")])))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 8 #"parse-te" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 4 #"cond" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 13 #"s-exp-symbol?" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 15 3 4 #"case" 0 0 25 3 2 #" (" 0 0 14 3 13 #"s-exp->symbol" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 3 #"num" 0 0 25 3 3 #") (" 0 0 14 3 5 #"numTE" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 4 #"bool" 0 0 25 3 3 #") (" 0 0 14 3 6 #"boolTE" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 1 #"?" 0 0 25 3 3 #") (" 0 0 14 3 7 #"guessTE" 0 0 25 3 4 #")])]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 12 #"s-exp-match?" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"(" 0 0 14 3 3 #"ANY" 0 0 25 3 1 #" " 0 0 14 3 2 #"->" 0 0 25 3 1 #" " 0 0 14 3 3 #"ANY" 0 0 25 3 2 #") " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 14 3 7 #"arrowTE" 0 0 25 3 2 #" (" 0 0 14 3 8 #"parse-te" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 4 #")) (" 0 0 14 3 8 #"parse-te" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 4 #")))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 12 #"s-exp-match?" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"(" 0 0 14 3 6 #"listof" 0 0 25 3 1 #" " 0 0 14 3 3 #"ANY" 0 0 25 3 2 #") " 0 0 14 3 2 #"sx" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 14 3 6 #"listTE" 0 0 25 3 2 #" (" 0 0 14 3 8 #"parse-te" 0 0 25 3 2 #" (" 0 0 14 3 6 #"sx-ref" 0 0 25 3 1 #" " 0 0 14 3 2 #"sx" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 6 #")))]))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 6 #"define" 0 0 25 3 1 #" " 0 0 14 3 8 #"fact-rec" 0 0 25 29 1 #"\n" 0 0 25 3 5 #" (" 0 0 14 3 4 #"recE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 4 #"fact" 0 0 25 3 2 #" (" 0 0 14 3 7 #"arrowTE" 0 0 25 3 2 #" (" 0 0 14 3 5 #"numTE" 0 0 25 3 3 #") (" 0 0 14 3 5 #"numTE" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 4 #"lamE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"n" 0 0 25 3 2 #" (" 0 0 14 3 5 #"numTE" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" (" 0 0 14 3 4 #"if0E" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"n" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 20 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 20 #" (" 0 0 14 3 6 #"timesE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"n" 0 0 25 3 3 #") (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 4 #"fact" 0 0 25 3 3 #") (" 0 0 14 3 6 #"minusE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"n" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 6 #"))))))" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 4 #"fact" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"5" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 6 #"define" 0 0 25 3 1 #" " 0 0 14 3 17 #"fact-rec-concrete" 0 0 25 29 1 #"\n" 0 0 25 3 4 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 15 3 3 #"rec" 0 0 25 3 2 #" {" 0 0 14 3 4 #"fact" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 2 #" {" 0 0 14 3 3 #"num" 0 0 25 3 1 #" " 0 0 14 3 2 #"->" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 2 #"}}" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" {" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"n" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 1 #"}" 0 0 25 29 1 #"\n" 0 0 25 3 16 #" {" 0 0 14 3 3 #"if0" 0 0 25 3 1 #" " 0 0 14 3 1 #"n" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" {" 0 0 14 3 1 #"*" 0 0 25 3 1 #" " 0 0 14 3 1 #"n" 0 0 25 3 2 #" {" 0 0 14 3 4 #"fact" 0 0 25 3 2 #" {" 0 0 14 3 1 #"-" 0 0 25 3 1 #" " 0 0 14 3 1 #"n" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 5 #"}}}}}" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" {" 0 0 14 3 4 #"fact" 0 0 25 3 1 #" " 0 0 22 3 1 #"5" 0 0 25 3 3 #"}})" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 6 #"define" 0 0 25 3 1 #" " 0 0 14 3 7 #"fib-rec" 0 0 25 29 1 #"\n" 0 0 25 3 5 #" (" 0 0 14 3 4 #"recE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 3 #"fib" 0 0 25 3 2 #" (" 0 0 14 3 7 #"arrowTE" 0 0 25 3 2 #" (" 0 0 14 3 5 #"numTE" 0 0 25 3 3 #") (" 0 0 14 3 5 #"numTE" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 4 #"lamE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 2 #" (" 0 0 14 3 5 #"numTE" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" (" 0 0 14 3 4 #"if0E" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 20 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 20 #" (" 0 0 14 3 4 #"if0E" 0 0 25 3 2 #" (" 0 0 14 3 6 #"minusE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 25 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 25 #" (" 0 0 14 3 5 #"plusE" 0 0 25 3 2 #" (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 3 #"fib" 0 0 25 3 3 #") (" 0 0 14 3 6 #"minusE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 3 30 #" (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 3 #"fib" 0 0 25 3 3 #") (" 0 0 14 3 6 #"minusE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 7 #")))))))" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 3 #"fib" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"4" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 6 #"define" 0 0 25 3 1 #" " 0 0 14 3 16 #"fib-rec-concrete" 0 0 25 29 1 #"\n" 0 0 25 3 4 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 15 3 3 #"rec" 0 0 25 3 2 #" {" 0 0 14 3 3 #"fib" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 2 #" {" 0 0 14 3 3 #"num" 0 0 25 3 1 #" " 0 0 14 3 2 #"->" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 2 #"}}" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" {" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 1 #"}" 0 0 25 29 1 #"\n" 0 0 25 3 16 #" {" 0 0 14 3 3 #"if0" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" {" 0 0 14 3 3 #"if0" 0 0 25 3 2 #" {" 0 0 14 3 1 #"-" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #"}" 0 0 25 29 1 #"\n" 0 0 25 3 25 #" " 0 0 22 3 1 #"1" 0 0 25 29 1 #"\n" 0 0 25 3 26 #" {" 0 0 14 3 1 #"+" 0 0 25 3 2 #" {" 0 0 14 3 3 #"fib" 0 0 25 3 2 #" {" 0 0 14 3 1 #"-" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 2 #"}}" 0 0 25 29 1 #"\n" 0 0 25 3 29 #" {" 0 0 14 3 3 #"fib" 0 0 25 3 2 #" {" 0 0 14 3 1 #"-" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 6 #"}}}}}}" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" {" 0 0 14 3 3 #"fib" 0 0 25 3 1 #" " 0 0 22 3 1 #"4" 0 0 25 3 3 #"}})" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" )" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 17 #"print-only-errors" 0 0 25 3 1 #" " 0 0 22 3 2 #"#t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 22 3 2 #"`3" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"3" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 14 3 1 #"x" 0 0 25 3 3 #") (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 4 #"}) (" 0 0 14 3 5 #"plusE" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"-" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 4 #"}) (" 0 0 14 3 6 #"minusE" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 2 #"} " 0 0 14 3 1 #"x" 0 0 25 3 4 #"}) (" 0 0 14 3 4 #"lamE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 2 #" (" 0 0 14 3 5 #"numTE" 0 0 25 3 3 #") (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"f" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 4 #"}) (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"f" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"if0" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 4 #"}) (" 0 0 14 3 4 #"if0E" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 19 3 5 #"\"foo\"" 0 0 25 3 2 #") " 0 0 19 3 13 #"\"parse error\"" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"foo" 0 0 25 3 3 #"}) " 0 0 19 3 13 #"\"parse error\"" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" " 0 0 22 3 1 #"`" 0 0 25 3 2 #"{{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 1 #"}" 0 0 25 29 1 #"\n" 0 0 25 3 18 #" {{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"f" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 2 #" {" 0 0 14 3 3 #"num" 0 0 25 3 1 #" " 0 0 14 3 2 #"->" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 2 #"}}" 0 0 25 29 1 #"\n" 0 0 25 3 23 #" {" 0 0 14 3 1 #"+" 0 0 25 3 2 #" {" 0 0 14 3 1 #"f" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #"}" 0 0 25 29 1 #"\n" 0 0 25 3 27 #" {{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 1 #"}" 0 0 25 29 1 #"\n" 0 0 25 3 32 #" {" 0 0 14 3 1 #"f" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 2 #"}}" 0 0 25 29 1 #"\n" 0 0 25 3 26 #" " 0 0 22 3 1 #"3" 0 0 25 3 3 #"}}}" 0 0 25 29 1 #"\n" 0 0 25 3 18 #" {" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"y" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 3 #"} {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"y" 0 0 25 3 4 #"}}}}" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" " 0 0 22 3 1 #"0" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 4 #"lamE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 2 #" (" 0 0 14 3 5 #"numTE" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 20 #" (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 4 #"lamE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"f" 0 0 25 3 2 #" (" 0 0 14 3 7 #"arrowTE" 0 0 25 3 2 #" (" 0 0 14 3 5 #"numTE" 0 0 25 3 3 #") (" 0 0 14 3 5 #"numTE" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 31 #" (" 0 0 14 3 5 #"plusE" 0 0 25 3 2 #" (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"f" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 36 #" (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 4 #"lamE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 2 #" (" 0 0 14 3 5 #"numTE" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 47 #" (" 0 0 14 3 4 #"appE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"f" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 53 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 3 42 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"3" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 3 26 #" (" 0 0 14 3 4 #"lamE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"y" 0 0 25 3 2 #" (" 0 0 14 3 5 #"numTE" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 31 #" (" 0 0 14 3 5 #"plusE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 3 #") (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"y" 0 0 25 3 5 #")))))" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 14 3 16 #"fib-rec-concrete" 0 0 25 3 2 #") " 0 0 14 3 7 #"fib-rec" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 10 #"parse-type" 0 0 25 3 1 #" " 0 0 14 3 2 #"te" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 2 #"TE" 0 0 25 3 1 #" " 0 0 14 3 2 #"te" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 5 #"numTE" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 6 #"boolTE" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolT" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 7 #"arrowTE" 0 0 25 3 1 #" " 0 0 14 3 1 #"a" 0 0 25 3 1 #" " 0 0 14 3 1 #"b" 0 0 25 3 3 #") (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 10 #"parse-type" 0 0 25 3 1 #" " 0 0 14 3 1 #"a" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 28 #" (" 0 0 14 3 10 #"parse-type" 0 0 25 3 1 #" " 0 0 14 3 1 #"b" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 7 #"guessTE" 0 0 25 3 2 #")(" 0 0 14 3 4 #"varT" 0 0 25 3 2 #" (" 0 0 14 3 12 #"gen-tvar-id!" 0 0 25 3 3 #") (" 0 0 14 3 3 #"box" 0 0 25 3 2 #" (" 0 0 14 3 4 #"none" 0 0 25 3 4 #")))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 6 #"listTE" 0 0 25 3 1 #" " 0 0 14 3 10 #"element-te" 0 0 25 3 3 #") (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 10 #"parse-type" 0 0 25 3 1 #" " 0 0 14 3 10 #"element-te" 0 0 25 3 5 #"))]))" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 11 #"type-lookup" 0 0 25 3 1 #" " 0 0 14 3 12 #"name-to-find" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 7 #"TypeEnv" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 12 #"EmptyTypeEnv" 0 0 25 3 4 #" ) (" 0 0 14 3 5 #"error" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 11 #"type-lookup" 0 0 25 3 1 #" " 0 0 19 3 27 #"\"free variable, so no type\"" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 8 #"BindType" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 2 #"ty" 0 0 25 3 1 #" " 0 0 14 3 4 #"rest" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 14 3 2 #"if" 0 0 25 3 2 #" (" 0 0 14 3 8 #"symbol=?" 0 0 25 3 1 #" " 0 0 14 3 12 #"name-to-find" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" " 0 0 14 3 2 #"ty" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 11 #"type-lookup" 0 0 25 3 1 #" " 0 0 14 3 12 #"name-to-find" 0 0 25 3 1 #" " 0 0 14 3 4 #"rest" 0 0 25 3 5 #"))]))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 1 #" " 0 0 14 3 12 #"gen-tvar-id!" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 3 #"let" 0 0 25 3 3 #" ((" 0 0 14 3 7 #"counter" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 6 #"lambda" 0 0 25 3 3 #" ()" 0 0 25 29 1 #"\n" 0 0 25 3 5 #" (" 0 0 15 3 5 #"begin" 0 0 25 29 1 #"\n" 0 0 25 3 7 #" (" 0 0 14 3 4 #"set!" 0 0 25 3 1 #" " 0 0 14 3 7 #"counter" 0 0 25 3 2 #" (" 0 0 14 3 4 #"add1" 0 0 25 3 1 #" " 0 0 14 3 7 #"counter" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" " 0 0 14 3 7 #"counter" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 7 #"resolve" 0 0 25 3 1 #" " 0 0 14 3 1 #"t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 1 #" " 0 0 14 3 1 #"t" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"varT" 0 0 25 3 1 #" " 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 3 #"val" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 2 #" (" 0 0 14 3 8 #"Optionof" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 3 #") (" 0 0 14 3 5 #"unbox" 0 0 25 3 1 #" " 0 0 14 3 3 #"val" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 4 #"none" 0 0 25 3 2 #") " 0 0 14 3 1 #"t" 0 0 25 3 1 #"]" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 4 #"some" 0 0 25 3 1 #" " 0 0 14 3 2 #"t2" 0 0 25 3 3 #") (" 0 0 14 3 7 #"resolve" 0 0 25 3 1 #" " 0 0 14 3 2 #"t2" 0 0 25 3 4 #")])]" 0 0 25 29 1 #"\n" 0 0 25 3 5 #" [" 0 0 14 3 4 #"else" 0 0 25 3 1 #" " 0 0 14 3 1 #"t" 0 0 25 3 3 #"]))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 14 #"uses-type-var?" 0 0 25 3 1 #" " 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 1 #"t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 2 #" (" 0 0 14 3 7 #"resolve" 0 0 25 3 1 #" " 0 0 14 3 1 #"t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"varT" 0 0 25 3 1 #" " 0 0 14 3 4 #"t-id" 0 0 25 3 1 #" " 0 0 14 3 3 #"val" 0 0 25 3 3 #") (" 0 0 14 3 1 #"=" 0 0 25 3 1 #" " 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 4 #"t-id" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 6 #"arrowT" 0 0 25 3 1 #" " 0 0 14 3 1 #"a" 0 0 25 3 1 #" " 0 0 14 3 1 #"b" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 14 3 2 #"or" 0 0 25 3 2 #" (" 0 0 14 3 14 #"uses-type-var?" 0 0 25 3 1 #" " 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 1 #"a" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 14 #"uses-type-var?" 0 0 25 3 1 #" " 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 1 #"b" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 5 #" [" 0 0 14 3 4 #"else" 0 0 25 3 1 #" " 0 0 22 3 2 #"#f" 0 0 25 3 3 #"]))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 7 #"occurs?" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 1 #" " 0 0 14 3 1 #"t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"varT" 0 0 25 3 1 #" " 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 3 #"val" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 2 #" (" 0 0 14 3 7 #"resolve" 0 0 25 3 1 #" " 0 0 14 3 1 #"t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 6 #"arrowT" 0 0 25 3 1 #" " 0 0 14 3 1 #"a" 0 0 25 3 1 #" " 0 0 14 3 1 #"b" 0 0 25 3 3 #") (" 0 0 14 3 14 #"uses-type-var?" 0 0 25 3 1 #" " 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 1 #"t" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" [" 0 0 14 3 4 #"else" 0 0 25 3 1 #" " 0 0 22 3 2 #"#f" 0 0 25 3 3 #"])]" 0 0 25 29 1 #"\n" 0 0 25 3 5 #" [" 0 0 14 3 4 #"else" 0 0 25 3 2 #" (" 0 0 14 3 17 #"expected-type-var" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 7 #"occurs?" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 4 #")]))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 10 #"type-error" 0 0 25 3 1 #" " 0 0 14 3 3 #"exp" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 3 1 #" " 0 0 14 3 2 #"t2" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 5 #"error" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 9 #"typecheck" 0 0 25 3 2 #" (" 0 0 14 3 13 #"string-append" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" " 0 0 19 3 11 #"\"no type: \"" 0 0 25 29 1 #"\n" 0 0 25 3 22 #" (" 0 0 14 3 13 #"string-append" 0 0 25 29 1 #"\n" 0 0 25 3 23 #" (" 0 0 14 3 9 #"to-string" 0 0 25 3 1 #" " 0 0 14 3 3 #"exp" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 23 #" (" 0 0 14 3 13 #"string-append" 0 0 25 29 1 #"\n" 0 0 25 3 23 #" " 0 0 19 3 8 #"\" type \"" 0 0 25 29 1 #"\n" 0 0 25 3 24 #" (" 0 0 14 3 13 #"string-append" 0 0 25 29 1 #"\n" 0 0 25 3 25 #" (" 0 0 14 3 9 #"to-string" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 25 #" (" 0 0 14 3 13 #"string-append" 0 0 25 29 1 #"\n" 0 0 25 3 25 #" " 0 0 19 3 7 #"\" vs. \"" 0 0 25 29 1 #"\n" 0 0 25 3 26 #" (" 0 0 14 3 9 #"to-string" 0 0 25 3 1 #" " 0 0 14 3 2 #"t2" 0 0 25 3 8 #"))))))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 17 #"expected-type-var" 0 0 25 3 1 #" " 0 0 14 3 5 #"where" 0 0 25 3 1 #" " 0 0 14 3 4 #"type" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 5 #"error" 0 0 25 3 1 #" " 0 0 14 3 5 #"where" 0 0 25 3 2 #" (" 0 0 14 3 13 #"string-append" 0 0 25 3 1 #" " 0 0 19 3 22 #"\"not a type variable \"" 0 0 25 3 2 #" (" 0 0 14 3 9 #"to-string" 0 0 25 3 1 #" " 0 0 14 3 4 #"type" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 15 #"unify-type-var!" 0 0 25 3 1 #" " 0 0 14 3 1 #"T" 0 0 25 3 1 #" " 0 0 14 3 4 #"tau2" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 1 #" " 0 0 14 3 1 #"T" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"varT" 0 0 25 3 1 #" " 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 3 #"val" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 2 #" (" 0 0 14 3 8 #"Optionof" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 3 #") (" 0 0 14 3 5 #"unbox" 0 0 25 3 1 #" " 0 0 14 3 3 #"val" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 4 #"some" 0 0 25 3 1 #" " 0 0 14 3 4 #"tau1" 0 0 25 3 3 #") (" 0 0 14 3 6 #"unify!" 0 0 25 3 1 #" " 0 0 14 3 4 #"tau1" 0 0 25 3 1 #" " 0 0 14 3 4 #"tau2" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 4 #"none" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" (" 0 0 15 3 3 #"let" 0 0 25 3 3 #" ([" 0 0 14 3 2 #"t3" 0 0 25 3 2 #" (" 0 0 14 3 7 #"resolve" 0 0 25 3 1 #" " 0 0 14 3 4 #"tau2" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" (" 0 0 15 3 4 #"cond" 0 0 25 29 1 #"\n" 0 0 25 3 14 #" [(" 0 0 14 3 6 #"equal?" 0 0 25 3 1 #" " 0 0 14 3 1 #"T" 0 0 25 3 1 #" " 0 0 14 3 2 #"t3" 0 0 25 3 3 #") (" 0 0 14 3 4 #"void" 0 0 25 3 3 #")] " 0 0 17 3 40 #";; nothing to unify, same type variables" 0 0 25 29 1 #"\n" 0 0 25 3 14 #" [(" 0 0 14 3 7 #"occurs?" 0 0 25 3 1 #" " 0 0 14 3 1 #"T" 0 0 25 3 1 #" " 0 0 14 3 2 #"t3" 0 0 25 3 4 #") (" 0 0 14 3 10 #"type-error" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 1 #" " 0 0 14 3 1 #"T" 0 0 25 3 1 #" " 0 0 14 3 2 #"t3" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" [" 0 0 14 3 4 #"else" 0 0 25 3 3 #" (" 0 0 14 3 8 #"set-box!" 0 0 25 3 1 #" " 0 0 14 3 3 #"val" 0 0 25 3 2 #" (" 0 0 14 3 4 #"some" 0 0 25 3 1 #" " 0 0 14 3 2 #"t3" 0 0 25 3 8 #"))]))])]" 0 0 25 29 1 #"\n" 0 0 25 3 5 #" [" 0 0 14 3 4 #"else" 0 0 25 3 2 #" (" 0 0 14 3 17 #"expected-type-var" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 15 #"unify-type-var!" 0 0 25 3 1 #" " 0 0 14 3 1 #"T" 0 0 25 3 4 #")]))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 13 #"unify-assert!" 0 0 25 3 1 #" " 0 0 14 3 3 #"tau" 0 0 25 3 1 #" " 0 0 14 3 8 #"type-val" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 6 #"unless" 0 0 25 3 2 #" (" 0 0 14 3 6 #"equal?" 0 0 25 3 1 #" " 0 0 14 3 3 #"tau" 0 0 25 3 1 #" " 0 0 14 3 8 #"type-val" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 5 #" (" 0 0 14 3 10 #"type-error" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 1 #" " 0 0 14 3 3 #"tau" 0 0 25 3 1 #" " 0 0 14 3 8 #"type-val" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 17 3 45 #";; third argument is just for error reporting" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 3 1 #" " 0 0 14 3 2 #"t2" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"varT" 0 0 25 3 1 #" " 0 0 14 3 2 #"id" 0 0 25 3 1 #" " 0 0 14 3 3 #"is1" 0 0 25 3 3 #") (" 0 0 14 3 15 #"unify-type-var!" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 3 1 #" " 0 0 14 3 2 #"t2" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 5 #" [" 0 0 14 3 4 #"else" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 1 #" " 0 0 14 3 2 #"t2" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 4 #"varT" 0 0 25 3 1 #" " 0 0 14 3 3 #"id2" 0 0 25 3 1 #" " 0 0 14 3 3 #"is2" 0 0 25 3 3 #") (" 0 0 14 3 15 #"unify-type-var!" 0 0 25 3 1 #" " 0 0 14 3 2 #"t2" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 4 #"numT" 0 0 25 3 3 #") (" 0 0 14 3 13 #"unify-assert!" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #") " 0 0 14 3 4 #"expr" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 5 #"boolT" 0 0 25 3 3 #") (" 0 0 14 3 13 #"unify-assert!" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 2 #") " 0 0 14 3 4 #"expr" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 5 #"listT" 0 0 25 3 1 #" " 0 0 14 3 12 #"element-type" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 29 1 #"\n" 0 0 25 3 12 #" [(" 0 0 14 3 5 #"listT" 0 0 25 3 1 #" " 0 0 14 3 18 #"other-element-type" 0 0 25 3 3 #") (" 0 0 14 3 6 #"unify!" 0 0 25 3 1 #" " 0 0 14 3 12 #"element-type" 0 0 25 3 1 #" " 0 0 14 3 18 #"other-element-type" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" [" 0 0 14 3 4 #"else" 0 0 25 3 2 #" (" 0 0 14 3 10 #"type-error" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 3 1 #" " 0 0 14 3 2 #"t2" 0 0 25 3 4 #")])]" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" [(" 0 0 14 3 6 #"arrowT" 0 0 25 3 1 #" " 0 0 14 3 2 #"a2" 0 0 25 3 1 #" " 0 0 14 3 2 #"b2" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 29 1 #"\n" 0 0 25 3 12 #" [(" 0 0 14 3 6 #"arrowT" 0 0 25 3 1 #" " 0 0 14 3 2 #"a1" 0 0 25 3 1 #" " 0 0 14 3 2 #"b1" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 12 #" (" 0 0 15 3 5 #"begin" 0 0 25 29 1 #"\n" 0 0 25 3 14 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 1 #" " 0 0 14 3 2 #"a1" 0 0 25 3 1 #" " 0 0 14 3 2 #"a2" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 14 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 1 #" " 0 0 14 3 2 #"b1" 0 0 25 3 1 #" " 0 0 14 3 2 #"b2" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 11 #" [" 0 0 14 3 4 #"else" 0 0 25 3 2 #" (" 0 0 14 3 10 #"type-error" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 1 #" " 0 0 14 3 2 #"t1" 0 0 25 3 1 #" " 0 0 14 3 2 #"t2" 0 0 25 3 8 #")])])]))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 4 #")) (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 3 #")) " 0 0 22 3 1 #"'" 0 0 14 3 4 #"test" 0 0 25 3 3 #") (" 0 0 14 3 4 #"void" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 4 #")) (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #")) " 0 0 22 3 1 #"'" 0 0 14 3 4 #"test" 0 0 25 3 2 #") " 0 0 19 3 9 #"\"no type\"" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 3 #") (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #")) " 0 0 22 3 1 #"'" 0 0 14 3 4 #"test" 0 0 25 3 2 #") " 0 0 19 3 9 #"\"no type\"" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 4 #")) (" 0 0 14 3 5 #"boolT" 0 0 25 3 2 #") " 0 0 22 3 1 #"'" 0 0 14 3 4 #"test" 0 0 25 3 2 #") " 0 0 19 3 9 #"\"no type\"" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 2 #" [" 0 0 14 3 3 #"exp" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 3 #"] [" 0 0 14 3 3 #"env" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 7 #"TypeEnv" 0 0 25 3 3 #"]) " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 3 #"Exp" 0 0 25 3 1 #" " 0 0 14 3 3 #"exp" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 14 3 1 #"n" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 5 #"boolE" 0 0 25 3 1 #" " 0 0 14 3 1 #"b" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolT" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"notE" 0 0 25 3 1 #" " 0 0 14 3 2 #"ex" 0 0 25 3 3 #") (" 0 0 15 3 5 #"begin" 0 0 25 29 1 #"\n" 0 0 25 3 18 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 2 #"ex" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolT" 0 0 25 3 2 #") " 0 0 14 3 2 #"ex" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 18 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 6 #"timesE" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 3 #") (" 0 0 15 3 5 #"begin" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #") " 0 0 14 3 1 #"l" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #") " 0 0 14 3 1 #"r" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 5 #"plusE" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 3 #") (" 0 0 15 3 5 #"begin" 0 0 25 29 1 #"\n" 0 0 25 3 20 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #") " 0 0 14 3 1 #"l" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 20 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #") " 0 0 14 3 1 #"r" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 20 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 6 #"minusE" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 3 #") (" 0 0 15 3 5 #"begin" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 1 #"l" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #") " 0 0 14 3 1 #"l" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 1 #"r" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #") " 0 0 14 3 1 #"r" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"if0E" 0 0 25 3 1 #" " 0 0 14 3 9 #"test-expr" 0 0 25 3 1 #" " 0 0 14 3 9 #"then-expr" 0 0 25 3 1 #" " 0 0 14 3 9 #"else-expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 15 3 3 #"let" 0 0 25 3 3 #" ([" 0 0 14 3 7 #"test-ty" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 9 #"test-expr" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 12 #" [" 0 0 14 3 7 #"then-ty" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 9 #"then-expr" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 12 #" [" 0 0 14 3 7 #"else-ty" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 9 #"else-expr" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 15 3 5 #"begin" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 1 #" " 0 0 14 3 7 #"test-ty" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #") " 0 0 14 3 9 #"test-expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 1 #" " 0 0 14 3 7 #"then-ty" 0 0 25 3 1 #" " 0 0 14 3 7 #"else-ty" 0 0 25 3 1 #" " 0 0 14 3 9 #"else-expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" " 0 0 14 3 7 #"then-ty" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 3 #") (" 0 0 14 3 11 #"type-lookup" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"recE" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 2 #"ty" 0 0 25 3 1 #" " 0 0 14 3 8 #"rhs-expr" 0 0 25 3 1 #" " 0 0 14 3 9 #"body-expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 15 3 4 #"let*" 0 0 25 3 3 #" ([" 0 0 14 3 8 #"type-ann" 0 0 25 3 2 #" (" 0 0 14 3 10 #"parse-type" 0 0 25 3 1 #" " 0 0 14 3 2 #"ty" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" [" 0 0 14 3 7 #"new-env" 0 0 25 3 2 #" (" 0 0 14 3 8 #"BindType" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 8 #"type-ann" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" [" 0 0 14 3 6 #"rhs-ty" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 8 #"rhs-expr" 0 0 25 3 1 #" " 0 0 14 3 7 #"new-env" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 15 3 5 #"begin" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 1 #" " 0 0 14 3 8 #"type-ann" 0 0 25 3 1 #" " 0 0 14 3 6 #"rhs-ty" 0 0 25 3 1 #" " 0 0 14 3 8 #"rhs-expr" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 9 #"body-expr" 0 0 25 3 1 #" " 0 0 14 3 7 #"new-env" 0 0 25 3 4 #")))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"appE" 0 0 25 3 1 #" " 0 0 14 3 2 #"fn" 0 0 25 3 1 #" " 0 0 14 3 3 #"arg" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 15 3 3 #"let" 0 0 25 3 3 #" ([" 0 0 14 3 6 #"r-type" 0 0 25 3 2 #" (" 0 0 14 3 4 #"varT" 0 0 25 3 2 #" (" 0 0 14 3 12 #"gen-tvar-id!" 0 0 25 3 3 #") (" 0 0 14 3 3 #"box" 0 0 25 3 2 #" (" 0 0 14 3 4 #"none" 0 0 25 3 4 #")))]" 0 0 25 29 1 #"\n" 0 0 25 3 12 #" [" 0 0 14 3 6 #"a-type" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 3 #"arg" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 12 #" [" 0 0 14 3 7 #"fn-type" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 2 #"fn" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #")])" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 15 3 5 #"begin" 0 0 25 29 1 #"\n" 0 0 25 3 10 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 6 #"arrowT" 0 0 25 3 1 #" " 0 0 14 3 6 #"a-type" 0 0 25 3 1 #" " 0 0 14 3 6 #"r-type" 0 0 25 3 2 #") " 0 0 14 3 7 #"fn-type" 0 0 25 3 1 #" " 0 0 14 3 2 #"fn" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" " 0 0 14 3 6 #"r-type" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 4 #"lamE" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 2 #"te" 0 0 25 3 1 #" " 0 0 14 3 4 #"body" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 15 3 4 #"let*" 0 0 25 3 3 #" ([" 0 0 14 3 8 #"arg-type" 0 0 25 3 2 #" (" 0 0 14 3 10 #"parse-type" 0 0 25 3 1 #" " 0 0 14 3 2 #"te" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" [" 0 0 14 3 8 #"res-type" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 4 #"body" 0 0 25 3 2 #" (" 0 0 14 3 8 #"BindType" 0 0 25 3 1 #" " 0 0 14 3 4 #"name" 0 0 25 3 1 #" " 0 0 14 3 8 #"arg-type" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 4 #"))])" 0 0 25 29 1 #"\n" 0 0 25 3 8 #" (" 0 0 14 3 6 #"arrowT" 0 0 25 3 1 #" " 0 0 14 3 8 #"arg-type" 0 0 25 3 1 #" " 0 0 14 3 8 #"res-type" 0 0 25 3 3 #"))]" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" [(" 0 0 14 3 5 #"listE" 0 0 25 3 1 #" " 0 0 14 3 8 #"elements" 0 0 25 3 3 #") (" 0 0 15 3 5 #"local" 0 0 25 3 1 #" " 0 0 17 3 58 #";; this sucks. do not think it's right but it passes tests" 0 0 25 29 1 #"\n" 0 0 25 3 26 #" [(" 0 0 15 3 6 #"define" 0 0 25 3 1 #" " 0 0 14 3 9 #"type-list" 0 0 25 3 2 #" (" 0 0 14 3 3 #"map" 0 0 25 3 2 #" (" 0 0 15 3 6 #"lambda" 0 0 25 3 2 #" (" 0 0 14 3 1 #"x" 0 0 25 3 3 #") (" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 3 #"env" 0 0 25 3 3 #")) " 0 0 14 3 8 #"elements" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 26 #" (" 0 0 15 3 6 #"define" 0 0 25 3 1 #" " 0 0 14 3 8 #"filtered" 0 0 25 3 2 #" (" 0 0 14 3 6 #"filter" 0 0 25 3 2 #" (" 0 0 15 3 6 #"lambda" 0 0 25 3 2 #" (" 0 0 14 3 1 #"x" 0 0 25 3 3 #") (" 0 0 14 3 6 #"equal?" 0 0 25 3 2 #" (" 0 0 14 3 5 #"first" 0 0 25 3 1 #" " 0 0 14 3 9 #"type-list" 0 0 25 3 2 #") " 0 0 14 3 1 #"x" 0 0 25 3 3 #")) " 0 0 14 3 9 #"type-list" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 26 #" (" 0 0 15 3 6 #"define" 0 0 25 3 2 #" (" 0 0 14 3 9 #"check-all" 0 0 25 3 1 #" " 0 0 14 3 3 #"lst" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 28 #" (" 0 0 15 3 9 #"type-case" 0 0 25 3 1 #" " 0 0 14 3 4 #"Type" 0 0 25 3 2 #" (" 0 0 14 3 5 #"first" 0 0 25 3 1 #" " 0 0 14 3 9 #"type-list" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 31 #" [(" 0 0 14 3 4 #"varT" 0 0 25 3 1 #" " 0 0 14 3 1 #"v" 0 0 25 3 1 #" " 0 0 14 3 1 #"t" 0 0 25 3 3 #") (" 0 0 14 3 6 #"second" 0 0 25 3 1 #" " 0 0 14 3 9 #"type-list" 0 0 25 3 2 #")]" 0 0 25 29 1 #"\n" 0 0 25 3 30 #" [" 0 0 14 3 4 #"else" 0 0 25 3 2 #" (" 0 0 14 3 5 #"error" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 9 #"typecheck" 0 0 25 3 1 #" " 0 0 19 3 9 #"\"no type\"" 0 0 25 3 5 #")]))]" 0 0 25 29 1 #"\n" 0 0 25 3 25 #" (" 0 0 14 3 2 #"if" 0 0 25 3 2 #" (" 0 0 14 3 6 #"equal?" 0 0 25 3 1 #" " 0 0 14 3 8 #"filtered" 0 0 25 3 1 #" " 0 0 14 3 9 #"type-list" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 29 #" (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"first" 0 0 25 3 1 #" " 0 0 14 3 9 #"type-list" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 29 #" (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 9 #"check-all" 0 0 25 3 1 #" " 0 0 14 3 9 #"type-list" 0 0 25 3 7 #"))))]))" 0 0 25 29 1 #"\n" 0 0 17 3 43 #";; ----------------------------------------" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 18 #"define-syntax-rule" 0 0 25 3 2 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 1 #" " 0 0 14 3 4 #"type" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 4 #" (" 0 0 15 3 5 #"begin" 0 0 25 3 2 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 5 #"check" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 2 #") " 0 0 14 3 4 #"type" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 2 #") " 0 0 14 3 4 #"type" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" " 0 0 14 3 4 #"type" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 18 #"define-syntax-rule" 0 0 25 3 2 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 3 #") (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 5 #"check" 0 0 25 3 1 #" " 0 0 14 3 4 #"expr" 0 0 25 3 2 #") " 0 0 19 3 9 #"\"no type\"" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 17 #"print-only-errors" 0 0 25 3 1 #" " 0 0 22 3 2 #"#t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"check" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 4 #"}) (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 14 3 1 #"x" 0 0 25 3 2 #") " 0 0 19 3 15 #"\"free variable\"" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"not" 0 0 25 3 1 #" " 0 0 14 3 5 #"false" 0 0 25 3 4 #"}) (" 0 0 14 3 5 #"boolV" 0 0 25 3 1 #" " 0 0 22 3 2 #"#t" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 3 #"`10" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 2 #"10" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 22 3 2 #"10" 0 0 25 3 1 #" " 0 0 22 3 2 #"17" 0 0 25 3 4 #"}) (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 2 #"27" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"-" 0 0 25 3 1 #" " 0 0 22 3 2 #"10" 0 0 25 3 1 #" " 0 0 22 3 1 #"7" 0 0 25 3 4 #"}) (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 1 #"3" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 2 #"{{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 3 #"} {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 22 3 2 #"12" 0 0 25 3 4 #"}} {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 2 #"17" 0 0 25 3 5 #"}}) (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 2 #"30" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" (" 0 0 14 3 9 #"BindValue" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 2 #"10" 0 0 25 3 3 #") (" 0 0 14 3 13 #"EmptyValueEnv" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 2 #"10" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 6 #"define" 0 0 25 3 1 #" " 0 0 14 3 7 #"lam-lam" 0 0 25 29 1 #"\n" 0 0 25 3 4 #" " 0 0 22 3 1 #"`" 0 0 25 3 2 #"{{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 1 #"}" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" {{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"f" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 2 #" (" 0 0 14 3 3 #"num" 0 0 25 3 1 #" " 0 0 14 3 2 #"->" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 2 #")}" 0 0 25 29 1 #"\n" 0 0 25 3 18 #" {" 0 0 14 3 1 #"+" 0 0 25 3 2 #" {" 0 0 14 3 1 #"f" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #"}" 0 0 25 29 1 #"\n" 0 0 25 3 22 #" {{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 1 #"}" 0 0 25 29 1 #"\n" 0 0 25 3 27 #" {" 0 0 14 3 1 #"f" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 2 #"}}" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" " 0 0 22 3 1 #"3" 0 0 25 3 3 #"}}}" 0 0 25 29 1 #"\n" 0 0 25 3 13 #" {" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"y" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 1 #"}" 0 0 25 29 1 #"\n" 0 0 25 3 18 #" {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"y" 0 0 25 3 4 #"}}}}" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" " 0 0 22 3 1 #"0" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 14 3 7 #"lam-lam" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 1 #"3" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" )" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 4 #"list" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 4 #"}) (" 0 0 14 3 5 #"listV" 0 0 25 3 2 #" (" 0 0 14 3 4 #"list" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 4 #"list" 0 0 25 3 1 #" " 0 0 14 3 5 #"false" 0 0 25 3 1 #" " 0 0 14 3 4 #"true" 0 0 25 3 1 #" " 0 0 14 3 5 #"false" 0 0 25 3 4 #"}) (" 0 0 14 3 5 #"listV" 0 0 25 3 2 #" (" 0 0 14 3 4 #"list" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolV" 0 0 25 3 1 #" " 0 0 22 3 2 #"#f" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolV" 0 0 25 3 1 #" " 0 0 22 3 2 #"#t" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolV" 0 0 25 3 1 #" " 0 0 22 3 2 #"#f" 0 0 25 3 5 #")))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 17 #"print-only-errors" 0 0 25 3 1 #" " 0 0 22 3 2 #"#t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 14 3 1 #"x" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"not" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"not" 0 0 25 3 1 #" " 0 0 14 3 5 #"false" 0 0 25 3 3 #"} (" 0 0 14 3 5 #"boolT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 14 3 7 #"lam-lam" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 2 #" " 0 0 22 3 3 #"`10" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 22 3 2 #"10" 0 0 25 3 1 #" " 0 0 22 3 2 #"17" 0 0 25 3 3 #"} (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"-" 0 0 25 3 1 #" " 0 0 22 3 2 #"10" 0 0 25 3 1 #" " 0 0 22 3 1 #"7" 0 0 25 3 3 #"} (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 14 3 5 #"false" 0 0 25 3 1 #" " 0 0 22 3 2 #"17" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"-" 0 0 25 3 1 #" " 0 0 14 3 5 #"false" 0 0 25 3 1 #" " 0 0 22 3 2 #"17" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 22 3 2 #"17" 0 0 25 3 1 #" " 0 0 14 3 5 #"false" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"-" 0 0 25 3 1 #" " 0 0 22 3 2 #"17" 0 0 25 3 1 #" " 0 0 14 3 5 #"false" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 3 #"} {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 22 3 2 #"12" 0 0 25 3 2 #"}}" 0 0 25 29 1 #"\n" 0 0 25 3 14 #" (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 2 #"{{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 2 #"} " 0 0 14 3 1 #"x" 0 0 25 3 2 #"} " 0 0 14 3 4 #"true" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 3 #"} {" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"y" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 4 #"bool" 0 0 25 3 2 #"} " 0 0 14 3 1 #"x" 0 0 25 3 2 #"}}" 0 0 25 29 1 #"\n" 0 0 25 3 14 #" (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #") (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 4 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 2 #"{{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 3 #"} {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 22 3 2 #"12" 0 0 25 3 4 #"}} {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 2 #"17" 0 0 25 3 4 #"}} (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 1 #"+" 0 0 25 3 2 #" {" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 3 #"} " 0 0 22 3 2 #"12" 0 0 25 3 2 #"} " 0 0 22 3 1 #"2" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 41 #";; Added coverage test for type-to-string" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 2 #"{{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"f" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 2 #" {" 0 0 14 3 3 #"num" 0 0 25 3 1 #" " 0 0 14 3 2 #"->" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 2 #"}}" 0 0 25 29 1 #"\n" 0 0 25 3 23 #" {" 0 0 14 3 1 #"f" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 2 #"}}" 0 0 25 29 1 #"\n" 0 0 25 3 17 #" " 0 0 22 3 1 #"1" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" )" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 17 #"print-only-errors" 0 0 25 3 1 #" " 0 0 22 3 2 #"#t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 16 #";; Tests for if0" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"if0" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 4 #"}) (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"if0" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 4 #"}) (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"if0" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 3 #"} (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"if0" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 3 #"} (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"if0" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 2 #" {" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 2 #"} " 0 0 14 3 1 #"x" 0 0 25 3 2 #"} " 0 0 22 3 1 #"0" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"if0" 0 0 25 3 2 #" {" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 2 #"} " 0 0 14 3 1 #"x" 0 0 25 3 2 #"} " 0 0 22 3 1 #"0" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" )" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 17 #"print-only-errors" 0 0 25 3 1 #" " 0 0 22 3 2 #"#t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 16 #";; Tests for Rec" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"parse" 0 0 25 3 1 #" " 0 0 14 3 17 #"fact-rec-concrete" 0 0 25 3 2 #") " 0 0 14 3 8 #"fact-rec" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 14 3 16 #"fib-rec-concrete" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 7 #"fib-rec" 0 0 25 3 2 #" (" 0 0 14 3 13 #"EmptyValueEnv" 0 0 25 3 4 #")) (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 1 #"5" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 14 3 17 #"fact-rec-concrete" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 1 #" " 0 0 14 3 8 #"fact-rec" 0 0 25 3 2 #" (" 0 0 14 3 13 #"EmptyValueEnv" 0 0 25 3 4 #")) (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 3 #"120" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 15 3 3 #"rec" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 3 #"} {" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"y" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 2 #"} " 0 0 22 3 1 #"3" 0 0 25 3 2 #"} " 0 0 22 3 2 #"10" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 48 #";; Contrived test to get full coverage of lookup" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 6 #"interp" 0 0 25 3 2 #" (" 0 0 14 3 4 #"recE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 2 #" (" 0 0 14 3 5 #"numTE" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 20 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 2 #"10" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 20 #" (" 0 0 14 3 4 #"recE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"y" 0 0 25 3 2 #" (" 0 0 14 3 5 #"numTE" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 25 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 2 #"10" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 25 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 3 15 #" (" 0 0 14 3 13 #"EmptyValueEnv" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 9 #" (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 2 #"10" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 2 #"{{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 1 #"?" 0 0 25 3 3 #"} {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 22 3 2 #"12" 0 0 25 3 4 #"}} {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 2 #"17" 0 0 25 3 4 #"}} (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 74 (5 74 ;; illustrate that the return of our typecheck function can be a bit messy ) 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 15 3 6 #"define" 0 0 25 3 1 #" " 0 0 14 3 12 #"wrapped-type" 0 0 25 3 2 #" (" 0 0 14 3 5 #"check" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 2 #"{{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 1 #"?" 0 0 25 3 3 #"} {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 22 3 2 #"12" 0 0 25 3 4 #"}} {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 2 #"17" 0 0 25 3 4 #"}}))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 5 #"varT?" 0 0 25 3 1 #" " 0 0 14 3 12 #"wrapped-type" 0 0 25 3 2 #") " 0 0 22 3 2 #"#t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 8 #"varT-val" 0 0 25 3 1 #" " 0 0 14 3 12 #"wrapped-type" 0 0 25 3 3 #") (" 0 0 14 3 3 #"box" 0 0 25 3 2 #" (" 0 0 14 3 4 #"some" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 2 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 1 #"?" 0 0 25 3 3 #"} {" 0 0 14 3 1 #"+" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 22 3 2 #"12" 0 0 25 3 4 #"}} (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 2 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 1 #"?" 0 0 25 3 3 #"} {" 0 0 14 3 3 #"if0" 0 0 25 3 1 #" " 0 0 22 3 1 #"0" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 4 #"}} (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 28 #";; coverage for occurs check" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 1 #"?" 0 0 25 3 3 #"} {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 3 #"}})" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 4 #" (" 0 0 15 3 3 #"let" 0 0 25 3 3 #" ([" 0 0 14 3 1 #"T" 0 0 25 3 2 #" (" 0 0 14 3 4 #"varT" 0 0 25 3 2 #" (" 0 0 14 3 12 #"gen-tvar-id!" 0 0 25 3 3 #") (" 0 0 14 3 3 #"box" 0 0 25 3 2 #" (" 0 0 14 3 4 #"none" 0 0 25 3 5 #")))])" 0 0 25 29 1 #"\n" 0 0 25 3 6 #" (" 0 0 14 3 7 #"occurs?" 0 0 25 3 1 #" " 0 0 14 3 1 #"T" 0 0 25 3 2 #" (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 2 #") " 0 0 14 3 1 #"T" 0 0 25 3 4 #"))) " 0 0 22 3 2 #"#t" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 7 #"occurs?" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 3 #") (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 4 #"))) " 0 0 19 3 21 #"\"not a type variable\"" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 30 #";; coverage for unify-type-var" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 15 #"unify-type-var!" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolT" 0 0 25 3 2 #") " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 2 #") " 0 0 19 3 21 #"\"not a type variable\"" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 9 #"typecheck" 0 0 25 3 2 #" (" 0 0 14 3 4 #"lamE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 2 #" (" 0 0 14 3 7 #"guessTE" 0 0 25 3 3 #") (" 0 0 14 3 5 #"plusE" 0 0 25 3 2 #" (" 0 0 14 3 3 #"idE" 0 0 25 3 1 #" " 0 0 22 3 1 #"'" 0 0 14 3 1 #"x" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 2 #"12" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 3 32 #" (" 0 0 14 3 12 #"EmptyTypeEnv" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numT" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 21 #" (" 0 0 14 3 4 #"numE" 0 0 25 3 1 #" " 0 0 22 3 2 #"-1" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 12 #" " 0 0 19 3 9 #"\"no type\"" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 29 #";; soundness bug still exists" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 2 #"#;" 0 0 60 3 1 #"(" 0 0 61 3 8 #"test/exn" 0 0 60 3 2 #" (" 0 0 61 3 9 #"typecheck" 0 0 60 3 2 #" (" 0 0 61 3 4 #"recE" 0 0 60 3 1 #" " 0 0 62 3 1 #"'" 0 0 61 3 1 #"f" 0 0 60 3 2 #" (" 0 0 61 3 7 #"arrowTE" 0 0 60 3 2 #" (" 0 0 61 3 5 #"numTE" 0 0 60 3 3 #") (" 0 0 61 3 5 #"numTE" 0 0 60 3 4 #")) (" 0 0 61 3 3 #"idE" 0 0 60 3 1 #" " 0 0 62 3 1 #"'" 0 0 61 3 1 #"f" 0 0 60 3 3 #") (" 0 0 61 3 4 #"appE" 0 0 60 3 2 #" (" 0 0 61 3 3 #"idE" 0 0 60 3 1 #" " 0 0 62 3 1 #"'" 0 0 61 3 1 #"f" 0 0 60 3 3 #") (" 0 0 61 3 4 #"numE" 0 0 60 3 1 #" " 0 0 62 3 2 #"10" 0 0 60 3 3 #")))" 0 0 60 29 1 #"\n" 0 0 60 3 26 #" (" 0 0 61 3 12 #"EmptyTypeEnv" 0 0 60 3 2 #"))" 0 0 60 29 1 #"\n" 0 0 60 3 14 #" " 0 0 63 3 9 #"\"no type\"" 0 0 60 3 1 #")" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 19 #";; lists of numbers" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 4 #"list" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 3 #"} (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 31 #";; report error for mixed types" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 2 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 4 #"list" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 14 3 4 #"true" 0 0 25 3 2 #"})" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 21 #";; infer type of list" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 3 #"} {" 0 0 14 3 4 #"list" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 4 #"}} (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #") (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 35 #";; functions taking list parameters" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 2 #" {" 0 0 14 3 6 #"listof" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 3 #"}} " 0 0 14 3 1 #"x" 0 0 25 3 1 #"}" 0 0 25 29 1 #"\n" 0 0 25 3 14 #" (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 4 #")) (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 40 #";; report error for mixed inferred types" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 3 #"num" 0 0 25 3 3 #"} {" 0 0 14 3 4 #"list" 0 0 25 3 1 #" " 0 0 14 3 4 #"true" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 3 #"}})" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 53 #";; infer type of function parameter from list element" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 1 #"?" 0 0 25 3 3 #"} {" 0 0 14 3 4 #"list" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 4 #"}} (" 0 0 14 3 6 #"arrowT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #") (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 56 #";; complain about cyclic type (Y-combinator) inside list" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 11 #"test/notype" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 1 #"?" 0 0 25 3 3 #"} {" 0 0 14 3 4 #"list" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 4 #"}}})" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 2 #" " 0 0 17 3 47 #";; infer type of list from function application" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 9 #"test/type" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 2 #"{{" 0 0 14 3 3 #"lam" 0 0 25 3 2 #" {" 0 0 14 3 1 #"x" 0 0 25 3 1 #" " 0 0 14 3 1 #":" 0 0 25 3 1 #" " 0 0 14 3 1 #"?" 0 0 25 3 3 #"} {" 0 0 14 3 4 #"list" 0 0 25 3 1 #" " 0 0 14 3 1 #"x" 0 0 25 3 3 #"}} " 0 0 22 3 1 #"2" 0 0 25 3 3 #"} (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #")))" 0 0 25 29 1 #"\n" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 4 #")) (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 3 #")) " 0 0 22 3 1 #"'" 0 0 14 3 4 #"test" 0 0 25 3 3 #") (" 0 0 14 3 4 #"void" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 4 #")) (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #")) " 0 0 22 3 1 #"'" 0 0 14 3 4 #"test" 0 0 25 3 2 #") " 0 0 19 3 9 #"\"no type\"" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolT" 0 0 25 3 3 #") (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 3 #")) " 0 0 22 3 1 #"'" 0 0 14 3 4 #"test" 0 0 25 3 2 #") " 0 0 19 3 9 #"\"no type\"" 0 0 25 3 1 #")" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 8 #"test/exn" 0 0 25 3 2 #" (" 0 0 14 3 6 #"unify!" 0 0 25 3 2 #" (" 0 0 14 3 5 #"listT" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numT" 0 0 25 3 4 #")) (" 0 0 14 3 5 #"boolT" 0 0 25 3 2 #") " 0 0 22 3 1 #"'" 0 0 14 3 4 #"test" 0 0 25 3 2 #") " 0 0 19 3 9 #"\"no type\"" 0 0 25 3 2 #"))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0 25 3 1 #"(" 0 0 15 3 7 #"module+" 0 0 25 3 1 #" " 0 0 14 3 4 #"test" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 4 #"list" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 4 #"}) (" 0 0 14 3 5 #"listV" 0 0 25 3 2 #" (" 0 0 14 3 4 #"list" 0 0 25 3 2 #" (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 1 #"1" 0 0 25 3 3 #") (" 0 0 14 3 4 #"numV" 0 0 25 3 1 #" " 0 0 22 3 1 #"2" 0 0 25 3 4 #"))))" 0 0 25 29 1 #"\n" 0 0 25 3 3 #" (" 0 0 14 3 4 #"test" 0 0 25 3 2 #" (" 0 0 14 3 3 #"run" 0 0 25 3 1 #" " 0 0 22 3 1 #"`" 0 0 25 3 1 #"{" 0 0 14 3 4 #"list" 0 0 25 3 1 #" " 0 0 14 3 5 #"false" 0 0 25 3 1 #" " 0 0 14 3 4 #"true" 0 0 25 3 1 #" " 0 0 14 3 5 #"false" 0 0 25 3 4 #"}) (" 0 0 14 3 5 #"listV" 0 0 25 3 2 #" (" 0 0 14 3 4 #"list" 0 0 25 3 2 #" (" 0 0 14 3 5 #"boolV" 0 0 25 3 1 #" " 0 0 22 3 2 #"#f" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolV" 0 0 25 3 1 #" " 0 0 22 3 2 #"#t" 0 0 25 3 3 #") (" 0 0 14 3 5 #"boolV" 0 0 25 3 1 #" " 0 0 22 3 2 #"#f" 0 0 25 3 5 #")))))" 0 0 25 29 1 #"\n" 0 0 25 29 1 #"\n" 0 0