diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 4c53c07..6587b8c 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"fantomas": {
- "version": "6.0.5",
+ "version": "6.3.9",
"commands": [
"fantomas"
]
diff --git a/Directory.Build.props b/Directory.Build.props
index e0ec469..6693113 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -25,6 +25,6 @@
all
build
-
+
diff --git a/spec/alist.ast b/spec/alist.ast
new file mode 100644
index 0000000..4cae190
--- /dev/null
+++ b/spec/alist.ast
@@ -0,0 +1,150 @@
+PROGRAM: (0..206)
+ FORM: (0..39)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..22)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..21)
+ IDENTIFIER: (16..21) "write"
+ CLOSE_PAREN: (21..22) ")"
+ ATMOSPHERE: (22..25) "\n "
+ FORM: (25..38)
+ OPEN_PAREN: (25..26) "("
+ SYMBOL: (26..32)
+ IDENTIFIER: (26..32) "scheme"
+ ATMOSPHERE: (32..33) " "
+ SYMBOL: (33..37)
+ IDENTIFIER: (33..37) "base"
+ CLOSE_PAREN: (37..38) ")"
+ CLOSE_PAREN: (38..39) ")"
+ ATMOSPHERE: (39..40) "\n"
+ FORM: (40..154)
+ OPEN_PAREN: (40..41) "("
+ SYMBOL: (41..54)
+ IDENTIFIER: (41..54) "define-syntax"
+ ATMOSPHERE: (54..55) " "
+ SYMBOL: (55..60)
+ IDENTIFIER: (55..60) "alist"
+ ATMOSPHERE: (60..63) "\n "
+ FORM: (63..153)
+ OPEN_PAREN: (63..64) "("
+ SYMBOL: (64..76)
+ IDENTIFIER: (64..76) "syntax-rules"
+ ATMOSPHERE: (76..77) " "
+ FORM: (77..79)
+ OPEN_PAREN: (77..78) "("
+ CLOSE_PAREN: (78..79) ")"
+ ATMOSPHERE: (79..85) "\n "
+ FORM: (85..93)
+ OPEN_PAREN: (85..86) "("
+ FORM: (86..89)
+ OPEN_PAREN: (86..87) "("
+ SYMBOL: (87..88)
+ IDENTIFIER: (87..88) "_"
+ CLOSE_PAREN: (88..89) ")"
+ ATMOSPHERE: (89..90) " "
+ FORM: (90..92)
+ OPEN_PAREN: (90..91) "("
+ CLOSE_PAREN: (91..92) ")"
+ CLOSE_PAREN: (92..93) ")"
+ ATMOSPHERE: (93..99) "\n "
+ FORM: (99..152)
+ OPEN_PAREN: (99..100) "("
+ FORM: (100..113)
+ OPEN_PAREN: (100..101) "("
+ SYMBOL: (101..102)
+ IDENTIFIER: (101..102) "_"
+ ATMOSPHERE: (102..103) " "
+ SYMBOL: (103..104)
+ IDENTIFIER: (103..104) "x"
+ ATMOSPHERE: (104..105) " "
+ SYMBOL: (105..106)
+ IDENTIFIER: (105..106) "y"
+ ATMOSPHERE: (106..107) " "
+ SYMBOL: (107..108)
+ IDENTIFIER: (107..108) "z"
+ ATMOSPHERE: (108..109) " "
+ SYMBOL: (109..112)
+ IDENTIFIER: (109..112) "..."
+ CLOSE_PAREN: (112..113) ")"
+ ATMOSPHERE: (113..120) "\n "
+ FORM: (120..151)
+ OPEN_PAREN: (120..121) "("
+ SYMBOL: (121..125)
+ IDENTIFIER: (121..125) "cons"
+ ATMOSPHERE: (125..126) " "
+ FORM: (126..136)
+ OPEN_PAREN: (126..127) "("
+ SYMBOL: (127..131)
+ IDENTIFIER: (127..131) "cons"
+ ATMOSPHERE: (131..132) " "
+ SYMBOL: (132..133)
+ IDENTIFIER: (132..133) "x"
+ ATMOSPHERE: (133..134) " "
+ SYMBOL: (134..135)
+ IDENTIFIER: (134..135) "y"
+ CLOSE_PAREN: (135..136) ")"
+ ATMOSPHERE: (136..137) " "
+ FORM: (137..150)
+ OPEN_PAREN: (137..138) "("
+ SYMBOL: (138..143)
+ IDENTIFIER: (138..143) "alist"
+ ATMOSPHERE: (143..144) " "
+ SYMBOL: (144..145)
+ IDENTIFIER: (144..145) "z"
+ ATMOSPHERE: (145..146) " "
+ SYMBOL: (146..149)
+ IDENTIFIER: (146..149) "..."
+ CLOSE_PAREN: (149..150) ")"
+ CLOSE_PAREN: (150..151) ")"
+ CLOSE_PAREN: (151..152) ")"
+ CLOSE_PAREN: (152..153) ")"
+ CLOSE_PAREN: (153..154) ")"
+ ATMOSPHERE: (154..155) "\n"
+ FORM: (155..196)
+ OPEN_PAREN: (155..156) "("
+ SYMBOL: (156..163)
+ IDENTIFIER: (156..163) "display"
+ ATMOSPHERE: (163..164) " "
+ FORM: (164..195)
+ OPEN_PAREN: (164..165) "("
+ SYMBOL: (165..170)
+ IDENTIFIER: (165..170) "alist"
+ ATMOSPHERE: (170..171) " "
+ QUOTED_DATUM: (171..176)
+ QUOTE: (171..172) "'"
+ SYMBOL: (172..175)
+ IDENTIFIER: (172..175) "foo"
+ ATMOSPHERE: (175..176) " "
+ CONSTANT: (176..178)
+ NUMBER: (176..178) "10"
+ ATMOSPHERE: (178..179) " "
+ QUOTED_DATUM: (179..184)
+ QUOTE: (179..180) "'"
+ SYMBOL: (180..183)
+ IDENTIFIER: (180..183) "bar"
+ ATMOSPHERE: (183..184) " "
+ CONSTANT: (184..186)
+ NUMBER: (184..186) "20"
+ ATMOSPHERE: (186..187) " "
+ QUOTED_DATUM: (187..192)
+ QUOTE: (187..188) "'"
+ SYMBOL: (188..191)
+ IDENTIFIER: (188..191) "baz"
+ ATMOSPHERE: (191..192) " "
+ CONSTANT: (192..194)
+ NUMBER: (192..194) "30"
+ CLOSE_PAREN: (194..195) ")"
+ CLOSE_PAREN: (195..196) ")"
+ FORM: (196..205)
+ OPEN_PAREN: (196..197) "("
+ SYMBOL: (197..204)
+ IDENTIFIER: (197..204) "newline"
+ CLOSE_PAREN: (204..205) ")"
+ ATMOSPHERE: (205..206) "\n"
+ EOF: (206..206) ""
diff --git a/spec/alist.scm b/spec/alist.scm
new file mode 100644
index 0000000..9f1a01e
--- /dev/null
+++ b/spec/alist.scm
@@ -0,0 +1,8 @@
+(import (scheme write)
+ (scheme base))
+(define-syntax alist
+ (syntax-rules ()
+ ((_) ())
+ ((_ x y z ...)
+ (cons (cons x y) (alist z ...)))))
+(display (alist 'foo 10 'bar 20 'baz 30))(newline)
diff --git a/spec/begin.ast b/spec/begin.ast
new file mode 100644
index 0000000..5f3796f
--- /dev/null
+++ b/spec/begin.ast
@@ -0,0 +1,91 @@
+PROGRAM: (0..272)
+ ATMOSPHERE: (0..66) ";; The `begin` special form takes a sequence and returns the value"
+ ATMOSPHERE: (66..67) "\n"
+ ATMOSPHERE: (67..93) ";; of the last expression."
+ ATMOSPHERE: (93..94) "\n"
+ FORM: (94..262)
+ OPEN_PAREN: (94..95) "("
+ SYMBOL: (95..100)
+ IDENTIFIER: (95..100) "begin"
+ ATMOSPHERE: (100..105) "\n "
+ CONSTANT: (105..107)
+ NUMBER: (105..107) "12"
+ ATMOSPHERE: (107..112) "\n "
+ FORM: (112..164)
+ OPEN_PAREN: (112..113) "("
+ SYMBOL: (113..118)
+ IDENTIFIER: (113..118) "begin"
+ ATMOSPHERE: (118..128) " \n "
+ CONSTANT: (128..135)
+ STRING: (128..135) "\"hello\""
+ ATMOSPHERE: (135..144) "\n "
+ CONSTANT: (144..147)
+ NUMBER: (144..147) "123"
+ ATMOSPHERE: (147..156) "\n "
+ CONSTANT: (156..163)
+ STRING: (156..163) "\"world\""
+ CLOSE_PAREN: (163..164) ")"
+ ATMOSPHERE: (164..169) "\n "
+ CONSTANT: (169..182)
+ STRING: (169..182) "\"hello world\""
+ ATMOSPHERE: (182..187) "\n "
+ FORM: (187..261)
+ OPEN_PAREN: (187..188) "("
+ SYMBOL: (188..190)
+ IDENTIFIER: (188..190) "if"
+ ATMOSPHERE: (190..191) " "
+ FORM: (191..210)
+ OPEN_PAREN: (191..192) "("
+ SYMBOL: (192..197)
+ IDENTIFIER: (192..197) "begin"
+ ATMOSPHERE: (197..198) " "
+ CONSTANT: (198..200)
+ BOOLEAN: (198..200) "#f"
+ ATMOSPHERE: (200..201) " "
+ CONSTANT: (201..203)
+ BOOLEAN: (201..203) "#t"
+ ATMOSPHERE: (203..204) " "
+ CONSTANT: (204..206)
+ BOOLEAN: (204..206) "#f"
+ ATMOSPHERE: (206..207) " "
+ CONSTANT: (207..209)
+ BOOLEAN: (207..209) "#t"
+ CLOSE_PAREN: (209..210) ")"
+ ATMOSPHERE: (210..219) "\n "
+ FORM: (219..235)
+ OPEN_PAREN: (219..220) "("
+ SYMBOL: (220..225)
+ IDENTIFIER: (220..225) "begin"
+ ATMOSPHERE: (225..226) " "
+ CONSTANT: (226..227)
+ NUMBER: (226..227) "1"
+ ATMOSPHERE: (227..228) " "
+ CONSTANT: (228..229)
+ NUMBER: (228..229) "2"
+ ATMOSPHERE: (229..230) " "
+ CONSTANT: (230..231)
+ NUMBER: (230..231) "3"
+ ATMOSPHERE: (231..232) " "
+ CONSTANT: (232..234)
+ NUMBER: (232..234) "45"
+ CLOSE_PAREN: (234..235) ")"
+ ATMOSPHERE: (235..244) "\n "
+ FORM: (244..260)
+ OPEN_PAREN: (244..245) "("
+ SYMBOL: (245..250)
+ IDENTIFIER: (245..250) "begin"
+ ATMOSPHERE: (250..251) " "
+ CONSTANT: (251..253)
+ NUMBER: (251..253) "-2"
+ ATMOSPHERE: (253..254) " "
+ CONSTANT: (254..256)
+ NUMBER: (254..256) "-3"
+ ATMOSPHERE: (256..257) " "
+ CONSTANT: (257..259)
+ NUMBER: (257..259) "-9"
+ CLOSE_PAREN: (259..260) ")"
+ CLOSE_PAREN: (260..261) ")"
+ CLOSE_PAREN: (261..262) ")"
+ ATMOSPHERE: (262..265) " "
+ ATMOSPHERE: (265..272) "; ~> 45"
+ EOF: (272..272) ""
diff --git a/spec/booleans.ast b/spec/booleans.ast
new file mode 100644
index 0000000..8280d8b
--- /dev/null
+++ b/spec/booleans.ast
@@ -0,0 +1,571 @@
+PROGRAM: (0..1176)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ ATMOSPHERE: (42..76) ";; Boolean literals and truthiness"
+ ATMOSPHERE: (76..77) "\n"
+ FORM: (77..531)
+ OPEN_PAREN: (77..78) "("
+ SYMBOL: (78..85)
+ IDENTIFIER: (78..85) "display"
+ ATMOSPHERE: (85..86) " "
+ FORM: (86..530)
+ OPEN_PAREN: (86..87) "("
+ SYMBOL: (87..91)
+ IDENTIFIER: (87..91) "list"
+ ATMOSPHERE: (91..96) "\n "
+ CONSTANT: (96..98)
+ BOOLEAN: (96..98) "#f"
+ ATMOSPHERE: (98..103) "\n "
+ CONSTANT: (103..109)
+ BOOLEAN: (103..109) "#false"
+ ATMOSPHERE: (109..114) "\n "
+ CONSTANT: (114..116)
+ BOOLEAN: (114..116) "#t"
+ ATMOSPHERE: (116..121) "\n "
+ CONSTANT: (121..126)
+ BOOLEAN: (121..126) "#true"
+ ATMOSPHERE: (126..131) "\n "
+ FORM: (131..145)
+ OPEN_PAREN: (131..132) "("
+ SYMBOL: (132..135)
+ IDENTIFIER: (132..135) "eq?"
+ ATMOSPHERE: (135..136) " "
+ CONSTANT: (136..138)
+ BOOLEAN: (136..138) "#t"
+ ATMOSPHERE: (138..139) " "
+ CONSTANT: (139..144)
+ BOOLEAN: (139..144) "#true"
+ CLOSE_PAREN: (144..145) ")"
+ ATMOSPHERE: (145..150) "\n "
+ FORM: (150..165)
+ OPEN_PAREN: (150..151) "("
+ SYMBOL: (151..155)
+ IDENTIFIER: (151..155) "eqv?"
+ ATMOSPHERE: (155..156) " "
+ CONSTANT: (156..158)
+ BOOLEAN: (156..158) "#t"
+ ATMOSPHERE: (158..159) " "
+ CONSTANT: (159..164)
+ BOOLEAN: (159..164) "#true"
+ CLOSE_PAREN: (164..165) ")"
+ ATMOSPHERE: (165..170) "\n "
+ FORM: (170..187)
+ OPEN_PAREN: (170..171) "("
+ SYMBOL: (171..177)
+ IDENTIFIER: (171..177) "equal?"
+ ATMOSPHERE: (177..178) " "
+ CONSTANT: (178..180)
+ BOOLEAN: (178..180) "#t"
+ ATMOSPHERE: (180..181) " "
+ CONSTANT: (181..186)
+ BOOLEAN: (181..186) "#true"
+ CLOSE_PAREN: (186..187) ")"
+ ATMOSPHERE: (187..192) "\n "
+ FORM: (192..207)
+ OPEN_PAREN: (192..193) "("
+ SYMBOL: (193..196)
+ IDENTIFIER: (193..196) "eq?"
+ ATMOSPHERE: (196..197) " "
+ CONSTANT: (197..199)
+ BOOLEAN: (197..199) "#f"
+ ATMOSPHERE: (199..200) " "
+ CONSTANT: (200..206)
+ BOOLEAN: (200..206) "#false"
+ CLOSE_PAREN: (206..207) ")"
+ ATMOSPHERE: (207..212) "\n "
+ FORM: (212..228)
+ OPEN_PAREN: (212..213) "("
+ SYMBOL: (213..217)
+ IDENTIFIER: (213..217) "eqv?"
+ ATMOSPHERE: (217..218) " "
+ CONSTANT: (218..220)
+ BOOLEAN: (218..220) "#f"
+ ATMOSPHERE: (220..221) " "
+ CONSTANT: (221..227)
+ BOOLEAN: (221..227) "#false"
+ CLOSE_PAREN: (227..228) ")"
+ ATMOSPHERE: (228..233) "\n "
+ FORM: (233..251)
+ OPEN_PAREN: (233..234) "("
+ SYMBOL: (234..240)
+ IDENTIFIER: (234..240) "equal?"
+ ATMOSPHERE: (240..241) " "
+ CONSTANT: (241..243)
+ BOOLEAN: (241..243) "#f"
+ ATMOSPHERE: (243..244) " "
+ CONSTANT: (244..250)
+ BOOLEAN: (244..250) "#false"
+ CLOSE_PAREN: (250..251) ")"
+ ATMOSPHERE: (251..256) "\n "
+ FORM: (256..303)
+ OPEN_PAREN: (256..257) "("
+ SYMBOL: (257..259)
+ IDENTIFIER: (257..259) "if"
+ ATMOSPHERE: (259..260) " "
+ FORM: (260..274)
+ OPEN_PAREN: (260..261) "("
+ SYMBOL: (261..264)
+ IDENTIFIER: (261..264) "eq?"
+ ATMOSPHERE: (264..265) " "
+ CONSTANT: (265..267)
+ BOOLEAN: (265..267) "#f"
+ ATMOSPHERE: (267..268) " "
+ CONSTANT: (268..273)
+ BOOLEAN: (268..273) "#true"
+ CLOSE_PAREN: (273..274) ")"
+ ATMOSPHERE: (274..283) "\n "
+ QUOTED_DATUM: (283..297)
+ QUOTE: (283..284) "'"
+ SYMBOL: (284..288)
+ IDENTIFIER: (284..288) "fail"
+ ATMOSPHERE: (288..297) "\n "
+ QUOTED_DATUM: (297..302)
+ QUOTE: (297..298) "'"
+ SYMBOL: (298..302)
+ IDENTIFIER: (298..302) "pass"
+ CLOSE_PAREN: (302..303) ")"
+ ATMOSPHERE: (303..308) "\n "
+ FORM: (308..355)
+ OPEN_PAREN: (308..309) "("
+ SYMBOL: (309..311)
+ IDENTIFIER: (309..311) "if"
+ ATMOSPHERE: (311..312) " "
+ FORM: (312..326)
+ OPEN_PAREN: (312..313) "("
+ SYMBOL: (313..319)
+ IDENTIFIER: (313..319) "equal?"
+ ATMOSPHERE: (319..320) " "
+ CONSTANT: (320..322)
+ BOOLEAN: (320..322) "#t"
+ ATMOSPHERE: (322..323) " "
+ CONSTANT: (323..325)
+ BOOLEAN: (323..325) "#f"
+ CLOSE_PAREN: (325..326) ")"
+ ATMOSPHERE: (326..335) "\n "
+ QUOTED_DATUM: (335..349)
+ QUOTE: (335..336) "'"
+ SYMBOL: (336..340)
+ IDENTIFIER: (336..340) "fail"
+ ATMOSPHERE: (340..349) "\n "
+ QUOTED_DATUM: (349..354)
+ QUOTE: (349..350) "'"
+ SYMBOL: (350..354)
+ IDENTIFIER: (350..354) "pass"
+ CLOSE_PAREN: (354..355) ")"
+ ATMOSPHERE: (355..360) "\n "
+ FORM: (360..395)
+ OPEN_PAREN: (360..361) "("
+ SYMBOL: (361..363)
+ IDENTIFIER: (361..363) "if"
+ ATMOSPHERE: (363..364) " "
+ CONSTANT: (364..366)
+ BOOLEAN: (364..366) "#f"
+ ATMOSPHERE: (366..375) "\n "
+ QUOTED_DATUM: (375..389)
+ QUOTE: (375..376) "'"
+ SYMBOL: (376..380)
+ IDENTIFIER: (376..380) "fail"
+ ATMOSPHERE: (380..389) "\n "
+ QUOTED_DATUM: (389..394)
+ QUOTE: (389..390) "'"
+ SYMBOL: (390..394)
+ IDENTIFIER: (390..394) "pass"
+ CLOSE_PAREN: (394..395) ")"
+ ATMOSPHERE: (395..400) "\n "
+ FORM: (400..435)
+ OPEN_PAREN: (400..401) "("
+ SYMBOL: (401..403)
+ IDENTIFIER: (401..403) "if"
+ ATMOSPHERE: (403..404) " "
+ CONSTANT: (404..406)
+ BOOLEAN: (404..406) "#t"
+ ATMOSPHERE: (406..415) "\n "
+ QUOTED_DATUM: (415..429)
+ QUOTE: (415..416) "'"
+ SYMBOL: (416..420)
+ IDENTIFIER: (416..420) "pass"
+ ATMOSPHERE: (420..429) "\n "
+ QUOTED_DATUM: (429..434)
+ QUOTE: (429..430) "'"
+ SYMBOL: (430..434)
+ IDENTIFIER: (430..434) "fail"
+ CLOSE_PAREN: (434..435) ")"
+ ATMOSPHERE: (435..440) "\n "
+ FORM: (440..476)
+ OPEN_PAREN: (440..441) "("
+ SYMBOL: (441..443)
+ IDENTIFIER: (441..443) "if"
+ ATMOSPHERE: (443..444) " "
+ QUOTED_DATUM: (444..456)
+ QUOTE: (444..445) "'"
+ FORM: (445..447)
+ OPEN_PAREN: (445..446) "("
+ CLOSE_PAREN: (446..447) ")"
+ ATMOSPHERE: (447..456) "\n "
+ QUOTED_DATUM: (456..470)
+ QUOTE: (456..457) "'"
+ SYMBOL: (457..461)
+ IDENTIFIER: (457..461) "pass"
+ ATMOSPHERE: (461..470) "\n "
+ QUOTED_DATUM: (470..475)
+ QUOTE: (470..471) "'"
+ SYMBOL: (471..475)
+ IDENTIFIER: (471..475) "fail"
+ CLOSE_PAREN: (475..476) ")"
+ ATMOSPHERE: (476..481) "\n "
+ FORM: (481..524)
+ OPEN_PAREN: (481..482) "("
+ SYMBOL: (482..484)
+ IDENTIFIER: (482..484) "if"
+ ATMOSPHERE: (484..485) " "
+ QUOTED_DATUM: (485..504)
+ QUOTE: (485..486) "'"
+ SYMBOL: (486..495)
+ IDENTIFIER: (486..495) "something"
+ ATMOSPHERE: (495..504) "\n "
+ QUOTED_DATUM: (504..518)
+ QUOTE: (504..505) "'"
+ SYMBOL: (505..509)
+ IDENTIFIER: (505..509) "pass"
+ ATMOSPHERE: (509..518) "\n "
+ QUOTED_DATUM: (518..523)
+ QUOTE: (518..519) "'"
+ SYMBOL: (519..523)
+ IDENTIFIER: (519..523) "fail"
+ CLOSE_PAREN: (523..524) ")"
+ ATMOSPHERE: (524..529) "\n "
+ CLOSE_PAREN: (529..530) ")"
+ CLOSE_PAREN: (530..531) ")"
+ FORM: (531..540)
+ OPEN_PAREN: (531..532) "("
+ SYMBOL: (532..539)
+ IDENTIFIER: (532..539) "newline"
+ CLOSE_PAREN: (539..540) ")"
+ ATMOSPHERE: (540..541) "\n"
+ ATMOSPHERE: (541..590) ";; Quoting of boolean values does nothing to them"
+ ATMOSPHERE: (590..591) "\n"
+ FORM: (591..626)
+ OPEN_PAREN: (591..592) "("
+ SYMBOL: (592..599)
+ IDENTIFIER: (592..599) "display"
+ ATMOSPHERE: (599..600) " "
+ FORM: (600..625)
+ OPEN_PAREN: (600..601) "("
+ SYMBOL: (601..605)
+ IDENTIFIER: (601..605) "list"
+ ATMOSPHERE: (605..610) "\n "
+ QUOTED_DATUM: (610..618)
+ QUOTE: (610..611) "'"
+ CONSTANT: (611..613)
+ BOOLEAN: (611..613) "#f"
+ ATMOSPHERE: (613..618) "\n "
+ QUOTED_DATUM: (618..624)
+ QUOTE: (618..619) "'"
+ CONSTANT: (619..624)
+ BOOLEAN: (619..624) "#true"
+ CLOSE_PAREN: (624..625) ")"
+ CLOSE_PAREN: (625..626) ")"
+ FORM: (626..635)
+ OPEN_PAREN: (626..627) "("
+ SYMBOL: (627..634)
+ IDENTIFIER: (627..634) "newline"
+ CLOSE_PAREN: (634..635) ")"
+ ATMOSPHERE: (635..636) "\n"
+ ATMOSPHERE: (636..693) ";; Boolean procedures, we don't have many of them builtin"
+ ATMOSPHERE: (693..694) "\n"
+ FORM: (694..1167)
+ OPEN_PAREN: (694..695) "("
+ SYMBOL: (695..702)
+ IDENTIFIER: (695..702) "display"
+ ATMOSPHERE: (702..703) " "
+ FORM: (703..1166)
+ OPEN_PAREN: (703..704) "("
+ SYMBOL: (704..708)
+ IDENTIFIER: (704..708) "list"
+ ATMOSPHERE: (708..713) "\n "
+ FORM: (713..721)
+ OPEN_PAREN: (713..714) "("
+ SYMBOL: (714..717)
+ IDENTIFIER: (714..717) "not"
+ ATMOSPHERE: (717..718) " "
+ CONSTANT: (718..720)
+ BOOLEAN: (718..720) "#t"
+ CLOSE_PAREN: (720..721) ")"
+ ATMOSPHERE: (721..722) " "
+ ATMOSPHERE: (722..729) "; -> #f"
+ ATMOSPHERE: (729..734) "\n "
+ FORM: (734..741)
+ OPEN_PAREN: (734..735) "("
+ SYMBOL: (735..738)
+ IDENTIFIER: (735..738) "not"
+ ATMOSPHERE: (738..739) " "
+ CONSTANT: (739..740)
+ NUMBER: (739..740) "3"
+ CLOSE_PAREN: (740..741) ")"
+ ATMOSPHERE: (741..742) " "
+ ATMOSPHERE: (742..749) "; -> #f"
+ ATMOSPHERE: (749..754) "\n "
+ FORM: (754..768)
+ OPEN_PAREN: (754..755) "("
+ SYMBOL: (755..758)
+ IDENTIFIER: (755..758) "not"
+ ATMOSPHERE: (758..759) " "
+ FORM: (759..767)
+ OPEN_PAREN: (759..760) "("
+ SYMBOL: (760..764)
+ IDENTIFIER: (760..764) "list"
+ ATMOSPHERE: (764..765) " "
+ CONSTANT: (765..766)
+ NUMBER: (765..766) "3"
+ CLOSE_PAREN: (766..767) ")"
+ CLOSE_PAREN: (767..768) ")"
+ ATMOSPHERE: (768..769) " "
+ ATMOSPHERE: (769..776) "; -> #f"
+ ATMOSPHERE: (776..781) "\n "
+ FORM: (781..789)
+ OPEN_PAREN: (781..782) "("
+ SYMBOL: (782..785)
+ IDENTIFIER: (782..785) "not"
+ ATMOSPHERE: (785..786) " "
+ CONSTANT: (786..788)
+ BOOLEAN: (786..788) "#f"
+ CLOSE_PAREN: (788..789) ")"
+ ATMOSPHERE: (789..790) " "
+ ATMOSPHERE: (790..797) "; -> #t"
+ ATMOSPHERE: (797..802) "\n "
+ FORM: (802..811)
+ OPEN_PAREN: (802..803) "("
+ SYMBOL: (803..806)
+ IDENTIFIER: (803..806) "not"
+ ATMOSPHERE: (806..807) " "
+ QUOTED_DATUM: (807..810)
+ QUOTE: (807..808) "’"
+ FORM: (808..810)
+ OPEN_PAREN: (808..809) "("
+ CLOSE_PAREN: (809..810) ")"
+ CLOSE_PAREN: (810..811) ")"
+ ATMOSPHERE: (811..812) " "
+ ATMOSPHERE: (812..819) "; -> #f"
+ ATMOSPHERE: (819..824) "\n "
+ FORM: (824..836)
+ OPEN_PAREN: (824..825) "("
+ SYMBOL: (825..828)
+ IDENTIFIER: (825..828) "not"
+ ATMOSPHERE: (828..829) " "
+ FORM: (829..835)
+ OPEN_PAREN: (829..830) "("
+ SYMBOL: (830..834)
+ IDENTIFIER: (830..834) "list"
+ CLOSE_PAREN: (834..835) ")"
+ CLOSE_PAREN: (835..836) ")"
+ ATMOSPHERE: (836..837) " "
+ ATMOSPHERE: (837..844) "; -> #f"
+ ATMOSPHERE: (844..849) "\n "
+ FORM: (849..859)
+ OPEN_PAREN: (849..850) "("
+ SYMBOL: (850..853)
+ IDENTIFIER: (850..853) "not"
+ ATMOSPHERE: (853..854) " "
+ QUOTED_DATUM: (854..858)
+ QUOTE: (854..855) "’"
+ SYMBOL: (855..858)
+ IDENTIFIER: (855..858) "nil"
+ CLOSE_PAREN: (858..859) ")"
+ ATMOSPHERE: (859..860) " "
+ ATMOSPHERE: (860..867) "; -> #f"
+ ATMOSPHERE: (867..873) "\n\n "
+ FORM: (873..886)
+ OPEN_PAREN: (873..874) "("
+ SYMBOL: (874..882)
+ IDENTIFIER: (874..882) "boolean?"
+ ATMOSPHERE: (882..883) " "
+ CONSTANT: (883..885)
+ BOOLEAN: (883..885) "#f"
+ CLOSE_PAREN: (885..886) ")"
+ ATMOSPHERE: (886..887) " "
+ ATMOSPHERE: (887..894) "; -> #t"
+ ATMOSPHERE: (894..899) "\n "
+ FORM: (899..911)
+ OPEN_PAREN: (899..900) "("
+ SYMBOL: (900..908)
+ IDENTIFIER: (900..908) "boolean?"
+ ATMOSPHERE: (908..909) " "
+ CONSTANT: (909..910)
+ NUMBER: (909..910) "0"
+ CLOSE_PAREN: (910..911) ")"
+ ATMOSPHERE: (911..912) " "
+ ATMOSPHERE: (912..919) "; -> #f"
+ ATMOSPHERE: (919..924) "\n "
+ FORM: (924..938)
+ OPEN_PAREN: (924..925) "("
+ SYMBOL: (925..933)
+ IDENTIFIER: (925..933) "boolean?"
+ ATMOSPHERE: (933..934) " "
+ QUOTED_DATUM: (934..937)
+ QUOTE: (934..935) "’"
+ FORM: (935..937)
+ OPEN_PAREN: (935..936) "("
+ CLOSE_PAREN: (936..937) ")"
+ CLOSE_PAREN: (937..938) ")"
+ ATMOSPHERE: (938..939) " "
+ ATMOSPHERE: (939..946) "; -> #f"
+ ATMOSPHERE: (946..956) "\n \n "
+ FORM: (956..976)
+ OPEN_PAREN: (956..957) "("
+ SYMBOL: (957..966)
+ IDENTIFIER: (957..966) "boolean=?"
+ ATMOSPHERE: (966..967) " "
+ CONSTANT: (967..969)
+ BOOLEAN: (967..969) "#t"
+ ATMOSPHERE: (969..970) " "
+ CONSTANT: (970..972)
+ BOOLEAN: (970..972) "#t"
+ ATMOSPHERE: (972..973) " "
+ CONSTANT: (973..975)
+ BOOLEAN: (973..975) "#t"
+ CLOSE_PAREN: (975..976) ")"
+ ATMOSPHERE: (976..981) "\n "
+ FORM: (981..1001)
+ OPEN_PAREN: (981..982) "("
+ SYMBOL: (982..991)
+ IDENTIFIER: (982..991) "boolean=?"
+ ATMOSPHERE: (991..992) " "
+ CONSTANT: (992..994)
+ BOOLEAN: (992..994) "#t"
+ ATMOSPHERE: (994..995) " "
+ CONSTANT: (995..997)
+ BOOLEAN: (995..997) "#f"
+ ATMOSPHERE: (997..998) " "
+ CONSTANT: (998..1000)
+ BOOLEAN: (998..1000) "#t"
+ CLOSE_PAREN: (1000..1001) ")"
+ ATMOSPHERE: (1001..1006) "\n "
+ FORM: (1006..1032)
+ OPEN_PAREN: (1006..1007) "("
+ SYMBOL: (1007..1016)
+ IDENTIFIER: (1007..1016) "boolean=?"
+ ATMOSPHERE: (1016..1017) " "
+ CONSTANT: (1017..1019)
+ BOOLEAN: (1017..1019) "#f"
+ ATMOSPHERE: (1019..1020) " "
+ CONSTANT: (1020..1022)
+ BOOLEAN: (1020..1022) "#f"
+ ATMOSPHERE: (1022..1023) " "
+ CONSTANT: (1023..1025)
+ BOOLEAN: (1023..1025) "#f"
+ ATMOSPHERE: (1025..1026) " "
+ CONSTANT: (1026..1028)
+ BOOLEAN: (1026..1028) "#f"
+ ATMOSPHERE: (1028..1029) " "
+ CONSTANT: (1029..1031)
+ BOOLEAN: (1029..1031) "#t"
+ CLOSE_PAREN: (1031..1032) ")"
+ ATMOSPHERE: (1032..1037) "\n "
+ FORM: (1037..1060)
+ OPEN_PAREN: (1037..1038) "("
+ SYMBOL: (1038..1047)
+ IDENTIFIER: (1038..1047) "boolean=?"
+ ATMOSPHERE: (1047..1048) " "
+ CONSTANT: (1048..1050)
+ BOOLEAN: (1048..1050) "#f"
+ ATMOSPHERE: (1050..1051) " "
+ CONSTANT: (1051..1053)
+ BOOLEAN: (1051..1053) "#f"
+ ATMOSPHERE: (1053..1054) " "
+ CONSTANT: (1054..1056)
+ BOOLEAN: (1054..1056) "#f"
+ ATMOSPHERE: (1056..1057) " "
+ CONSTANT: (1057..1059)
+ BOOLEAN: (1057..1059) "#f"
+ CLOSE_PAREN: (1059..1060) ")"
+ ATMOSPHERE: (1060..1065) "\n "
+ FORM: (1065..1082)
+ OPEN_PAREN: (1065..1066) "("
+ SYMBOL: (1066..1075)
+ IDENTIFIER: (1066..1075) "boolean=?"
+ ATMOSPHERE: (1075..1076) " "
+ CONSTANT: (1076..1078)
+ BOOLEAN: (1076..1078) "#f"
+ ATMOSPHERE: (1078..1079) " "
+ CONSTANT: (1079..1081)
+ BOOLEAN: (1079..1081) "#f"
+ CLOSE_PAREN: (1081..1082) ")"
+ ATMOSPHERE: (1082..1087) "\n "
+ FORM: (1087..1103)
+ OPEN_PAREN: (1087..1088) "("
+ SYMBOL: (1088..1097)
+ IDENTIFIER: (1088..1097) "boolean=?"
+ ATMOSPHERE: (1097..1098) " "
+ CONSTANT: (1098..1100)
+ BOOLEAN: (1098..1100) "#f"
+ ATMOSPHERE: (1100..1101) " "
+ CONSTANT: (1101..1102)
+ NUMBER: (1101..1102) "0"
+ CLOSE_PAREN: (1102..1103) ")"
+ ATMOSPHERE: (1103..1108) "\n "
+ FORM: (1108..1126)
+ OPEN_PAREN: (1108..1109) "("
+ SYMBOL: (1109..1118)
+ IDENTIFIER: (1109..1118) "boolean=?"
+ ATMOSPHERE: (1118..1119) " "
+ CONSTANT: (1119..1121)
+ BOOLEAN: (1119..1121) "#f"
+ ATMOSPHERE: (1121..1122) " "
+ QUOTED_DATUM: (1122..1125)
+ QUOTE: (1122..1123) "'"
+ FORM: (1123..1125)
+ OPEN_PAREN: (1123..1124) "("
+ CLOSE_PAREN: (1124..1125) ")"
+ CLOSE_PAREN: (1125..1126) ")"
+ ATMOSPHERE: (1126..1131) "\n "
+ FORM: (1131..1159)
+ OPEN_PAREN: (1131..1132) "("
+ SYMBOL: (1132..1141)
+ IDENTIFIER: (1132..1141) "boolean=?"
+ ATMOSPHERE: (1141..1142) " "
+ FORM: (1142..1152)
+ OPEN_PAREN: (1142..1143) "("
+ SYMBOL: (1143..1147)
+ IDENTIFIER: (1143..1147) "list"
+ ATMOSPHERE: (1147..1148) " "
+ CONSTANT: (1148..1151)
+ NUMBER: (1148..1151) "123"
+ CLOSE_PAREN: (1151..1152) ")"
+ ATMOSPHERE: (1152..1153) " "
+ CONSTANT: (1153..1155)
+ NUMBER: (1153..1155) "21"
+ ATMOSPHERE: (1155..1156) " "
+ CONSTANT: (1156..1158)
+ BOOLEAN: (1156..1158) "#t"
+ CLOSE_PAREN: (1158..1159) ")"
+ ATMOSPHERE: (1159..1165) "\n\n "
+ CLOSE_PAREN: (1165..1166) ")"
+ CLOSE_PAREN: (1166..1167) ")"
+ FORM: (1167..1176)
+ OPEN_PAREN: (1167..1168) "("
+ SYMBOL: (1168..1175)
+ IDENTIFIER: (1168..1175) "newline"
+ CLOSE_PAREN: (1175..1176) ")"
+ EOF: (1176..1176) ""
diff --git a/spec/builtin-macros.ast b/spec/builtin-macros.ast
new file mode 100644
index 0000000..4505964
--- /dev/null
+++ b/spec/builtin-macros.ast
@@ -0,0 +1,228 @@
+PROGRAM: (0..499)
+ FORM: (0..211)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ ATMOSPHERE: (26..93) ";; FIXME: we shouldn't _need_ to import this, but we have no way of"
+ ATMOSPHERE: (93..98) "\n "
+ ATMOSPHERE: (98..162) ";; exporting or re-exporting macro definitions currently."
+ ATMOSPHERE: (162..167) "\n "
+ FORM: (167..191)
+ OPEN_PAREN: (167..168) "("
+ SYMBOL: (168..175)
+ IDENTIFIER: (168..175) "feersum"
+ ATMOSPHERE: (175..176) " "
+ SYMBOL: (176..183)
+ IDENTIFIER: (176..183) "builtin"
+ ATMOSPHERE: (183..184) " "
+ SYMBOL: (184..190)
+ IDENTIFIER: (184..190) "macros"
+ CLOSE_PAREN: (190..191) ")"
+ ATMOSPHERE: (191..196) "\n "
+ FORM: (196..210)
+ OPEN_PAREN: (196..197) "("
+ SYMBOL: (197..203)
+ IDENTIFIER: (197..203) "scheme"
+ ATMOSPHERE: (203..204) " "
+ SYMBOL: (204..209)
+ IDENTIFIER: (204..209) "write"
+ CLOSE_PAREN: (209..210) ")"
+ CLOSE_PAREN: (210..211) ")"
+ ATMOSPHERE: (211..212) "\n"
+ FORM: (212..498)
+ OPEN_PAREN: (212..213) "("
+ SYMBOL: (213..220)
+ IDENTIFIER: (213..220) "display"
+ ATMOSPHERE: (220..225) "\n "
+ FORM: (225..497)
+ OPEN_PAREN: (225..226) "("
+ SYMBOL: (226..230)
+ IDENTIFIER: (226..230) "list"
+ ATMOSPHERE: (230..239) "\n "
+ FORM: (239..260)
+ OPEN_PAREN: (239..240) "("
+ SYMBOL: (240..243)
+ IDENTIFIER: (240..243) "and"
+ ATMOSPHERE: (243..244) " "
+ FORM: (244..251)
+ OPEN_PAREN: (244..245) "("
+ SYMBOL: (245..246)
+ IDENTIFIER: (245..246) "="
+ ATMOSPHERE: (246..247) " "
+ CONSTANT: (247..248)
+ NUMBER: (247..248) "2"
+ ATMOSPHERE: (248..249) " "
+ CONSTANT: (249..250)
+ NUMBER: (249..250) "2"
+ CLOSE_PAREN: (250..251) ")"
+ ATMOSPHERE: (251..252) " "
+ FORM: (252..259)
+ OPEN_PAREN: (252..253) "("
+ SYMBOL: (253..254)
+ IDENTIFIER: (253..254) ">"
+ ATMOSPHERE: (254..255) " "
+ CONSTANT: (255..256)
+ NUMBER: (255..256) "2"
+ ATMOSPHERE: (256..257) " "
+ CONSTANT: (257..258)
+ NUMBER: (257..258) "1"
+ CLOSE_PAREN: (258..259) ")"
+ CLOSE_PAREN: (259..260) ")"
+ ATMOSPHERE: (260..261) " "
+ ATMOSPHERE: (261..268) "; -> #t"
+ ATMOSPHERE: (268..277) "\n "
+ FORM: (277..298)
+ OPEN_PAREN: (277..278) "("
+ SYMBOL: (278..281)
+ IDENTIFIER: (278..281) "and"
+ ATMOSPHERE: (281..282) " "
+ FORM: (282..289)
+ OPEN_PAREN: (282..283) "("
+ SYMBOL: (283..284)
+ IDENTIFIER: (283..284) "="
+ ATMOSPHERE: (284..285) " "
+ CONSTANT: (285..286)
+ NUMBER: (285..286) "2"
+ ATMOSPHERE: (286..287) " "
+ CONSTANT: (287..288)
+ NUMBER: (287..288) "2"
+ CLOSE_PAREN: (288..289) ")"
+ ATMOSPHERE: (289..290) " "
+ FORM: (290..297)
+ OPEN_PAREN: (290..291) "("
+ SYMBOL: (291..292)
+ IDENTIFIER: (291..292) "<"
+ ATMOSPHERE: (292..293) " "
+ CONSTANT: (293..294)
+ NUMBER: (293..294) "2"
+ ATMOSPHERE: (294..295) " "
+ CONSTANT: (295..296)
+ NUMBER: (295..296) "1"
+ CLOSE_PAREN: (296..297) ")"
+ CLOSE_PAREN: (297..298) ")"
+ ATMOSPHERE: (298..299) " "
+ ATMOSPHERE: (299..306) "; -> #f"
+ ATMOSPHERE: (306..315) "\n "
+ FORM: (315..334)
+ OPEN_PAREN: (315..316) "("
+ SYMBOL: (316..319)
+ IDENTIFIER: (316..319) "and"
+ ATMOSPHERE: (319..320) " "
+ CONSTANT: (320..321)
+ NUMBER: (320..321) "1"
+ ATMOSPHERE: (321..322) " "
+ CONSTANT: (322..323)
+ NUMBER: (322..323) "2"
+ ATMOSPHERE: (323..324) " "
+ QUOTED_DATUM: (324..327)
+ QUOTE: (324..325) "'"
+ SYMBOL: (325..326)
+ IDENTIFIER: (325..326) "c"
+ ATMOSPHERE: (326..327) " "
+ QUOTED_DATUM: (327..333)
+ QUOTE: (327..328) "'"
+ FORM: (328..333)
+ OPEN_PAREN: (328..329) "("
+ SYMBOL: (329..330)
+ IDENTIFIER: (329..330) "f"
+ ATMOSPHERE: (330..331) " "
+ SYMBOL: (331..332)
+ IDENTIFIER: (331..332) "g"
+ CLOSE_PAREN: (332..333) ")"
+ CLOSE_PAREN: (333..334) ")"
+ ATMOSPHERE: (334..335) " "
+ ATMOSPHERE: (335..346) "; -> '(f g)"
+ ATMOSPHERE: (346..355) "\n "
+ FORM: (355..360)
+ OPEN_PAREN: (355..356) "("
+ SYMBOL: (356..359)
+ IDENTIFIER: (356..359) "and"
+ CLOSE_PAREN: (359..360) ")"
+ ATMOSPHERE: (360..361) " "
+ ATMOSPHERE: (361..368) "; -> #t"
+ ATMOSPHERE: (368..377) "\n "
+ FORM: (377..387)
+ OPEN_PAREN: (377..378) "("
+ SYMBOL: (378..380)
+ IDENTIFIER: (378..380) "or"
+ ATMOSPHERE: (380..381) " "
+ CONSTANT: (381..383)
+ BOOLEAN: (381..383) "#t"
+ ATMOSPHERE: (383..384) " "
+ CONSTANT: (384..386)
+ BOOLEAN: (384..386) "#t"
+ CLOSE_PAREN: (386..387) ")"
+ ATMOSPHERE: (387..388) " "
+ ATMOSPHERE: (388..395) "; -> #t"
+ ATMOSPHERE: (395..404) "\n "
+ FORM: (404..429)
+ OPEN_PAREN: (404..405) "("
+ SYMBOL: (405..407)
+ IDENTIFIER: (405..407) "or"
+ ATMOSPHERE: (407..408) " "
+ CONSTANT: (408..410)
+ BOOLEAN: (408..410) "#f"
+ ATMOSPHERE: (410..411) " "
+ CONSTANT: (411..413)
+ BOOLEAN: (411..413) "#f"
+ ATMOSPHERE: (413..414) " "
+ CONSTANT: (414..416)
+ BOOLEAN: (414..416) "#f"
+ ATMOSPHERE: (416..417) " "
+ CONSTANT: (417..419)
+ BOOLEAN: (417..419) "#f"
+ ATMOSPHERE: (419..420) " "
+ CONSTANT: (420..422)
+ BOOLEAN: (420..422) "#t"
+ ATMOSPHERE: (422..423) " "
+ CONSTANT: (423..425)
+ BOOLEAN: (423..425) "#f"
+ ATMOSPHERE: (425..426) " "
+ CONSTANT: (426..428)
+ BOOLEAN: (426..428) "#f"
+ CLOSE_PAREN: (428..429) ")"
+ ATMOSPHERE: (429..430) " "
+ ATMOSPHERE: (430..437) "; -> #t"
+ ATMOSPHERE: (437..446) "\n "
+ FORM: (446..464)
+ OPEN_PAREN: (446..447) "("
+ SYMBOL: (447..449)
+ IDENTIFIER: (447..449) "or"
+ ATMOSPHERE: (449..450) " "
+ CONSTANT: (450..452)
+ BOOLEAN: (450..452) "#f"
+ ATMOSPHERE: (452..453) " "
+ CONSTANT: (453..456)
+ NUMBER: (453..456) "100"
+ ATMOSPHERE: (456..457) " "
+ CONSTANT: (457..459)
+ BOOLEAN: (457..459) "#f"
+ ATMOSPHERE: (459..460) " "
+ CONSTANT: (460..463)
+ NUMBER: (460..463) "101"
+ CLOSE_PAREN: (463..464) ")"
+ ATMOSPHERE: (464..465) " "
+ ATMOSPHERE: (465..470) "; 100"
+ ATMOSPHERE: (470..479) "\n "
+ FORM: (479..483)
+ OPEN_PAREN: (479..480) "("
+ SYMBOL: (480..482)
+ IDENTIFIER: (480..482) "or"
+ CLOSE_PAREN: (482..483) ")"
+ ATMOSPHERE: (483..484) " "
+ ATMOSPHERE: (484..491) "; -> #f"
+ ATMOSPHERE: (491..496) "\n "
+ CLOSE_PAREN: (496..497) ")"
+ CLOSE_PAREN: (497..498) ")"
+ ATMOSPHERE: (498..499) "\n"
+ EOF: (499..499) ""
diff --git a/spec/builtins.ast b/spec/builtins.ast
new file mode 100644
index 0000000..69786a3
--- /dev/null
+++ b/spec/builtins.ast
@@ -0,0 +1,196 @@
+PROGRAM: (0..317)
+ FORM: (0..22)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ CLOSE_PAREN: (21..22) ")"
+ ATMOSPHERE: (22..23) "\n"
+ FORM: (23..26)
+ OPEN_PAREN: (23..24) "("
+ SYMBOL: (24..25)
+ IDENTIFIER: (24..25) "="
+ CLOSE_PAREN: (25..26) ")"
+ ATMOSPHERE: (26..28) " "
+ ATMOSPHERE: (28..35) "; => #t"
+ ATMOSPHERE: (35..36) "\n"
+ FORM: (36..43)
+ OPEN_PAREN: (36..37) "("
+ SYMBOL: (37..38)
+ IDENTIFIER: (37..38) ">"
+ ATMOSPHERE: (38..39) " "
+ CONSTANT: (39..40)
+ NUMBER: (39..40) "5"
+ ATMOSPHERE: (40..41) " "
+ CONSTANT: (41..42)
+ NUMBER: (41..42) "4"
+ CLOSE_PAREN: (42..43) ")"
+ ATMOSPHERE: (43..44) " "
+ ATMOSPHERE: (44..51) "; => #t"
+ ATMOSPHERE: (51..52) "\n"
+ FORM: (52..59)
+ OPEN_PAREN: (52..53) "("
+ SYMBOL: (53..54)
+ IDENTIFIER: (53..54) "<"
+ ATMOSPHERE: (54..55) " "
+ CONSTANT: (55..56)
+ NUMBER: (55..56) "5"
+ ATMOSPHERE: (56..57) " "
+ CONSTANT: (57..58)
+ NUMBER: (57..58) "4"
+ CLOSE_PAREN: (58..59) ")"
+ ATMOSPHERE: (59..60) " "
+ ATMOSPHERE: (60..67) "; => #f"
+ ATMOSPHERE: (67..68) "\n"
+ FORM: (68..317)
+ OPEN_PAREN: (68..69) "("
+ SYMBOL: (69..71)
+ IDENTIFIER: (69..71) "if"
+ ATMOSPHERE: (71..77) " \n "
+ FORM: (77..83)
+ OPEN_PAREN: (77..78) "("
+ SYMBOL: (78..80)
+ IDENTIFIER: (78..80) ">="
+ ATMOSPHERE: (80..81) " "
+ CONSTANT: (81..82)
+ NUMBER: (81..82) "1"
+ CLOSE_PAREN: (82..83) ")"
+ ATMOSPHERE: (83..84) " "
+ ATMOSPHERE: (84..91) "; => #t"
+ ATMOSPHERE: (91..96) "\n "
+ FORM: (96..295)
+ OPEN_PAREN: (96..97) "("
+ SYMBOL: (97..98)
+ IDENTIFIER: (97..98) "+"
+ ATMOSPHERE: (98..107) "\n "
+ FORM: (107..119)
+ OPEN_PAREN: (107..108) "("
+ SYMBOL: (108..109)
+ IDENTIFIER: (108..109) "+"
+ ATMOSPHERE: (109..110) " "
+ CONSTANT: (110..111)
+ NUMBER: (110..111) "1"
+ ATMOSPHERE: (111..112) " "
+ CONSTANT: (112..113)
+ NUMBER: (112..113) "2"
+ ATMOSPHERE: (113..114) " "
+ CONSTANT: (114..115)
+ NUMBER: (114..115) "4"
+ ATMOSPHERE: (115..116) " "
+ CONSTANT: (116..118)
+ NUMBER: (116..118) "88"
+ CLOSE_PAREN: (118..119) ")"
+ ATMOSPHERE: (119..120) " "
+ ATMOSPHERE: (120..127) "; => 95"
+ ATMOSPHERE: (127..136) "\n "
+ FORM: (136..145)
+ OPEN_PAREN: (136..137) "("
+ SYMBOL: (137..138)
+ IDENTIFIER: (137..138) "-"
+ ATMOSPHERE: (138..139) " "
+ CONSTANT: (139..140)
+ NUMBER: (139..140) "3"
+ ATMOSPHERE: (140..141) " "
+ CONSTANT: (141..142)
+ NUMBER: (141..142) "4"
+ ATMOSPHERE: (142..143) " "
+ CONSTANT: (143..144)
+ NUMBER: (143..144) "5"
+ CLOSE_PAREN: (144..145) ")"
+ ATMOSPHERE: (145..146) " "
+ ATMOSPHERE: (146..153) "; => -6"
+ ATMOSPHERE: (153..162) "\n "
+ FORM: (162..167)
+ OPEN_PAREN: (162..163) "("
+ SYMBOL: (163..164)
+ IDENTIFIER: (163..164) "-"
+ ATMOSPHERE: (164..165) " "
+ CONSTANT: (165..166)
+ NUMBER: (165..166) "9"
+ CLOSE_PAREN: (166..167) ")"
+ ATMOSPHERE: (167..168) " "
+ ATMOSPHERE: (168..175) "; => -9"
+ ATMOSPHERE: (175..184) "\n "
+ FORM: (184..187)
+ OPEN_PAREN: (184..185) "("
+ SYMBOL: (185..186)
+ IDENTIFIER: (185..186) "/"
+ CLOSE_PAREN: (186..187) ")"
+ ATMOSPHERE: (187..188) " "
+ ATMOSPHERE: (188..194) "; => 1"
+ ATMOSPHERE: (194..203) "\n "
+ FORM: (203..208)
+ OPEN_PAREN: (203..204) "("
+ SYMBOL: (204..205)
+ IDENTIFIER: (204..205) "/"
+ ATMOSPHERE: (205..206) " "
+ CONSTANT: (206..207)
+ NUMBER: (206..207) "2"
+ CLOSE_PAREN: (207..208) ")"
+ ATMOSPHERE: (208..209) " "
+ ATMOSPHERE: (209..217) "; => 0.5"
+ ATMOSPHERE: (217..226) "\n "
+ FORM: (226..233)
+ OPEN_PAREN: (226..227) "("
+ SYMBOL: (227..228)
+ IDENTIFIER: (227..228) "/"
+ ATMOSPHERE: (228..229) " "
+ CONSTANT: (229..230)
+ NUMBER: (229..230) "5"
+ ATMOSPHERE: (230..231) " "
+ CONSTANT: (231..232)
+ NUMBER: (231..232) "2"
+ CLOSE_PAREN: (232..233) ")"
+ ATMOSPHERE: (233..234) " "
+ ATMOSPHERE: (234..242) "; => 2.5"
+ ATMOSPHERE: (242..251) "\n "
+ FORM: (251..258)
+ OPEN_PAREN: (251..252) "("
+ SYMBOL: (252..253)
+ IDENTIFIER: (252..253) "*"
+ ATMOSPHERE: (253..254) " "
+ CONSTANT: (254..255)
+ NUMBER: (254..255) "8"
+ ATMOSPHERE: (255..256) " "
+ CONSTANT: (256..257)
+ NUMBER: (256..257) "5"
+ CLOSE_PAREN: (257..258) ")"
+ ATMOSPHERE: (258..259) " "
+ ATMOSPHERE: (259..266) "; => 40"
+ ATMOSPHERE: (266..275) "\n "
+ FORM: (275..281)
+ OPEN_PAREN: (275..276) "("
+ SYMBOL: (276..277)
+ IDENTIFIER: (276..277) "*"
+ ATMOSPHERE: (277..278) " "
+ CONSTANT: (278..280)
+ NUMBER: (278..280) "76"
+ CLOSE_PAREN: (280..281) ")"
+ ATMOSPHERE: (281..282) " "
+ ATMOSPHERE: (282..289) "; => 76"
+ ATMOSPHERE: (289..294) "\n "
+ CLOSE_PAREN: (294..295) ")"
+ ATMOSPHERE: (295..296) " "
+ ATMOSPHERE: (296..304) "; => 200"
+ ATMOSPHERE: (304..309) "\n "
+ FORM: (309..316)
+ OPEN_PAREN: (309..310) "("
+ SYMBOL: (310..311)
+ IDENTIFIER: (310..311) "*"
+ ATMOSPHERE: (311..312) " "
+ CONSTANT: (312..313)
+ NUMBER: (312..313) "8"
+ ATMOSPHERE: (313..314) " "
+ CONSTANT: (314..315)
+ NUMBER: (314..315) "9"
+ CLOSE_PAREN: (315..316) ")"
+ CLOSE_PAREN: (316..317) ")"
+ EOF: (317..317) ""
diff --git a/spec/byte-vectors.ast b/spec/byte-vectors.ast
new file mode 100644
index 0000000..44b3497
--- /dev/null
+++ b/spec/byte-vectors.ast
@@ -0,0 +1,244 @@
+PROGRAM: (0..539)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..296)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..50)
+ IDENTIFIER: (43..50) "display"
+ ATMOSPHERE: (50..51) " "
+ FORM: (51..295)
+ OPEN_PAREN: (51..52) "("
+ SYMBOL: (52..56)
+ IDENTIFIER: (52..56) "list"
+ ATMOSPHERE: (56..63) " \n\n "
+ ATMOSPHERE: (63..86) ";; byte vector literals"
+ ATMOSPHERE: (86..91) "\n "
+ BYTEVEC: (91..96)
+ OPEN_PAREN: (91..95) "#u8("
+ CLOSE_PAREN: (95..96) ")"
+ ATMOSPHERE: (96..101) "\n "
+ BYTEVEC: (101..109)
+ OPEN_PAREN: (101..105) "#u8("
+ CONSTANT: (105..108)
+ NUMBER: (105..108) "255"
+ CLOSE_PAREN: (108..109) ")"
+ ATMOSPHERE: (109..114) "\n "
+ BYTEVEC: (114..126)
+ OPEN_PAREN: (114..118) "#u8("
+ ATMOSPHERE: (118..119) " "
+ CONSTANT: (119..120)
+ NUMBER: (119..120) "1"
+ ATMOSPHERE: (120..121) " "
+ CONSTANT: (121..122)
+ NUMBER: (121..122) "2"
+ ATMOSPHERE: (122..123) " "
+ CONSTANT: (123..124)
+ NUMBER: (123..124) "3"
+ ATMOSPHERE: (124..125) " "
+ CLOSE_PAREN: (125..126) ")"
+ ATMOSPHERE: (126..132) "\n\n "
+ FORM: (132..151)
+ OPEN_PAREN: (132..133) "("
+ SYMBOL: (133..144)
+ IDENTIFIER: (133..144) "bytevector?"
+ ATMOSPHERE: (144..145) " "
+ BYTEVEC: (145..150)
+ OPEN_PAREN: (145..149) "#u8("
+ CLOSE_PAREN: (149..150) ")"
+ CLOSE_PAREN: (150..151) ")"
+ ATMOSPHERE: (151..156) "\n "
+ FORM: (156..186)
+ OPEN_PAREN: (156..157) "("
+ SYMBOL: (157..168)
+ IDENTIFIER: (157..168) "bytevector?"
+ ATMOSPHERE: (168..169) " "
+ BYTEVEC: (169..185)
+ OPEN_PAREN: (169..173) "#u8("
+ CONSTANT: (173..176)
+ NUMBER: (173..176) "128"
+ ATMOSPHERE: (176..177) " "
+ CONSTANT: (177..180)
+ NUMBER: (177..180) "254"
+ ATMOSPHERE: (180..181) " "
+ CONSTANT: (181..184)
+ NUMBER: (181..184) "255"
+ CLOSE_PAREN: (184..185) ")"
+ CLOSE_PAREN: (185..186) ")"
+ ATMOSPHERE: (186..192) "\n\n "
+ ATMOSPHERE: (192..218) ";; byte vector constructor"
+ ATMOSPHERE: (218..223) "\n "
+ FORM: (223..235)
+ OPEN_PAREN: (223..224) "("
+ SYMBOL: (224..234)
+ IDENTIFIER: (224..234) "bytevector"
+ CLOSE_PAREN: (234..235) ")"
+ ATMOSPHERE: (235..240) "\n "
+ FORM: (240..260)
+ OPEN_PAREN: (240..241) "("
+ SYMBOL: (241..251)
+ IDENTIFIER: (241..251) "bytevector"
+ ATMOSPHERE: (251..252) " "
+ CONSTANT: (252..253)
+ NUMBER: (252..253) "1"
+ ATMOSPHERE: (253..254) " "
+ CONSTANT: (254..255)
+ NUMBER: (254..255) "2"
+ ATMOSPHERE: (255..256) " "
+ CONSTANT: (256..257)
+ NUMBER: (256..257) "4"
+ ATMOSPHERE: (257..258) " "
+ CONSTANT: (258..259)
+ NUMBER: (258..259) "5"
+ CLOSE_PAREN: (259..260) ")"
+ ATMOSPHERE: (260..265) "\n "
+ FORM: (265..288)
+ OPEN_PAREN: (265..266) "("
+ SYMBOL: (266..281)
+ IDENTIFIER: (266..281) "make-bytevector"
+ ATMOSPHERE: (281..282) " "
+ CONSTANT: (282..284)
+ NUMBER: (282..284) "10"
+ ATMOSPHERE: (284..285) " "
+ CONSTANT: (285..287)
+ NUMBER: (285..287) "90"
+ CLOSE_PAREN: (287..288) ")"
+ ATMOSPHERE: (288..294) "\n\n "
+ CLOSE_PAREN: (294..295) ")"
+ CLOSE_PAREN: (295..296) ")"
+ FORM: (296..305)
+ OPEN_PAREN: (296..297) "("
+ SYMBOL: (297..304)
+ IDENTIFIER: (297..304) "newline"
+ CLOSE_PAREN: (304..305) ")"
+ ATMOSPHERE: (305..307) "\n\n"
+ FORM: (307..342)
+ OPEN_PAREN: (307..308) "("
+ SYMBOL: (308..314)
+ IDENTIFIER: (308..314) "define"
+ ATMOSPHERE: (314..315) " "
+ SYMBOL: (315..326)
+ IDENTIFIER: (315..326) "test-vector"
+ ATMOSPHERE: (326..327) " "
+ BYTEVEC: (327..341)
+ OPEN_PAREN: (327..331) "#u8("
+ CONSTANT: (331..332)
+ NUMBER: (331..332) "1"
+ ATMOSPHERE: (332..333) " "
+ CONSTANT: (333..334)
+ NUMBER: (333..334) "2"
+ ATMOSPHERE: (334..335) " "
+ CONSTANT: (335..336)
+ NUMBER: (335..336) "3"
+ ATMOSPHERE: (336..337) " "
+ CONSTANT: (337..338)
+ NUMBER: (337..338) "4"
+ ATMOSPHERE: (338..339) " "
+ CONSTANT: (339..340)
+ NUMBER: (339..340) "5"
+ CLOSE_PAREN: (340..341) ")"
+ CLOSE_PAREN: (341..342) ")"
+ ATMOSPHERE: (342..343) "\n"
+ FORM: (343..384)
+ OPEN_PAREN: (343..344) "("
+ SYMBOL: (344..351)
+ IDENTIFIER: (344..351) "display"
+ ATMOSPHERE: (351..352) " "
+ FORM: (352..383)
+ OPEN_PAREN: (352..353) "("
+ SYMBOL: (353..370)
+ IDENTIFIER: (353..370) "bytevector-length"
+ ATMOSPHERE: (370..371) " "
+ SYMBOL: (371..382)
+ IDENTIFIER: (371..382) "test-vector"
+ CLOSE_PAREN: (382..383) ")"
+ CLOSE_PAREN: (383..384) ")"
+ FORM: (384..393)
+ OPEN_PAREN: (384..385) "("
+ SYMBOL: (385..392)
+ IDENTIFIER: (385..392) "newline"
+ CLOSE_PAREN: (392..393) ")"
+ ATMOSPHERE: (393..394) "\n"
+ FORM: (394..437)
+ OPEN_PAREN: (394..395) "("
+ SYMBOL: (395..402)
+ IDENTIFIER: (395..402) "display"
+ ATMOSPHERE: (402..403) " "
+ FORM: (403..436)
+ OPEN_PAREN: (403..404) "("
+ SYMBOL: (404..421)
+ IDENTIFIER: (404..421) "bytevector-u8-ref"
+ ATMOSPHERE: (421..422) " "
+ SYMBOL: (422..433)
+ IDENTIFIER: (422..433) "test-vector"
+ ATMOSPHERE: (433..434) " "
+ CONSTANT: (434..435)
+ NUMBER: (434..435) "3"
+ CLOSE_PAREN: (435..436) ")"
+ CLOSE_PAREN: (436..437) ")"
+ FORM: (437..446)
+ OPEN_PAREN: (437..438) "("
+ SYMBOL: (438..445)
+ IDENTIFIER: (438..445) "newline"
+ CLOSE_PAREN: (445..446) ")"
+ ATMOSPHERE: (446..447) "\n"
+ FORM: (447..485)
+ OPEN_PAREN: (447..448) "("
+ SYMBOL: (448..466)
+ IDENTIFIER: (448..466) "bytevector-u8-set!"
+ ATMOSPHERE: (466..467) " "
+ SYMBOL: (467..478)
+ IDENTIFIER: (467..478) "test-vector"
+ ATMOSPHERE: (478..479) " "
+ CONSTANT: (479..480)
+ NUMBER: (479..480) "3"
+ ATMOSPHERE: (480..481) " "
+ CONSTANT: (481..484)
+ NUMBER: (481..484) "101"
+ CLOSE_PAREN: (484..485) ")"
+ ATMOSPHERE: (485..486) "\n"
+ FORM: (486..529)
+ OPEN_PAREN: (486..487) "("
+ SYMBOL: (487..494)
+ IDENTIFIER: (487..494) "display"
+ ATMOSPHERE: (494..495) " "
+ FORM: (495..528)
+ OPEN_PAREN: (495..496) "("
+ SYMBOL: (496..513)
+ IDENTIFIER: (496..513) "bytevector-u8-ref"
+ ATMOSPHERE: (513..514) " "
+ SYMBOL: (514..525)
+ IDENTIFIER: (514..525) "test-vector"
+ ATMOSPHERE: (525..526) " "
+ CONSTANT: (526..527)
+ NUMBER: (526..527) "3"
+ CLOSE_PAREN: (527..528) ")"
+ CLOSE_PAREN: (528..529) ")"
+ FORM: (529..538)
+ OPEN_PAREN: (529..530) "("
+ SYMBOL: (530..537)
+ IDENTIFIER: (530..537) "newline"
+ CLOSE_PAREN: (537..538) ")"
+ ATMOSPHERE: (538..539) "\n"
+ EOF: (539..539) ""
diff --git a/spec/capturetest.ast b/spec/capturetest.ast
new file mode 100644
index 0000000..fe1906d
--- /dev/null
+++ b/spec/capturetest.ast
@@ -0,0 +1,168 @@
+PROGRAM: (0..208)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..84)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..50)
+ IDENTIFIER: (43..50) "display"
+ ATMOSPHERE: (50..51) " "
+ FORM: (51..83)
+ OPEN_PAREN: (51..52) "("
+ FORM: (52..82)
+ OPEN_PAREN: (52..53) "("
+ FORM: (53..77)
+ OPEN_PAREN: (53..54) "("
+ SYMBOL: (54..60)
+ IDENTIFIER: (54..60) "lambda"
+ ATMOSPHERE: (60..61) " "
+ SYMBOL: (61..62)
+ IDENTIFIER: (61..62) "a"
+ ATMOSPHERE: (62..63) " "
+ FORM: (63..76)
+ OPEN_PAREN: (63..64) "("
+ SYMBOL: (64..70)
+ IDENTIFIER: (64..70) "lambda"
+ ATMOSPHERE: (70..71) " "
+ FORM: (71..73)
+ OPEN_PAREN: (71..72) "("
+ CLOSE_PAREN: (72..73) ")"
+ ATMOSPHERE: (73..74) " "
+ SYMBOL: (74..75)
+ IDENTIFIER: (74..75) "a"
+ CLOSE_PAREN: (75..76) ")"
+ CLOSE_PAREN: (76..77) ")"
+ ATMOSPHERE: (77..78) " "
+ CONSTANT: (78..81)
+ NUMBER: (78..81) "123"
+ CLOSE_PAREN: (81..82) ")"
+ CLOSE_PAREN: (82..83) ")"
+ CLOSE_PAREN: (83..84) ")"
+ ATMOSPHERE: (84..85) "\n"
+ FORM: (85..140)
+ OPEN_PAREN: (85..86) "("
+ SYMBOL: (86..93)
+ IDENTIFIER: (86..93) "display"
+ ATMOSPHERE: (93..94) " "
+ FORM: (94..139)
+ OPEN_PAREN: (94..95) "("
+ FORM: (95..138)
+ OPEN_PAREN: (95..96) "("
+ SYMBOL: (96..102)
+ IDENTIFIER: (96..102) "lambda"
+ ATMOSPHERE: (102..103) " "
+ FORM: (103..105)
+ OPEN_PAREN: (103..104) "("
+ CLOSE_PAREN: (104..105) ")"
+ ATMOSPHERE: (105..106) " "
+ FORM: (106..120)
+ OPEN_PAREN: (106..107) "("
+ SYMBOL: (107..113)
+ IDENTIFIER: (107..113) "define"
+ ATMOSPHERE: (113..114) " "
+ SYMBOL: (114..115)
+ IDENTIFIER: (114..115) "a"
+ ATMOSPHERE: (115..116) " "
+ CONSTANT: (116..119)
+ NUMBER: (116..119) "100"
+ CLOSE_PAREN: (119..120) ")"
+ ATMOSPHERE: (120..121) " "
+ FORM: (121..135)
+ OPEN_PAREN: (121..122) "("
+ SYMBOL: (122..128)
+ IDENTIFIER: (122..128) "define"
+ ATMOSPHERE: (128..129) " "
+ FORM: (129..132)
+ OPEN_PAREN: (129..130) "("
+ SYMBOL: (130..131)
+ IDENTIFIER: (130..131) "b"
+ CLOSE_PAREN: (131..132) ")"
+ ATMOSPHERE: (132..133) " "
+ SYMBOL: (133..134)
+ IDENTIFIER: (133..134) "a"
+ CLOSE_PAREN: (134..135) ")"
+ ATMOSPHERE: (135..136) " "
+ SYMBOL: (136..137)
+ IDENTIFIER: (136..137) "a"
+ CLOSE_PAREN: (137..138) ")"
+ CLOSE_PAREN: (138..139) ")"
+ CLOSE_PAREN: (139..140) ")"
+ ATMOSPHERE: (140..141) "\n"
+ FORM: (141..208)
+ OPEN_PAREN: (141..142) "("
+ FORM: (142..202)
+ OPEN_PAREN: (142..143) "("
+ FORM: (143..189)
+ OPEN_PAREN: (143..144) "("
+ SYMBOL: (144..150)
+ IDENTIFIER: (144..150) "lambda"
+ ATMOSPHERE: (150..151) " "
+ FORM: (151..154)
+ OPEN_PAREN: (151..152) "("
+ SYMBOL: (152..153)
+ IDENTIFIER: (152..153) "a"
+ CLOSE_PAREN: (153..154) ")"
+ ATMOSPHERE: (154..159) "\n "
+ FORM: (159..188)
+ OPEN_PAREN: (159..160) "("
+ SYMBOL: (160..166)
+ IDENTIFIER: (160..166) "lambda"
+ ATMOSPHERE: (166..167) " "
+ FORM: (167..170)
+ OPEN_PAREN: (167..168) "("
+ SYMBOL: (168..169)
+ IDENTIFIER: (168..169) "b"
+ CLOSE_PAREN: (169..170) ")"
+ ATMOSPHERE: (170..180) " \n "
+ FORM: (180..187)
+ OPEN_PAREN: (180..181) "("
+ SYMBOL: (181..182)
+ IDENTIFIER: (181..182) "="
+ ATMOSPHERE: (182..183) " "
+ SYMBOL: (183..184)
+ IDENTIFIER: (183..184) "a"
+ ATMOSPHERE: (184..185) " "
+ SYMBOL: (185..186)
+ IDENTIFIER: (185..186) "b"
+ CLOSE_PAREN: (186..187) ")"
+ CLOSE_PAREN: (187..188) ")"
+ CLOSE_PAREN: (188..189) ")"
+ ATMOSPHERE: (189..192) "\n "
+ FORM: (192..201)
+ OPEN_PAREN: (192..193) "("
+ SYMBOL: (193..194)
+ IDENTIFIER: (193..194) "*"
+ ATMOSPHERE: (194..195) " "
+ CONSTANT: (195..196)
+ NUMBER: (195..196) "2"
+ ATMOSPHERE: (196..197) " "
+ CONSTANT: (197..200)
+ NUMBER: (197..200) "123"
+ CLOSE_PAREN: (200..201) ")"
+ CLOSE_PAREN: (201..202) ")"
+ ATMOSPHERE: (202..204) "\n "
+ CONSTANT: (204..207)
+ NUMBER: (204..207) "246"
+ CLOSE_PAREN: (207..208) ")"
+ EOF: (208..208) ""
diff --git a/spec/characters.ast b/spec/characters.ast
new file mode 100644
index 0000000..af38403
--- /dev/null
+++ b/spec/characters.ast
@@ -0,0 +1,2443 @@
+PROGRAM: (0..5347)
+ FORM: (0..211)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ ATMOSPHERE: (26..93) ";; FIXME: we shouldn't _need_ to import this, but we have no way of"
+ ATMOSPHERE: (93..98) "\n "
+ ATMOSPHERE: (98..162) ";; exporting or re-exporting macro definitions currently."
+ ATMOSPHERE: (162..167) "\n "
+ FORM: (167..191)
+ OPEN_PAREN: (167..168) "("
+ SYMBOL: (168..175)
+ IDENTIFIER: (168..175) "feersum"
+ ATMOSPHERE: (175..176) " "
+ SYMBOL: (176..183)
+ IDENTIFIER: (176..183) "builtin"
+ ATMOSPHERE: (183..184) " "
+ SYMBOL: (184..190)
+ IDENTIFIER: (184..190) "macros"
+ CLOSE_PAREN: (190..191) ")"
+ ATMOSPHERE: (191..196) "\n "
+ FORM: (196..210)
+ OPEN_PAREN: (196..197) "("
+ SYMBOL: (197..203)
+ IDENTIFIER: (197..203) "scheme"
+ ATMOSPHERE: (203..204) " "
+ SYMBOL: (204..209)
+ IDENTIFIER: (204..209) "write"
+ CLOSE_PAREN: (209..210) ")"
+ CLOSE_PAREN: (210..211) ")"
+ ATMOSPHERE: (211..213) "\n\n"
+ FORM: (213..799)
+ OPEN_PAREN: (213..214) "("
+ SYMBOL: (214..221)
+ IDENTIFIER: (214..221) "display"
+ ATMOSPHERE: (221..222) " "
+ FORM: (222..798)
+ OPEN_PAREN: (222..223) "("
+ SYMBOL: (223..232)
+ IDENTIFIER: (223..232) "boolean=?"
+ ATMOSPHERE: (232..237) "\n "
+ CONSTANT: (237..239)
+ BOOLEAN: (237..239) "#t"
+ ATMOSPHERE: (239..249) "\n \n "
+ FORM: (249..278)
+ OPEN_PAREN: (249..250) "("
+ SYMBOL: (250..256)
+ IDENTIFIER: (250..256) "equal?"
+ ATMOSPHERE: (256..257) " "
+ CONSTANT: (257..264)
+ CHARACTER: (257..264) "#\\alarm"
+ ATMOSPHERE: (264..270) " "
+ CONSTANT: (270..277)
+ CHARACTER: (270..277) "#\\x0007"
+ CLOSE_PAREN: (277..278) ")"
+ ATMOSPHERE: (278..280) " "
+ ATMOSPHERE: (280..288) "; U+0007"
+ ATMOSPHERE: (288..293) "\n "
+ FORM: (293..322)
+ OPEN_PAREN: (293..294) "("
+ SYMBOL: (294..300)
+ IDENTIFIER: (294..300) "equal?"
+ ATMOSPHERE: (300..301) " "
+ CONSTANT: (301..312)
+ CHARACTER: (301..312) "#\\backspace"
+ ATMOSPHERE: (312..314) " "
+ CONSTANT: (314..321)
+ CHARACTER: (314..321) "#\\x0008"
+ CLOSE_PAREN: (321..322) ")"
+ ATMOSPHERE: (322..324) " "
+ ATMOSPHERE: (324..332) "; U+0008"
+ ATMOSPHERE: (332..337) "\n "
+ FORM: (337..366)
+ OPEN_PAREN: (337..338) "("
+ SYMBOL: (338..344)
+ IDENTIFIER: (338..344) "equal?"
+ ATMOSPHERE: (344..345) " "
+ CONSTANT: (345..353)
+ CHARACTER: (345..353) "#\\delete"
+ ATMOSPHERE: (353..358) " "
+ CONSTANT: (358..365)
+ CHARACTER: (358..365) "#\\x007F"
+ CLOSE_PAREN: (365..366) ")"
+ ATMOSPHERE: (366..368) " "
+ ATMOSPHERE: (368..376) "; U+007F"
+ ATMOSPHERE: (376..381) "\n "
+ FORM: (381..410)
+ OPEN_PAREN: (381..382) "("
+ SYMBOL: (382..388)
+ IDENTIFIER: (382..388) "equal?"
+ ATMOSPHERE: (388..389) " "
+ CONSTANT: (389..397)
+ CHARACTER: (389..397) "#\\escape"
+ ATMOSPHERE: (397..402) " "
+ CONSTANT: (402..409)
+ CHARACTER: (402..409) "#\\x001B"
+ CLOSE_PAREN: (409..410) ")"
+ ATMOSPHERE: (410..412) " "
+ ATMOSPHERE: (412..420) "; U+001B"
+ ATMOSPHERE: (420..425) "\n "
+ FORM: (425..454)
+ OPEN_PAREN: (425..426) "("
+ SYMBOL: (426..432)
+ IDENTIFIER: (426..432) "equal?"
+ ATMOSPHERE: (432..433) " "
+ CONSTANT: (433..442)
+ CHARACTER: (433..442) "#\\newline"
+ ATMOSPHERE: (442..446) " "
+ CONSTANT: (446..453)
+ CHARACTER: (446..453) "#\\x000A"
+ CLOSE_PAREN: (453..454) ")"
+ ATMOSPHERE: (454..456) " "
+ ATMOSPHERE: (456..488) "; the linefeed character, U+000A"
+ ATMOSPHERE: (488..493) "\n "
+ FORM: (493..522)
+ OPEN_PAREN: (493..494) "("
+ SYMBOL: (494..500)
+ IDENTIFIER: (494..500) "equal?"
+ ATMOSPHERE: (500..501) " "
+ CONSTANT: (501..507)
+ CHARACTER: (501..507) "#\\null"
+ ATMOSPHERE: (507..514) " "
+ CONSTANT: (514..521)
+ CHARACTER: (514..521) "#\\x0000"
+ CLOSE_PAREN: (521..522) ")"
+ ATMOSPHERE: (522..524) " "
+ ATMOSPHERE: (524..552) "; the null character, U+0000"
+ ATMOSPHERE: (552..557) "\n "
+ FORM: (557..586)
+ OPEN_PAREN: (557..558) "("
+ SYMBOL: (558..564)
+ IDENTIFIER: (558..564) "equal?"
+ ATMOSPHERE: (564..565) " "
+ CONSTANT: (565..573)
+ CHARACTER: (565..573) "#\\return"
+ ATMOSPHERE: (573..578) " "
+ CONSTANT: (578..585)
+ CHARACTER: (578..585) "#\\x000D"
+ CLOSE_PAREN: (585..586) ")"
+ ATMOSPHERE: (586..588) " "
+ ATMOSPHERE: (588..618) "; the return character, U+000D"
+ ATMOSPHERE: (618..623) "\n "
+ FORM: (623..652)
+ OPEN_PAREN: (623..624) "("
+ SYMBOL: (624..630)
+ IDENTIFIER: (624..630) "equal?"
+ ATMOSPHERE: (630..631) " "
+ CONSTANT: (631..638)
+ CHARACTER: (631..638) "#\\space"
+ ATMOSPHERE: (638..644) " "
+ CONSTANT: (644..647)
+ CHARACTER: (644..647) "#\\ "
+ ATMOSPHERE: (647..651) " "
+ CLOSE_PAREN: (651..652) ")"
+ ATMOSPHERE: (652..654) " "
+ ATMOSPHERE: (654..690) "; the preferred way to write a space"
+ ATMOSPHERE: (690..695) "\n "
+ FORM: (695..724)
+ OPEN_PAREN: (695..696) "("
+ SYMBOL: (696..702)
+ IDENTIFIER: (696..702) "equal?"
+ ATMOSPHERE: (702..703) " "
+ CONSTANT: (703..708)
+ CHARACTER: (703..708) "#\\tab"
+ ATMOSPHERE: (708..716) " "
+ CONSTANT: (716..723)
+ CHARACTER: (716..723) "#\\x0009"
+ CLOSE_PAREN: (723..724) ")"
+ ATMOSPHERE: (724..726) " "
+ ATMOSPHERE: (726..753) "; the tab character, U+0009"
+ ATMOSPHERE: (753..758) "\n "
+ FORM: (758..787)
+ OPEN_PAREN: (758..759) "("
+ SYMBOL: (759..765)
+ IDENTIFIER: (759..765) "equal?"
+ ATMOSPHERE: (765..766) " "
+ CONSTANT: (766..773)
+ CHARACTER: (766..773) "#\\x03BB"
+ ATMOSPHERE: (773..779) " "
+ CONSTANT: (779..782)
+ CHARACTER: (779..782) "#\\λ"
+ ATMOSPHERE: (782..786) " "
+ CLOSE_PAREN: (786..787) ")"
+ ATMOSPHERE: (787..789) " "
+ ATMOSPHERE: (789..792) "; λ"
+ ATMOSPHERE: (792..797) "\n "
+ CLOSE_PAREN: (797..798) ")"
+ CLOSE_PAREN: (798..799) ")"
+ FORM: (799..808)
+ OPEN_PAREN: (799..800) "("
+ SYMBOL: (800..807)
+ IDENTIFIER: (800..807) "newline"
+ CLOSE_PAREN: (807..808) ")"
+ ATMOSPHERE: (808..810) "\n\n"
+ ATMOSPHERE: (810..840) ";; Simple character operations"
+ ATMOSPHERE: (840..841) "\n"
+ FORM: (841..1660)
+ OPEN_PAREN: (841..842) "("
+ SYMBOL: (842..849)
+ IDENTIFIER: (842..849) "display"
+ ATMOSPHERE: (849..850) " "
+ FORM: (850..1659)
+ OPEN_PAREN: (850..851) "("
+ SYMBOL: (851..855)
+ IDENTIFIER: (851..855) "list"
+ ATMOSPHERE: (855..860) "\n "
+ FORM: (860..875)
+ OPEN_PAREN: (860..861) "("
+ SYMBOL: (861..866)
+ IDENTIFIER: (861..866) "char?"
+ ATMOSPHERE: (866..867) " "
+ CONSTANT: (867..874)
+ CHARACTER: (867..874) "#\\space"
+ CLOSE_PAREN: (874..875) ")"
+ ATMOSPHERE: (875..880) "\n "
+ FORM: (880..893)
+ OPEN_PAREN: (880..881) "("
+ SYMBOL: (881..886)
+ IDENTIFIER: (881..886) "char?"
+ ATMOSPHERE: (886..887) " "
+ CONSTANT: (887..892)
+ CHARACTER: (887..892) "#\\tab"
+ CLOSE_PAREN: (892..893) ")"
+ ATMOSPHERE: (893..898) "\n "
+ FORM: (898..912)
+ OPEN_PAREN: (898..899) "("
+ SYMBOL: (899..904)
+ IDENTIFIER: (899..904) "char?"
+ ATMOSPHERE: (904..905) " "
+ CONSTANT: (905..911)
+ CHARACTER: (905..911) "#\\null"
+ CLOSE_PAREN: (911..912) ")"
+ ATMOSPHERE: (912..917) "\n "
+ FORM: (917..928)
+ OPEN_PAREN: (917..918) "("
+ SYMBOL: (918..923)
+ IDENTIFIER: (918..923) "char?"
+ ATMOSPHERE: (923..924) " "
+ CONSTANT: (924..927)
+ NUMBER: (924..927) "101"
+ CLOSE_PAREN: (927..928) ")"
+ ATMOSPHERE: (928..933) "\n "
+ FORM: (933..943)
+ OPEN_PAREN: (933..934) "("
+ SYMBOL: (934..939)
+ IDENTIFIER: (934..939) "char?"
+ ATMOSPHERE: (939..940) " "
+ CONSTANT: (940..942)
+ NUMBER: (940..942) "00"
+ CLOSE_PAREN: (942..943) ")"
+ ATMOSPHERE: (943..953) "\n \n "
+ FORM: (953..1241)
+ OPEN_PAREN: (953..954) "("
+ SYMBOL: (954..963)
+ IDENTIFIER: (954..963) "boolean=?"
+ ATMOSPHERE: (963..972) "\n "
+ CONSTANT: (972..974)
+ BOOLEAN: (972..974) "#t"
+ ATMOSPHERE: (974..988) "\n \n "
+ FORM: (988..1021)
+ OPEN_PAREN: (988..989) "("
+ SYMBOL: (989..995)
+ IDENTIFIER: (989..995) "equal?"
+ ATMOSPHERE: (995..996) " "
+ FORM: (996..1013)
+ OPEN_PAREN: (996..997) "("
+ SYMBOL: (997..1008)
+ IDENTIFIER: (997..1008) "digit-value"
+ ATMOSPHERE: (1008..1009) " "
+ CONSTANT: (1009..1012)
+ CHARACTER: (1009..1012) "#\\3"
+ CLOSE_PAREN: (1012..1013) ")"
+ ATMOSPHERE: (1013..1019) " "
+ CONSTANT: (1019..1020)
+ NUMBER: (1019..1020) "3"
+ CLOSE_PAREN: (1020..1021) ")"
+ ATMOSPHERE: (1021..1030) "\n "
+ FORM: (1030..1063)
+ OPEN_PAREN: (1030..1031) "("
+ SYMBOL: (1031..1037)
+ IDENTIFIER: (1031..1037) "equal?"
+ ATMOSPHERE: (1037..1038) " "
+ FORM: (1038..1059)
+ OPEN_PAREN: (1038..1039) "("
+ SYMBOL: (1039..1050)
+ IDENTIFIER: (1039..1050) "digit-value"
+ ATMOSPHERE: (1050..1051) " "
+ CONSTANT: (1051..1058)
+ CHARACTER: (1051..1058) "#\\x0664"
+ CLOSE_PAREN: (1058..1059) ")"
+ ATMOSPHERE: (1059..1061) " "
+ CONSTANT: (1061..1062)
+ NUMBER: (1061..1062) "4"
+ CLOSE_PAREN: (1062..1063) ")"
+ ATMOSPHERE: (1063..1072) "\n "
+ FORM: (1072..1105)
+ OPEN_PAREN: (1072..1073) "("
+ SYMBOL: (1073..1079)
+ IDENTIFIER: (1073..1079) "equal?"
+ ATMOSPHERE: (1079..1080) " "
+ FORM: (1080..1101)
+ OPEN_PAREN: (1080..1081) "("
+ SYMBOL: (1081..1092)
+ IDENTIFIER: (1081..1092) "digit-value"
+ ATMOSPHERE: (1092..1093) " "
+ CONSTANT: (1093..1100)
+ CHARACTER: (1093..1100) "#\\x0AE6"
+ CLOSE_PAREN: (1100..1101) ")"
+ ATMOSPHERE: (1101..1103) " "
+ CONSTANT: (1103..1104)
+ NUMBER: (1103..1104) "0"
+ CLOSE_PAREN: (1104..1105) ")"
+ ATMOSPHERE: (1105..1114) "\n "
+ FORM: (1114..1147)
+ OPEN_PAREN: (1114..1115) "("
+ SYMBOL: (1115..1121)
+ IDENTIFIER: (1115..1121) "equal?"
+ ATMOSPHERE: (1121..1122) " "
+ FORM: (1122..1143)
+ OPEN_PAREN: (1122..1123) "("
+ SYMBOL: (1123..1134)
+ IDENTIFIER: (1123..1134) "digit-value"
+ ATMOSPHERE: (1134..1135) " "
+ CONSTANT: (1135..1142)
+ CHARACTER: (1135..1142) "#\\x0EA6"
+ CLOSE_PAREN: (1142..1143) ")"
+ ATMOSPHERE: (1143..1144) " "
+ CONSTANT: (1144..1146)
+ BOOLEAN: (1144..1146) "#f"
+ CLOSE_PAREN: (1146..1147) ")"
+ ATMOSPHERE: (1147..1156) "\n "
+ FORM: (1156..1189)
+ OPEN_PAREN: (1156..1157) "("
+ SYMBOL: (1157..1163)
+ IDENTIFIER: (1157..1163) "equal?"
+ ATMOSPHERE: (1163..1164) " "
+ FORM: (1164..1181)
+ OPEN_PAREN: (1164..1165) "("
+ SYMBOL: (1165..1176)
+ IDENTIFIER: (1165..1176) "digit-value"
+ ATMOSPHERE: (1176..1177) " "
+ CONSTANT: (1177..1180)
+ CHARACTER: (1177..1180) "#\\১"
+ CLOSE_PAREN: (1180..1181) ")"
+ ATMOSPHERE: (1181..1187) " "
+ CONSTANT: (1187..1188)
+ NUMBER: (1187..1188) "1"
+ CLOSE_PAREN: (1188..1189) ")"
+ ATMOSPHERE: (1189..1198) "\n "
+ FORM: (1198..1231)
+ OPEN_PAREN: (1198..1199) "("
+ SYMBOL: (1199..1205)
+ IDENTIFIER: (1199..1205) "equal?"
+ ATMOSPHERE: (1205..1206) " "
+ FORM: (1206..1223)
+ OPEN_PAREN: (1206..1207) "("
+ SYMBOL: (1207..1218)
+ IDENTIFIER: (1207..1218) "digit-value"
+ ATMOSPHERE: (1218..1219) " "
+ CONSTANT: (1219..1222)
+ CHARACTER: (1219..1222) "#\\५"
+ CLOSE_PAREN: (1222..1223) ")"
+ ATMOSPHERE: (1223..1229) " "
+ CONSTANT: (1229..1230)
+ NUMBER: (1229..1230) "5"
+ CLOSE_PAREN: (1230..1231) ")"
+ ATMOSPHERE: (1231..1240) "\n "
+ CLOSE_PAREN: (1240..1241) ")"
+ ATMOSPHERE: (1241..1247) "\n\n "
+ FORM: (1247..1653)
+ OPEN_PAREN: (1247..1248) "("
+ SYMBOL: (1248..1257)
+ IDENTIFIER: (1248..1257) "boolean=?"
+ ATMOSPHERE: (1257..1266) "\n "
+ CONSTANT: (1266..1268)
+ BOOLEAN: (1266..1268) "#t"
+ ATMOSPHERE: (1268..1278) "\n\n "
+ FORM: (1278..1313)
+ OPEN_PAREN: (1278..1279) "("
+ SYMBOL: (1279..1285)
+ IDENTIFIER: (1279..1285) "equal?"
+ ATMOSPHERE: (1285..1286) " "
+ FORM: (1286..1309)
+ OPEN_PAREN: (1286..1287) "("
+ SYMBOL: (1287..1300)
+ IDENTIFIER: (1287..1300) "char->integer"
+ ATMOSPHERE: (1300..1301) " "
+ CONSTANT: (1301..1308)
+ CHARACTER: (1301..1308) "#\\space"
+ CLOSE_PAREN: (1308..1309) ")"
+ ATMOSPHERE: (1309..1310) " "
+ CONSTANT: (1310..1312)
+ NUMBER: (1310..1312) "32"
+ CLOSE_PAREN: (1312..1313) ")"
+ ATMOSPHERE: (1313..1322) "\n "
+ FORM: (1322..1355)
+ OPEN_PAREN: (1322..1323) "("
+ SYMBOL: (1323..1329)
+ IDENTIFIER: (1323..1329) "equal?"
+ ATMOSPHERE: (1329..1330) " "
+ FORM: (1330..1352)
+ OPEN_PAREN: (1330..1331) "("
+ SYMBOL: (1331..1344)
+ IDENTIFIER: (1331..1344) "char->integer"
+ ATMOSPHERE: (1344..1345) " "
+ CONSTANT: (1345..1351)
+ CHARACTER: (1345..1351) "#\\null"
+ CLOSE_PAREN: (1351..1352) ")"
+ ATMOSPHERE: (1352..1353) " "
+ CONSTANT: (1353..1354)
+ NUMBER: (1353..1354) "0"
+ CLOSE_PAREN: (1354..1355) ")"
+ ATMOSPHERE: (1355..1364) "\n "
+ FORM: (1364..1401)
+ OPEN_PAREN: (1364..1365) "("
+ SYMBOL: (1365..1371)
+ IDENTIFIER: (1365..1371) "equal?"
+ ATMOSPHERE: (1371..1372) " "
+ FORM: (1372..1395)
+ OPEN_PAREN: (1372..1373) "("
+ SYMBOL: (1373..1386)
+ IDENTIFIER: (1373..1386) "char->integer"
+ ATMOSPHERE: (1386..1387) " "
+ CONSTANT: (1387..1394)
+ CHARACTER: (1387..1394) "#\\x0EA6"
+ CLOSE_PAREN: (1394..1395) ")"
+ ATMOSPHERE: (1395..1396) " "
+ CONSTANT: (1396..1400)
+ NUMBER: (1396..1400) "3750"
+ CLOSE_PAREN: (1400..1401) ")"
+ ATMOSPHERE: (1401..1410) "\n "
+ FORM: (1410..1441)
+ OPEN_PAREN: (1410..1411) "("
+ SYMBOL: (1411..1417)
+ IDENTIFIER: (1411..1417) "equal?"
+ ATMOSPHERE: (1417..1418) " "
+ FORM: (1418..1436)
+ OPEN_PAREN: (1418..1419) "("
+ SYMBOL: (1419..1432)
+ IDENTIFIER: (1419..1432) "integer->char"
+ ATMOSPHERE: (1432..1433) " "
+ CONSTANT: (1433..1435)
+ NUMBER: (1433..1435) "38"
+ CLOSE_PAREN: (1435..1436) ")"
+ ATMOSPHERE: (1436..1437) " "
+ CONSTANT: (1437..1440)
+ CHARACTER: (1437..1440) "#\\&"
+ CLOSE_PAREN: (1440..1441) ")"
+ ATMOSPHERE: (1441..1450) "\n "
+ FORM: (1450..1484)
+ OPEN_PAREN: (1450..1451) "("
+ SYMBOL: (1451..1457)
+ IDENTIFIER: (1451..1457) "equal?"
+ ATMOSPHERE: (1457..1458) " "
+ FORM: (1458..1475)
+ OPEN_PAREN: (1458..1459) "("
+ SYMBOL: (1459..1472)
+ IDENTIFIER: (1459..1472) "integer->char"
+ ATMOSPHERE: (1472..1473) " "
+ CONSTANT: (1473..1474)
+ NUMBER: (1473..1474) "0"
+ CLOSE_PAREN: (1474..1475) ")"
+ ATMOSPHERE: (1475..1476) " "
+ CONSTANT: (1476..1483)
+ CHARACTER: (1476..1483) "#\\x0000"
+ CLOSE_PAREN: (1483..1484) ")"
+ ATMOSPHERE: (1484..1493) "\n "
+ FORM: (1493..1531)
+ OPEN_PAREN: (1493..1494) "("
+ SYMBOL: (1494..1500)
+ IDENTIFIER: (1494..1500) "equal?"
+ ATMOSPHERE: (1500..1501) " "
+ FORM: (1501..1522)
+ OPEN_PAREN: (1501..1502) "("
+ SYMBOL: (1502..1515)
+ IDENTIFIER: (1502..1515) "integer->char"
+ ATMOSPHERE: (1515..1516) " "
+ CONSTANT: (1516..1521)
+ NUMBER: (1516..1521) "55295"
+ CLOSE_PAREN: (1521..1522) ")"
+ ATMOSPHERE: (1522..1523) " "
+ CONSTANT: (1523..1530)
+ CHARACTER: (1523..1530) "#\\xD7FF"
+ CLOSE_PAREN: (1530..1531) ")"
+ ATMOSPHERE: (1531..1541) "\n\n "
+ FORM: (1541..1643)
+ OPEN_PAREN: (1541..1542) "("
+ SYMBOL: (1542..1545)
+ IDENTIFIER: (1542..1545) "let"
+ ATMOSPHERE: (1545..1546) " "
+ FORM: (1546..1580)
+ OPEN_PAREN: (1546..1547) "("
+ FORM: (1547..1579)
+ OPEN_PAREN: (1547..1548) "("
+ SYMBOL: (1548..1556)
+ IDENTIFIER: (1548..1556) "bad-char"
+ ATMOSPHERE: (1556..1557) " "
+ FORM: (1557..1578)
+ OPEN_PAREN: (1557..1558) "("
+ SYMBOL: (1558..1571)
+ IDENTIFIER: (1558..1571) "integer->char"
+ ATMOSPHERE: (1571..1572) " "
+ CONSTANT: (1572..1577)
+ NUMBER: (1572..1577) "55296"
+ CLOSE_PAREN: (1577..1578) ")"
+ CLOSE_PAREN: (1578..1579) ")"
+ CLOSE_PAREN: (1579..1580) ")"
+ ATMOSPHERE: (1580..1593) "\n "
+ FORM: (1593..1642)
+ OPEN_PAREN: (1593..1594) "("
+ SYMBOL: (1594..1597)
+ IDENTIFIER: (1594..1597) "and"
+ ATMOSPHERE: (1597..1598) " "
+ FORM: (1598..1618)
+ OPEN_PAREN: (1598..1599) "("
+ SYMBOL: (1599..1600)
+ IDENTIFIER: (1599..1600) ">"
+ ATMOSPHERE: (1600..1601) " "
+ SYMBOL: (1601..1609)
+ IDENTIFIER: (1601..1609) "bad-char"
+ ATMOSPHERE: (1609..1610) " "
+ CONSTANT: (1610..1617)
+ NUMBER: (1610..1617) "1114111"
+ CLOSE_PAREN: (1617..1618) ")"
+ ATMOSPHERE: (1618..1619) " "
+ FORM: (1619..1641)
+ OPEN_PAREN: (1619..1620) "("
+ SYMBOL: (1620..1623)
+ IDENTIFIER: (1620..1623) "not"
+ ATMOSPHERE: (1623..1624) " "
+ FORM: (1624..1640)
+ OPEN_PAREN: (1624..1625) "("
+ SYMBOL: (1625..1630)
+ IDENTIFIER: (1625..1630) "char?"
+ ATMOSPHERE: (1630..1631) " "
+ SYMBOL: (1631..1639)
+ IDENTIFIER: (1631..1639) "bad-char"
+ CLOSE_PAREN: (1639..1640) ")"
+ CLOSE_PAREN: (1640..1641) ")"
+ CLOSE_PAREN: (1641..1642) ")"
+ CLOSE_PAREN: (1642..1643) ")"
+ ATMOSPHERE: (1643..1652) "\n "
+ CLOSE_PAREN: (1652..1653) ")"
+ ATMOSPHERE: (1653..1658) "\n "
+ CLOSE_PAREN: (1658..1659) ")"
+ CLOSE_PAREN: (1659..1660) ")"
+ FORM: (1660..1669)
+ OPEN_PAREN: (1660..1661) "("
+ SYMBOL: (1661..1668)
+ IDENTIFIER: (1661..1668) "newline"
+ CLOSE_PAREN: (1668..1669) ")"
+ ATMOSPHERE: (1669..1671) "\n\n"
+ ATMOSPHERE: (1671..1695) ";; Character comparisons"
+ ATMOSPHERE: (1695..1696) "\n"
+ FORM: (1696..3757)
+ OPEN_PAREN: (1696..1697) "("
+ SYMBOL: (1697..1704)
+ IDENTIFIER: (1697..1704) "display"
+ ATMOSPHERE: (1704..1705) " "
+ FORM: (1705..3756)
+ OPEN_PAREN: (1705..1706) "("
+ SYMBOL: (1706..1715)
+ IDENTIFIER: (1706..1715) "boolean=?"
+ ATMOSPHERE: (1715..1720) "\n "
+ CONSTANT: (1720..1722)
+ BOOLEAN: (1720..1722) "#t"
+ ATMOSPHERE: (1722..1732) "\n \n "
+ FORM: (1732..1752)
+ OPEN_PAREN: (1732..1733) "("
+ SYMBOL: (1733..1739)
+ IDENTIFIER: (1733..1739) "char=?"
+ ATMOSPHERE: (1739..1740) " "
+ CONSTANT: (1740..1743)
+ CHARACTER: (1740..1743) "#\\a"
+ ATMOSPHERE: (1743..1744) " "
+ CONSTANT: (1744..1747)
+ CHARACTER: (1744..1747) "#\\a"
+ ATMOSPHERE: (1747..1748) " "
+ CONSTANT: (1748..1751)
+ CHARACTER: (1748..1751) "#\\a"
+ CLOSE_PAREN: (1751..1752) ")"
+ ATMOSPHERE: (1752..1757) "\n "
+ FORM: (1757..1780)
+ OPEN_PAREN: (1757..1758) "("
+ SYMBOL: (1758..1767)
+ IDENTIFIER: (1758..1767) "char-ci=?"
+ ATMOSPHERE: (1767..1768) " "
+ CONSTANT: (1768..1771)
+ CHARACTER: (1768..1771) "#\\a"
+ ATMOSPHERE: (1771..1772) " "
+ CONSTANT: (1772..1775)
+ CHARACTER: (1772..1775) "#\\a"
+ ATMOSPHERE: (1775..1776) " "
+ CONSTANT: (1776..1779)
+ CHARACTER: (1776..1779) "#\\a"
+ CLOSE_PAREN: (1779..1780) ")"
+ ATMOSPHERE: (1780..1785) "\n "
+ FORM: (1785..1805)
+ OPEN_PAREN: (1785..1786) "("
+ SYMBOL: (1786..1792)
+ IDENTIFIER: (1786..1792) "char=?"
+ ATMOSPHERE: (1792..1793) " "
+ CONSTANT: (1793..1796)
+ CHARACTER: (1793..1796) "#\\A"
+ ATMOSPHERE: (1796..1797) " "
+ CONSTANT: (1797..1800)
+ CHARACTER: (1797..1800) "#\\A"
+ ATMOSPHERE: (1800..1801) " "
+ CONSTANT: (1801..1804)
+ CHARACTER: (1801..1804) "#\\A"
+ CLOSE_PAREN: (1804..1805) ")"
+ ATMOSPHERE: (1805..1810) "\n "
+ FORM: (1810..1833)
+ OPEN_PAREN: (1810..1811) "("
+ SYMBOL: (1811..1820)
+ IDENTIFIER: (1811..1820) "char-ci=?"
+ ATMOSPHERE: (1820..1821) " "
+ CONSTANT: (1821..1824)
+ CHARACTER: (1821..1824) "#\\A"
+ ATMOSPHERE: (1824..1825) " "
+ CONSTANT: (1825..1828)
+ CHARACTER: (1825..1828) "#\\A"
+ ATMOSPHERE: (1828..1829) " "
+ CONSTANT: (1829..1832)
+ CHARACTER: (1829..1832) "#\\A"
+ CLOSE_PAREN: (1832..1833) ")"
+ ATMOSPHERE: (1833..1838) "\n "
+ FORM: (1838..1864)
+ OPEN_PAREN: (1838..1839) "("
+ SYMBOL: (1839..1842)
+ IDENTIFIER: (1839..1842) "not"
+ ATMOSPHERE: (1842..1843) " "
+ FORM: (1843..1863)
+ OPEN_PAREN: (1843..1844) "("
+ SYMBOL: (1844..1850)
+ IDENTIFIER: (1844..1850) "char=?"
+ ATMOSPHERE: (1850..1851) " "
+ CONSTANT: (1851..1854)
+ CHARACTER: (1851..1854) "#\\a"
+ ATMOSPHERE: (1854..1855) " "
+ CONSTANT: (1855..1858)
+ CHARACTER: (1855..1858) "#\\A"
+ ATMOSPHERE: (1858..1859) " "
+ CONSTANT: (1859..1862)
+ CHARACTER: (1859..1862) "#\\a"
+ CLOSE_PAREN: (1862..1863) ")"
+ CLOSE_PAREN: (1863..1864) ")"
+ ATMOSPHERE: (1864..1869) "\n "
+ FORM: (1869..1892)
+ OPEN_PAREN: (1869..1870) "("
+ SYMBOL: (1870..1879)
+ IDENTIFIER: (1870..1879) "char-ci=?"
+ ATMOSPHERE: (1879..1880) " "
+ CONSTANT: (1880..1883)
+ CHARACTER: (1880..1883) "#\\a"
+ ATMOSPHERE: (1883..1884) " "
+ CONSTANT: (1884..1887)
+ CHARACTER: (1884..1887) "#\\A"
+ ATMOSPHERE: (1887..1888) " "
+ CONSTANT: (1888..1891)
+ CHARACTER: (1888..1891) "#\\a"
+ CLOSE_PAREN: (1891..1892) ")"
+ ATMOSPHERE: (1892..1897) "\n "
+ FORM: (1897..1917)
+ OPEN_PAREN: (1897..1898) "("
+ SYMBOL: (1898..1904)
+ IDENTIFIER: (1898..1904) "char=?"
+ ATMOSPHERE: (1904..1905) " "
+ CONSTANT: (1905..1908)
+ CHARACTER: (1905..1908) "#\\λ"
+ ATMOSPHERE: (1908..1909) " "
+ CONSTANT: (1909..1912)
+ CHARACTER: (1909..1912) "#\\λ"
+ ATMOSPHERE: (1912..1913) " "
+ CONSTANT: (1913..1916)
+ CHARACTER: (1913..1916) "#\\λ"
+ CLOSE_PAREN: (1916..1917) ")"
+ ATMOSPHERE: (1917..1922) "\n "
+ FORM: (1922..1945)
+ OPEN_PAREN: (1922..1923) "("
+ SYMBOL: (1923..1932)
+ IDENTIFIER: (1923..1932) "char-ci=?"
+ ATMOSPHERE: (1932..1933) " "
+ CONSTANT: (1933..1936)
+ CHARACTER: (1933..1936) "#\\λ"
+ ATMOSPHERE: (1936..1937) " "
+ CONSTANT: (1937..1940)
+ CHARACTER: (1937..1940) "#\\λ"
+ ATMOSPHERE: (1940..1941) " "
+ CONSTANT: (1941..1944)
+ CHARACTER: (1941..1944) "#\\λ"
+ CLOSE_PAREN: (1944..1945) ")"
+ ATMOSPHERE: (1945..1950) "\n "
+ FORM: (1950..1978)
+ OPEN_PAREN: (1950..1951) "("
+ SYMBOL: (1951..1957)
+ IDENTIFIER: (1951..1957) "char=?"
+ ATMOSPHERE: (1957..1958) " "
+ CONSTANT: (1958..1961)
+ CHARACTER: (1958..1961) "#\\Λ"
+ ATMOSPHERE: (1961..1962) " "
+ CONSTANT: (1962..1965)
+ CHARACTER: (1962..1965) "#\\Λ"
+ ATMOSPHERE: (1965..1966) " "
+ CONSTANT: (1966..1969)
+ CHARACTER: (1966..1969) "#\\Λ"
+ ATMOSPHERE: (1969..1970) " "
+ CONSTANT: (1970..1973)
+ CHARACTER: (1970..1973) "#\\Λ"
+ ATMOSPHERE: (1973..1974) " "
+ CONSTANT: (1974..1977)
+ CHARACTER: (1974..1977) "#\\Λ"
+ CLOSE_PAREN: (1977..1978) ")"
+ ATMOSPHERE: (1978..1983) "\n "
+ FORM: (1983..2014)
+ OPEN_PAREN: (1983..1984) "("
+ SYMBOL: (1984..1993)
+ IDENTIFIER: (1984..1993) "char-ci=?"
+ ATMOSPHERE: (1993..1994) " "
+ CONSTANT: (1994..1997)
+ CHARACTER: (1994..1997) "#\\Λ"
+ ATMOSPHERE: (1997..1998) " "
+ CONSTANT: (1998..2001)
+ CHARACTER: (1998..2001) "#\\Λ"
+ ATMOSPHERE: (2001..2002) " "
+ CONSTANT: (2002..2005)
+ CHARACTER: (2002..2005) "#\\Λ"
+ ATMOSPHERE: (2005..2006) " "
+ CONSTANT: (2006..2009)
+ CHARACTER: (2006..2009) "#\\Λ"
+ ATMOSPHERE: (2009..2010) " "
+ CONSTANT: (2010..2013)
+ CHARACTER: (2010..2013) "#\\Λ"
+ CLOSE_PAREN: (2013..2014) ")"
+ ATMOSPHERE: (2014..2019) "\n "
+ FORM: (2019..2053)
+ OPEN_PAREN: (2019..2020) "("
+ SYMBOL: (2020..2023)
+ IDENTIFIER: (2020..2023) "not"
+ ATMOSPHERE: (2023..2024) " "
+ FORM: (2024..2052)
+ OPEN_PAREN: (2024..2025) "("
+ SYMBOL: (2025..2031)
+ IDENTIFIER: (2025..2031) "char=?"
+ ATMOSPHERE: (2031..2032) " "
+ CONSTANT: (2032..2035)
+ CHARACTER: (2032..2035) "#\\Λ"
+ ATMOSPHERE: (2035..2036) " "
+ CONSTANT: (2036..2039)
+ CHARACTER: (2036..2039) "#\\λ"
+ ATMOSPHERE: (2039..2040) " "
+ CONSTANT: (2040..2043)
+ CHARACTER: (2040..2043) "#\\Λ"
+ ATMOSPHERE: (2043..2044) " "
+ CONSTANT: (2044..2047)
+ CHARACTER: (2044..2047) "#\\Λ"
+ ATMOSPHERE: (2047..2048) " "
+ CONSTANT: (2048..2051)
+ CHARACTER: (2048..2051) "#\\Λ"
+ CLOSE_PAREN: (2051..2052) ")"
+ CLOSE_PAREN: (2052..2053) ")"
+ ATMOSPHERE: (2053..2058) "\n "
+ FORM: (2058..2089)
+ OPEN_PAREN: (2058..2059) "("
+ SYMBOL: (2059..2068)
+ IDENTIFIER: (2059..2068) "char-ci=?"
+ ATMOSPHERE: (2068..2069) " "
+ CONSTANT: (2069..2072)
+ CHARACTER: (2069..2072) "#\\Λ"
+ ATMOSPHERE: (2072..2073) " "
+ CONSTANT: (2073..2076)
+ CHARACTER: (2073..2076) "#\\λ"
+ ATMOSPHERE: (2076..2077) " "
+ CONSTANT: (2077..2080)
+ CHARACTER: (2077..2080) "#\\Λ"
+ ATMOSPHERE: (2080..2081) " "
+ CONSTANT: (2081..2084)
+ CHARACTER: (2081..2084) "#\\Λ"
+ ATMOSPHERE: (2084..2085) " "
+ CONSTANT: (2085..2088)
+ CHARACTER: (2085..2088) "#\\Λ"
+ CLOSE_PAREN: (2088..2089) ")"
+ ATMOSPHERE: (2089..2094) "\n "
+ FORM: (2094..2128)
+ OPEN_PAREN: (2094..2095) "("
+ SYMBOL: (2095..2098)
+ IDENTIFIER: (2095..2098) "not"
+ ATMOSPHERE: (2098..2099) " "
+ FORM: (2099..2127)
+ OPEN_PAREN: (2099..2100) "("
+ SYMBOL: (2100..2106)
+ IDENTIFIER: (2100..2106) "char=?"
+ ATMOSPHERE: (2106..2107) " "
+ CONSTANT: (2107..2110)
+ CHARACTER: (2107..2110) "#\\λ"
+ ATMOSPHERE: (2110..2111) " "
+ CONSTANT: (2111..2114)
+ CHARACTER: (2111..2114) "#\\λ"
+ ATMOSPHERE: (2114..2115) " "
+ CONSTANT: (2115..2118)
+ CHARACTER: (2115..2118) "#\\λ"
+ ATMOSPHERE: (2118..2119) " "
+ CONSTANT: (2119..2126)
+ CHARACTER: (2119..2126) "#\\space"
+ CLOSE_PAREN: (2126..2127) ")"
+ CLOSE_PAREN: (2127..2128) ")"
+ ATMOSPHERE: (2128..2133) "\n "
+ FORM: (2133..2170)
+ OPEN_PAREN: (2133..2134) "("
+ SYMBOL: (2134..2137)
+ IDENTIFIER: (2134..2137) "not"
+ ATMOSPHERE: (2137..2138) " "
+ FORM: (2138..2169)
+ OPEN_PAREN: (2138..2139) "("
+ SYMBOL: (2139..2148)
+ IDENTIFIER: (2139..2148) "char-ci=?"
+ ATMOSPHERE: (2148..2149) " "
+ CONSTANT: (2149..2152)
+ CHARACTER: (2149..2152) "#\\λ"
+ ATMOSPHERE: (2152..2153) " "
+ CONSTANT: (2153..2156)
+ CHARACTER: (2153..2156) "#\\λ"
+ ATMOSPHERE: (2156..2157) " "
+ CONSTANT: (2157..2160)
+ CHARACTER: (2157..2160) "#\\λ"
+ ATMOSPHERE: (2160..2161) " "
+ CONSTANT: (2161..2168)
+ CHARACTER: (2161..2168) "#\\space"
+ CLOSE_PAREN: (2168..2169) ")"
+ CLOSE_PAREN: (2169..2170) ")"
+ ATMOSPHERE: (2170..2175) "\n "
+ FORM: (2175..2197)
+ OPEN_PAREN: (2175..2176) "("
+ SYMBOL: (2176..2179)
+ IDENTIFIER: (2176..2179) "not"
+ ATMOSPHERE: (2179..2180) " "
+ FORM: (2180..2196)
+ OPEN_PAREN: (2180..2181) "("
+ SYMBOL: (2181..2187)
+ IDENTIFIER: (2181..2187) "char=?"
+ ATMOSPHERE: (2187..2188) " "
+ CONSTANT: (2188..2191)
+ CHARACTER: (2188..2191) "#\\a"
+ ATMOSPHERE: (2191..2192) " "
+ CONSTANT: (2192..2195)
+ CHARACTER: (2192..2195) "#\\λ"
+ CLOSE_PAREN: (2195..2196) ")"
+ CLOSE_PAREN: (2196..2197) ")"
+ ATMOSPHERE: (2197..2202) "\n "
+ FORM: (2202..2227)
+ OPEN_PAREN: (2202..2203) "("
+ SYMBOL: (2203..2206)
+ IDENTIFIER: (2203..2206) "not"
+ ATMOSPHERE: (2206..2207) " "
+ FORM: (2207..2226)
+ OPEN_PAREN: (2207..2208) "("
+ SYMBOL: (2208..2217)
+ IDENTIFIER: (2208..2217) "char-ci=?"
+ ATMOSPHERE: (2217..2218) " "
+ CONSTANT: (2218..2221)
+ CHARACTER: (2218..2221) "#\\a"
+ ATMOSPHERE: (2221..2222) " "
+ CONSTANT: (2222..2225)
+ CHARACTER: (2222..2225) "#\\λ"
+ CLOSE_PAREN: (2225..2226) ")"
+ CLOSE_PAREN: (2226..2227) ")"
+ ATMOSPHERE: (2227..2233) "\n\n "
+ FORM: (2233..2257)
+ OPEN_PAREN: (2233..2234) "("
+ SYMBOL: (2234..2240)
+ IDENTIFIER: (2234..2240) "char"
+ ATMOSPHERE: (2240..2241) " "
+ CONSTANT: (2241..2244)
+ CHARACTER: (2241..2244) "#\\a"
+ ATMOSPHERE: (2244..2245) " "
+ CONSTANT: (2245..2248)
+ CHARACTER: (2245..2248) "#\\b"
+ ATMOSPHERE: (2248..2249) " "
+ CONSTANT: (2249..2252)
+ CHARACTER: (2249..2252) "#\\c"
+ ATMOSPHERE: (2252..2253) " "
+ CONSTANT: (2253..2256)
+ CHARACTER: (2253..2256) "#\\d"
+ CLOSE_PAREN: (2256..2257) ")"
+ ATMOSPHERE: (2257..2262) "\n "
+ FORM: (2262..2289)
+ OPEN_PAREN: (2262..2263) "("
+ SYMBOL: (2263..2272)
+ IDENTIFIER: (2263..2272) "char-ci"
+ ATMOSPHERE: (2272..2273) " "
+ CONSTANT: (2273..2276)
+ CHARACTER: (2273..2276) "#\\a"
+ ATMOSPHERE: (2276..2277) " "
+ CONSTANT: (2277..2280)
+ CHARACTER: (2277..2280) "#\\b"
+ ATMOSPHERE: (2280..2281) " "
+ CONSTANT: (2281..2284)
+ CHARACTER: (2281..2284) "#\\c"
+ ATMOSPHERE: (2284..2285) " "
+ CONSTANT: (2285..2288)
+ CHARACTER: (2285..2288) "#\\d"
+ CLOSE_PAREN: (2288..2289) ")"
+ ATMOSPHERE: (2289..2294) "\n "
+ FORM: (2294..2324)
+ OPEN_PAREN: (2294..2295) "("
+ SYMBOL: (2295..2298)
+ IDENTIFIER: (2295..2298) "not"
+ ATMOSPHERE: (2298..2299) " "
+ FORM: (2299..2323)
+ OPEN_PAREN: (2299..2300) "("
+ SYMBOL: (2300..2306)
+ IDENTIFIER: (2300..2306) "char"
+ ATMOSPHERE: (2306..2307) " "
+ CONSTANT: (2307..2310)
+ CHARACTER: (2307..2310) "#\\A"
+ ATMOSPHERE: (2310..2311) " "
+ CONSTANT: (2311..2314)
+ CHARACTER: (2311..2314) "#\\b"
+ ATMOSPHERE: (2314..2315) " "
+ CONSTANT: (2315..2318)
+ CHARACTER: (2315..2318) "#\\c"
+ ATMOSPHERE: (2318..2319) " "
+ CONSTANT: (2319..2322)
+ CHARACTER: (2319..2322) "#\\D"
+ CLOSE_PAREN: (2322..2323) ")"
+ CLOSE_PAREN: (2323..2324) ")"
+ ATMOSPHERE: (2324..2329) "\n "
+ FORM: (2329..2356)
+ OPEN_PAREN: (2329..2330) "("
+ SYMBOL: (2330..2339)
+ IDENTIFIER: (2330..2339) "char-ci"
+ ATMOSPHERE: (2339..2340) " "
+ CONSTANT: (2340..2343)
+ CHARACTER: (2340..2343) "#\\A"
+ ATMOSPHERE: (2343..2344) " "
+ CONSTANT: (2344..2347)
+ CHARACTER: (2344..2347) "#\\b"
+ ATMOSPHERE: (2347..2348) " "
+ CONSTANT: (2348..2351)
+ CHARACTER: (2348..2351) "#\\c"
+ ATMOSPHERE: (2351..2352) " "
+ CONSTANT: (2352..2355)
+ CHARACTER: (2352..2355) "#\\D"
+ CLOSE_PAREN: (2355..2356) ")"
+ ATMOSPHERE: (2356..2361) "\n "
+ FORM: (2361..2391)
+ OPEN_PAREN: (2361..2362) "("
+ SYMBOL: (2362..2365)
+ IDENTIFIER: (2362..2365) "not"
+ ATMOSPHERE: (2365..2366) " "
+ FORM: (2366..2390)
+ OPEN_PAREN: (2366..2367) "("
+ SYMBOL: (2367..2373)
+ IDENTIFIER: (2367..2373) "char"
+ ATMOSPHERE: (2373..2374) " "
+ CONSTANT: (2374..2377)
+ CHARACTER: (2374..2377) "#\\d"
+ ATMOSPHERE: (2377..2378) " "
+ CONSTANT: (2378..2381)
+ CHARACTER: (2378..2381) "#\\c"
+ ATMOSPHERE: (2381..2382) " "
+ CONSTANT: (2382..2385)
+ CHARACTER: (2382..2385) "#\\b"
+ ATMOSPHERE: (2385..2386) " "
+ CONSTANT: (2386..2389)
+ CHARACTER: (2386..2389) "#\\a"
+ CLOSE_PAREN: (2389..2390) ")"
+ CLOSE_PAREN: (2390..2391) ")"
+ ATMOSPHERE: (2391..2396) "\n "
+ FORM: (2396..2429)
+ OPEN_PAREN: (2396..2397) "("
+ SYMBOL: (2397..2400)
+ IDENTIFIER: (2397..2400) "not"
+ ATMOSPHERE: (2400..2401) " "
+ FORM: (2401..2428)
+ OPEN_PAREN: (2401..2402) "("
+ SYMBOL: (2402..2411)
+ IDENTIFIER: (2402..2411) "char-ci"
+ ATMOSPHERE: (2411..2412) " "
+ CONSTANT: (2412..2415)
+ CHARACTER: (2412..2415) "#\\d"
+ ATMOSPHERE: (2415..2416) " "
+ CONSTANT: (2416..2419)
+ CHARACTER: (2416..2419) "#\\c"
+ ATMOSPHERE: (2419..2420) " "
+ CONSTANT: (2420..2423)
+ CHARACTER: (2420..2423) "#\\b"
+ ATMOSPHERE: (2423..2424) " "
+ CONSTANT: (2424..2427)
+ CHARACTER: (2424..2427) "#\\a"
+ CLOSE_PAREN: (2427..2428) ")"
+ CLOSE_PAREN: (2428..2429) ")"
+ ATMOSPHERE: (2429..2434) "\n "
+ FORM: (2434..2464)
+ OPEN_PAREN: (2434..2435) "("
+ SYMBOL: (2435..2438)
+ IDENTIFIER: (2435..2438) "not"
+ ATMOSPHERE: (2438..2439) " "
+ FORM: (2439..2463)
+ OPEN_PAREN: (2439..2440) "("
+ SYMBOL: (2440..2446)
+ IDENTIFIER: (2440..2446) "char"
+ ATMOSPHERE: (2446..2447) " "
+ CONSTANT: (2447..2450)
+ CHARACTER: (2447..2450) "#\\D"
+ ATMOSPHERE: (2450..2451) " "
+ CONSTANT: (2451..2454)
+ CHARACTER: (2451..2454) "#\\c"
+ ATMOSPHERE: (2454..2455) " "
+ CONSTANT: (2455..2458)
+ CHARACTER: (2455..2458) "#\\b"
+ ATMOSPHERE: (2458..2459) " "
+ CONSTANT: (2459..2462)
+ CHARACTER: (2459..2462) "#\\A"
+ CLOSE_PAREN: (2462..2463) ")"
+ CLOSE_PAREN: (2463..2464) ")"
+ ATMOSPHERE: (2464..2469) "\n "
+ FORM: (2469..2502)
+ OPEN_PAREN: (2469..2470) "("
+ SYMBOL: (2470..2473)
+ IDENTIFIER: (2470..2473) "not"
+ ATMOSPHERE: (2473..2474) " "
+ FORM: (2474..2501)
+ OPEN_PAREN: (2474..2475) "("
+ SYMBOL: (2475..2484)
+ IDENTIFIER: (2475..2484) "char-ci"
+ ATMOSPHERE: (2484..2485) " "
+ CONSTANT: (2485..2488)
+ CHARACTER: (2485..2488) "#\\D"
+ ATMOSPHERE: (2488..2489) " "
+ CONSTANT: (2489..2492)
+ CHARACTER: (2489..2492) "#\\c"
+ ATMOSPHERE: (2492..2493) " "
+ CONSTANT: (2493..2496)
+ CHARACTER: (2493..2496) "#\\b"
+ ATMOSPHERE: (2496..2497) " "
+ CONSTANT: (2497..2500)
+ CHARACTER: (2497..2500) "#\\A"
+ CLOSE_PAREN: (2500..2501) ")"
+ CLOSE_PAREN: (2501..2502) ")"
+ ATMOSPHERE: (2502..2508) "\n\n "
+ FORM: (2508..2533)
+ OPEN_PAREN: (2508..2509) "("
+ SYMBOL: (2509..2516)
+ IDENTIFIER: (2509..2516) "char<=?"
+ ATMOSPHERE: (2516..2517) " "
+ CONSTANT: (2517..2520)
+ CHARACTER: (2517..2520) "#\\a"
+ ATMOSPHERE: (2520..2521) " "
+ CONSTANT: (2521..2524)
+ CHARACTER: (2521..2524) "#\\b"
+ ATMOSPHERE: (2524..2525) " "
+ CONSTANT: (2525..2528)
+ CHARACTER: (2525..2528) "#\\c"
+ ATMOSPHERE: (2528..2529) " "
+ CONSTANT: (2529..2532)
+ CHARACTER: (2529..2532) "#\\d"
+ CLOSE_PAREN: (2532..2533) ")"
+ ATMOSPHERE: (2533..2538) "\n "
+ FORM: (2538..2566)
+ OPEN_PAREN: (2538..2539) "("
+ SYMBOL: (2539..2549)
+ IDENTIFIER: (2539..2549) "char-ci<=?"
+ ATMOSPHERE: (2549..2550) " "
+ CONSTANT: (2550..2553)
+ CHARACTER: (2550..2553) "#\\a"
+ ATMOSPHERE: (2553..2554) " "
+ CONSTANT: (2554..2557)
+ CHARACTER: (2554..2557) "#\\b"
+ ATMOSPHERE: (2557..2558) " "
+ CONSTANT: (2558..2561)
+ CHARACTER: (2558..2561) "#\\c"
+ ATMOSPHERE: (2561..2562) " "
+ CONSTANT: (2562..2565)
+ CHARACTER: (2562..2565) "#\\d"
+ CLOSE_PAREN: (2565..2566) ")"
+ ATMOSPHERE: (2566..2571) "\n "
+ FORM: (2571..2602)
+ OPEN_PAREN: (2571..2572) "("
+ SYMBOL: (2572..2575)
+ IDENTIFIER: (2572..2575) "not"
+ ATMOSPHERE: (2575..2576) " "
+ FORM: (2576..2601)
+ OPEN_PAREN: (2576..2577) "("
+ SYMBOL: (2577..2584)
+ IDENTIFIER: (2577..2584) "char<=?"
+ ATMOSPHERE: (2584..2585) " "
+ CONSTANT: (2585..2588)
+ CHARACTER: (2585..2588) "#\\A"
+ ATMOSPHERE: (2588..2589) " "
+ CONSTANT: (2589..2592)
+ CHARACTER: (2589..2592) "#\\b"
+ ATMOSPHERE: (2592..2593) " "
+ CONSTANT: (2593..2596)
+ CHARACTER: (2593..2596) "#\\c"
+ ATMOSPHERE: (2596..2597) " "
+ CONSTANT: (2597..2600)
+ CHARACTER: (2597..2600) "#\\D"
+ CLOSE_PAREN: (2600..2601) ")"
+ CLOSE_PAREN: (2601..2602) ")"
+ ATMOSPHERE: (2602..2607) "\n "
+ FORM: (2607..2635)
+ OPEN_PAREN: (2607..2608) "("
+ SYMBOL: (2608..2618)
+ IDENTIFIER: (2608..2618) "char-ci<=?"
+ ATMOSPHERE: (2618..2619) " "
+ CONSTANT: (2619..2622)
+ CHARACTER: (2619..2622) "#\\A"
+ ATMOSPHERE: (2622..2623) " "
+ CONSTANT: (2623..2626)
+ CHARACTER: (2623..2626) "#\\b"
+ ATMOSPHERE: (2626..2627) " "
+ CONSTANT: (2627..2630)
+ CHARACTER: (2627..2630) "#\\c"
+ ATMOSPHERE: (2630..2631) " "
+ CONSTANT: (2631..2634)
+ CHARACTER: (2631..2634) "#\\D"
+ CLOSE_PAREN: (2634..2635) ")"
+ ATMOSPHERE: (2635..2640) "\n "
+ FORM: (2640..2671)
+ OPEN_PAREN: (2640..2641) "("
+ SYMBOL: (2641..2644)
+ IDENTIFIER: (2641..2644) "not"
+ ATMOSPHERE: (2644..2645) " "
+ FORM: (2645..2670)
+ OPEN_PAREN: (2645..2646) "("
+ SYMBOL: (2646..2653)
+ IDENTIFIER: (2646..2653) "char<=?"
+ ATMOSPHERE: (2653..2654) " "
+ CONSTANT: (2654..2657)
+ CHARACTER: (2654..2657) "#\\d"
+ ATMOSPHERE: (2657..2658) " "
+ CONSTANT: (2658..2661)
+ CHARACTER: (2658..2661) "#\\c"
+ ATMOSPHERE: (2661..2662) " "
+ CONSTANT: (2662..2665)
+ CHARACTER: (2662..2665) "#\\b"
+ ATMOSPHERE: (2665..2666) " "
+ CONSTANT: (2666..2669)
+ CHARACTER: (2666..2669) "#\\a"
+ CLOSE_PAREN: (2669..2670) ")"
+ CLOSE_PAREN: (2670..2671) ")"
+ ATMOSPHERE: (2671..2676) "\n "
+ FORM: (2676..2710)
+ OPEN_PAREN: (2676..2677) "("
+ SYMBOL: (2677..2680)
+ IDENTIFIER: (2677..2680) "not"
+ ATMOSPHERE: (2680..2681) " "
+ FORM: (2681..2709)
+ OPEN_PAREN: (2681..2682) "("
+ SYMBOL: (2682..2692)
+ IDENTIFIER: (2682..2692) "char-ci<=?"
+ ATMOSPHERE: (2692..2693) " "
+ CONSTANT: (2693..2696)
+ CHARACTER: (2693..2696) "#\\d"
+ ATMOSPHERE: (2696..2697) " "
+ CONSTANT: (2697..2700)
+ CHARACTER: (2697..2700) "#\\c"
+ ATMOSPHERE: (2700..2701) " "
+ CONSTANT: (2701..2704)
+ CHARACTER: (2701..2704) "#\\b"
+ ATMOSPHERE: (2704..2705) " "
+ CONSTANT: (2705..2708)
+ CHARACTER: (2705..2708) "#\\a"
+ CLOSE_PAREN: (2708..2709) ")"
+ CLOSE_PAREN: (2709..2710) ")"
+ ATMOSPHERE: (2710..2715) "\n "
+ FORM: (2715..2746)
+ OPEN_PAREN: (2715..2716) "("
+ SYMBOL: (2716..2719)
+ IDENTIFIER: (2716..2719) "not"
+ ATMOSPHERE: (2719..2720) " "
+ FORM: (2720..2745)
+ OPEN_PAREN: (2720..2721) "("
+ SYMBOL: (2721..2728)
+ IDENTIFIER: (2721..2728) "char<=?"
+ ATMOSPHERE: (2728..2729) " "
+ CONSTANT: (2729..2732)
+ CHARACTER: (2729..2732) "#\\D"
+ ATMOSPHERE: (2732..2733) " "
+ CONSTANT: (2733..2736)
+ CHARACTER: (2733..2736) "#\\c"
+ ATMOSPHERE: (2736..2737) " "
+ CONSTANT: (2737..2740)
+ CHARACTER: (2737..2740) "#\\b"
+ ATMOSPHERE: (2740..2741) " "
+ CONSTANT: (2741..2744)
+ CHARACTER: (2741..2744) "#\\A"
+ CLOSE_PAREN: (2744..2745) ")"
+ CLOSE_PAREN: (2745..2746) ")"
+ ATMOSPHERE: (2746..2751) "\n "
+ FORM: (2751..2785)
+ OPEN_PAREN: (2751..2752) "("
+ SYMBOL: (2752..2755)
+ IDENTIFIER: (2752..2755) "not"
+ ATMOSPHERE: (2755..2756) " "
+ FORM: (2756..2784)
+ OPEN_PAREN: (2756..2757) "("
+ SYMBOL: (2757..2767)
+ IDENTIFIER: (2757..2767) "char-ci<=?"
+ ATMOSPHERE: (2767..2768) " "
+ CONSTANT: (2768..2771)
+ CHARACTER: (2768..2771) "#\\D"
+ ATMOSPHERE: (2771..2772) " "
+ CONSTANT: (2772..2775)
+ CHARACTER: (2772..2775) "#\\c"
+ ATMOSPHERE: (2775..2776) " "
+ CONSTANT: (2776..2779)
+ CHARACTER: (2776..2779) "#\\b"
+ ATMOSPHERE: (2779..2780) " "
+ CONSTANT: (2780..2783)
+ CHARACTER: (2780..2783) "#\\A"
+ CLOSE_PAREN: (2783..2784) ")"
+ CLOSE_PAREN: (2784..2785) ")"
+ ATMOSPHERE: (2785..2790) "\n "
+ FORM: (2790..2811)
+ OPEN_PAREN: (2790..2791) "("
+ SYMBOL: (2791..2798)
+ IDENTIFIER: (2791..2798) "char<=?"
+ ATMOSPHERE: (2798..2799) " "
+ CONSTANT: (2799..2802)
+ CHARACTER: (2799..2802) "#\\λ"
+ ATMOSPHERE: (2802..2803) " "
+ CONSTANT: (2803..2806)
+ CHARACTER: (2803..2806) "#\\λ"
+ ATMOSPHERE: (2806..2807) " "
+ CONSTANT: (2807..2810)
+ CHARACTER: (2807..2810) "#\\λ"
+ CLOSE_PAREN: (2810..2811) ")"
+ ATMOSPHERE: (2811..2816) "\n "
+ FORM: (2816..2840)
+ OPEN_PAREN: (2816..2817) "("
+ SYMBOL: (2817..2827)
+ IDENTIFIER: (2817..2827) "char-ci<=?"
+ ATMOSPHERE: (2827..2828) " "
+ CONSTANT: (2828..2831)
+ CHARACTER: (2828..2831) "#\\λ"
+ ATMOSPHERE: (2831..2832) " "
+ CONSTANT: (2832..2835)
+ CHARACTER: (2832..2835) "#\\λ"
+ ATMOSPHERE: (2835..2836) " "
+ CONSTANT: (2836..2839)
+ CHARACTER: (2836..2839) "#\\λ"
+ CLOSE_PAREN: (2839..2840) ")"
+ ATMOSPHERE: (2840..2845) "\n "
+ FORM: (2845..2874)
+ OPEN_PAREN: (2845..2846) "("
+ SYMBOL: (2846..2853)
+ IDENTIFIER: (2846..2853) "char<=?"
+ ATMOSPHERE: (2853..2854) " "
+ CONSTANT: (2854..2857)
+ CHARACTER: (2854..2857) "#\\Λ"
+ ATMOSPHERE: (2857..2858) " "
+ CONSTANT: (2858..2861)
+ CHARACTER: (2858..2861) "#\\Λ"
+ ATMOSPHERE: (2861..2862) " "
+ CONSTANT: (2862..2865)
+ CHARACTER: (2862..2865) "#\\Λ"
+ ATMOSPHERE: (2865..2866) " "
+ CONSTANT: (2866..2869)
+ CHARACTER: (2866..2869) "#\\Λ"
+ ATMOSPHERE: (2869..2870) " "
+ CONSTANT: (2870..2873)
+ CHARACTER: (2870..2873) "#\\Λ"
+ CLOSE_PAREN: (2873..2874) ")"
+ ATMOSPHERE: (2874..2879) "\n "
+ FORM: (2879..2911)
+ OPEN_PAREN: (2879..2880) "("
+ SYMBOL: (2880..2890)
+ IDENTIFIER: (2880..2890) "char-ci<=?"
+ ATMOSPHERE: (2890..2891) " "
+ CONSTANT: (2891..2894)
+ CHARACTER: (2891..2894) "#\\Λ"
+ ATMOSPHERE: (2894..2895) " "
+ CONSTANT: (2895..2898)
+ CHARACTER: (2895..2898) "#\\Λ"
+ ATMOSPHERE: (2898..2899) " "
+ CONSTANT: (2899..2902)
+ CHARACTER: (2899..2902) "#\\Λ"
+ ATMOSPHERE: (2902..2903) " "
+ CONSTANT: (2903..2906)
+ CHARACTER: (2903..2906) "#\\Λ"
+ ATMOSPHERE: (2906..2907) " "
+ CONSTANT: (2907..2910)
+ CHARACTER: (2907..2910) "#\\Λ"
+ CLOSE_PAREN: (2910..2911) ")"
+ ATMOSPHERE: (2911..2916) "\n "
+ FORM: (2916..2951)
+ OPEN_PAREN: (2916..2917) "("
+ SYMBOL: (2917..2920)
+ IDENTIFIER: (2917..2920) "not"
+ ATMOSPHERE: (2920..2921) " "
+ FORM: (2921..2950)
+ OPEN_PAREN: (2921..2922) "("
+ SYMBOL: (2922..2929)
+ IDENTIFIER: (2922..2929) "char<=?"
+ ATMOSPHERE: (2929..2930) " "
+ CONSTANT: (2930..2933)
+ CHARACTER: (2930..2933) "#\\Λ"
+ ATMOSPHERE: (2933..2934) " "
+ CONSTANT: (2934..2937)
+ CHARACTER: (2934..2937) "#\\λ"
+ ATMOSPHERE: (2937..2938) " "
+ CONSTANT: (2938..2941)
+ CHARACTER: (2938..2941) "#\\Λ"
+ ATMOSPHERE: (2941..2942) " "
+ CONSTANT: (2942..2945)
+ CHARACTER: (2942..2945) "#\\Λ"
+ ATMOSPHERE: (2945..2946) " "
+ CONSTANT: (2946..2949)
+ CHARACTER: (2946..2949) "#\\Λ"
+ CLOSE_PAREN: (2949..2950) ")"
+ CLOSE_PAREN: (2950..2951) ")"
+ ATMOSPHERE: (2951..2956) "\n "
+ FORM: (2956..2988)
+ OPEN_PAREN: (2956..2957) "("
+ SYMBOL: (2957..2967)
+ IDENTIFIER: (2957..2967) "char-ci<=?"
+ ATMOSPHERE: (2967..2968) " "
+ CONSTANT: (2968..2971)
+ CHARACTER: (2968..2971) "#\\Λ"
+ ATMOSPHERE: (2971..2972) " "
+ CONSTANT: (2972..2975)
+ CHARACTER: (2972..2975) "#\\λ"
+ ATMOSPHERE: (2975..2976) " "
+ CONSTANT: (2976..2979)
+ CHARACTER: (2976..2979) "#\\Λ"
+ ATMOSPHERE: (2979..2980) " "
+ CONSTANT: (2980..2983)
+ CHARACTER: (2980..2983) "#\\Λ"
+ ATMOSPHERE: (2983..2984) " "
+ CONSTANT: (2984..2987)
+ CHARACTER: (2984..2987) "#\\Λ"
+ CLOSE_PAREN: (2987..2988) ")"
+ ATMOSPHERE: (2988..2994) "\n\n "
+ FORM: (2994..3024)
+ OPEN_PAREN: (2994..2995) "("
+ SYMBOL: (2995..2998)
+ IDENTIFIER: (2995..2998) "not"
+ ATMOSPHERE: (2998..2999) " "
+ FORM: (2999..3023)
+ OPEN_PAREN: (2999..3000) "("
+ SYMBOL: (3000..3006)
+ IDENTIFIER: (3000..3006) "char>?"
+ ATMOSPHERE: (3006..3007) " "
+ CONSTANT: (3007..3010)
+ CHARACTER: (3007..3010) "#\\a"
+ ATMOSPHERE: (3010..3011) " "
+ CONSTANT: (3011..3014)
+ CHARACTER: (3011..3014) "#\\b"
+ ATMOSPHERE: (3014..3015) " "
+ CONSTANT: (3015..3018)
+ CHARACTER: (3015..3018) "#\\c"
+ ATMOSPHERE: (3018..3019) " "
+ CONSTANT: (3019..3022)
+ CHARACTER: (3019..3022) "#\\d"
+ CLOSE_PAREN: (3022..3023) ")"
+ CLOSE_PAREN: (3023..3024) ")"
+ ATMOSPHERE: (3024..3029) "\n "
+ FORM: (3029..3062)
+ OPEN_PAREN: (3029..3030) "("
+ SYMBOL: (3030..3033)
+ IDENTIFIER: (3030..3033) "not"
+ ATMOSPHERE: (3033..3034) " "
+ FORM: (3034..3061)
+ OPEN_PAREN: (3034..3035) "("
+ SYMBOL: (3035..3044)
+ IDENTIFIER: (3035..3044) "char-ci>?"
+ ATMOSPHERE: (3044..3045) " "
+ CONSTANT: (3045..3048)
+ CHARACTER: (3045..3048) "#\\a"
+ ATMOSPHERE: (3048..3049) " "
+ CONSTANT: (3049..3052)
+ CHARACTER: (3049..3052) "#\\b"
+ ATMOSPHERE: (3052..3053) " "
+ CONSTANT: (3053..3056)
+ CHARACTER: (3053..3056) "#\\c"
+ ATMOSPHERE: (3056..3057) " "
+ CONSTANT: (3057..3060)
+ CHARACTER: (3057..3060) "#\\d"
+ CLOSE_PAREN: (3060..3061) ")"
+ CLOSE_PAREN: (3061..3062) ")"
+ ATMOSPHERE: (3062..3067) "\n "
+ FORM: (3067..3097)
+ OPEN_PAREN: (3067..3068) "("
+ SYMBOL: (3068..3071)
+ IDENTIFIER: (3068..3071) "not"
+ ATMOSPHERE: (3071..3072) " "
+ FORM: (3072..3096)
+ OPEN_PAREN: (3072..3073) "("
+ SYMBOL: (3073..3079)
+ IDENTIFIER: (3073..3079) "char>?"
+ ATMOSPHERE: (3079..3080) " "
+ CONSTANT: (3080..3083)
+ CHARACTER: (3080..3083) "#\\A"
+ ATMOSPHERE: (3083..3084) " "
+ CONSTANT: (3084..3087)
+ CHARACTER: (3084..3087) "#\\b"
+ ATMOSPHERE: (3087..3088) " "
+ CONSTANT: (3088..3091)
+ CHARACTER: (3088..3091) "#\\c"
+ ATMOSPHERE: (3091..3092) " "
+ CONSTANT: (3092..3095)
+ CHARACTER: (3092..3095) "#\\D"
+ CLOSE_PAREN: (3095..3096) ")"
+ CLOSE_PAREN: (3096..3097) ")"
+ ATMOSPHERE: (3097..3102) "\n "
+ FORM: (3102..3135)
+ OPEN_PAREN: (3102..3103) "("
+ SYMBOL: (3103..3106)
+ IDENTIFIER: (3103..3106) "not"
+ ATMOSPHERE: (3106..3107) " "
+ FORM: (3107..3134)
+ OPEN_PAREN: (3107..3108) "("
+ SYMBOL: (3108..3117)
+ IDENTIFIER: (3108..3117) "char-ci>?"
+ ATMOSPHERE: (3117..3118) " "
+ CONSTANT: (3118..3121)
+ CHARACTER: (3118..3121) "#\\A"
+ ATMOSPHERE: (3121..3122) " "
+ CONSTANT: (3122..3125)
+ CHARACTER: (3122..3125) "#\\b"
+ ATMOSPHERE: (3125..3126) " "
+ CONSTANT: (3126..3129)
+ CHARACTER: (3126..3129) "#\\c"
+ ATMOSPHERE: (3129..3130) " "
+ CONSTANT: (3130..3133)
+ CHARACTER: (3130..3133) "#\\D"
+ CLOSE_PAREN: (3133..3134) ")"
+ CLOSE_PAREN: (3134..3135) ")"
+ ATMOSPHERE: (3135..3140) "\n "
+ FORM: (3140..3164)
+ OPEN_PAREN: (3140..3141) "("
+ SYMBOL: (3141..3147)
+ IDENTIFIER: (3141..3147) "char>?"
+ ATMOSPHERE: (3147..3148) " "
+ CONSTANT: (3148..3151)
+ CHARACTER: (3148..3151) "#\\d"
+ ATMOSPHERE: (3151..3152) " "
+ CONSTANT: (3152..3155)
+ CHARACTER: (3152..3155) "#\\c"
+ ATMOSPHERE: (3155..3156) " "
+ CONSTANT: (3156..3159)
+ CHARACTER: (3156..3159) "#\\b"
+ ATMOSPHERE: (3159..3160) " "
+ CONSTANT: (3160..3163)
+ CHARACTER: (3160..3163) "#\\a"
+ CLOSE_PAREN: (3163..3164) ")"
+ ATMOSPHERE: (3164..3169) "\n "
+ FORM: (3169..3196)
+ OPEN_PAREN: (3169..3170) "("
+ SYMBOL: (3170..3179)
+ IDENTIFIER: (3170..3179) "char-ci>?"
+ ATMOSPHERE: (3179..3180) " "
+ CONSTANT: (3180..3183)
+ CHARACTER: (3180..3183) "#\\d"
+ ATMOSPHERE: (3183..3184) " "
+ CONSTANT: (3184..3187)
+ CHARACTER: (3184..3187) "#\\c"
+ ATMOSPHERE: (3187..3188) " "
+ CONSTANT: (3188..3191)
+ CHARACTER: (3188..3191) "#\\b"
+ ATMOSPHERE: (3191..3192) " "
+ CONSTANT: (3192..3195)
+ CHARACTER: (3192..3195) "#\\a"
+ CLOSE_PAREN: (3195..3196) ")"
+ ATMOSPHERE: (3196..3201) "\n "
+ FORM: (3201..3231)
+ OPEN_PAREN: (3201..3202) "("
+ SYMBOL: (3202..3205)
+ IDENTIFIER: (3202..3205) "not"
+ ATMOSPHERE: (3205..3206) " "
+ FORM: (3206..3230)
+ OPEN_PAREN: (3206..3207) "("
+ SYMBOL: (3207..3213)
+ IDENTIFIER: (3207..3213) "char>?"
+ ATMOSPHERE: (3213..3214) " "
+ CONSTANT: (3214..3217)
+ CHARACTER: (3214..3217) "#\\D"
+ ATMOSPHERE: (3217..3218) " "
+ CONSTANT: (3218..3221)
+ CHARACTER: (3218..3221) "#\\c"
+ ATMOSPHERE: (3221..3222) " "
+ CONSTANT: (3222..3225)
+ CHARACTER: (3222..3225) "#\\b"
+ ATMOSPHERE: (3225..3226) " "
+ CONSTANT: (3226..3229)
+ CHARACTER: (3226..3229) "#\\A"
+ CLOSE_PAREN: (3229..3230) ")"
+ CLOSE_PAREN: (3230..3231) ")"
+ ATMOSPHERE: (3231..3236) "\n "
+ FORM: (3236..3263)
+ OPEN_PAREN: (3236..3237) "("
+ SYMBOL: (3237..3246)
+ IDENTIFIER: (3237..3246) "char-ci>?"
+ ATMOSPHERE: (3246..3247) " "
+ CONSTANT: (3247..3250)
+ CHARACTER: (3247..3250) "#\\D"
+ ATMOSPHERE: (3250..3251) " "
+ CONSTANT: (3251..3254)
+ CHARACTER: (3251..3254) "#\\c"
+ ATMOSPHERE: (3254..3255) " "
+ CONSTANT: (3255..3258)
+ CHARACTER: (3255..3258) "#\\b"
+ ATMOSPHERE: (3258..3259) " "
+ CONSTANT: (3259..3262)
+ CHARACTER: (3259..3262) "#\\A"
+ CLOSE_PAREN: (3262..3263) ")"
+ ATMOSPHERE: (3263..3269) "\n\n "
+ FORM: (3269..3300)
+ OPEN_PAREN: (3269..3270) "("
+ SYMBOL: (3270..3273)
+ IDENTIFIER: (3270..3273) "not"
+ ATMOSPHERE: (3273..3274) " "
+ FORM: (3274..3299)
+ OPEN_PAREN: (3274..3275) "("
+ SYMBOL: (3275..3282)
+ IDENTIFIER: (3275..3282) "char>=?"
+ ATMOSPHERE: (3282..3283) " "
+ CONSTANT: (3283..3286)
+ CHARACTER: (3283..3286) "#\\a"
+ ATMOSPHERE: (3286..3287) " "
+ CONSTANT: (3287..3290)
+ CHARACTER: (3287..3290) "#\\b"
+ ATMOSPHERE: (3290..3291) " "
+ CONSTANT: (3291..3294)
+ CHARACTER: (3291..3294) "#\\c"
+ ATMOSPHERE: (3294..3295) " "
+ CONSTANT: (3295..3298)
+ CHARACTER: (3295..3298) "#\\d"
+ CLOSE_PAREN: (3298..3299) ")"
+ CLOSE_PAREN: (3299..3300) ")"
+ ATMOSPHERE: (3300..3305) "\n "
+ FORM: (3305..3339)
+ OPEN_PAREN: (3305..3306) "("
+ SYMBOL: (3306..3309)
+ IDENTIFIER: (3306..3309) "not"
+ ATMOSPHERE: (3309..3310) " "
+ FORM: (3310..3338)
+ OPEN_PAREN: (3310..3311) "("
+ SYMBOL: (3311..3321)
+ IDENTIFIER: (3311..3321) "char-ci>=?"
+ ATMOSPHERE: (3321..3322) " "
+ CONSTANT: (3322..3325)
+ CHARACTER: (3322..3325) "#\\a"
+ ATMOSPHERE: (3325..3326) " "
+ CONSTANT: (3326..3329)
+ CHARACTER: (3326..3329) "#\\b"
+ ATMOSPHERE: (3329..3330) " "
+ CONSTANT: (3330..3333)
+ CHARACTER: (3330..3333) "#\\c"
+ ATMOSPHERE: (3333..3334) " "
+ CONSTANT: (3334..3337)
+ CHARACTER: (3334..3337) "#\\d"
+ CLOSE_PAREN: (3337..3338) ")"
+ CLOSE_PAREN: (3338..3339) ")"
+ ATMOSPHERE: (3339..3344) "\n "
+ FORM: (3344..3375)
+ OPEN_PAREN: (3344..3345) "("
+ SYMBOL: (3345..3348)
+ IDENTIFIER: (3345..3348) "not"
+ ATMOSPHERE: (3348..3349) " "
+ FORM: (3349..3374)
+ OPEN_PAREN: (3349..3350) "("
+ SYMBOL: (3350..3357)
+ IDENTIFIER: (3350..3357) "char>=?"
+ ATMOSPHERE: (3357..3358) " "
+ CONSTANT: (3358..3361)
+ CHARACTER: (3358..3361) "#\\A"
+ ATMOSPHERE: (3361..3362) " "
+ CONSTANT: (3362..3365)
+ CHARACTER: (3362..3365) "#\\b"
+ ATMOSPHERE: (3365..3366) " "
+ CONSTANT: (3366..3369)
+ CHARACTER: (3366..3369) "#\\c"
+ ATMOSPHERE: (3369..3370) " "
+ CONSTANT: (3370..3373)
+ CHARACTER: (3370..3373) "#\\D"
+ CLOSE_PAREN: (3373..3374) ")"
+ CLOSE_PAREN: (3374..3375) ")"
+ ATMOSPHERE: (3375..3380) "\n "
+ FORM: (3380..3414)
+ OPEN_PAREN: (3380..3381) "("
+ SYMBOL: (3381..3384)
+ IDENTIFIER: (3381..3384) "not"
+ ATMOSPHERE: (3384..3385) " "
+ FORM: (3385..3413)
+ OPEN_PAREN: (3385..3386) "("
+ SYMBOL: (3386..3396)
+ IDENTIFIER: (3386..3396) "char-ci>=?"
+ ATMOSPHERE: (3396..3397) " "
+ CONSTANT: (3397..3400)
+ CHARACTER: (3397..3400) "#\\A"
+ ATMOSPHERE: (3400..3401) " "
+ CONSTANT: (3401..3404)
+ CHARACTER: (3401..3404) "#\\b"
+ ATMOSPHERE: (3404..3405) " "
+ CONSTANT: (3405..3408)
+ CHARACTER: (3405..3408) "#\\c"
+ ATMOSPHERE: (3408..3409) " "
+ CONSTANT: (3409..3412)
+ CHARACTER: (3409..3412) "#\\D"
+ CLOSE_PAREN: (3412..3413) ")"
+ CLOSE_PAREN: (3413..3414) ")"
+ ATMOSPHERE: (3414..3419) "\n "
+ FORM: (3419..3444)
+ OPEN_PAREN: (3419..3420) "("
+ SYMBOL: (3420..3427)
+ IDENTIFIER: (3420..3427) "char>=?"
+ ATMOSPHERE: (3427..3428) " "
+ CONSTANT: (3428..3431)
+ CHARACTER: (3428..3431) "#\\d"
+ ATMOSPHERE: (3431..3432) " "
+ CONSTANT: (3432..3435)
+ CHARACTER: (3432..3435) "#\\c"
+ ATMOSPHERE: (3435..3436) " "
+ CONSTANT: (3436..3439)
+ CHARACTER: (3436..3439) "#\\b"
+ ATMOSPHERE: (3439..3440) " "
+ CONSTANT: (3440..3443)
+ CHARACTER: (3440..3443) "#\\a"
+ CLOSE_PAREN: (3443..3444) ")"
+ ATMOSPHERE: (3444..3449) "\n "
+ FORM: (3449..3477)
+ OPEN_PAREN: (3449..3450) "("
+ SYMBOL: (3450..3460)
+ IDENTIFIER: (3450..3460) "char-ci>=?"
+ ATMOSPHERE: (3460..3461) " "
+ CONSTANT: (3461..3464)
+ CHARACTER: (3461..3464) "#\\d"
+ ATMOSPHERE: (3464..3465) " "
+ CONSTANT: (3465..3468)
+ CHARACTER: (3465..3468) "#\\c"
+ ATMOSPHERE: (3468..3469) " "
+ CONSTANT: (3469..3472)
+ CHARACTER: (3469..3472) "#\\b"
+ ATMOSPHERE: (3472..3473) " "
+ CONSTANT: (3473..3476)
+ CHARACTER: (3473..3476) "#\\a"
+ CLOSE_PAREN: (3476..3477) ")"
+ ATMOSPHERE: (3477..3482) "\n "
+ FORM: (3482..3513)
+ OPEN_PAREN: (3482..3483) "("
+ SYMBOL: (3483..3486)
+ IDENTIFIER: (3483..3486) "not"
+ ATMOSPHERE: (3486..3487) " "
+ FORM: (3487..3512)
+ OPEN_PAREN: (3487..3488) "("
+ SYMBOL: (3488..3495)
+ IDENTIFIER: (3488..3495) "char>=?"
+ ATMOSPHERE: (3495..3496) " "
+ CONSTANT: (3496..3499)
+ CHARACTER: (3496..3499) "#\\D"
+ ATMOSPHERE: (3499..3500) " "
+ CONSTANT: (3500..3503)
+ CHARACTER: (3500..3503) "#\\c"
+ ATMOSPHERE: (3503..3504) " "
+ CONSTANT: (3504..3507)
+ CHARACTER: (3504..3507) "#\\b"
+ ATMOSPHERE: (3507..3508) " "
+ CONSTANT: (3508..3511)
+ CHARACTER: (3508..3511) "#\\A"
+ CLOSE_PAREN: (3511..3512) ")"
+ CLOSE_PAREN: (3512..3513) ")"
+ ATMOSPHERE: (3513..3518) "\n "
+ FORM: (3518..3546)
+ OPEN_PAREN: (3518..3519) "("
+ SYMBOL: (3519..3529)
+ IDENTIFIER: (3519..3529) "char-ci>=?"
+ ATMOSPHERE: (3529..3530) " "
+ CONSTANT: (3530..3533)
+ CHARACTER: (3530..3533) "#\\D"
+ ATMOSPHERE: (3533..3534) " "
+ CONSTANT: (3534..3537)
+ CHARACTER: (3534..3537) "#\\c"
+ ATMOSPHERE: (3537..3538) " "
+ CONSTANT: (3538..3541)
+ CHARACTER: (3538..3541) "#\\b"
+ ATMOSPHERE: (3541..3542) " "
+ CONSTANT: (3542..3545)
+ CHARACTER: (3542..3545) "#\\A"
+ CLOSE_PAREN: (3545..3546) ")"
+ ATMOSPHERE: (3546..3551) "\n "
+ FORM: (3551..3572)
+ OPEN_PAREN: (3551..3552) "("
+ SYMBOL: (3552..3559)
+ IDENTIFIER: (3552..3559) "char>=?"
+ ATMOSPHERE: (3559..3560) " "
+ CONSTANT: (3560..3563)
+ CHARACTER: (3560..3563) "#\\λ"
+ ATMOSPHERE: (3563..3564) " "
+ CONSTANT: (3564..3567)
+ CHARACTER: (3564..3567) "#\\λ"
+ ATMOSPHERE: (3567..3568) " "
+ CONSTANT: (3568..3571)
+ CHARACTER: (3568..3571) "#\\λ"
+ CLOSE_PAREN: (3571..3572) ")"
+ ATMOSPHERE: (3572..3577) "\n "
+ FORM: (3577..3601)
+ OPEN_PAREN: (3577..3578) "("
+ SYMBOL: (3578..3588)
+ IDENTIFIER: (3578..3588) "char-ci>=?"
+ ATMOSPHERE: (3588..3589) " "
+ CONSTANT: (3589..3592)
+ CHARACTER: (3589..3592) "#\\λ"
+ ATMOSPHERE: (3592..3593) " "
+ CONSTANT: (3593..3596)
+ CHARACTER: (3593..3596) "#\\λ"
+ ATMOSPHERE: (3596..3597) " "
+ CONSTANT: (3597..3600)
+ CHARACTER: (3597..3600) "#\\λ"
+ CLOSE_PAREN: (3600..3601) ")"
+ ATMOSPHERE: (3601..3606) "\n "
+ FORM: (3606..3635)
+ OPEN_PAREN: (3606..3607) "("
+ SYMBOL: (3607..3614)
+ IDENTIFIER: (3607..3614) "char>=?"
+ ATMOSPHERE: (3614..3615) " "
+ CONSTANT: (3615..3618)
+ CHARACTER: (3615..3618) "#\\Λ"
+ ATMOSPHERE: (3618..3619) " "
+ CONSTANT: (3619..3622)
+ CHARACTER: (3619..3622) "#\\Λ"
+ ATMOSPHERE: (3622..3623) " "
+ CONSTANT: (3623..3626)
+ CHARACTER: (3623..3626) "#\\Λ"
+ ATMOSPHERE: (3626..3627) " "
+ CONSTANT: (3627..3630)
+ CHARACTER: (3627..3630) "#\\Λ"
+ ATMOSPHERE: (3630..3631) " "
+ CONSTANT: (3631..3634)
+ CHARACTER: (3631..3634) "#\\Λ"
+ CLOSE_PAREN: (3634..3635) ")"
+ ATMOSPHERE: (3635..3640) "\n "
+ FORM: (3640..3672)
+ OPEN_PAREN: (3640..3641) "("
+ SYMBOL: (3641..3651)
+ IDENTIFIER: (3641..3651) "char-ci>=?"
+ ATMOSPHERE: (3651..3652) " "
+ CONSTANT: (3652..3655)
+ CHARACTER: (3652..3655) "#\\Λ"
+ ATMOSPHERE: (3655..3656) " "
+ CONSTANT: (3656..3659)
+ CHARACTER: (3656..3659) "#\\Λ"
+ ATMOSPHERE: (3659..3660) " "
+ CONSTANT: (3660..3663)
+ CHARACTER: (3660..3663) "#\\Λ"
+ ATMOSPHERE: (3663..3664) " "
+ CONSTANT: (3664..3667)
+ CHARACTER: (3664..3667) "#\\Λ"
+ ATMOSPHERE: (3667..3668) " "
+ CONSTANT: (3668..3671)
+ CHARACTER: (3668..3671) "#\\Λ"
+ CLOSE_PAREN: (3671..3672) ")"
+ ATMOSPHERE: (3672..3677) "\n "
+ FORM: (3677..3712)
+ OPEN_PAREN: (3677..3678) "("
+ SYMBOL: (3678..3681)
+ IDENTIFIER: (3678..3681) "not"
+ ATMOSPHERE: (3681..3682) " "
+ FORM: (3682..3711)
+ OPEN_PAREN: (3682..3683) "("
+ SYMBOL: (3683..3690)
+ IDENTIFIER: (3683..3690) "char>=?"
+ ATMOSPHERE: (3690..3691) " "
+ CONSTANT: (3691..3694)
+ CHARACTER: (3691..3694) "#\\Λ"
+ ATMOSPHERE: (3694..3695) " "
+ CONSTANT: (3695..3698)
+ CHARACTER: (3695..3698) "#\\λ"
+ ATMOSPHERE: (3698..3699) " "
+ CONSTANT: (3699..3702)
+ CHARACTER: (3699..3702) "#\\Λ"
+ ATMOSPHERE: (3702..3703) " "
+ CONSTANT: (3703..3706)
+ CHARACTER: (3703..3706) "#\\Λ"
+ ATMOSPHERE: (3706..3707) " "
+ CONSTANT: (3707..3710)
+ CHARACTER: (3707..3710) "#\\Λ"
+ CLOSE_PAREN: (3710..3711) ")"
+ CLOSE_PAREN: (3711..3712) ")"
+ ATMOSPHERE: (3712..3717) "\n "
+ FORM: (3717..3749)
+ OPEN_PAREN: (3717..3718) "("
+ SYMBOL: (3718..3728)
+ IDENTIFIER: (3718..3728) "char-ci>=?"
+ ATMOSPHERE: (3728..3729) " "
+ CONSTANT: (3729..3732)
+ CHARACTER: (3729..3732) "#\\Λ"
+ ATMOSPHERE: (3732..3733) " "
+ CONSTANT: (3733..3736)
+ CHARACTER: (3733..3736) "#\\λ"
+ ATMOSPHERE: (3736..3737) " "
+ CONSTANT: (3737..3740)
+ CHARACTER: (3737..3740) "#\\Λ"
+ ATMOSPHERE: (3740..3741) " "
+ CONSTANT: (3741..3744)
+ CHARACTER: (3741..3744) "#\\Λ"
+ ATMOSPHERE: (3744..3745) " "
+ CONSTANT: (3745..3748)
+ CHARACTER: (3745..3748) "#\\Λ"
+ CLOSE_PAREN: (3748..3749) ")"
+ ATMOSPHERE: (3749..3755) "\n\n "
+ CLOSE_PAREN: (3755..3756) ")"
+ CLOSE_PAREN: (3756..3757) ")"
+ FORM: (3757..3766)
+ OPEN_PAREN: (3757..3758) "("
+ SYMBOL: (3758..3765)
+ IDENTIFIER: (3758..3765) "newline"
+ CLOSE_PAREN: (3765..3766) ")"
+ ATMOSPHERE: (3766..3768) "\n\n"
+ ATMOSPHERE: (3768..3797) ";; Character class predicates"
+ ATMOSPHERE: (3797..3798) "\n"
+ FORM: (3798..4869)
+ OPEN_PAREN: (3798..3799) "("
+ SYMBOL: (3799..3806)
+ IDENTIFIER: (3799..3806) "display"
+ ATMOSPHERE: (3806..3807) " "
+ FORM: (3807..4868)
+ OPEN_PAREN: (3807..3808) "("
+ SYMBOL: (3808..3817)
+ IDENTIFIER: (3808..3817) "boolean=?"
+ ATMOSPHERE: (3817..3822) "\n "
+ CONSTANT: (3822..3824)
+ BOOLEAN: (3822..3824) "#t"
+ ATMOSPHERE: (3824..3830) "\n\n "
+ FORM: (3830..3852)
+ OPEN_PAREN: (3830..3831) "("
+ SYMBOL: (3831..3847)
+ IDENTIFIER: (3831..3847) "char-alphabetic?"
+ ATMOSPHERE: (3847..3848) " "
+ CONSTANT: (3848..3851)
+ CHARACTER: (3848..3851) "#\\a"
+ CLOSE_PAREN: (3851..3852) ")"
+ ATMOSPHERE: (3852..3857) "\n "
+ FORM: (3857..3885)
+ OPEN_PAREN: (3857..3858) "("
+ SYMBOL: (3858..3861)
+ IDENTIFIER: (3858..3861) "not"
+ ATMOSPHERE: (3861..3862) " "
+ FORM: (3862..3884)
+ OPEN_PAREN: (3862..3863) "("
+ SYMBOL: (3863..3879)
+ IDENTIFIER: (3863..3879) "char-alphabetic?"
+ ATMOSPHERE: (3879..3880) " "
+ CONSTANT: (3880..3883)
+ CHARACTER: (3880..3883) "#\\५"
+ CLOSE_PAREN: (3883..3884) ")"
+ CLOSE_PAREN: (3884..3885) ")"
+ ATMOSPHERE: (3885..3890) "\n "
+ FORM: (3890..3912)
+ OPEN_PAREN: (3890..3891) "("
+ SYMBOL: (3891..3907)
+ IDENTIFIER: (3891..3907) "char-alphabetic?"
+ ATMOSPHERE: (3907..3908) " "
+ CONSTANT: (3908..3911)
+ CHARACTER: (3908..3911) "#\\λ"
+ CLOSE_PAREN: (3911..3912) ")"
+ ATMOSPHERE: (3912..3917) "\n "
+ FORM: (3917..3948)
+ OPEN_PAREN: (3917..3918) "("
+ SYMBOL: (3918..3921)
+ IDENTIFIER: (3918..3921) "not"
+ ATMOSPHERE: (3921..3922) " "
+ FORM: (3922..3947)
+ OPEN_PAREN: (3922..3923) "("
+ SYMBOL: (3923..3939)
+ IDENTIFIER: (3923..3939) "char-alphabetic?"
+ ATMOSPHERE: (3939..3940) " "
+ CONSTANT: (3940..3946)
+ CHARACTER: (3940..3946) "#\\null"
+ CLOSE_PAREN: (3946..3947) ")"
+ CLOSE_PAREN: (3947..3948) ")"
+ ATMOSPHERE: (3948..3953) "\n "
+ FORM: (3953..3985)
+ OPEN_PAREN: (3953..3954) "("
+ SYMBOL: (3954..3957)
+ IDENTIFIER: (3954..3957) "not"
+ ATMOSPHERE: (3957..3958) " "
+ FORM: (3958..3984)
+ OPEN_PAREN: (3958..3959) "("
+ SYMBOL: (3959..3975)
+ IDENTIFIER: (3959..3975) "char-alphabetic?"
+ ATMOSPHERE: (3975..3976) " "
+ CONSTANT: (3976..3983)
+ CHARACTER: (3976..3983) "#\\space"
+ CLOSE_PAREN: (3983..3984) ")"
+ CLOSE_PAREN: (3984..3985) ")"
+ ATMOSPHERE: (3985..3991) "\n\n "
+ FORM: (3991..4016)
+ OPEN_PAREN: (3991..3992) "("
+ SYMBOL: (3992..3995)
+ IDENTIFIER: (3992..3995) "not"
+ ATMOSPHERE: (3995..3996) " "
+ FORM: (3996..4015)
+ OPEN_PAREN: (3996..3997) "("
+ SYMBOL: (3997..4010)
+ IDENTIFIER: (3997..4010) "char-numeric?"
+ ATMOSPHERE: (4010..4011) " "
+ CONSTANT: (4011..4014)
+ CHARACTER: (4011..4014) "#\\a"
+ CLOSE_PAREN: (4014..4015) ")"
+ CLOSE_PAREN: (4015..4016) ")"
+ ATMOSPHERE: (4016..4021) "\n "
+ FORM: (4021..4040)
+ OPEN_PAREN: (4021..4022) "("
+ SYMBOL: (4022..4035)
+ IDENTIFIER: (4022..4035) "char-numeric?"
+ ATMOSPHERE: (4035..4036) " "
+ CONSTANT: (4036..4039)
+ CHARACTER: (4036..4039) "#\\५"
+ CLOSE_PAREN: (4039..4040) ")"
+ ATMOSPHERE: (4040..4045) "\n "
+ FORM: (4045..4070)
+ OPEN_PAREN: (4045..4046) "("
+ SYMBOL: (4046..4049)
+ IDENTIFIER: (4046..4049) "not"
+ ATMOSPHERE: (4049..4050) " "
+ FORM: (4050..4069)
+ OPEN_PAREN: (4050..4051) "("
+ SYMBOL: (4051..4064)
+ IDENTIFIER: (4051..4064) "char-numeric?"
+ ATMOSPHERE: (4064..4065) " "
+ CONSTANT: (4065..4068)
+ CHARACTER: (4065..4068) "#\\λ"
+ CLOSE_PAREN: (4068..4069) ")"
+ CLOSE_PAREN: (4069..4070) ")"
+ ATMOSPHERE: (4070..4075) "\n "
+ FORM: (4075..4103)
+ OPEN_PAREN: (4075..4076) "("
+ SYMBOL: (4076..4079)
+ IDENTIFIER: (4076..4079) "not"
+ ATMOSPHERE: (4079..4080) " "
+ FORM: (4080..4102)
+ OPEN_PAREN: (4080..4081) "("
+ SYMBOL: (4081..4094)
+ IDENTIFIER: (4081..4094) "char-numeric?"
+ ATMOSPHERE: (4094..4095) " "
+ CONSTANT: (4095..4101)
+ CHARACTER: (4095..4101) "#\\null"
+ CLOSE_PAREN: (4101..4102) ")"
+ CLOSE_PAREN: (4102..4103) ")"
+ ATMOSPHERE: (4103..4108) "\n "
+ FORM: (4108..4137)
+ OPEN_PAREN: (4108..4109) "("
+ SYMBOL: (4109..4112)
+ IDENTIFIER: (4109..4112) "not"
+ ATMOSPHERE: (4112..4113) " "
+ FORM: (4113..4136)
+ OPEN_PAREN: (4113..4114) "("
+ SYMBOL: (4114..4127)
+ IDENTIFIER: (4114..4127) "char-numeric?"
+ ATMOSPHERE: (4127..4128) " "
+ CONSTANT: (4128..4135)
+ CHARACTER: (4128..4135) "#\\space"
+ CLOSE_PAREN: (4135..4136) ")"
+ CLOSE_PAREN: (4136..4137) ")"
+ ATMOSPHERE: (4137..4143) "\n\n "
+ FORM: (4143..4171)
+ OPEN_PAREN: (4143..4144) "("
+ SYMBOL: (4144..4147)
+ IDENTIFIER: (4144..4147) "not"
+ ATMOSPHERE: (4147..4148) " "
+ FORM: (4148..4170)
+ OPEN_PAREN: (4148..4149) "("
+ SYMBOL: (4149..4165)
+ IDENTIFIER: (4149..4165) "char-whitespace?"
+ ATMOSPHERE: (4165..4166) " "
+ CONSTANT: (4166..4169)
+ CHARACTER: (4166..4169) "#\\a"
+ CLOSE_PAREN: (4169..4170) ")"
+ CLOSE_PAREN: (4170..4171) ")"
+ ATMOSPHERE: (4171..4176) "\n "
+ FORM: (4176..4204)
+ OPEN_PAREN: (4176..4177) "("
+ SYMBOL: (4177..4180)
+ IDENTIFIER: (4177..4180) "not"
+ ATMOSPHERE: (4180..4181) " "
+ FORM: (4181..4203)
+ OPEN_PAREN: (4181..4182) "("
+ SYMBOL: (4182..4198)
+ IDENTIFIER: (4182..4198) "char-whitespace?"
+ ATMOSPHERE: (4198..4199) " "
+ CONSTANT: (4199..4202)
+ CHARACTER: (4199..4202) "#\\५"
+ CLOSE_PAREN: (4202..4203) ")"
+ CLOSE_PAREN: (4203..4204) ")"
+ ATMOSPHERE: (4204..4209) "\n "
+ FORM: (4209..4237)
+ OPEN_PAREN: (4209..4210) "("
+ SYMBOL: (4210..4213)
+ IDENTIFIER: (4210..4213) "not"
+ ATMOSPHERE: (4213..4214) " "
+ FORM: (4214..4236)
+ OPEN_PAREN: (4214..4215) "("
+ SYMBOL: (4215..4231)
+ IDENTIFIER: (4215..4231) "char-whitespace?"
+ ATMOSPHERE: (4231..4232) " "
+ CONSTANT: (4232..4235)
+ CHARACTER: (4232..4235) "#\\λ"
+ CLOSE_PAREN: (4235..4236) ")"
+ CLOSE_PAREN: (4236..4237) ")"
+ ATMOSPHERE: (4237..4242) "\n "
+ FORM: (4242..4273)
+ OPEN_PAREN: (4242..4243) "("
+ SYMBOL: (4243..4246)
+ IDENTIFIER: (4243..4246) "not"
+ ATMOSPHERE: (4246..4247) " "
+ FORM: (4247..4272)
+ OPEN_PAREN: (4247..4248) "("
+ SYMBOL: (4248..4264)
+ IDENTIFIER: (4248..4264) "char-whitespace?"
+ ATMOSPHERE: (4264..4265) " "
+ CONSTANT: (4265..4271)
+ CHARACTER: (4265..4271) "#\\null"
+ CLOSE_PAREN: (4271..4272) ")"
+ CLOSE_PAREN: (4272..4273) ")"
+ ATMOSPHERE: (4273..4278) "\n "
+ FORM: (4278..4304)
+ OPEN_PAREN: (4278..4279) "("
+ SYMBOL: (4279..4295)
+ IDENTIFIER: (4279..4295) "char-whitespace?"
+ ATMOSPHERE: (4295..4296) " "
+ CONSTANT: (4296..4303)
+ CHARACTER: (4296..4303) "#\\space"
+ CLOSE_PAREN: (4303..4304) ")"
+ ATMOSPHERE: (4304..4309) "\n "
+ FORM: (4309..4333)
+ OPEN_PAREN: (4309..4310) "("
+ SYMBOL: (4310..4326)
+ IDENTIFIER: (4310..4326) "char-whitespace?"
+ ATMOSPHERE: (4326..4327) " "
+ CONSTANT: (4327..4332)
+ CHARACTER: (4327..4332) "#\\tab"
+ CLOSE_PAREN: (4332..4333) ")"
+ ATMOSPHERE: (4333..4343) "\n \n "
+ FORM: (4343..4371)
+ OPEN_PAREN: (4343..4344) "("
+ SYMBOL: (4344..4347)
+ IDENTIFIER: (4344..4347) "not"
+ ATMOSPHERE: (4347..4348) " "
+ FORM: (4348..4370)
+ OPEN_PAREN: (4348..4349) "("
+ SYMBOL: (4349..4365)
+ IDENTIFIER: (4349..4365) "char-upper-case?"
+ ATMOSPHERE: (4365..4366) " "
+ CONSTANT: (4366..4369)
+ CHARACTER: (4366..4369) "#\\a"
+ CLOSE_PAREN: (4369..4370) ")"
+ CLOSE_PAREN: (4370..4371) ")"
+ ATMOSPHERE: (4371..4376) "\n "
+ FORM: (4376..4398)
+ OPEN_PAREN: (4376..4377) "("
+ SYMBOL: (4377..4393)
+ IDENTIFIER: (4377..4393) "char-upper-case?"
+ ATMOSPHERE: (4393..4394) " "
+ CONSTANT: (4394..4397)
+ CHARACTER: (4394..4397) "#\\A"
+ CLOSE_PAREN: (4397..4398) ")"
+ ATMOSPHERE: (4398..4403) "\n "
+ FORM: (4403..4431)
+ OPEN_PAREN: (4403..4404) "("
+ SYMBOL: (4404..4407)
+ IDENTIFIER: (4404..4407) "not"
+ ATMOSPHERE: (4407..4408) " "
+ FORM: (4408..4430)
+ OPEN_PAREN: (4408..4409) "("
+ SYMBOL: (4409..4425)
+ IDENTIFIER: (4409..4425) "char-upper-case?"
+ ATMOSPHERE: (4425..4426) " "
+ CONSTANT: (4426..4429)
+ CHARACTER: (4426..4429) "#\\५"
+ CLOSE_PAREN: (4429..4430) ")"
+ CLOSE_PAREN: (4430..4431) ")"
+ ATMOSPHERE: (4431..4436) "\n "
+ FORM: (4436..4464)
+ OPEN_PAREN: (4436..4437) "("
+ SYMBOL: (4437..4440)
+ IDENTIFIER: (4437..4440) "not"
+ ATMOSPHERE: (4440..4441) " "
+ FORM: (4441..4463)
+ OPEN_PAREN: (4441..4442) "("
+ SYMBOL: (4442..4458)
+ IDENTIFIER: (4442..4458) "char-upper-case?"
+ ATMOSPHERE: (4458..4459) " "
+ CONSTANT: (4459..4462)
+ CHARACTER: (4459..4462) "#\\λ"
+ CLOSE_PAREN: (4462..4463) ")"
+ CLOSE_PAREN: (4463..4464) ")"
+ ATMOSPHERE: (4464..4469) "\n "
+ FORM: (4469..4491)
+ OPEN_PAREN: (4469..4470) "("
+ SYMBOL: (4470..4486)
+ IDENTIFIER: (4470..4486) "char-upper-case?"
+ ATMOSPHERE: (4486..4487) " "
+ CONSTANT: (4487..4490)
+ CHARACTER: (4487..4490) "#\\Λ"
+ CLOSE_PAREN: (4490..4491) ")"
+ ATMOSPHERE: (4491..4496) "\n "
+ FORM: (4496..4527)
+ OPEN_PAREN: (4496..4497) "("
+ SYMBOL: (4497..4500)
+ IDENTIFIER: (4497..4500) "not"
+ ATMOSPHERE: (4500..4501) " "
+ FORM: (4501..4526)
+ OPEN_PAREN: (4501..4502) "("
+ SYMBOL: (4502..4518)
+ IDENTIFIER: (4502..4518) "char-upper-case?"
+ ATMOSPHERE: (4518..4519) " "
+ CONSTANT: (4519..4525)
+ CHARACTER: (4519..4525) "#\\null"
+ CLOSE_PAREN: (4525..4526) ")"
+ CLOSE_PAREN: (4526..4527) ")"
+ ATMOSPHERE: (4527..4532) "\n "
+ FORM: (4532..4564)
+ OPEN_PAREN: (4532..4533) "("
+ SYMBOL: (4533..4536)
+ IDENTIFIER: (4533..4536) "not"
+ ATMOSPHERE: (4536..4537) " "
+ FORM: (4537..4563)
+ OPEN_PAREN: (4537..4538) "("
+ SYMBOL: (4538..4554)
+ IDENTIFIER: (4538..4554) "char-upper-case?"
+ ATMOSPHERE: (4554..4555) " "
+ CONSTANT: (4555..4562)
+ CHARACTER: (4555..4562) "#\\space"
+ CLOSE_PAREN: (4562..4563) ")"
+ CLOSE_PAREN: (4563..4564) ")"
+ ATMOSPHERE: (4564..4569) "\n "
+ FORM: (4569..4599)
+ OPEN_PAREN: (4569..4570) "("
+ SYMBOL: (4570..4573)
+ IDENTIFIER: (4570..4573) "not"
+ ATMOSPHERE: (4573..4574) " "
+ FORM: (4574..4598)
+ OPEN_PAREN: (4574..4575) "("
+ SYMBOL: (4575..4591)
+ IDENTIFIER: (4575..4591) "char-upper-case?"
+ ATMOSPHERE: (4591..4592) " "
+ CONSTANT: (4592..4597)
+ CHARACTER: (4592..4597) "#\\tab"
+ CLOSE_PAREN: (4597..4598) ")"
+ CLOSE_PAREN: (4598..4599) ")"
+ ATMOSPHERE: (4599..4605) "\n\n "
+ FORM: (4605..4627)
+ OPEN_PAREN: (4605..4606) "("
+ SYMBOL: (4606..4622)
+ IDENTIFIER: (4606..4622) "char-lower-case?"
+ ATMOSPHERE: (4622..4623) " "
+ CONSTANT: (4623..4626)
+ CHARACTER: (4623..4626) "#\\a"
+ CLOSE_PAREN: (4626..4627) ")"
+ ATMOSPHERE: (4627..4632) "\n "
+ FORM: (4632..4660)
+ OPEN_PAREN: (4632..4633) "("
+ SYMBOL: (4633..4636)
+ IDENTIFIER: (4633..4636) "not"
+ ATMOSPHERE: (4636..4637) " "
+ FORM: (4637..4659)
+ OPEN_PAREN: (4637..4638) "("
+ SYMBOL: (4638..4654)
+ IDENTIFIER: (4638..4654) "char-lower-case?"
+ ATMOSPHERE: (4654..4655) " "
+ CONSTANT: (4655..4658)
+ CHARACTER: (4655..4658) "#\\A"
+ CLOSE_PAREN: (4658..4659) ")"
+ CLOSE_PAREN: (4659..4660) ")"
+ ATMOSPHERE: (4660..4665) "\n "
+ FORM: (4665..4693)
+ OPEN_PAREN: (4665..4666) "("
+ SYMBOL: (4666..4669)
+ IDENTIFIER: (4666..4669) "not"
+ ATMOSPHERE: (4669..4670) " "
+ FORM: (4670..4692)
+ OPEN_PAREN: (4670..4671) "("
+ SYMBOL: (4671..4687)
+ IDENTIFIER: (4671..4687) "char-lower-case?"
+ ATMOSPHERE: (4687..4688) " "
+ CONSTANT: (4688..4691)
+ CHARACTER: (4688..4691) "#\\५"
+ CLOSE_PAREN: (4691..4692) ")"
+ CLOSE_PAREN: (4692..4693) ")"
+ ATMOSPHERE: (4693..4698) "\n "
+ FORM: (4698..4720)
+ OPEN_PAREN: (4698..4699) "("
+ SYMBOL: (4699..4715)
+ IDENTIFIER: (4699..4715) "char-lower-case?"
+ ATMOSPHERE: (4715..4716) " "
+ CONSTANT: (4716..4719)
+ CHARACTER: (4716..4719) "#\\λ"
+ CLOSE_PAREN: (4719..4720) ")"
+ ATMOSPHERE: (4720..4725) "\n "
+ FORM: (4725..4753)
+ OPEN_PAREN: (4725..4726) "("
+ SYMBOL: (4726..4729)
+ IDENTIFIER: (4726..4729) "not"
+ ATMOSPHERE: (4729..4730) " "
+ FORM: (4730..4752)
+ OPEN_PAREN: (4730..4731) "("
+ SYMBOL: (4731..4747)
+ IDENTIFIER: (4731..4747) "char-lower-case?"
+ ATMOSPHERE: (4747..4748) " "
+ CONSTANT: (4748..4751)
+ CHARACTER: (4748..4751) "#\\Λ"
+ CLOSE_PAREN: (4751..4752) ")"
+ CLOSE_PAREN: (4752..4753) ")"
+ ATMOSPHERE: (4753..4758) "\n "
+ FORM: (4758..4789)
+ OPEN_PAREN: (4758..4759) "("
+ SYMBOL: (4759..4762)
+ IDENTIFIER: (4759..4762) "not"
+ ATMOSPHERE: (4762..4763) " "
+ FORM: (4763..4788)
+ OPEN_PAREN: (4763..4764) "("
+ SYMBOL: (4764..4780)
+ IDENTIFIER: (4764..4780) "char-lower-case?"
+ ATMOSPHERE: (4780..4781) " "
+ CONSTANT: (4781..4787)
+ CHARACTER: (4781..4787) "#\\null"
+ CLOSE_PAREN: (4787..4788) ")"
+ CLOSE_PAREN: (4788..4789) ")"
+ ATMOSPHERE: (4789..4794) "\n "
+ FORM: (4794..4826)
+ OPEN_PAREN: (4794..4795) "("
+ SYMBOL: (4795..4798)
+ IDENTIFIER: (4795..4798) "not"
+ ATMOSPHERE: (4798..4799) " "
+ FORM: (4799..4825)
+ OPEN_PAREN: (4799..4800) "("
+ SYMBOL: (4800..4816)
+ IDENTIFIER: (4800..4816) "char-lower-case?"
+ ATMOSPHERE: (4816..4817) " "
+ CONSTANT: (4817..4824)
+ CHARACTER: (4817..4824) "#\\space"
+ CLOSE_PAREN: (4824..4825) ")"
+ CLOSE_PAREN: (4825..4826) ")"
+ ATMOSPHERE: (4826..4831) "\n "
+ FORM: (4831..4861)
+ OPEN_PAREN: (4831..4832) "("
+ SYMBOL: (4832..4835)
+ IDENTIFIER: (4832..4835) "not"
+ ATMOSPHERE: (4835..4836) " "
+ FORM: (4836..4860)
+ OPEN_PAREN: (4836..4837) "("
+ SYMBOL: (4837..4853)
+ IDENTIFIER: (4837..4853) "char-lower-case?"
+ ATMOSPHERE: (4853..4854) " "
+ CONSTANT: (4854..4859)
+ CHARACTER: (4854..4859) "#\\tab"
+ CLOSE_PAREN: (4859..4860) ")"
+ CLOSE_PAREN: (4860..4861) ")"
+ ATMOSPHERE: (4861..4867) "\n\n "
+ CLOSE_PAREN: (4867..4868) ")"
+ CLOSE_PAREN: (4868..4869) ")"
+ ATMOSPHERE: (4869..4871) "\n\n"
+ ATMOSPHERE: (4871..4891) ";; casing transforms"
+ ATMOSPHERE: (4891..4892) "\n"
+ FORM: (4892..5346)
+ OPEN_PAREN: (4892..4893) "("
+ SYMBOL: (4893..4900)
+ IDENTIFIER: (4893..4900) "display"
+ ATMOSPHERE: (4900..4901) " "
+ FORM: (4901..5345)
+ OPEN_PAREN: (4901..4902) "("
+ SYMBOL: (4902..4906)
+ IDENTIFIER: (4902..4906) "list"
+ ATMOSPHERE: (4906..4911) "\n "
+ FORM: (4911..4928)
+ OPEN_PAREN: (4911..4912) "("
+ SYMBOL: (4912..4923)
+ IDENTIFIER: (4912..4923) "char-upcase"
+ ATMOSPHERE: (4923..4924) " "
+ CONSTANT: (4924..4927)
+ CHARACTER: (4924..4927) "#\\a"
+ CLOSE_PAREN: (4927..4928) ")"
+ ATMOSPHERE: (4928..4933) "\n "
+ FORM: (4933..4950)
+ OPEN_PAREN: (4933..4934) "("
+ SYMBOL: (4934..4945)
+ IDENTIFIER: (4934..4945) "char-upcase"
+ ATMOSPHERE: (4945..4946) " "
+ CONSTANT: (4946..4949)
+ CHARACTER: (4946..4949) "#\\A"
+ CLOSE_PAREN: (4949..4950) ")"
+ ATMOSPHERE: (4950..4955) "\n "
+ FORM: (4955..4972)
+ OPEN_PAREN: (4955..4956) "("
+ SYMBOL: (4956..4967)
+ IDENTIFIER: (4956..4967) "char-upcase"
+ ATMOSPHERE: (4967..4968) " "
+ CONSTANT: (4968..4971)
+ CHARACTER: (4968..4971) "#\\५"
+ CLOSE_PAREN: (4971..4972) ")"
+ ATMOSPHERE: (4972..4977) "\n "
+ FORM: (4977..4994)
+ OPEN_PAREN: (4977..4978) "("
+ SYMBOL: (4978..4989)
+ IDENTIFIER: (4978..4989) "char-upcase"
+ ATMOSPHERE: (4989..4990) " "
+ CONSTANT: (4990..4993)
+ CHARACTER: (4990..4993) "#\\λ"
+ CLOSE_PAREN: (4993..4994) ")"
+ ATMOSPHERE: (4994..4999) "\n "
+ FORM: (4999..5019)
+ OPEN_PAREN: (4999..5000) "("
+ SYMBOL: (5000..5011)
+ IDENTIFIER: (5000..5011) "char-upcase"
+ ATMOSPHERE: (5011..5012) " "
+ CONSTANT: (5012..5018)
+ CHARACTER: (5012..5018) "#\\null"
+ CLOSE_PAREN: (5018..5019) ")"
+ ATMOSPHERE: (5019..5024) "\n "
+ FORM: (5024..5045)
+ OPEN_PAREN: (5024..5025) "("
+ SYMBOL: (5025..5036)
+ IDENTIFIER: (5025..5036) "char-upcase"
+ ATMOSPHERE: (5036..5037) " "
+ CONSTANT: (5037..5044)
+ CHARACTER: (5037..5044) "#\\space"
+ CLOSE_PAREN: (5044..5045) ")"
+ ATMOSPHERE: (5045..5050) "\n "
+ FORM: (5050..5069)
+ OPEN_PAREN: (5050..5051) "("
+ SYMBOL: (5051..5064)
+ IDENTIFIER: (5051..5064) "char-downcase"
+ ATMOSPHERE: (5064..5065) " "
+ CONSTANT: (5065..5068)
+ CHARACTER: (5065..5068) "#\\a"
+ CLOSE_PAREN: (5068..5069) ")"
+ ATMOSPHERE: (5069..5074) "\n "
+ FORM: (5074..5093)
+ OPEN_PAREN: (5074..5075) "("
+ SYMBOL: (5075..5088)
+ IDENTIFIER: (5075..5088) "char-downcase"
+ ATMOSPHERE: (5088..5089) " "
+ CONSTANT: (5089..5092)
+ CHARACTER: (5089..5092) "#\\A"
+ CLOSE_PAREN: (5092..5093) ")"
+ ATMOSPHERE: (5093..5098) "\n "
+ FORM: (5098..5117)
+ OPEN_PAREN: (5098..5099) "("
+ SYMBOL: (5099..5112)
+ IDENTIFIER: (5099..5112) "char-downcase"
+ ATMOSPHERE: (5112..5113) " "
+ CONSTANT: (5113..5116)
+ CHARACTER: (5113..5116) "#\\५"
+ CLOSE_PAREN: (5116..5117) ")"
+ ATMOSPHERE: (5117..5122) "\n "
+ FORM: (5122..5141)
+ OPEN_PAREN: (5122..5123) "("
+ SYMBOL: (5123..5136)
+ IDENTIFIER: (5123..5136) "char-downcase"
+ ATMOSPHERE: (5136..5137) " "
+ CONSTANT: (5137..5140)
+ CHARACTER: (5137..5140) "#\\Λ"
+ CLOSE_PAREN: (5140..5141) ")"
+ ATMOSPHERE: (5141..5146) "\n "
+ FORM: (5146..5166)
+ OPEN_PAREN: (5146..5147) "("
+ SYMBOL: (5147..5158)
+ IDENTIFIER: (5147..5158) "char-upcase"
+ ATMOSPHERE: (5158..5159) " "
+ CONSTANT: (5159..5165)
+ CHARACTER: (5159..5165) "#\\null"
+ CLOSE_PAREN: (5165..5166) ")"
+ ATMOSPHERE: (5166..5171) "\n "
+ FORM: (5171..5192)
+ OPEN_PAREN: (5171..5172) "("
+ SYMBOL: (5172..5183)
+ IDENTIFIER: (5172..5183) "char-upcase"
+ ATMOSPHERE: (5183..5184) " "
+ CONSTANT: (5184..5191)
+ CHARACTER: (5184..5191) "#\\space"
+ CLOSE_PAREN: (5191..5192) ")"
+ ATMOSPHERE: (5192..5197) "\n "
+ FORM: (5197..5216)
+ OPEN_PAREN: (5197..5198) "("
+ SYMBOL: (5198..5211)
+ IDENTIFIER: (5198..5211) "char-foldcase"
+ ATMOSPHERE: (5211..5212) " "
+ CONSTANT: (5212..5215)
+ CHARACTER: (5212..5215) "#\\a"
+ CLOSE_PAREN: (5215..5216) ")"
+ ATMOSPHERE: (5216..5221) "\n "
+ FORM: (5221..5240)
+ OPEN_PAREN: (5221..5222) "("
+ SYMBOL: (5222..5235)
+ IDENTIFIER: (5222..5235) "char-foldcase"
+ ATMOSPHERE: (5235..5236) " "
+ CONSTANT: (5236..5239)
+ CHARACTER: (5236..5239) "#\\A"
+ CLOSE_PAREN: (5239..5240) ")"
+ ATMOSPHERE: (5240..5245) "\n "
+ FORM: (5245..5264)
+ OPEN_PAREN: (5245..5246) "("
+ SYMBOL: (5246..5259)
+ IDENTIFIER: (5246..5259) "char-foldcase"
+ ATMOSPHERE: (5259..5260) " "
+ CONSTANT: (5260..5263)
+ CHARACTER: (5260..5263) "#\\५"
+ CLOSE_PAREN: (5263..5264) ")"
+ ATMOSPHERE: (5264..5269) "\n "
+ FORM: (5269..5288)
+ OPEN_PAREN: (5269..5270) "("
+ SYMBOL: (5270..5283)
+ IDENTIFIER: (5270..5283) "char-foldcase"
+ ATMOSPHERE: (5283..5284) " "
+ CONSTANT: (5284..5287)
+ CHARACTER: (5284..5287) "#\\Λ"
+ CLOSE_PAREN: (5287..5288) ")"
+ ATMOSPHERE: (5288..5293) "\n "
+ FORM: (5293..5313)
+ OPEN_PAREN: (5293..5294) "("
+ SYMBOL: (5294..5305)
+ IDENTIFIER: (5294..5305) "char-upcase"
+ ATMOSPHERE: (5305..5306) " "
+ CONSTANT: (5306..5312)
+ CHARACTER: (5306..5312) "#\\null"
+ CLOSE_PAREN: (5312..5313) ")"
+ ATMOSPHERE: (5313..5318) "\n "
+ FORM: (5318..5339)
+ OPEN_PAREN: (5318..5319) "("
+ SYMBOL: (5319..5330)
+ IDENTIFIER: (5319..5330) "char-upcase"
+ ATMOSPHERE: (5330..5331) " "
+ CONSTANT: (5331..5338)
+ CHARACTER: (5331..5338) "#\\space"
+ CLOSE_PAREN: (5338..5339) ")"
+ ATMOSPHERE: (5339..5344) "\n "
+ CLOSE_PAREN: (5344..5345) ")"
+ CLOSE_PAREN: (5345..5346) ")"
+ ATMOSPHERE: (5346..5347) "\n"
+ EOF: (5347..5347) ""
diff --git a/spec/chibi-r7rs-tests.ast b/spec/chibi-r7rs-tests.ast
new file mode 100644
index 0000000..05d3cbd
--- /dev/null
+++ b/spec/chibi-r7rs-tests.ast
@@ -0,0 +1,14237 @@
+PROGRAM: (0..79716)
+ ATMOSPHERE: (0..24) ";; -*- coding: utf-8 -*-"
+ ATMOSPHERE: (24..26) "\n\n"
+ ATMOSPHERE: (26..99) ";;;;; This file is a modified version of the Chibi Scheme R7RS Test Suite"
+ ATMOSPHERE: (99..100) "\n"
+ ATMOSPHERE: (100..102) ";;"
+ ATMOSPHERE: (102..103) "\n"
+ ATMOSPHERE: (103..180) ";; Check out Chibi Scheme on GitHub: "
+ ATMOSPHERE: (180..182) "\n\n"
+ ATMOSPHERE: (182..218) "; Copyright (c) 2009-2018 Alex Shinn"
+ ATMOSPHERE: (218..219) "\n"
+ ATMOSPHERE: (219..241) "; All rights reserved."
+ ATMOSPHERE: (241..243) "\n\n"
+ ATMOSPHERE: (243..311) "; Redistribution and use in source and binary forms, with or without"
+ ATMOSPHERE: (311..312) "\n"
+ ATMOSPHERE: (312..380) "; modification, are permitted provided that the following conditions"
+ ATMOSPHERE: (380..381) "\n"
+ ATMOSPHERE: (381..391) "; are met:"
+ ATMOSPHERE: (391..392) "\n"
+ ATMOSPHERE: (392..459) "; 1. Redistributions of source code must retain the above copyright"
+ ATMOSPHERE: (459..460) "\n"
+ ATMOSPHERE: (460..526) "; notice, this list of conditions and the following disclaimer."
+ ATMOSPHERE: (526..527) "\n"
+ ATMOSPHERE: (527..597) "; 2. Redistributions in binary form must reproduce the above copyright"
+ ATMOSPHERE: (597..598) "\n"
+ ATMOSPHERE: (598..670) "; notice, this list of conditions and the following disclaimer in the"
+ ATMOSPHERE: (670..671) "\n"
+ ATMOSPHERE: (671..744) "; documentation and/or other materials provided with the distribution."
+ ATMOSPHERE: (744..745) "\n"
+ ATMOSPHERE: (745..819) "; 3. The name of the author may not be used to endorse or promote products"
+ ATMOSPHERE: (819..820) "\n"
+ ATMOSPHERE: (820..894) "; derived from this software without specific prior written permission."
+ ATMOSPHERE: (894..896) "\n\n"
+ ATMOSPHERE: (896..966) "; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR"
+ ATMOSPHERE: (966..967) "\n"
+ ATMOSPHERE: (967..1042) "; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES"
+ ATMOSPHERE: (1042..1043) "\n"
+ ATMOSPHERE: (1043..1116) "; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED."
+ ATMOSPHERE: (1116..1117) "\n"
+ ATMOSPHERE: (1117..1183) "; IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,"
+ ATMOSPHERE: (1183..1184) "\n"
+ ATMOSPHERE: (1184..1258) "; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT"
+ ATMOSPHERE: (1258..1259) "\n"
+ ATMOSPHERE: (1259..1334) "; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,"
+ ATMOSPHERE: (1334..1335) "\n"
+ ATMOSPHERE: (1335..1406) "; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY"
+ ATMOSPHERE: (1406..1407) "\n"
+ ATMOSPHERE: (1407..1476) "; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT"
+ ATMOSPHERE: (1476..1477) "\n"
+ ATMOSPHERE: (1477..1551) "; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF"
+ ATMOSPHERE: (1551..1552) "\n"
+ ATMOSPHERE: (1552..1619) "; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+ ATMOSPHERE: (1619..1621) "\n\n"
+ FORM: (1621..2109)
+ OPEN_PAREN: (1621..1622) "("
+ SYMBOL: (1622..1628)
+ IDENTIFIER: (1622..1628) "import"
+ ATMOSPHERE: (1628..1629) " "
+ FORM: (1629..1642)
+ OPEN_PAREN: (1629..1630) "("
+ SYMBOL: (1630..1636)
+ IDENTIFIER: (1630..1636) "scheme"
+ ATMOSPHERE: (1636..1637) " "
+ SYMBOL: (1637..1641)
+ IDENTIFIER: (1637..1641) "base"
+ CLOSE_PAREN: (1641..1642) ")"
+ ATMOSPHERE: (1642..1647) "\n "
+ ATMOSPHERE: (1647..1714) ";; FIXME: we shouldn't _need_ to import this, but we have no way of"
+ ATMOSPHERE: (1714..1719) "\n "
+ ATMOSPHERE: (1719..1783) ";; exporting or re-exporting macro definitions currently."
+ ATMOSPHERE: (1783..1788) "\n "
+ FORM: (1788..1812)
+ OPEN_PAREN: (1788..1789) "("
+ SYMBOL: (1789..1796)
+ IDENTIFIER: (1789..1796) "feersum"
+ ATMOSPHERE: (1796..1797) " "
+ SYMBOL: (1797..1804)
+ IDENTIFIER: (1797..1804) "builtin"
+ ATMOSPHERE: (1804..1805) " "
+ SYMBOL: (1805..1811)
+ IDENTIFIER: (1805..1811) "macros"
+ CLOSE_PAREN: (1811..1812) ")"
+ ATMOSPHERE: (1812..1813) "\n"
+ ATMOSPHERE: (1813..1848) ";; (scheme char) (scheme lazy)"
+ ATMOSPHERE: (1848..1849) "\n"
+ ATMOSPHERE: (1849..1907) ";; (scheme inexact) (scheme complex) (scheme time)"
+ ATMOSPHERE: (1907..1908) "\n"
+ ATMOSPHERE: (1908..1946) ";; (scheme file) (scheme read)"
+ ATMOSPHERE: (1946..1949) "\n "
+ FORM: (1949..1963)
+ OPEN_PAREN: (1949..1950) "("
+ SYMBOL: (1950..1956)
+ IDENTIFIER: (1950..1956) "scheme"
+ ATMOSPHERE: (1956..1957) " "
+ SYMBOL: (1957..1962)
+ IDENTIFIER: (1957..1962) "write"
+ CLOSE_PAREN: (1962..1963) ")"
+ ATMOSPHERE: (1963..1964) "\n"
+ ATMOSPHERE: (1964..2034) ";; (scheme eval) (scheme process-context) (scheme case-lambda)"
+ ATMOSPHERE: (2034..2035) "\n"
+ ATMOSPHERE: (2035..2059) ";; (scheme r5rs)"
+ ATMOSPHERE: (2059..2060) "\n"
+ ATMOSPHERE: (2060..2099) ";; (chibi test) ; or (srfi 64)"
+ ATMOSPHERE: (2099..2108) "\n "
+ CLOSE_PAREN: (2108..2109) ")"
+ ATMOSPHERE: (2109..2111) "\n\n"
+ ATMOSPHERE: (2111..2177) ";; R7RS test suite. Covers all procedures and syntax in the small"
+ ATMOSPHERE: (2177..2178) "\n"
+ ATMOSPHERE: (2178..2243) ";; language except `delete-file'. Currently assumes full-unicode"
+ ATMOSPHERE: (2243..2244) "\n"
+ ATMOSPHERE: (2244..2305) ";; support, the full numeric tower and all standard libraries"
+ ATMOSPHERE: (2305..2306) "\n"
+ ATMOSPHERE: (2306..2318) ";; provided."
+ ATMOSPHERE: (2318..2319) "\n"
+ ATMOSPHERE: (2319..2321) ";;"
+ ATMOSPHERE: (2321..2322) "\n"
+ ATMOSPHERE: (2322..2389) ";; Uses the (chibi test) library which is written in portable R7RS."
+ ATMOSPHERE: (2389..2390) "\n"
+ ATMOSPHERE: (2390..2459) ";; This is mostly a subset of SRFI-64, providing test-begin, test-end"
+ ATMOSPHERE: (2459..2460) "\n"
+ ATMOSPHERE: (2460..2514) ";; and test, which could be defined as something like:"
+ ATMOSPHERE: (2514..2515) "\n"
+ ATMOSPHERE: (2515..2517) ";;"
+ ATMOSPHERE: (2517..2518) "\n"
+ FORM: (2518..2541)
+ OPEN_PAREN: (2518..2519) "("
+ SYMBOL: (2519..2525)
+ IDENTIFIER: (2519..2525) "define"
+ ATMOSPHERE: (2525..2526) " "
+ SYMBOL: (2526..2538)
+ IDENTIFIER: (2526..2538) "indent-level"
+ ATMOSPHERE: (2538..2539) " "
+ CONSTANT: (2539..2540)
+ NUMBER: (2539..2540) "0"
+ CLOSE_PAREN: (2540..2541) ")"
+ ATMOSPHERE: (2541..2542) "\n"
+ FORM: (2542..2678)
+ OPEN_PAREN: (2542..2543) "("
+ SYMBOL: (2543..2549)
+ IDENTIFIER: (2543..2549) "define"
+ ATMOSPHERE: (2549..2550) " "
+ FORM: (2550..2558)
+ OPEN_PAREN: (2550..2551) "("
+ SYMBOL: (2551..2557)
+ IDENTIFIER: (2551..2557) "indent"
+ CLOSE_PAREN: (2557..2558) ")"
+ ATMOSPHERE: (2558..2561) "\n "
+ FORM: (2561..2650)
+ OPEN_PAREN: (2561..2562) "("
+ SYMBOL: (2562..2568)
+ IDENTIFIER: (2562..2568) "define"
+ ATMOSPHERE: (2568..2569) " "
+ FORM: (2569..2582)
+ OPEN_PAREN: (2569..2570) "("
+ SYMBOL: (2570..2579)
+ IDENTIFIER: (2570..2579) "do-indent"
+ ATMOSPHERE: (2579..2580) " "
+ SYMBOL: (2580..2581)
+ IDENTIFIER: (2580..2581) "n"
+ CLOSE_PAREN: (2581..2582) ")"
+ ATMOSPHERE: (2582..2584) "\n\t"
+ FORM: (2584..2649)
+ OPEN_PAREN: (2584..2585) "("
+ SYMBOL: (2585..2587)
+ IDENTIFIER: (2585..2587) "if"
+ ATMOSPHERE: (2587..2588) " "
+ FORM: (2588..2595)
+ OPEN_PAREN: (2588..2589) "("
+ SYMBOL: (2589..2590)
+ IDENTIFIER: (2589..2590) ">"
+ ATMOSPHERE: (2590..2591) " "
+ SYMBOL: (2591..2592)
+ IDENTIFIER: (2591..2592) "n"
+ ATMOSPHERE: (2592..2593) " "
+ CONSTANT: (2593..2594)
+ NUMBER: (2593..2594) "0"
+ CLOSE_PAREN: (2594..2595) ")"
+ ATMOSPHERE: (2595..2598) "\n\t\t"
+ FORM: (2598..2648)
+ OPEN_PAREN: (2598..2599) "("
+ SYMBOL: (2599..2604)
+ IDENTIFIER: (2599..2604) "begin"
+ ATMOSPHERE: (2604..2609) "\n\t\t "
+ FORM: (2609..2623)
+ OPEN_PAREN: (2609..2610) "("
+ SYMBOL: (2610..2617)
+ IDENTIFIER: (2610..2617) "display"
+ ATMOSPHERE: (2617..2618) " "
+ CONSTANT: (2618..2622)
+ STRING: (2618..2622) "\"\\t\""
+ CLOSE_PAREN: (2622..2623) ")"
+ ATMOSPHERE: (2623..2628) "\n\t\t "
+ FORM: (2628..2647)
+ OPEN_PAREN: (2628..2629) "("
+ SYMBOL: (2629..2638)
+ IDENTIFIER: (2629..2638) "do-indent"
+ ATMOSPHERE: (2638..2639) " "
+ FORM: (2639..2646)
+ OPEN_PAREN: (2639..2640) "("
+ SYMBOL: (2640..2641)
+ IDENTIFIER: (2640..2641) "-"
+ ATMOSPHERE: (2641..2642) " "
+ SYMBOL: (2642..2643)
+ IDENTIFIER: (2642..2643) "n"
+ ATMOSPHERE: (2643..2644) " "
+ CONSTANT: (2644..2645)
+ NUMBER: (2644..2645) "1"
+ CLOSE_PAREN: (2645..2646) ")"
+ CLOSE_PAREN: (2646..2647) ")"
+ CLOSE_PAREN: (2647..2648) ")"
+ CLOSE_PAREN: (2648..2649) ")"
+ CLOSE_PAREN: (2649..2650) ")"
+ ATMOSPHERE: (2650..2653) "\n "
+ FORM: (2653..2677)
+ OPEN_PAREN: (2653..2654) "("
+ SYMBOL: (2654..2663)
+ IDENTIFIER: (2654..2663) "do-indent"
+ ATMOSPHERE: (2663..2664) " "
+ SYMBOL: (2664..2676)
+ IDENTIFIER: (2664..2676) "indent-level"
+ CLOSE_PAREN: (2676..2677) ")"
+ CLOSE_PAREN: (2677..2678) ")"
+ ATMOSPHERE: (2678..2680) "\n\n"
+ FORM: (2680..2696)
+ OPEN_PAREN: (2680..2681) "("
+ SYMBOL: (2681..2687)
+ IDENTIFIER: (2681..2687) "define"
+ ATMOSPHERE: (2687..2688) " "
+ SYMBOL: (2688..2693)
+ IDENTIFIER: (2688..2693) "tests"
+ ATMOSPHERE: (2693..2694) " "
+ CONSTANT: (2694..2695)
+ NUMBER: (2694..2695) "0"
+ CLOSE_PAREN: (2695..2696) ")"
+ FORM: (2696..2712)
+ OPEN_PAREN: (2696..2697) "("
+ SYMBOL: (2697..2703)
+ IDENTIFIER: (2697..2703) "define"
+ ATMOSPHERE: (2703..2704) " "
+ SYMBOL: (2704..2709)
+ IDENTIFIER: (2704..2709) "fails"
+ ATMOSPHERE: (2709..2710) " "
+ CONSTANT: (2710..2711)
+ NUMBER: (2710..2711) "0"
+ CLOSE_PAREN: (2711..2712) ")"
+ ATMOSPHERE: (2712..2713) "\n"
+ FORM: (2713..2834)
+ OPEN_PAREN: (2713..2714) "("
+ SYMBOL: (2714..2720)
+ IDENTIFIER: (2714..2720) "define"
+ ATMOSPHERE: (2720..2721) " "
+ FORM: (2721..2737)
+ OPEN_PAREN: (2721..2722) "("
+ SYMBOL: (2722..2732)
+ IDENTIFIER: (2722..2732) "test-begin"
+ ATMOSPHERE: (2732..2733) " "
+ DOTTED_TAIL: (2733..2736)
+ DOT: (2733..2734) "."
+ ATMOSPHERE: (2734..2735) " "
+ SYMBOL: (2735..2736)
+ IDENTIFIER: (2735..2736) "o"
+ CLOSE_PAREN: (2736..2737) ")"
+ ATMOSPHERE: (2737..2740) "\n "
+ FORM: (2740..2756)
+ OPEN_PAREN: (2740..2741) "("
+ SYMBOL: (2741..2748)
+ IDENTIFIER: (2741..2748) "display"
+ ATMOSPHERE: (2748..2749) " "
+ CONSTANT: (2749..2755)
+ STRING: (2749..2755) "\"### \""
+ CLOSE_PAREN: (2755..2756) ")"
+ FORM: (2756..2767)
+ OPEN_PAREN: (2756..2757) "("
+ SYMBOL: (2757..2764)
+ IDENTIFIER: (2757..2764) "display"
+ ATMOSPHERE: (2764..2765) " "
+ SYMBOL: (2765..2766)
+ IDENTIFIER: (2765..2766) "o"
+ CLOSE_PAREN: (2766..2767) ")"
+ FORM: (2767..2776)
+ OPEN_PAREN: (2767..2768) "("
+ SYMBOL: (2768..2775)
+ IDENTIFIER: (2768..2775) "newline"
+ CLOSE_PAREN: (2775..2776) ")"
+ ATMOSPHERE: (2776..2779) "\n "
+ FORM: (2779..2817)
+ OPEN_PAREN: (2779..2780) "("
+ SYMBOL: (2780..2784)
+ IDENTIFIER: (2780..2784) "set!"
+ ATMOSPHERE: (2784..2785) " "
+ SYMBOL: (2785..2797)
+ IDENTIFIER: (2785..2797) "indent-level"
+ ATMOSPHERE: (2797..2798) " "
+ FORM: (2798..2816)
+ OPEN_PAREN: (2798..2799) "("
+ SYMBOL: (2799..2800)
+ IDENTIFIER: (2799..2800) "+"
+ ATMOSPHERE: (2800..2801) " "
+ SYMBOL: (2801..2813)
+ IDENTIFIER: (2801..2813) "indent-level"
+ ATMOSPHERE: (2813..2814) " "
+ CONSTANT: (2814..2815)
+ NUMBER: (2814..2815) "1"
+ CLOSE_PAREN: (2815..2816) ")"
+ CLOSE_PAREN: (2816..2817) ")"
+ ATMOSPHERE: (2817..2820) "\n "
+ FORM: (2820..2828)
+ OPEN_PAREN: (2820..2821) "("
+ SYMBOL: (2821..2827)
+ IDENTIFIER: (2821..2827) "indent"
+ CLOSE_PAREN: (2827..2828) ")"
+ ATMOSPHERE: (2828..2831) "\n "
+ CONSTANT: (2831..2833)
+ BOOLEAN: (2831..2833) "#f"
+ CLOSE_PAREN: (2833..2834) ")"
+ ATMOSPHERE: (2834..2836) "\n\n"
+ FORM: (2836..3011)
+ OPEN_PAREN: (2836..2837) "("
+ SYMBOL: (2837..2843)
+ IDENTIFIER: (2837..2843) "define"
+ ATMOSPHERE: (2843..2844) " "
+ FORM: (2844..2864)
+ OPEN_PAREN: (2844..2845) "("
+ SYMBOL: (2845..2863)
+ IDENTIFIER: (2845..2863) "print-test-summary"
+ CLOSE_PAREN: (2863..2864) ")"
+ ATMOSPHERE: (2864..2867) "\n "
+ FORM: (2867..2901)
+ OPEN_PAREN: (2867..2868) "("
+ SYMBOL: (2868..2875)
+ IDENTIFIER: (2868..2875) "display"
+ ATMOSPHERE: (2875..2876) " "
+ CONSTANT: (2876..2900)
+ STRING: (2876..2900) "\"----------------------\""
+ CLOSE_PAREN: (2900..2901) ")"
+ FORM: (2901..2910)
+ OPEN_PAREN: (2901..2902) "("
+ SYMBOL: (2902..2909)
+ IDENTIFIER: (2902..2909) "newline"
+ CLOSE_PAREN: (2909..2910) ")"
+ ATMOSPHERE: (2910..2913) "\n "
+ FORM: (2913..2932)
+ OPEN_PAREN: (2913..2914) "("
+ SYMBOL: (2914..2921)
+ IDENTIFIER: (2914..2921) "display"
+ ATMOSPHERE: (2921..2922) " "
+ CONSTANT: (2922..2931)
+ STRING: (2922..2931) "\"Total: \""
+ CLOSE_PAREN: (2931..2932) ")"
+ FORM: (2932..2947)
+ OPEN_PAREN: (2932..2933) "("
+ SYMBOL: (2933..2940)
+ IDENTIFIER: (2933..2940) "display"
+ ATMOSPHERE: (2940..2941) " "
+ SYMBOL: (2941..2946)
+ IDENTIFIER: (2941..2946) "tests"
+ CLOSE_PAREN: (2946..2947) ")"
+ FORM: (2947..2956)
+ OPEN_PAREN: (2947..2948) "("
+ SYMBOL: (2948..2955)
+ IDENTIFIER: (2948..2955) "newline"
+ CLOSE_PAREN: (2955..2956) ")"
+ ATMOSPHERE: (2956..2959) "\n "
+ FORM: (2959..2978)
+ OPEN_PAREN: (2959..2960) "("
+ SYMBOL: (2960..2967)
+ IDENTIFIER: (2960..2967) "display"
+ ATMOSPHERE: (2967..2968) " "
+ CONSTANT: (2968..2977)
+ STRING: (2968..2977) "\"Fails: \""
+ CLOSE_PAREN: (2977..2978) ")"
+ FORM: (2978..2993)
+ OPEN_PAREN: (2978..2979) "("
+ SYMBOL: (2979..2986)
+ IDENTIFIER: (2979..2986) "display"
+ ATMOSPHERE: (2986..2987) " "
+ SYMBOL: (2987..2992)
+ IDENTIFIER: (2987..2992) "fails"
+ CLOSE_PAREN: (2992..2993) ")"
+ FORM: (2993..3002)
+ OPEN_PAREN: (2993..2994) "("
+ SYMBOL: (2994..3001)
+ IDENTIFIER: (2994..3001) "newline"
+ CLOSE_PAREN: (3001..3002) ")"
+ ATMOSPHERE: (3002..3005) "\n "
+ SYMBOL: (3005..3010)
+ IDENTIFIER: (3005..3010) "fails"
+ CLOSE_PAREN: (3010..3011) ")"
+ ATMOSPHERE: (3011..3013) "\n\n"
+ FORM: (3013..3151)
+ OPEN_PAREN: (3013..3014) "("
+ SYMBOL: (3014..3020)
+ IDENTIFIER: (3014..3020) "define"
+ ATMOSPHERE: (3020..3021) " "
+ FORM: (3021..3035)
+ OPEN_PAREN: (3021..3022) "("
+ SYMBOL: (3022..3030)
+ IDENTIFIER: (3022..3030) "test-end"
+ ATMOSPHERE: (3030..3031) " "
+ DOTTED_TAIL: (3031..3034)
+ DOT: (3031..3032) "."
+ ATMOSPHERE: (3032..3033) " "
+ SYMBOL: (3033..3034)
+ IDENTIFIER: (3033..3034) "o"
+ CLOSE_PAREN: (3034..3035) ")"
+ ATMOSPHERE: (3035..3038) "\n "
+ FORM: (3038..3047)
+ OPEN_PAREN: (3038..3039) "("
+ SYMBOL: (3039..3046)
+ IDENTIFIER: (3039..3046) "newline"
+ CLOSE_PAREN: (3046..3047) ")"
+ ATMOSPHERE: (3047..3050) "\n "
+ FORM: (3050..3088)
+ OPEN_PAREN: (3050..3051) "("
+ SYMBOL: (3051..3055)
+ IDENTIFIER: (3051..3055) "set!"
+ ATMOSPHERE: (3055..3056) " "
+ SYMBOL: (3056..3068)
+ IDENTIFIER: (3056..3068) "indent-level"
+ ATMOSPHERE: (3068..3069) " "
+ FORM: (3069..3087)
+ OPEN_PAREN: (3069..3070) "("
+ SYMBOL: (3070..3071)
+ IDENTIFIER: (3070..3071) "-"
+ ATMOSPHERE: (3071..3072) " "
+ SYMBOL: (3072..3084)
+ IDENTIFIER: (3072..3084) "indent-level"
+ ATMOSPHERE: (3084..3085) " "
+ CONSTANT: (3085..3086)
+ NUMBER: (3085..3086) "1"
+ CLOSE_PAREN: (3086..3087) ")"
+ CLOSE_PAREN: (3087..3088) ")"
+ ATMOSPHERE: (3088..3091) "\n "
+ FORM: (3091..3150)
+ OPEN_PAREN: (3091..3092) "("
+ SYMBOL: (3092..3094)
+ IDENTIFIER: (3092..3094) "if"
+ ATMOSPHERE: (3094..3095) " "
+ FORM: (3095..3113)
+ OPEN_PAREN: (3095..3096) "("
+ SYMBOL: (3096..3097)
+ IDENTIFIER: (3096..3097) "="
+ ATMOSPHERE: (3097..3098) " "
+ SYMBOL: (3098..3110)
+ IDENTIFIER: (3098..3110) "indent-level"
+ ATMOSPHERE: (3110..3111) " "
+ CONSTANT: (3111..3112)
+ NUMBER: (3111..3112) "0"
+ CLOSE_PAREN: (3112..3113) ")"
+ ATMOSPHERE: (3113..3117) "\n\t "
+ FORM: (3117..3137)
+ OPEN_PAREN: (3117..3118) "("
+ SYMBOL: (3118..3136)
+ IDENTIFIER: (3118..3136) "print-test-summary"
+ CLOSE_PAREN: (3136..3137) ")"
+ ATMOSPHERE: (3137..3141) "\n\t "
+ FORM: (3141..3149)
+ OPEN_PAREN: (3141..3142) "("
+ SYMBOL: (3142..3148)
+ IDENTIFIER: (3142..3148) "indent"
+ CLOSE_PAREN: (3148..3149) ")"
+ CLOSE_PAREN: (3149..3150) ")"
+ CLOSE_PAREN: (3150..3151) ")"
+ ATMOSPHERE: (3151..3153) "\n\n"
+ FORM: (3153..3522)
+ OPEN_PAREN: (3153..3154) "("
+ SYMBOL: (3154..3167)
+ IDENTIFIER: (3154..3167) "define-syntax"
+ ATMOSPHERE: (3167..3168) " "
+ SYMBOL: (3168..3172)
+ IDENTIFIER: (3168..3172) "test"
+ ATMOSPHERE: (3172..3175) "\n "
+ FORM: (3175..3521)
+ OPEN_PAREN: (3175..3176) "("
+ SYMBOL: (3176..3188)
+ IDENTIFIER: (3176..3188) "syntax-rules"
+ ATMOSPHERE: (3188..3189) " "
+ FORM: (3189..3191)
+ OPEN_PAREN: (3189..3190) "("
+ CLOSE_PAREN: (3190..3191) ")"
+ ATMOSPHERE: (3191..3193) "\n\t"
+ FORM: (3193..3520)
+ OPEN_PAREN: (3193..3194) "("
+ FORM: (3194..3211)
+ OPEN_PAREN: (3194..3195) "("
+ SYMBOL: (3195..3196)
+ IDENTIFIER: (3195..3196) "_"
+ ATMOSPHERE: (3196..3197) " "
+ SYMBOL: (3197..3205)
+ IDENTIFIER: (3197..3205) "expected"
+ ATMOSPHERE: (3205..3206) " "
+ SYMBOL: (3206..3210)
+ IDENTIFIER: (3206..3210) "expr"
+ CLOSE_PAREN: (3210..3211) ")"
+ ATMOSPHERE: (3211..3214) "\n\t "
+ FORM: (3214..3519)
+ OPEN_PAREN: (3214..3215) "("
+ SYMBOL: (3215..3218)
+ IDENTIFIER: (3215..3218) "let"
+ ATMOSPHERE: (3218..3219) " "
+ FORM: (3219..3231)
+ OPEN_PAREN: (3219..3220) "("
+ FORM: (3220..3230)
+ OPEN_PAREN: (3220..3221) "("
+ SYMBOL: (3221..3224)
+ IDENTIFIER: (3221..3224) "res"
+ ATMOSPHERE: (3224..3225) " "
+ SYMBOL: (3225..3229)
+ IDENTIFIER: (3225..3229) "expr"
+ CLOSE_PAREN: (3229..3230) ")"
+ CLOSE_PAREN: (3230..3231) ")"
+ ATMOSPHERE: (3231..3236) "\n\t "
+ FORM: (3236..3260)
+ OPEN_PAREN: (3236..3237) "("
+ SYMBOL: (3237..3241)
+ IDENTIFIER: (3237..3241) "set!"
+ ATMOSPHERE: (3241..3242) " "
+ SYMBOL: (3242..3247)
+ IDENTIFIER: (3242..3247) "tests"
+ ATMOSPHERE: (3247..3248) " "
+ FORM: (3248..3259)
+ OPEN_PAREN: (3248..3249) "("
+ SYMBOL: (3249..3250)
+ IDENTIFIER: (3249..3250) "+"
+ ATMOSPHERE: (3250..3251) " "
+ SYMBOL: (3251..3256)
+ IDENTIFIER: (3251..3256) "tests"
+ ATMOSPHERE: (3256..3257) " "
+ CONSTANT: (3257..3258)
+ NUMBER: (3257..3258) "1"
+ CLOSE_PAREN: (3258..3259) ")"
+ CLOSE_PAREN: (3259..3260) ")"
+ ATMOSPHERE: (3260..3265) "\n\t "
+ FORM: (3265..3518)
+ OPEN_PAREN: (3265..3266) "("
+ SYMBOL: (3266..3268)
+ IDENTIFIER: (3266..3268) "if"
+ ATMOSPHERE: (3268..3269) " "
+ FORM: (3269..3290)
+ OPEN_PAREN: (3269..3270) "("
+ SYMBOL: (3270..3276)
+ IDENTIFIER: (3270..3276) "equal?"
+ ATMOSPHERE: (3276..3277) " "
+ SYMBOL: (3277..3280)
+ IDENTIFIER: (3277..3280) "res"
+ ATMOSPHERE: (3280..3281) " "
+ SYMBOL: (3281..3289)
+ IDENTIFIER: (3281..3289) "expected"
+ CLOSE_PAREN: (3289..3290) ")"
+ ATMOSPHERE: (3290..3296) "\n\t\t "
+ FORM: (3296..3309)
+ OPEN_PAREN: (3296..3297) "("
+ SYMBOL: (3297..3304)
+ IDENTIFIER: (3297..3304) "display"
+ ATMOSPHERE: (3304..3305) " "
+ CONSTANT: (3305..3308)
+ STRING: (3305..3308) "\".\""
+ CLOSE_PAREN: (3308..3309) ")"
+ ATMOSPHERE: (3309..3315) "\n\t\t "
+ FORM: (3315..3517)
+ OPEN_PAREN: (3315..3316) "("
+ SYMBOL: (3316..3321)
+ IDENTIFIER: (3316..3321) "begin"
+ ATMOSPHERE: (3321..3326) "\n\t\t\t "
+ FORM: (3326..3350)
+ OPEN_PAREN: (3326..3327) "("
+ SYMBOL: (3327..3331)
+ IDENTIFIER: (3327..3331) "set!"
+ ATMOSPHERE: (3331..3332) " "
+ SYMBOL: (3332..3337)
+ IDENTIFIER: (3332..3337) "fails"
+ ATMOSPHERE: (3337..3338) " "
+ FORM: (3338..3349)
+ OPEN_PAREN: (3338..3339) "("
+ SYMBOL: (3339..3340)
+ IDENTIFIER: (3339..3340) "+"
+ ATMOSPHERE: (3340..3341) " "
+ SYMBOL: (3341..3346)
+ IDENTIFIER: (3341..3346) "fails"
+ ATMOSPHERE: (3346..3347) " "
+ CONSTANT: (3347..3348)
+ NUMBER: (3347..3348) "1"
+ CLOSE_PAREN: (3348..3349) ")"
+ CLOSE_PAREN: (3349..3350) ")"
+ ATMOSPHERE: (3350..3355) "\n\t\t\t "
+ FORM: (3355..3364)
+ OPEN_PAREN: (3355..3356) "("
+ SYMBOL: (3356..3363)
+ IDENTIFIER: (3356..3363) "newline"
+ CLOSE_PAREN: (3363..3364) ")"
+ ATMOSPHERE: (3364..3369) "\n\t\t\t "
+ FORM: (3369..3387)
+ OPEN_PAREN: (3369..3370) "("
+ SYMBOL: (3370..3377)
+ IDENTIFIER: (3370..3377) "display"
+ ATMOSPHERE: (3377..3378) " "
+ CONSTANT: (3378..3386)
+ STRING: (3378..3386) "\"FAIL: \""
+ CLOSE_PAREN: (3386..3387) ")"
+ ATMOSPHERE: (3387..3392) "\n\t\t\t "
+ FORM: (3392..3407)
+ OPEN_PAREN: (3392..3393) "("
+ SYMBOL: (3393..3400)
+ IDENTIFIER: (3393..3400) "display"
+ ATMOSPHERE: (3400..3401) " "
+ QUOTED_DATUM: (3401..3406)
+ QUOTE: (3401..3402) "'"
+ SYMBOL: (3402..3406)
+ IDENTIFIER: (3402..3406) "expr"
+ CLOSE_PAREN: (3406..3407) ")"
+ ATMOSPHERE: (3407..3412) "\n\t\t\t "
+ FORM: (3412..3435)
+ OPEN_PAREN: (3412..3413) "("
+ SYMBOL: (3413..3420)
+ IDENTIFIER: (3413..3420) "display"
+ ATMOSPHERE: (3420..3421) " "
+ CONSTANT: (3421..3434)
+ STRING: (3421..3434) "\": expected \""
+ CLOSE_PAREN: (3434..3435) ")"
+ ATMOSPHERE: (3435..3440) "\n\t\t\t "
+ FORM: (3440..3458)
+ OPEN_PAREN: (3440..3441) "("
+ SYMBOL: (3441..3448)
+ IDENTIFIER: (3441..3448) "display"
+ ATMOSPHERE: (3448..3449) " "
+ SYMBOL: (3449..3457)
+ IDENTIFIER: (3449..3457) "expected"
+ CLOSE_PAREN: (3457..3458) ")"
+ ATMOSPHERE: (3458..3463) "\n\t\t\t "
+ FORM: (3463..3484)
+ OPEN_PAREN: (3463..3464) "("
+ SYMBOL: (3464..3471)
+ IDENTIFIER: (3464..3471) "display"
+ ATMOSPHERE: (3471..3472) " "
+ CONSTANT: (3472..3483)
+ STRING: (3472..3483) "\" but got \""
+ CLOSE_PAREN: (3483..3484) ")"
+ ATMOSPHERE: (3484..3489) "\n\t\t\t "
+ FORM: (3489..3502)
+ OPEN_PAREN: (3489..3490) "("
+ SYMBOL: (3490..3497)
+ IDENTIFIER: (3490..3497) "display"
+ ATMOSPHERE: (3497..3498) " "
+ SYMBOL: (3498..3501)
+ IDENTIFIER: (3498..3501) "res"
+ CLOSE_PAREN: (3501..3502) ")"
+ ATMOSPHERE: (3502..3507) "\n\t\t\t "
+ FORM: (3507..3516)
+ OPEN_PAREN: (3507..3508) "("
+ SYMBOL: (3508..3515)
+ IDENTIFIER: (3508..3515) "newline"
+ CLOSE_PAREN: (3515..3516) ")"
+ CLOSE_PAREN: (3516..3517) ")"
+ CLOSE_PAREN: (3517..3518) ")"
+ CLOSE_PAREN: (3518..3519) ")"
+ CLOSE_PAREN: (3519..3520) ")"
+ CLOSE_PAREN: (3520..3521) ")"
+ CLOSE_PAREN: (3521..3522) ")"
+ ATMOSPHERE: (3522..3524) "\n\n"
+ ATMOSPHERE: (3524..3526) ";;"
+ ATMOSPHERE: (3526..3527) "\n"
+ ATMOSPHERE: (3527..3586) ";; however (chibi test) provides nicer output, timings, and"
+ ATMOSPHERE: (3586..3587) "\n"
+ ATMOSPHERE: (3587..3641) ";; approximate equivalence for floating point numbers."
+ ATMOSPHERE: (3641..3643) "\n\n"
+ FORM: (3643..3662)
+ OPEN_PAREN: (3643..3644) "("
+ SYMBOL: (3644..3654)
+ IDENTIFIER: (3644..3654) "test-begin"
+ ATMOSPHERE: (3654..3655) " "
+ CONSTANT: (3655..3661)
+ STRING: (3655..3661) "\"R7RS\""
+ CLOSE_PAREN: (3661..3662) ")"
+ ATMOSPHERE: (3662..3664) "\n\n"
+ FORM: (3664..3709)
+ OPEN_PAREN: (3664..3665) "("
+ SYMBOL: (3665..3675)
+ IDENTIFIER: (3665..3675) "test-begin"
+ ATMOSPHERE: (3675..3676) " "
+ CONSTANT: (3676..3708)
+ STRING: (3676..3708) "\"4.1 Primitive expression types\""
+ CLOSE_PAREN: (3708..3709) ")"
+ ATMOSPHERE: (3709..3711) "\n\n"
+ FORM: (3711..3749)
+ OPEN_PAREN: (3711..3712) "("
+ SYMBOL: (3712..3715)
+ IDENTIFIER: (3712..3715) "let"
+ ATMOSPHERE: (3715..3716) " "
+ FORM: (3716..3718)
+ OPEN_PAREN: (3716..3717) "("
+ CLOSE_PAREN: (3717..3718) ")"
+ ATMOSPHERE: (3718..3721) "\n "
+ FORM: (3721..3734)
+ OPEN_PAREN: (3721..3722) "("
+ SYMBOL: (3722..3728)
+ IDENTIFIER: (3722..3728) "define"
+ ATMOSPHERE: (3728..3729) " "
+ SYMBOL: (3729..3730)
+ IDENTIFIER: (3729..3730) "x"
+ ATMOSPHERE: (3730..3731) " "
+ CONSTANT: (3731..3733)
+ NUMBER: (3731..3733) "28"
+ CLOSE_PAREN: (3733..3734) ")"
+ ATMOSPHERE: (3734..3737) "\n "
+ FORM: (3737..3748)
+ OPEN_PAREN: (3737..3738) "("
+ SYMBOL: (3738..3742)
+ IDENTIFIER: (3738..3742) "test"
+ ATMOSPHERE: (3742..3743) " "
+ CONSTANT: (3743..3745)
+ NUMBER: (3743..3745) "28"
+ ATMOSPHERE: (3745..3746) " "
+ SYMBOL: (3746..3747)
+ IDENTIFIER: (3746..3747) "x"
+ CLOSE_PAREN: (3747..3748) ")"
+ CLOSE_PAREN: (3748..3749) ")"
+ ATMOSPHERE: (3749..3752) "\n\n\n"
+ FORM: (3752..3771)
+ OPEN_PAREN: (3752..3753) "("
+ SYMBOL: (3753..3757)
+ IDENTIFIER: (3753..3757) "test"
+ ATMOSPHERE: (3757..3758) " "
+ QUOTED_DATUM: (3758..3761)
+ QUOTE: (3758..3759) "'"
+ SYMBOL: (3759..3760)
+ IDENTIFIER: (3759..3760) "a"
+ ATMOSPHERE: (3760..3761) " "
+ FORM: (3761..3770)
+ OPEN_PAREN: (3761..3762) "("
+ SYMBOL: (3762..3767)
+ IDENTIFIER: (3762..3767) "quote"
+ ATMOSPHERE: (3767..3768) " "
+ SYMBOL: (3768..3769)
+ IDENTIFIER: (3768..3769) "a"
+ CLOSE_PAREN: (3769..3770) ")"
+ CLOSE_PAREN: (3770..3771) ")"
+ ATMOSPHERE: (3771..3772) "\n"
+ FORM: (3772..3804)
+ OPEN_PAREN: (3772..3773) "("
+ SYMBOL: (3773..3777)
+ IDENTIFIER: (3773..3777) "test"
+ ATMOSPHERE: (3777..3778) " "
+ VEC: (3778..3786)
+ OPEN_PAREN: (3778..3780) "#("
+ SYMBOL: (3780..3781)
+ IDENTIFIER: (3780..3781) "a"
+ ATMOSPHERE: (3781..3782) " "
+ SYMBOL: (3782..3783)
+ IDENTIFIER: (3782..3783) "b"
+ ATMOSPHERE: (3783..3784) " "
+ SYMBOL: (3784..3785)
+ IDENTIFIER: (3784..3785) "c"
+ CLOSE_PAREN: (3785..3786) ")"
+ ATMOSPHERE: (3786..3787) " "
+ FORM: (3787..3803)
+ OPEN_PAREN: (3787..3788) "("
+ SYMBOL: (3788..3793)
+ IDENTIFIER: (3788..3793) "quote"
+ ATMOSPHERE: (3793..3794) " "
+ VEC: (3794..3802)
+ OPEN_PAREN: (3794..3796) "#("
+ SYMBOL: (3796..3797)
+ IDENTIFIER: (3796..3797) "a"
+ ATMOSPHERE: (3797..3798) " "
+ SYMBOL: (3798..3799)
+ IDENTIFIER: (3798..3799) "b"
+ ATMOSPHERE: (3799..3800) " "
+ SYMBOL: (3800..3801)
+ IDENTIFIER: (3800..3801) "c"
+ CLOSE_PAREN: (3801..3802) ")"
+ CLOSE_PAREN: (3802..3803) ")"
+ CLOSE_PAREN: (3803..3804) ")"
+ ATMOSPHERE: (3804..3805) "\n"
+ FORM: (3805..3836)
+ OPEN_PAREN: (3805..3806) "("
+ SYMBOL: (3806..3810)
+ IDENTIFIER: (3806..3810) "test"
+ ATMOSPHERE: (3810..3811) " "
+ QUOTED_DATUM: (3811..3820)
+ QUOTE: (3811..3812) "'"
+ FORM: (3812..3819)
+ OPEN_PAREN: (3812..3813) "("
+ SYMBOL: (3813..3814)
+ IDENTIFIER: (3813..3814) "+"
+ ATMOSPHERE: (3814..3815) " "
+ CONSTANT: (3815..3816)
+ NUMBER: (3815..3816) "1"
+ ATMOSPHERE: (3816..3817) " "
+ CONSTANT: (3817..3818)
+ NUMBER: (3817..3818) "2"
+ CLOSE_PAREN: (3818..3819) ")"
+ ATMOSPHERE: (3819..3820) " "
+ FORM: (3820..3835)
+ OPEN_PAREN: (3820..3821) "("
+ SYMBOL: (3821..3826)
+ IDENTIFIER: (3821..3826) "quote"
+ ATMOSPHERE: (3826..3827) " "
+ FORM: (3827..3834)
+ OPEN_PAREN: (3827..3828) "("
+ SYMBOL: (3828..3829)
+ IDENTIFIER: (3828..3829) "+"
+ ATMOSPHERE: (3829..3830) " "
+ CONSTANT: (3830..3831)
+ NUMBER: (3830..3831) "1"
+ ATMOSPHERE: (3831..3832) " "
+ CONSTANT: (3832..3833)
+ NUMBER: (3832..3833) "2"
+ CLOSE_PAREN: (3833..3834) ")"
+ CLOSE_PAREN: (3834..3835) ")"
+ CLOSE_PAREN: (3835..3836) ")"
+ ATMOSPHERE: (3836..3838) "\n\n"
+ FORM: (3838..3850)
+ OPEN_PAREN: (3838..3839) "("
+ SYMBOL: (3839..3843)
+ IDENTIFIER: (3839..3843) "test"
+ ATMOSPHERE: (3843..3844) " "
+ QUOTED_DATUM: (3844..3847)
+ QUOTE: (3844..3845) "'"
+ SYMBOL: (3845..3846)
+ IDENTIFIER: (3845..3846) "a"
+ ATMOSPHERE: (3846..3847) " "
+ QUOTED_DATUM: (3847..3849)
+ QUOTE: (3847..3848) "'"
+ SYMBOL: (3848..3849)
+ IDENTIFIER: (3848..3849) "a"
+ CLOSE_PAREN: (3849..3850) ")"
+ ATMOSPHERE: (3850..3851) "\n"
+ FORM: (3851..3876)
+ OPEN_PAREN: (3851..3852) "("
+ SYMBOL: (3852..3856)
+ IDENTIFIER: (3852..3856) "test"
+ ATMOSPHERE: (3856..3857) " "
+ VEC: (3857..3865)
+ OPEN_PAREN: (3857..3859) "#("
+ SYMBOL: (3859..3860)
+ IDENTIFIER: (3859..3860) "a"
+ ATMOSPHERE: (3860..3861) " "
+ SYMBOL: (3861..3862)
+ IDENTIFIER: (3861..3862) "b"
+ ATMOSPHERE: (3862..3863) " "
+ SYMBOL: (3863..3864)
+ IDENTIFIER: (3863..3864) "c"
+ CLOSE_PAREN: (3864..3865) ")"
+ ATMOSPHERE: (3865..3866) " "
+ QUOTED_DATUM: (3866..3875)
+ QUOTE: (3866..3867) "'"
+ VEC: (3867..3875)
+ OPEN_PAREN: (3867..3869) "#("
+ SYMBOL: (3869..3870)
+ IDENTIFIER: (3869..3870) "a"
+ ATMOSPHERE: (3870..3871) " "
+ SYMBOL: (3871..3872)
+ IDENTIFIER: (3871..3872) "b"
+ ATMOSPHERE: (3872..3873) " "
+ SYMBOL: (3873..3874)
+ IDENTIFIER: (3873..3874) "c"
+ CLOSE_PAREN: (3874..3875) ")"
+ CLOSE_PAREN: (3875..3876) ")"
+ ATMOSPHERE: (3876..3877) "\n"
+ FORM: (3877..3891)
+ OPEN_PAREN: (3877..3878) "("
+ SYMBOL: (3878..3882)
+ IDENTIFIER: (3878..3882) "test"
+ ATMOSPHERE: (3882..3883) " "
+ QUOTED_DATUM: (3883..3887)
+ QUOTE: (3883..3884) "'"
+ FORM: (3884..3886)
+ OPEN_PAREN: (3884..3885) "("
+ CLOSE_PAREN: (3885..3886) ")"
+ ATMOSPHERE: (3886..3887) " "
+ QUOTED_DATUM: (3887..3890)
+ QUOTE: (3887..3888) "'"
+ FORM: (3888..3890)
+ OPEN_PAREN: (3888..3889) "("
+ CLOSE_PAREN: (3889..3890) ")"
+ CLOSE_PAREN: (3890..3891) ")"
+ ATMOSPHERE: (3891..3892) "\n"
+ FORM: (3892..3916)
+ OPEN_PAREN: (3892..3893) "("
+ SYMBOL: (3893..3897)
+ IDENTIFIER: (3893..3897) "test"
+ ATMOSPHERE: (3897..3898) " "
+ QUOTED_DATUM: (3898..3907)
+ QUOTE: (3898..3899) "'"
+ FORM: (3899..3906)
+ OPEN_PAREN: (3899..3900) "("
+ SYMBOL: (3900..3901)
+ IDENTIFIER: (3900..3901) "+"
+ ATMOSPHERE: (3901..3902) " "
+ CONSTANT: (3902..3903)
+ NUMBER: (3902..3903) "1"
+ ATMOSPHERE: (3903..3904) " "
+ CONSTANT: (3904..3905)
+ NUMBER: (3904..3905) "2"
+ CLOSE_PAREN: (3905..3906) ")"
+ ATMOSPHERE: (3906..3907) " "
+ QUOTED_DATUM: (3907..3915)
+ QUOTE: (3907..3908) "'"
+ FORM: (3908..3915)
+ OPEN_PAREN: (3908..3909) "("
+ SYMBOL: (3909..3910)
+ IDENTIFIER: (3909..3910) "+"
+ ATMOSPHERE: (3910..3911) " "
+ CONSTANT: (3911..3912)
+ NUMBER: (3911..3912) "1"
+ ATMOSPHERE: (3912..3913) " "
+ CONSTANT: (3913..3914)
+ NUMBER: (3913..3914) "2"
+ CLOSE_PAREN: (3914..3915) ")"
+ CLOSE_PAREN: (3915..3916) ")"
+ ATMOSPHERE: (3916..3917) "\n"
+ FORM: (3917..3945)
+ OPEN_PAREN: (3917..3918) "("
+ SYMBOL: (3918..3922)
+ IDENTIFIER: (3918..3922) "test"
+ ATMOSPHERE: (3922..3923) " "
+ QUOTED_DATUM: (3923..3934)
+ QUOTE: (3923..3924) "'"
+ FORM: (3924..3933)
+ OPEN_PAREN: (3924..3925) "("
+ SYMBOL: (3925..3930)
+ IDENTIFIER: (3925..3930) "quote"
+ ATMOSPHERE: (3930..3931) " "
+ SYMBOL: (3931..3932)
+ IDENTIFIER: (3931..3932) "a"
+ CLOSE_PAREN: (3932..3933) ")"
+ ATMOSPHERE: (3933..3934) " "
+ QUOTED_DATUM: (3934..3944)
+ QUOTE: (3934..3935) "'"
+ FORM: (3935..3944)
+ OPEN_PAREN: (3935..3936) "("
+ SYMBOL: (3936..3941)
+ IDENTIFIER: (3936..3941) "quote"
+ ATMOSPHERE: (3941..3942) " "
+ SYMBOL: (3942..3943)
+ IDENTIFIER: (3942..3943) "a"
+ CLOSE_PAREN: (3943..3944) ")"
+ CLOSE_PAREN: (3944..3945) ")"
+ ATMOSPHERE: (3945..3946) "\n"
+ FORM: (3946..3967)
+ OPEN_PAREN: (3946..3947) "("
+ SYMBOL: (3947..3951)
+ IDENTIFIER: (3947..3951) "test"
+ ATMOSPHERE: (3951..3952) " "
+ QUOTED_DATUM: (3952..3963)
+ QUOTE: (3952..3953) "'"
+ FORM: (3953..3962)
+ OPEN_PAREN: (3953..3954) "("
+ SYMBOL: (3954..3959)
+ IDENTIFIER: (3954..3959) "quote"
+ ATMOSPHERE: (3959..3960) " "
+ SYMBOL: (3960..3961)
+ IDENTIFIER: (3960..3961) "a"
+ CLOSE_PAREN: (3961..3962) ")"
+ ATMOSPHERE: (3962..3963) " "
+ QUOTED_DATUM: (3963..3966)
+ QUOTE: (3963..3964) "'"
+ QUOTED_DATUM: (3964..3966)
+ QUOTE: (3964..3965) "'"
+ SYMBOL: (3965..3966)
+ IDENTIFIER: (3965..3966) "a"
+ CLOSE_PAREN: (3966..3967) ")"
+ ATMOSPHERE: (3967..3969) "\n\n"
+ FORM: (3969..3988)
+ OPEN_PAREN: (3969..3970) "("
+ SYMBOL: (3970..3974)
+ IDENTIFIER: (3970..3974) "test"
+ ATMOSPHERE: (3974..3975) " "
+ CONSTANT: (3975..3980)
+ STRING: (3975..3980) "\"abc\""
+ ATMOSPHERE: (3980..3981) " "
+ QUOTED_DATUM: (3981..3987)
+ QUOTE: (3981..3982) "'"
+ CONSTANT: (3982..3987)
+ STRING: (3982..3987) "\"abc\""
+ CLOSE_PAREN: (3987..3988) ")"
+ ATMOSPHERE: (3988..3989) "\n"
+ FORM: (3989..4007)
+ OPEN_PAREN: (3989..3990) "("
+ SYMBOL: (3990..3994)
+ IDENTIFIER: (3990..3994) "test"
+ ATMOSPHERE: (3994..3995) " "
+ CONSTANT: (3995..4000)
+ STRING: (3995..4000) "\"abc\""
+ ATMOSPHERE: (4000..4001) " "
+ CONSTANT: (4001..4006)
+ STRING: (4001..4006) "\"abc\""
+ CLOSE_PAREN: (4006..4007) ")"
+ ATMOSPHERE: (4007..4008) "\n"
+ FORM: (4008..4029)
+ OPEN_PAREN: (4008..4009) "("
+ SYMBOL: (4009..4013)
+ IDENTIFIER: (4009..4013) "test"
+ ATMOSPHERE: (4013..4014) " "
+ CONSTANT: (4014..4020)
+ NUMBER: (4014..4020) "145932"
+ ATMOSPHERE: (4020..4021) " "
+ QUOTED_DATUM: (4021..4028)
+ QUOTE: (4021..4022) "'"
+ CONSTANT: (4022..4028)
+ NUMBER: (4022..4028) "145932"
+ CLOSE_PAREN: (4028..4029) ")"
+ ATMOSPHERE: (4029..4030) "\n"
+ FORM: (4030..4050)
+ OPEN_PAREN: (4030..4031) "("
+ SYMBOL: (4031..4035)
+ IDENTIFIER: (4031..4035) "test"
+ ATMOSPHERE: (4035..4036) " "
+ CONSTANT: (4036..4042)
+ NUMBER: (4036..4042) "145932"
+ ATMOSPHERE: (4042..4043) " "
+ CONSTANT: (4043..4049)
+ NUMBER: (4043..4049) "145932"
+ CLOSE_PAREN: (4049..4050) ")"
+ ATMOSPHERE: (4050..4051) "\n"
+ FORM: (4051..4064)
+ OPEN_PAREN: (4051..4052) "("
+ SYMBOL: (4052..4056)
+ IDENTIFIER: (4052..4056) "test"
+ ATMOSPHERE: (4056..4057) " "
+ CONSTANT: (4057..4059)
+ BOOLEAN: (4057..4059) "#t"
+ ATMOSPHERE: (4059..4060) " "
+ QUOTED_DATUM: (4060..4063)
+ QUOTE: (4060..4061) "'"
+ CONSTANT: (4061..4063)
+ BOOLEAN: (4061..4063) "#t"
+ CLOSE_PAREN: (4063..4064) ")"
+ ATMOSPHERE: (4064..4065) "\n"
+ FORM: (4065..4077)
+ OPEN_PAREN: (4065..4066) "("
+ SYMBOL: (4066..4070)
+ IDENTIFIER: (4066..4070) "test"
+ ATMOSPHERE: (4070..4071) " "
+ CONSTANT: (4071..4073)
+ BOOLEAN: (4071..4073) "#t"
+ ATMOSPHERE: (4073..4074) " "
+ CONSTANT: (4074..4076)
+ BOOLEAN: (4074..4076) "#t"
+ CLOSE_PAREN: (4076..4077) ")"
+ ATMOSPHERE: (4077..4079) "\n\n"
+ FORM: (4079..4095)
+ OPEN_PAREN: (4079..4080) "("
+ SYMBOL: (4080..4084)
+ IDENTIFIER: (4080..4084) "test"
+ ATMOSPHERE: (4084..4085) " "
+ CONSTANT: (4085..4086)
+ NUMBER: (4085..4086) "7"
+ ATMOSPHERE: (4086..4087) " "
+ FORM: (4087..4094)
+ OPEN_PAREN: (4087..4088) "("
+ SYMBOL: (4088..4089)
+ IDENTIFIER: (4088..4089) "+"
+ ATMOSPHERE: (4089..4090) " "
+ CONSTANT: (4090..4091)
+ NUMBER: (4090..4091) "3"
+ ATMOSPHERE: (4091..4092) " "
+ CONSTANT: (4092..4093)
+ NUMBER: (4092..4093) "4"
+ CLOSE_PAREN: (4093..4094) ")"
+ CLOSE_PAREN: (4094..4095) ")"
+ ATMOSPHERE: (4095..4096) "\n"
+ FORM: (4096..4123)
+ OPEN_PAREN: (4096..4097) "("
+ SYMBOL: (4097..4101)
+ IDENTIFIER: (4097..4101) "test"
+ ATMOSPHERE: (4101..4102) " "
+ CONSTANT: (4102..4104)
+ NUMBER: (4102..4104) "12"
+ ATMOSPHERE: (4104..4105) " "
+ FORM: (4105..4122)
+ OPEN_PAREN: (4105..4106) "("
+ FORM: (4106..4117)
+ OPEN_PAREN: (4106..4107) "("
+ SYMBOL: (4107..4109)
+ IDENTIFIER: (4107..4109) "if"
+ ATMOSPHERE: (4109..4110) " "
+ CONSTANT: (4110..4112)
+ BOOLEAN: (4110..4112) "#f"
+ ATMOSPHERE: (4112..4113) " "
+ SYMBOL: (4113..4114)
+ IDENTIFIER: (4113..4114) "+"
+ ATMOSPHERE: (4114..4115) " "
+ SYMBOL: (4115..4116)
+ IDENTIFIER: (4115..4116) "*"
+ CLOSE_PAREN: (4116..4117) ")"
+ ATMOSPHERE: (4117..4118) " "
+ CONSTANT: (4118..4119)
+ NUMBER: (4118..4119) "3"
+ ATMOSPHERE: (4119..4120) " "
+ CONSTANT: (4120..4121)
+ NUMBER: (4120..4121) "4"
+ CLOSE_PAREN: (4121..4122) ")"
+ CLOSE_PAREN: (4122..4123) ")"
+ ATMOSPHERE: (4123..4125) "\n\n"
+ FORM: (4125..4158)
+ OPEN_PAREN: (4125..4126) "("
+ SYMBOL: (4126..4130)
+ IDENTIFIER: (4126..4130) "test"
+ ATMOSPHERE: (4130..4131) " "
+ CONSTANT: (4131..4132)
+ NUMBER: (4131..4132) "8"
+ ATMOSPHERE: (4132..4133) " "
+ FORM: (4133..4157)
+ OPEN_PAREN: (4133..4134) "("
+ FORM: (4134..4154)
+ OPEN_PAREN: (4134..4135) "("
+ SYMBOL: (4135..4141)
+ IDENTIFIER: (4135..4141) "lambda"
+ ATMOSPHERE: (4141..4142) " "
+ FORM: (4142..4145)
+ OPEN_PAREN: (4142..4143) "("
+ SYMBOL: (4143..4144)
+ IDENTIFIER: (4143..4144) "x"
+ CLOSE_PAREN: (4144..4145) ")"
+ ATMOSPHERE: (4145..4146) " "
+ FORM: (4146..4153)
+ OPEN_PAREN: (4146..4147) "("
+ SYMBOL: (4147..4148)
+ IDENTIFIER: (4147..4148) "+"
+ ATMOSPHERE: (4148..4149) " "
+ SYMBOL: (4149..4150)
+ IDENTIFIER: (4149..4150) "x"
+ ATMOSPHERE: (4150..4151) " "
+ SYMBOL: (4151..4152)
+ IDENTIFIER: (4151..4152) "x"
+ CLOSE_PAREN: (4152..4153) ")"
+ CLOSE_PAREN: (4153..4154) ")"
+ ATMOSPHERE: (4154..4155) " "
+ CONSTANT: (4155..4156)
+ NUMBER: (4155..4156) "4"
+ CLOSE_PAREN: (4156..4157) ")"
+ CLOSE_PAREN: (4157..4158) ")"
+ ATMOSPHERE: (4158..4159) "\n"
+ FORM: (4159..4209)
+ OPEN_PAREN: (4159..4160) "("
+ SYMBOL: (4160..4166)
+ IDENTIFIER: (4160..4166) "define"
+ ATMOSPHERE: (4166..4167) " "
+ SYMBOL: (4167..4183)
+ IDENTIFIER: (4167..4183) "reverse-subtract"
+ ATMOSPHERE: (4183..4186) "\n "
+ FORM: (4186..4208)
+ OPEN_PAREN: (4186..4187) "("
+ SYMBOL: (4187..4193)
+ IDENTIFIER: (4187..4193) "lambda"
+ ATMOSPHERE: (4193..4194) " "
+ FORM: (4194..4199)
+ OPEN_PAREN: (4194..4195) "("
+ SYMBOL: (4195..4196)
+ IDENTIFIER: (4195..4196) "x"
+ ATMOSPHERE: (4196..4197) " "
+ SYMBOL: (4197..4198)
+ IDENTIFIER: (4197..4198) "y"
+ CLOSE_PAREN: (4198..4199) ")"
+ ATMOSPHERE: (4199..4200) " "
+ FORM: (4200..4207)
+ OPEN_PAREN: (4200..4201) "("
+ SYMBOL: (4201..4202)
+ IDENTIFIER: (4201..4202) "-"
+ ATMOSPHERE: (4202..4203) " "
+ SYMBOL: (4203..4204)
+ IDENTIFIER: (4203..4204) "y"
+ ATMOSPHERE: (4204..4205) " "
+ SYMBOL: (4205..4206)
+ IDENTIFIER: (4205..4206) "x"
+ CLOSE_PAREN: (4206..4207) ")"
+ CLOSE_PAREN: (4207..4208) ")"
+ CLOSE_PAREN: (4208..4209) ")"
+ ATMOSPHERE: (4209..4210) "\n"
+ FORM: (4210..4242)
+ OPEN_PAREN: (4210..4211) "("
+ SYMBOL: (4211..4215)
+ IDENTIFIER: (4211..4215) "test"
+ ATMOSPHERE: (4215..4216) " "
+ CONSTANT: (4216..4217)
+ NUMBER: (4216..4217) "3"
+ ATMOSPHERE: (4217..4218) " "
+ FORM: (4218..4241)
+ OPEN_PAREN: (4218..4219) "("
+ SYMBOL: (4219..4235)
+ IDENTIFIER: (4219..4235) "reverse-subtract"
+ ATMOSPHERE: (4235..4236) " "
+ CONSTANT: (4236..4237)
+ NUMBER: (4236..4237) "7"
+ ATMOSPHERE: (4237..4238) " "
+ CONSTANT: (4238..4240)
+ NUMBER: (4238..4240) "10"
+ CLOSE_PAREN: (4240..4241) ")"
+ CLOSE_PAREN: (4241..4242) ")"
+ ATMOSPHERE: (4242..4243) "\n"
+ FORM: (4243..4297)
+ OPEN_PAREN: (4243..4244) "("
+ SYMBOL: (4244..4250)
+ IDENTIFIER: (4244..4250) "define"
+ ATMOSPHERE: (4250..4251) " "
+ SYMBOL: (4251..4255)
+ IDENTIFIER: (4251..4255) "add4"
+ ATMOSPHERE: (4255..4258) "\n "
+ FORM: (4258..4296)
+ OPEN_PAREN: (4258..4259) "("
+ SYMBOL: (4259..4262)
+ IDENTIFIER: (4259..4262) "let"
+ ATMOSPHERE: (4262..4263) " "
+ FORM: (4263..4270)
+ OPEN_PAREN: (4263..4264) "("
+ FORM: (4264..4269)
+ OPEN_PAREN: (4264..4265) "("
+ SYMBOL: (4265..4266)
+ IDENTIFIER: (4265..4266) "x"
+ ATMOSPHERE: (4266..4267) " "
+ CONSTANT: (4267..4268)
+ NUMBER: (4267..4268) "4"
+ CLOSE_PAREN: (4268..4269) ")"
+ CLOSE_PAREN: (4269..4270) ")"
+ ATMOSPHERE: (4270..4275) "\n "
+ FORM: (4275..4295)
+ OPEN_PAREN: (4275..4276) "("
+ SYMBOL: (4276..4282)
+ IDENTIFIER: (4276..4282) "lambda"
+ ATMOSPHERE: (4282..4283) " "
+ FORM: (4283..4286)
+ OPEN_PAREN: (4283..4284) "("
+ SYMBOL: (4284..4285)
+ IDENTIFIER: (4284..4285) "y"
+ CLOSE_PAREN: (4285..4286) ")"
+ ATMOSPHERE: (4286..4287) " "
+ FORM: (4287..4294)
+ OPEN_PAREN: (4287..4288) "("
+ SYMBOL: (4288..4289)
+ IDENTIFIER: (4288..4289) "+"
+ ATMOSPHERE: (4289..4290) " "
+ SYMBOL: (4290..4291)
+ IDENTIFIER: (4290..4291) "x"
+ ATMOSPHERE: (4291..4292) " "
+ SYMBOL: (4292..4293)
+ IDENTIFIER: (4292..4293) "y"
+ CLOSE_PAREN: (4293..4294) ")"
+ CLOSE_PAREN: (4294..4295) ")"
+ CLOSE_PAREN: (4295..4296) ")"
+ CLOSE_PAREN: (4296..4297) ")"
+ ATMOSPHERE: (4297..4298) "\n"
+ FORM: (4298..4316)
+ OPEN_PAREN: (4298..4299) "("
+ SYMBOL: (4299..4303)
+ IDENTIFIER: (4299..4303) "test"
+ ATMOSPHERE: (4303..4304) " "
+ CONSTANT: (4304..4306)
+ NUMBER: (4304..4306) "10"
+ ATMOSPHERE: (4306..4307) " "
+ FORM: (4307..4315)
+ OPEN_PAREN: (4307..4308) "("
+ SYMBOL: (4308..4312)
+ IDENTIFIER: (4308..4312) "add4"
+ ATMOSPHERE: (4312..4313) " "
+ CONSTANT: (4313..4314)
+ NUMBER: (4313..4314) "6"
+ CLOSE_PAREN: (4314..4315) ")"
+ CLOSE_PAREN: (4315..4316) ")"
+ ATMOSPHERE: (4316..4318) "\n\n"
+ FORM: (4318..4358)
+ OPEN_PAREN: (4318..4319) "("
+ SYMBOL: (4319..4323)
+ IDENTIFIER: (4319..4323) "test"
+ ATMOSPHERE: (4323..4324) " "
+ QUOTED_DATUM: (4324..4335)
+ QUOTE: (4324..4325) "'"
+ FORM: (4325..4334)
+ OPEN_PAREN: (4325..4326) "("
+ CONSTANT: (4326..4327)
+ NUMBER: (4326..4327) "3"
+ ATMOSPHERE: (4327..4328) " "
+ CONSTANT: (4328..4329)
+ NUMBER: (4328..4329) "4"
+ ATMOSPHERE: (4329..4330) " "
+ CONSTANT: (4330..4331)
+ NUMBER: (4330..4331) "5"
+ ATMOSPHERE: (4331..4332) " "
+ CONSTANT: (4332..4333)
+ NUMBER: (4332..4333) "6"
+ CLOSE_PAREN: (4333..4334) ")"
+ ATMOSPHERE: (4334..4335) " "
+ FORM: (4335..4357)
+ OPEN_PAREN: (4335..4336) "("
+ FORM: (4336..4348)
+ OPEN_PAREN: (4336..4337) "("
+ SYMBOL: (4337..4343)
+ IDENTIFIER: (4337..4343) "lambda"
+ ATMOSPHERE: (4343..4344) " "
+ SYMBOL: (4344..4345)
+ IDENTIFIER: (4344..4345) "x"
+ ATMOSPHERE: (4345..4346) " "
+ SYMBOL: (4346..4347)
+ IDENTIFIER: (4346..4347) "x"
+ CLOSE_PAREN: (4347..4348) ")"
+ ATMOSPHERE: (4348..4349) " "
+ CONSTANT: (4349..4350)
+ NUMBER: (4349..4350) "3"
+ ATMOSPHERE: (4350..4351) " "
+ CONSTANT: (4351..4352)
+ NUMBER: (4351..4352) "4"
+ ATMOSPHERE: (4352..4353) " "
+ CONSTANT: (4353..4354)
+ NUMBER: (4353..4354) "5"
+ ATMOSPHERE: (4354..4355) " "
+ CONSTANT: (4355..4356)
+ NUMBER: (4355..4356) "6"
+ CLOSE_PAREN: (4356..4357) ")"
+ CLOSE_PAREN: (4357..4358) ")"
+ ATMOSPHERE: (4358..4359) "\n"
+ FORM: (4359..4404)
+ OPEN_PAREN: (4359..4360) "("
+ SYMBOL: (4360..4364)
+ IDENTIFIER: (4360..4364) "test"
+ ATMOSPHERE: (4364..4365) " "
+ QUOTED_DATUM: (4365..4372)
+ QUOTE: (4365..4366) "'"
+ FORM: (4366..4371)
+ OPEN_PAREN: (4366..4367) "("
+ CONSTANT: (4367..4368)
+ NUMBER: (4367..4368) "5"
+ ATMOSPHERE: (4368..4369) " "
+ CONSTANT: (4369..4370)
+ NUMBER: (4369..4370) "6"
+ CLOSE_PAREN: (4370..4371) ")"
+ ATMOSPHERE: (4371..4372) " "
+ FORM: (4372..4403)
+ OPEN_PAREN: (4372..4373) "("
+ FORM: (4373..4393)
+ OPEN_PAREN: (4373..4374) "("
+ SYMBOL: (4374..4380)
+ IDENTIFIER: (4374..4380) "lambda"
+ ATMOSPHERE: (4380..4381) " "
+ FORM: (4381..4390)
+ OPEN_PAREN: (4381..4382) "("
+ SYMBOL: (4382..4383)
+ IDENTIFIER: (4382..4383) "x"
+ ATMOSPHERE: (4383..4384) " "
+ SYMBOL: (4384..4385)
+ IDENTIFIER: (4384..4385) "y"
+ ATMOSPHERE: (4385..4386) " "
+ DOTTED_TAIL: (4386..4389)
+ DOT: (4386..4387) "."
+ ATMOSPHERE: (4387..4388) " "
+ SYMBOL: (4388..4389)
+ IDENTIFIER: (4388..4389) "z"
+ CLOSE_PAREN: (4389..4390) ")"
+ ATMOSPHERE: (4390..4391) " "
+ SYMBOL: (4391..4392)
+ IDENTIFIER: (4391..4392) "z"
+ CLOSE_PAREN: (4392..4393) ")"
+ ATMOSPHERE: (4393..4395) "\n "
+ CONSTANT: (4395..4396)
+ NUMBER: (4395..4396) "3"
+ ATMOSPHERE: (4396..4397) " "
+ CONSTANT: (4397..4398)
+ NUMBER: (4397..4398) "4"
+ ATMOSPHERE: (4398..4399) " "
+ CONSTANT: (4399..4400)
+ NUMBER: (4399..4400) "5"
+ ATMOSPHERE: (4400..4401) " "
+ CONSTANT: (4401..4402)
+ NUMBER: (4401..4402) "6"
+ CLOSE_PAREN: (4402..4403) ")"
+ CLOSE_PAREN: (4403..4404) ")"
+ ATMOSPHERE: (4404..4406) "\n\n"
+ FORM: (4406..4439)
+ OPEN_PAREN: (4406..4407) "("
+ SYMBOL: (4407..4411)
+ IDENTIFIER: (4407..4411) "test"
+ ATMOSPHERE: (4411..4412) " "
+ QUOTED_DATUM: (4412..4417)
+ QUOTE: (4412..4413) "'"
+ SYMBOL: (4413..4416)
+ IDENTIFIER: (4413..4416) "yes"
+ ATMOSPHERE: (4416..4417) " "
+ FORM: (4417..4438)
+ OPEN_PAREN: (4417..4418) "("
+ SYMBOL: (4418..4420)
+ IDENTIFIER: (4418..4420) "if"
+ ATMOSPHERE: (4420..4421) " "
+ FORM: (4421..4428)
+ OPEN_PAREN: (4421..4422) "("
+ SYMBOL: (4422..4423)
+ IDENTIFIER: (4422..4423) ">"
+ ATMOSPHERE: (4423..4424) " "
+ CONSTANT: (4424..4425)
+ NUMBER: (4424..4425) "3"
+ ATMOSPHERE: (4425..4426) " "
+ CONSTANT: (4426..4427)
+ NUMBER: (4426..4427) "2"
+ CLOSE_PAREN: (4427..4428) ")"
+ ATMOSPHERE: (4428..4429) " "
+ QUOTED_DATUM: (4429..4434)
+ QUOTE: (4429..4430) "'"
+ SYMBOL: (4430..4433)
+ IDENTIFIER: (4430..4433) "yes"
+ ATMOSPHERE: (4433..4434) " "
+ QUOTED_DATUM: (4434..4437)
+ QUOTE: (4434..4435) "'"
+ SYMBOL: (4435..4437)
+ IDENTIFIER: (4435..4437) "no"
+ CLOSE_PAREN: (4437..4438) ")"
+ CLOSE_PAREN: (4438..4439) ")"
+ ATMOSPHERE: (4439..4440) "\n"
+ FORM: (4440..4472)
+ OPEN_PAREN: (4440..4441) "("
+ SYMBOL: (4441..4445)
+ IDENTIFIER: (4441..4445) "test"
+ ATMOSPHERE: (4445..4446) " "
+ QUOTED_DATUM: (4446..4450)
+ QUOTE: (4446..4447) "'"
+ SYMBOL: (4447..4449)
+ IDENTIFIER: (4447..4449) "no"
+ ATMOSPHERE: (4449..4450) " "
+ FORM: (4450..4471)
+ OPEN_PAREN: (4450..4451) "("
+ SYMBOL: (4451..4453)
+ IDENTIFIER: (4451..4453) "if"
+ ATMOSPHERE: (4453..4454) " "
+ FORM: (4454..4461)
+ OPEN_PAREN: (4454..4455) "("
+ SYMBOL: (4455..4456)
+ IDENTIFIER: (4455..4456) ">"
+ ATMOSPHERE: (4456..4457) " "
+ CONSTANT: (4457..4458)
+ NUMBER: (4457..4458) "2"
+ ATMOSPHERE: (4458..4459) " "
+ CONSTANT: (4459..4460)
+ NUMBER: (4459..4460) "3"
+ CLOSE_PAREN: (4460..4461) ")"
+ ATMOSPHERE: (4461..4462) " "
+ QUOTED_DATUM: (4462..4467)
+ QUOTE: (4462..4463) "'"
+ SYMBOL: (4463..4466)
+ IDENTIFIER: (4463..4466) "yes"
+ ATMOSPHERE: (4466..4467) " "
+ QUOTED_DATUM: (4467..4470)
+ QUOTE: (4467..4468) "'"
+ SYMBOL: (4468..4470)
+ IDENTIFIER: (4468..4470) "no"
+ CLOSE_PAREN: (4470..4471) ")"
+ CLOSE_PAREN: (4471..4472) ")"
+ ATMOSPHERE: (4472..4473) "\n"
+ FORM: (4473..4518)
+ OPEN_PAREN: (4473..4474) "("
+ SYMBOL: (4474..4478)
+ IDENTIFIER: (4474..4478) "test"
+ ATMOSPHERE: (4478..4479) " "
+ CONSTANT: (4479..4480)
+ NUMBER: (4479..4480) "1"
+ ATMOSPHERE: (4480..4481) " "
+ FORM: (4481..4517)
+ OPEN_PAREN: (4481..4482) "("
+ SYMBOL: (4482..4484)
+ IDENTIFIER: (4482..4484) "if"
+ ATMOSPHERE: (4484..4485) " "
+ FORM: (4485..4492)
+ OPEN_PAREN: (4485..4486) "("
+ SYMBOL: (4486..4487)
+ IDENTIFIER: (4486..4487) ">"
+ ATMOSPHERE: (4487..4488) " "
+ CONSTANT: (4488..4489)
+ NUMBER: (4488..4489) "3"
+ ATMOSPHERE: (4489..4490) " "
+ CONSTANT: (4490..4491)
+ NUMBER: (4490..4491) "2"
+ CLOSE_PAREN: (4491..4492) ")"
+ ATMOSPHERE: (4492..4497) "\n "
+ FORM: (4497..4504)
+ OPEN_PAREN: (4497..4498) "("
+ SYMBOL: (4498..4499)
+ IDENTIFIER: (4498..4499) "-"
+ ATMOSPHERE: (4499..4500) " "
+ CONSTANT: (4500..4501)
+ NUMBER: (4500..4501) "3"
+ ATMOSPHERE: (4501..4502) " "
+ CONSTANT: (4502..4503)
+ NUMBER: (4502..4503) "2"
+ CLOSE_PAREN: (4503..4504) ")"
+ ATMOSPHERE: (4504..4509) "\n "
+ FORM: (4509..4516)
+ OPEN_PAREN: (4509..4510) "("
+ SYMBOL: (4510..4511)
+ IDENTIFIER: (4510..4511) "+"
+ ATMOSPHERE: (4511..4512) " "
+ CONSTANT: (4512..4513)
+ NUMBER: (4512..4513) "3"
+ ATMOSPHERE: (4513..4514) " "
+ CONSTANT: (4514..4515)
+ NUMBER: (4514..4515) "2"
+ CLOSE_PAREN: (4515..4516) ")"
+ CLOSE_PAREN: (4516..4517) ")"
+ CLOSE_PAREN: (4517..4518) ")"
+ ATMOSPHERE: (4518..4519) "\n"
+ FORM: (4519..4561)
+ OPEN_PAREN: (4519..4520) "("
+ SYMBOL: (4520..4523)
+ IDENTIFIER: (4520..4523) "let"
+ ATMOSPHERE: (4523..4524) " "
+ FORM: (4524..4526)
+ OPEN_PAREN: (4524..4525) "("
+ CLOSE_PAREN: (4525..4526) ")"
+ ATMOSPHERE: (4526..4529) "\n "
+ FORM: (4529..4541)
+ OPEN_PAREN: (4529..4530) "("
+ SYMBOL: (4530..4536)
+ IDENTIFIER: (4530..4536) "define"
+ ATMOSPHERE: (4536..4537) " "
+ SYMBOL: (4537..4538)
+ IDENTIFIER: (4537..4538) "x"
+ ATMOSPHERE: (4538..4539) " "
+ CONSTANT: (4539..4540)
+ NUMBER: (4539..4540) "2"
+ CLOSE_PAREN: (4540..4541) ")"
+ ATMOSPHERE: (4541..4544) "\n "
+ FORM: (4544..4560)
+ OPEN_PAREN: (4544..4545) "("
+ SYMBOL: (4545..4549)
+ IDENTIFIER: (4545..4549) "test"
+ ATMOSPHERE: (4549..4550) " "
+ CONSTANT: (4550..4551)
+ NUMBER: (4550..4551) "3"
+ ATMOSPHERE: (4551..4552) " "
+ FORM: (4552..4559)
+ OPEN_PAREN: (4552..4553) "("
+ SYMBOL: (4553..4554)
+ IDENTIFIER: (4553..4554) "+"
+ ATMOSPHERE: (4554..4555) " "
+ SYMBOL: (4555..4556)
+ IDENTIFIER: (4555..4556) "x"
+ ATMOSPHERE: (4556..4557) " "
+ CONSTANT: (4557..4558)
+ NUMBER: (4557..4558) "1"
+ CLOSE_PAREN: (4558..4559) ")"
+ CLOSE_PAREN: (4559..4560) ")"
+ CLOSE_PAREN: (4560..4561) ")"
+ ATMOSPHERE: (4561..4563) "\n\n"
+ FORM: (4563..4573)
+ OPEN_PAREN: (4563..4564) "("
+ SYMBOL: (4564..4572)
+ IDENTIFIER: (4564..4572) "test-end"
+ CLOSE_PAREN: (4572..4573) ")"
+ ATMOSPHERE: (4573..4575) "\n\n"
+ FORM: (4575..4618)
+ OPEN_PAREN: (4575..4576) "("
+ SYMBOL: (4576..4586)
+ IDENTIFIER: (4576..4586) "test-begin"
+ ATMOSPHERE: (4586..4587) " "
+ CONSTANT: (4587..4617)
+ STRING: (4587..4617) "\"4.2 Derived expression types\""
+ CLOSE_PAREN: (4617..4618) ")"
+ ATMOSPHERE: (4618..4620) "\n\n"
+ ATMOSPHERE: (4620..4664) ";;;;; FIXME: No `cond` or `case` support yet"
+ ATMOSPHERE: (4664..4665) "\n"
+ FORM: (4665..4736)
+ OPEN_PAREN: (4665..4666) "("
+ SYMBOL: (4666..4670)
+ IDENTIFIER: (4666..4670) "test"
+ ATMOSPHERE: (4670..4671) " "
+ QUOTED_DATUM: (4671..4684)
+ QUOTE: (4671..4672) "'"
+ SYMBOL: (4672..4679)
+ IDENTIFIER: (4672..4679) "greater"
+ ATMOSPHERE: (4679..4684) "\n "
+ FORM: (4684..4735)
+ OPEN_PAREN: (4684..4685) "("
+ SYMBOL: (4685..4689)
+ IDENTIFIER: (4685..4689) "cond"
+ ATMOSPHERE: (4689..4690) " "
+ FORM: (4690..4708)
+ OPEN_PAREN: (4690..4691) "("
+ FORM: (4691..4698)
+ OPEN_PAREN: (4691..4692) "("
+ SYMBOL: (4692..4693)
+ IDENTIFIER: (4692..4693) ">"
+ ATMOSPHERE: (4693..4694) " "
+ CONSTANT: (4694..4695)
+ NUMBER: (4694..4695) "3"
+ ATMOSPHERE: (4695..4696) " "
+ CONSTANT: (4696..4697)
+ NUMBER: (4696..4697) "2"
+ CLOSE_PAREN: (4697..4698) ")"
+ ATMOSPHERE: (4698..4699) " "
+ QUOTED_DATUM: (4699..4707)
+ QUOTE: (4699..4700) "'"
+ SYMBOL: (4700..4707)
+ IDENTIFIER: (4700..4707) "greater"
+ CLOSE_PAREN: (4707..4708) ")"
+ ATMOSPHERE: (4708..4719) "\n "
+ FORM: (4719..4734)
+ OPEN_PAREN: (4719..4720) "("
+ FORM: (4720..4727)
+ OPEN_PAREN: (4720..4721) "("
+ SYMBOL: (4721..4722)
+ IDENTIFIER: (4721..4722) "<"
+ ATMOSPHERE: (4722..4723) " "
+ CONSTANT: (4723..4724)
+ NUMBER: (4723..4724) "3"
+ ATMOSPHERE: (4724..4725) " "
+ CONSTANT: (4725..4726)
+ NUMBER: (4725..4726) "2"
+ CLOSE_PAREN: (4726..4727) ")"
+ ATMOSPHERE: (4727..4728) " "
+ QUOTED_DATUM: (4728..4733)
+ QUOTE: (4728..4729) "'"
+ SYMBOL: (4729..4733)
+ IDENTIFIER: (4729..4733) "less"
+ CLOSE_PAREN: (4733..4734) ")"
+ CLOSE_PAREN: (4734..4735) ")"
+ CLOSE_PAREN: (4735..4736) ")"
+ ATMOSPHERE: (4736..4738) "\n\n"
+ FORM: (4738..4831)
+ OPEN_PAREN: (4738..4739) "("
+ SYMBOL: (4739..4743)
+ IDENTIFIER: (4739..4743) "test"
+ ATMOSPHERE: (4743..4744) " "
+ QUOTED_DATUM: (4744..4755)
+ QUOTE: (4744..4745) "'"
+ SYMBOL: (4745..4750)
+ IDENTIFIER: (4745..4750) "equal"
+ ATMOSPHERE: (4750..4755) "\n "
+ FORM: (4755..4830)
+ OPEN_PAREN: (4755..4756) "("
+ SYMBOL: (4756..4760)
+ IDENTIFIER: (4756..4760) "cond"
+ ATMOSPHERE: (4760..4761) " "
+ FORM: (4761..4779)
+ OPEN_PAREN: (4761..4762) "("
+ FORM: (4762..4769)
+ OPEN_PAREN: (4762..4763) "("
+ SYMBOL: (4763..4764)
+ IDENTIFIER: (4763..4764) ">"
+ ATMOSPHERE: (4764..4765) " "
+ CONSTANT: (4765..4766)
+ NUMBER: (4765..4766) "3"
+ ATMOSPHERE: (4766..4767) " "
+ CONSTANT: (4767..4768)
+ NUMBER: (4767..4768) "3"
+ CLOSE_PAREN: (4768..4769) ")"
+ ATMOSPHERE: (4769..4770) " "
+ QUOTED_DATUM: (4770..4778)
+ QUOTE: (4770..4771) "'"
+ SYMBOL: (4771..4778)
+ IDENTIFIER: (4771..4778) "greater"
+ CLOSE_PAREN: (4778..4779) ")"
+ ATMOSPHERE: (4779..4790) "\n "
+ FORM: (4790..4805)
+ OPEN_PAREN: (4790..4791) "("
+ FORM: (4791..4798)
+ OPEN_PAREN: (4791..4792) "("
+ SYMBOL: (4792..4793)
+ IDENTIFIER: (4792..4793) "<"
+ ATMOSPHERE: (4793..4794) " "
+ CONSTANT: (4794..4795)
+ NUMBER: (4794..4795) "3"
+ ATMOSPHERE: (4795..4796) " "
+ CONSTANT: (4796..4797)
+ NUMBER: (4796..4797) "3"
+ CLOSE_PAREN: (4797..4798) ")"
+ ATMOSPHERE: (4798..4799) " "
+ QUOTED_DATUM: (4799..4804)
+ QUOTE: (4799..4800) "'"
+ SYMBOL: (4800..4804)
+ IDENTIFIER: (4800..4804) "less"
+ CLOSE_PAREN: (4804..4805) ")"
+ ATMOSPHERE: (4805..4816) "\n "
+ FORM: (4816..4829)
+ OPEN_PAREN: (4816..4817) "("
+ SYMBOL: (4817..4821)
+ IDENTIFIER: (4817..4821) "else"
+ ATMOSPHERE: (4821..4822) " "
+ QUOTED_DATUM: (4822..4828)
+ QUOTE: (4822..4823) "'"
+ SYMBOL: (4823..4828)
+ IDENTIFIER: (4823..4828) "equal"
+ CLOSE_PAREN: (4828..4829) ")"
+ CLOSE_PAREN: (4829..4830) ")"
+ CLOSE_PAREN: (4830..4831) ")"
+ ATMOSPHERE: (4831..4833) "\n\n"
+ ATMOSPHERE: (4833..4843) ";; (test 2"
+ ATMOSPHERE: (4843..4844) "\n"
+ ATMOSPHERE: (4844..4891) ";; (cond ((assv 'b '((a 1) (b 2))) => cadr)"
+ ATMOSPHERE: (4891..4892) "\n"
+ ATMOSPHERE: (4892..4916) ";; (else #f)))"
+ ATMOSPHERE: (4916..4918) "\n\n"
+ ATMOSPHERE: (4918..4937) ";; (test 'composite"
+ ATMOSPHERE: (4937..4938) "\n"
+ ATMOSPHERE: (4938..4958) ";; (case (* 2 3)"
+ ATMOSPHERE: (4958..4959) "\n"
+ ATMOSPHERE: (4959..4986) ";; ((2 3 5 7) 'prime)"
+ ATMOSPHERE: (4986..4987) "\n"
+ ATMOSPHERE: (4987..5022) ";; ((1 4 6 8 9) 'composite)))"
+ ATMOSPHERE: (5022..5024) "\n\n"
+ ATMOSPHERE: (5024..5035) ";; (test 'c"
+ ATMOSPHERE: (5035..5036) "\n"
+ ATMOSPHERE: (5036..5061) ";; (case (car '(c d))"
+ ATMOSPHERE: (5061..5062) "\n"
+ ATMOSPHERE: (5062..5091) ";; ((a e i o u) 'vowel)"
+ ATMOSPHERE: (5091..5092) "\n"
+ ATMOSPHERE: (5092..5119) ";; ((w y) 'semivowel)"
+ ATMOSPHERE: (5119..5120) "\n"
+ ATMOSPHERE: (5120..5155) ";; (else => (lambda (x) x))))"
+ ATMOSPHERE: (5155..5157) "\n\n"
+ ATMOSPHERE: (5157..5207) ";; (test '((other . z) (semivowel . y) (other . x)"
+ ATMOSPHERE: (5207..5208) "\n"
+ ATMOSPHERE: (5208..5247) ";; (semivowel . w) (vowel . u))"
+ ATMOSPHERE: (5247..5248) "\n"
+ ATMOSPHERE: (5248..5271) ";; (map (lambda (x)"
+ ATMOSPHERE: (5271..5272) "\n"
+ ATMOSPHERE: (5272..5293) ";; (case x"
+ ATMOSPHERE: (5293..5294) "\n"
+ ATMOSPHERE: (5294..5355) ";; ((a e i o u) => (lambda (w) (cons 'vowel w)))"
+ ATMOSPHERE: (5355..5356) "\n"
+ ATMOSPHERE: (5356..5399) ";; ((w y) (cons 'semivowel x))"
+ ATMOSPHERE: (5399..5400) "\n"
+ ATMOSPHERE: (5400..5456) ";; (else => (lambda (w) (cons 'other w)))))"
+ ATMOSPHERE: (5456..5457) "\n"
+ ATMOSPHERE: (5457..5483) ";; '(z y x w u)))"
+ ATMOSPHERE: (5483..5485) "\n\n"
+ FORM: (5485..5516)
+ OPEN_PAREN: (5485..5486) "("
+ SYMBOL: (5486..5490)
+ IDENTIFIER: (5486..5490) "test"
+ ATMOSPHERE: (5490..5491) " "
+ CONSTANT: (5491..5493)
+ BOOLEAN: (5491..5493) "#t"
+ ATMOSPHERE: (5493..5494) " "
+ FORM: (5494..5515)
+ OPEN_PAREN: (5494..5495) "("
+ SYMBOL: (5495..5498)
+ IDENTIFIER: (5495..5498) "and"
+ ATMOSPHERE: (5498..5499) " "
+ FORM: (5499..5506)
+ OPEN_PAREN: (5499..5500) "("
+ SYMBOL: (5500..5501)
+ IDENTIFIER: (5500..5501) "="
+ ATMOSPHERE: (5501..5502) " "
+ CONSTANT: (5502..5503)
+ NUMBER: (5502..5503) "2"
+ ATMOSPHERE: (5503..5504) " "
+ CONSTANT: (5504..5505)
+ NUMBER: (5504..5505) "2"
+ CLOSE_PAREN: (5505..5506) ")"
+ ATMOSPHERE: (5506..5507) " "
+ FORM: (5507..5514)
+ OPEN_PAREN: (5507..5508) "("
+ SYMBOL: (5508..5509)
+ IDENTIFIER: (5508..5509) ">"
+ ATMOSPHERE: (5509..5510) " "
+ CONSTANT: (5510..5511)
+ NUMBER: (5510..5511) "2"
+ ATMOSPHERE: (5511..5512) " "
+ CONSTANT: (5512..5513)
+ NUMBER: (5512..5513) "1"
+ CLOSE_PAREN: (5513..5514) ")"
+ CLOSE_PAREN: (5514..5515) ")"
+ CLOSE_PAREN: (5515..5516) ")"
+ ATMOSPHERE: (5516..5517) "\n"
+ FORM: (5517..5548)
+ OPEN_PAREN: (5517..5518) "("
+ SYMBOL: (5518..5522)
+ IDENTIFIER: (5518..5522) "test"
+ ATMOSPHERE: (5522..5523) " "
+ CONSTANT: (5523..5525)
+ BOOLEAN: (5523..5525) "#f"
+ ATMOSPHERE: (5525..5526) " "
+ FORM: (5526..5547)
+ OPEN_PAREN: (5526..5527) "("
+ SYMBOL: (5527..5530)
+ IDENTIFIER: (5527..5530) "and"
+ ATMOSPHERE: (5530..5531) " "
+ FORM: (5531..5538)
+ OPEN_PAREN: (5531..5532) "("
+ SYMBOL: (5532..5533)
+ IDENTIFIER: (5532..5533) "="
+ ATMOSPHERE: (5533..5534) " "
+ CONSTANT: (5534..5535)
+ NUMBER: (5534..5535) "2"
+ ATMOSPHERE: (5535..5536) " "
+ CONSTANT: (5536..5537)
+ NUMBER: (5536..5537) "2"
+ CLOSE_PAREN: (5537..5538) ")"
+ ATMOSPHERE: (5538..5539) " "
+ FORM: (5539..5546)
+ OPEN_PAREN: (5539..5540) "("
+ SYMBOL: (5540..5541)
+ IDENTIFIER: (5540..5541) "<"
+ ATMOSPHERE: (5541..5542) " "
+ CONSTANT: (5542..5543)
+ NUMBER: (5542..5543) "2"
+ ATMOSPHERE: (5543..5544) " "
+ CONSTANT: (5544..5545)
+ NUMBER: (5544..5545) "1"
+ CLOSE_PAREN: (5545..5546) ")"
+ CLOSE_PAREN: (5546..5547) ")"
+ CLOSE_PAREN: (5547..5548) ")"
+ ATMOSPHERE: (5548..5549) "\n"
+ FORM: (5549..5582)
+ OPEN_PAREN: (5549..5550) "("
+ SYMBOL: (5550..5554)
+ IDENTIFIER: (5550..5554) "test"
+ ATMOSPHERE: (5554..5555) " "
+ QUOTED_DATUM: (5555..5562)
+ QUOTE: (5555..5556) "'"
+ FORM: (5556..5561)
+ OPEN_PAREN: (5556..5557) "("
+ SYMBOL: (5557..5558)
+ IDENTIFIER: (5557..5558) "f"
+ ATMOSPHERE: (5558..5559) " "
+ SYMBOL: (5559..5560)
+ IDENTIFIER: (5559..5560) "g"
+ CLOSE_PAREN: (5560..5561) ")"
+ ATMOSPHERE: (5561..5562) " "
+ FORM: (5562..5581)
+ OPEN_PAREN: (5562..5563) "("
+ SYMBOL: (5563..5566)
+ IDENTIFIER: (5563..5566) "and"
+ ATMOSPHERE: (5566..5567) " "
+ CONSTANT: (5567..5568)
+ NUMBER: (5567..5568) "1"
+ ATMOSPHERE: (5568..5569) " "
+ CONSTANT: (5569..5570)
+ NUMBER: (5569..5570) "2"
+ ATMOSPHERE: (5570..5571) " "
+ QUOTED_DATUM: (5571..5574)
+ QUOTE: (5571..5572) "'"
+ SYMBOL: (5572..5573)
+ IDENTIFIER: (5572..5573) "c"
+ ATMOSPHERE: (5573..5574) " "
+ QUOTED_DATUM: (5574..5580)
+ QUOTE: (5574..5575) "'"
+ FORM: (5575..5580)
+ OPEN_PAREN: (5575..5576) "("
+ SYMBOL: (5576..5577)
+ IDENTIFIER: (5576..5577) "f"
+ ATMOSPHERE: (5577..5578) " "
+ SYMBOL: (5578..5579)
+ IDENTIFIER: (5578..5579) "g"
+ CLOSE_PAREN: (5579..5580) ")"
+ CLOSE_PAREN: (5580..5581) ")"
+ CLOSE_PAREN: (5581..5582) ")"
+ ATMOSPHERE: (5582..5583) "\n"
+ FORM: (5583..5598)
+ OPEN_PAREN: (5583..5584) "("
+ SYMBOL: (5584..5588)
+ IDENTIFIER: (5584..5588) "test"
+ ATMOSPHERE: (5588..5589) " "
+ CONSTANT: (5589..5591)
+ BOOLEAN: (5589..5591) "#t"
+ ATMOSPHERE: (5591..5592) " "
+ FORM: (5592..5597)
+ OPEN_PAREN: (5592..5593) "("
+ SYMBOL: (5593..5596)
+ IDENTIFIER: (5593..5596) "and"
+ CLOSE_PAREN: (5596..5597) ")"
+ CLOSE_PAREN: (5597..5598) ")"
+ ATMOSPHERE: (5598..5600) "\n\n"
+ FORM: (5600..5630)
+ OPEN_PAREN: (5600..5601) "("
+ SYMBOL: (5601..5605)
+ IDENTIFIER: (5601..5605) "test"
+ ATMOSPHERE: (5605..5606) " "
+ CONSTANT: (5606..5608)
+ BOOLEAN: (5606..5608) "#t"
+ ATMOSPHERE: (5608..5609) " "
+ FORM: (5609..5629)
+ OPEN_PAREN: (5609..5610) "("
+ SYMBOL: (5610..5612)
+ IDENTIFIER: (5610..5612) "or"
+ ATMOSPHERE: (5612..5613) " "
+ FORM: (5613..5620)
+ OPEN_PAREN: (5613..5614) "("
+ SYMBOL: (5614..5615)
+ IDENTIFIER: (5614..5615) "="
+ ATMOSPHERE: (5615..5616) " "
+ CONSTANT: (5616..5617)
+ NUMBER: (5616..5617) "2"
+ ATMOSPHERE: (5617..5618) " "
+ CONSTANT: (5618..5619)
+ NUMBER: (5618..5619) "2"
+ CLOSE_PAREN: (5619..5620) ")"
+ ATMOSPHERE: (5620..5621) " "
+ FORM: (5621..5628)
+ OPEN_PAREN: (5621..5622) "("
+ SYMBOL: (5622..5623)
+ IDENTIFIER: (5622..5623) ">"
+ ATMOSPHERE: (5623..5624) " "
+ CONSTANT: (5624..5625)
+ NUMBER: (5624..5625) "2"
+ ATMOSPHERE: (5625..5626) " "
+ CONSTANT: (5626..5627)
+ NUMBER: (5626..5627) "1"
+ CLOSE_PAREN: (5627..5628) ")"
+ CLOSE_PAREN: (5628..5629) ")"
+ CLOSE_PAREN: (5629..5630) ")"
+ ATMOSPHERE: (5630..5631) "\n"
+ FORM: (5631..5661)
+ OPEN_PAREN: (5631..5632) "("
+ SYMBOL: (5632..5636)
+ IDENTIFIER: (5632..5636) "test"
+ ATMOSPHERE: (5636..5637) " "
+ CONSTANT: (5637..5639)
+ BOOLEAN: (5637..5639) "#t"
+ ATMOSPHERE: (5639..5640) " "
+ FORM: (5640..5660)
+ OPEN_PAREN: (5640..5641) "("
+ SYMBOL: (5641..5643)
+ IDENTIFIER: (5641..5643) "or"
+ ATMOSPHERE: (5643..5644) " "
+ FORM: (5644..5651)
+ OPEN_PAREN: (5644..5645) "("
+ SYMBOL: (5645..5646)
+ IDENTIFIER: (5645..5646) "="
+ ATMOSPHERE: (5646..5647) " "
+ CONSTANT: (5647..5648)
+ NUMBER: (5647..5648) "2"
+ ATMOSPHERE: (5648..5649) " "
+ CONSTANT: (5649..5650)
+ NUMBER: (5649..5650) "2"
+ CLOSE_PAREN: (5650..5651) ")"
+ ATMOSPHERE: (5651..5652) " "
+ FORM: (5652..5659)
+ OPEN_PAREN: (5652..5653) "("
+ SYMBOL: (5653..5654)
+ IDENTIFIER: (5653..5654) "<"
+ ATMOSPHERE: (5654..5655) " "
+ CONSTANT: (5655..5656)
+ NUMBER: (5655..5656) "2"
+ ATMOSPHERE: (5656..5657) " "
+ CONSTANT: (5657..5658)
+ NUMBER: (5657..5658) "1"
+ CLOSE_PAREN: (5658..5659) ")"
+ CLOSE_PAREN: (5659..5660) ")"
+ CLOSE_PAREN: (5660..5661) ")"
+ ATMOSPHERE: (5661..5662) "\n"
+ FORM: (5662..5685)
+ OPEN_PAREN: (5662..5663) "("
+ SYMBOL: (5663..5667)
+ IDENTIFIER: (5663..5667) "test"
+ ATMOSPHERE: (5667..5668) " "
+ CONSTANT: (5668..5670)
+ BOOLEAN: (5668..5670) "#f"
+ ATMOSPHERE: (5670..5671) " "
+ FORM: (5671..5684)
+ OPEN_PAREN: (5671..5672) "("
+ SYMBOL: (5672..5674)
+ IDENTIFIER: (5672..5674) "or"
+ ATMOSPHERE: (5674..5675) " "
+ CONSTANT: (5675..5677)
+ BOOLEAN: (5675..5677) "#f"
+ ATMOSPHERE: (5677..5678) " "
+ CONSTANT: (5678..5680)
+ BOOLEAN: (5678..5680) "#f"
+ ATMOSPHERE: (5680..5681) " "
+ CONSTANT: (5681..5683)
+ BOOLEAN: (5681..5683) "#f"
+ CLOSE_PAREN: (5683..5684) ")"
+ CLOSE_PAREN: (5684..5685) ")"
+ ATMOSPHERE: (5685..5686) "\n"
+ FORM: (5686..5759)
+ OPEN_PAREN: (5686..5687) "("
+ SYMBOL: (5687..5691)
+ IDENTIFIER: (5687..5691) "test"
+ ATMOSPHERE: (5691..5692) " "
+ QUOTED_DATUM: (5692..5699)
+ QUOTE: (5692..5693) "'"
+ FORM: (5693..5698)
+ OPEN_PAREN: (5693..5694) "("
+ SYMBOL: (5694..5695)
+ IDENTIFIER: (5694..5695) "b"
+ ATMOSPHERE: (5695..5696) " "
+ SYMBOL: (5696..5697)
+ IDENTIFIER: (5696..5697) "c"
+ CLOSE_PAREN: (5697..5698) ")"
+ ATMOSPHERE: (5698..5699) " "
+ FORM: (5699..5758)
+ OPEN_PAREN: (5699..5700) "("
+ SYMBOL: (5700..5702)
+ IDENTIFIER: (5700..5702) "or"
+ ATMOSPHERE: (5702..5703) " "
+ FORM: (5703..5721)
+ OPEN_PAREN: (5703..5704) "("
+ SYMBOL: (5704..5708)
+ IDENTIFIER: (5704..5708) "memq"
+ ATMOSPHERE: (5708..5709) " "
+ QUOTED_DATUM: (5709..5712)
+ QUOTE: (5709..5710) "'"
+ SYMBOL: (5710..5711)
+ IDENTIFIER: (5710..5711) "b"
+ ATMOSPHERE: (5711..5712) " "
+ QUOTED_DATUM: (5712..5720)
+ QUOTE: (5712..5713) "'"
+ FORM: (5713..5720)
+ OPEN_PAREN: (5713..5714) "("
+ SYMBOL: (5714..5715)
+ IDENTIFIER: (5714..5715) "a"
+ ATMOSPHERE: (5715..5716) " "
+ SYMBOL: (5716..5717)
+ IDENTIFIER: (5716..5717) "b"
+ ATMOSPHERE: (5717..5718) " "
+ SYMBOL: (5718..5719)
+ IDENTIFIER: (5718..5719) "c"
+ CLOSE_PAREN: (5719..5720) ")"
+ CLOSE_PAREN: (5720..5721) ")"
+ ATMOSPHERE: (5721..5722) " "
+ ATMOSPHERE: (5722..5745) ";; FIXME: No `memq` yet"
+ ATMOSPHERE: (5745..5750) "\n "
+ FORM: (5750..5757)
+ OPEN_PAREN: (5750..5751) "("
+ SYMBOL: (5751..5752)
+ IDENTIFIER: (5751..5752) "/"
+ ATMOSPHERE: (5752..5753) " "
+ CONSTANT: (5753..5754)
+ NUMBER: (5753..5754) "3"
+ ATMOSPHERE: (5754..5755) " "
+ CONSTANT: (5755..5756)
+ NUMBER: (5755..5756) "0"
+ CLOSE_PAREN: (5756..5757) ")"
+ CLOSE_PAREN: (5757..5758) ")"
+ CLOSE_PAREN: (5758..5759) ")"
+ ATMOSPHERE: (5759..5761) "\n\n"
+ FORM: (5761..5799)
+ OPEN_PAREN: (5761..5762) "("
+ SYMBOL: (5762..5766)
+ IDENTIFIER: (5762..5766) "test"
+ ATMOSPHERE: (5766..5767) " "
+ CONSTANT: (5767..5768)
+ NUMBER: (5767..5768) "6"
+ ATMOSPHERE: (5768..5769) " "
+ FORM: (5769..5798)
+ OPEN_PAREN: (5769..5770) "("
+ SYMBOL: (5770..5773)
+ IDENTIFIER: (5770..5773) "let"
+ ATMOSPHERE: (5773..5774) " "
+ FORM: (5774..5787)
+ OPEN_PAREN: (5774..5775) "("
+ FORM: (5775..5780)
+ OPEN_PAREN: (5775..5776) "("
+ SYMBOL: (5776..5777)
+ IDENTIFIER: (5776..5777) "x"
+ ATMOSPHERE: (5777..5778) " "
+ CONSTANT: (5778..5779)
+ NUMBER: (5778..5779) "2"
+ CLOSE_PAREN: (5779..5780) ")"
+ ATMOSPHERE: (5780..5781) " "
+ FORM: (5781..5786)
+ OPEN_PAREN: (5781..5782) "("
+ SYMBOL: (5782..5783)
+ IDENTIFIER: (5782..5783) "y"
+ ATMOSPHERE: (5783..5784) " "
+ CONSTANT: (5784..5785)
+ NUMBER: (5784..5785) "3"
+ CLOSE_PAREN: (5785..5786) ")"
+ CLOSE_PAREN: (5786..5787) ")"
+ ATMOSPHERE: (5787..5790) "\n "
+ FORM: (5790..5797)
+ OPEN_PAREN: (5790..5791) "("
+ SYMBOL: (5791..5792)
+ IDENTIFIER: (5791..5792) "*"
+ ATMOSPHERE: (5792..5793) " "
+ SYMBOL: (5793..5794)
+ IDENTIFIER: (5793..5794) "x"
+ ATMOSPHERE: (5794..5795) " "
+ SYMBOL: (5795..5796)
+ IDENTIFIER: (5795..5796) "y"
+ CLOSE_PAREN: (5796..5797) ")"
+ CLOSE_PAREN: (5797..5798) ")"
+ CLOSE_PAREN: (5798..5799) ")"
+ ATMOSPHERE: (5799..5801) "\n\n"
+ FORM: (5801..5878)
+ OPEN_PAREN: (5801..5802) "("
+ SYMBOL: (5802..5806)
+ IDENTIFIER: (5802..5806) "test"
+ ATMOSPHERE: (5806..5807) " "
+ CONSTANT: (5807..5809)
+ NUMBER: (5807..5809) "35"
+ ATMOSPHERE: (5809..5810) " "
+ FORM: (5810..5877)
+ OPEN_PAREN: (5810..5811) "("
+ SYMBOL: (5811..5814)
+ IDENTIFIER: (5811..5814) "let"
+ ATMOSPHERE: (5814..5815) " "
+ FORM: (5815..5828)
+ OPEN_PAREN: (5815..5816) "("
+ FORM: (5816..5821)
+ OPEN_PAREN: (5816..5817) "("
+ SYMBOL: (5817..5818)
+ IDENTIFIER: (5817..5818) "x"
+ ATMOSPHERE: (5818..5819) " "
+ CONSTANT: (5819..5820)
+ NUMBER: (5819..5820) "2"
+ CLOSE_PAREN: (5820..5821) ")"
+ ATMOSPHERE: (5821..5822) " "
+ FORM: (5822..5827)
+ OPEN_PAREN: (5822..5823) "("
+ SYMBOL: (5823..5824)
+ IDENTIFIER: (5823..5824) "y"
+ ATMOSPHERE: (5824..5825) " "
+ CONSTANT: (5825..5826)
+ NUMBER: (5825..5826) "3"
+ CLOSE_PAREN: (5826..5827) ")"
+ CLOSE_PAREN: (5827..5828) ")"
+ ATMOSPHERE: (5828..5831) "\n "
+ FORM: (5831..5876)
+ OPEN_PAREN: (5831..5832) "("
+ SYMBOL: (5832..5835)
+ IDENTIFIER: (5832..5835) "let"
+ ATMOSPHERE: (5835..5836) " "
+ FORM: (5836..5863)
+ OPEN_PAREN: (5836..5837) "("
+ FORM: (5837..5842)
+ OPEN_PAREN: (5837..5838) "("
+ SYMBOL: (5838..5839)
+ IDENTIFIER: (5838..5839) "x"
+ ATMOSPHERE: (5839..5840) " "
+ CONSTANT: (5840..5841)
+ NUMBER: (5840..5841) "7"
+ CLOSE_PAREN: (5841..5842) ")"
+ ATMOSPHERE: (5842..5851) "\n "
+ FORM: (5851..5862)
+ OPEN_PAREN: (5851..5852) "("
+ SYMBOL: (5852..5853)
+ IDENTIFIER: (5852..5853) "z"
+ ATMOSPHERE: (5853..5854) " "
+ FORM: (5854..5861)
+ OPEN_PAREN: (5854..5855) "("
+ SYMBOL: (5855..5856)
+ IDENTIFIER: (5855..5856) "+"
+ ATMOSPHERE: (5856..5857) " "
+ SYMBOL: (5857..5858)
+ IDENTIFIER: (5857..5858) "x"
+ ATMOSPHERE: (5858..5859) " "
+ SYMBOL: (5859..5860)
+ IDENTIFIER: (5859..5860) "y"
+ CLOSE_PAREN: (5860..5861) ")"
+ CLOSE_PAREN: (5861..5862) ")"
+ CLOSE_PAREN: (5862..5863) ")"
+ ATMOSPHERE: (5863..5868) "\n "
+ FORM: (5868..5875)
+ OPEN_PAREN: (5868..5869) "("
+ SYMBOL: (5869..5870)
+ IDENTIFIER: (5869..5870) "*"
+ ATMOSPHERE: (5870..5871) " "
+ SYMBOL: (5871..5872)
+ IDENTIFIER: (5871..5872) "z"
+ ATMOSPHERE: (5872..5873) " "
+ SYMBOL: (5873..5874)
+ IDENTIFIER: (5873..5874) "x"
+ CLOSE_PAREN: (5874..5875) ")"
+ CLOSE_PAREN: (5875..5876) ")"
+ CLOSE_PAREN: (5876..5877) ")"
+ CLOSE_PAREN: (5877..5878) ")"
+ ATMOSPHERE: (5878..5880) "\n\n"
+ FORM: (5880..5959)
+ OPEN_PAREN: (5880..5881) "("
+ SYMBOL: (5881..5885)
+ IDENTIFIER: (5881..5885) "test"
+ ATMOSPHERE: (5885..5886) " "
+ CONSTANT: (5886..5888)
+ NUMBER: (5886..5888) "70"
+ ATMOSPHERE: (5888..5889) " "
+ FORM: (5889..5958)
+ OPEN_PAREN: (5889..5890) "("
+ SYMBOL: (5890..5893)
+ IDENTIFIER: (5890..5893) "let"
+ ATMOSPHERE: (5893..5894) " "
+ FORM: (5894..5907)
+ OPEN_PAREN: (5894..5895) "("
+ FORM: (5895..5900)
+ OPEN_PAREN: (5895..5896) "("
+ SYMBOL: (5896..5897)
+ IDENTIFIER: (5896..5897) "x"
+ ATMOSPHERE: (5897..5898) " "
+ CONSTANT: (5898..5899)
+ NUMBER: (5898..5899) "2"
+ CLOSE_PAREN: (5899..5900) ")"
+ ATMOSPHERE: (5900..5901) " "
+ FORM: (5901..5906)
+ OPEN_PAREN: (5901..5902) "("
+ SYMBOL: (5902..5903)
+ IDENTIFIER: (5902..5903) "y"
+ ATMOSPHERE: (5903..5904) " "
+ CONSTANT: (5904..5905)
+ NUMBER: (5904..5905) "3"
+ CLOSE_PAREN: (5905..5906) ")"
+ CLOSE_PAREN: (5906..5907) ")"
+ ATMOSPHERE: (5907..5910) "\n "
+ FORM: (5910..5957)
+ OPEN_PAREN: (5910..5911) "("
+ SYMBOL: (5911..5915)
+ IDENTIFIER: (5911..5915) "let*"
+ ATMOSPHERE: (5915..5916) " "
+ FORM: (5916..5944)
+ OPEN_PAREN: (5916..5917) "("
+ FORM: (5917..5922)
+ OPEN_PAREN: (5917..5918) "("
+ SYMBOL: (5918..5919)
+ IDENTIFIER: (5918..5919) "x"
+ ATMOSPHERE: (5919..5920) " "
+ CONSTANT: (5920..5921)
+ NUMBER: (5920..5921) "7"
+ CLOSE_PAREN: (5921..5922) ")"
+ ATMOSPHERE: (5922..5932) "\n "
+ FORM: (5932..5943)
+ OPEN_PAREN: (5932..5933) "("
+ SYMBOL: (5933..5934)
+ IDENTIFIER: (5933..5934) "z"
+ ATMOSPHERE: (5934..5935) " "
+ FORM: (5935..5942)
+ OPEN_PAREN: (5935..5936) "("
+ SYMBOL: (5936..5937)
+ IDENTIFIER: (5936..5937) "+"
+ ATMOSPHERE: (5937..5938) " "
+ SYMBOL: (5938..5939)
+ IDENTIFIER: (5938..5939) "x"
+ ATMOSPHERE: (5939..5940) " "
+ SYMBOL: (5940..5941)
+ IDENTIFIER: (5940..5941) "y"
+ CLOSE_PAREN: (5941..5942) ")"
+ CLOSE_PAREN: (5942..5943) ")"
+ CLOSE_PAREN: (5943..5944) ")"
+ ATMOSPHERE: (5944..5949) "\n "
+ FORM: (5949..5956)
+ OPEN_PAREN: (5949..5950) "("
+ SYMBOL: (5950..5951)
+ IDENTIFIER: (5950..5951) "*"
+ ATMOSPHERE: (5951..5952) " "
+ SYMBOL: (5952..5953)
+ IDENTIFIER: (5952..5953) "z"
+ ATMOSPHERE: (5953..5954) " "
+ SYMBOL: (5954..5955)
+ IDENTIFIER: (5954..5955) "x"
+ CLOSE_PAREN: (5955..5956) ")"
+ CLOSE_PAREN: (5956..5957) ")"
+ CLOSE_PAREN: (5957..5958) ")"
+ CLOSE_PAREN: (5958..5959) ")"
+ ATMOSPHERE: (5959..5961) "\n\n"
+ FORM: (5961..6263)
+ OPEN_PAREN: (5961..5962) "("
+ SYMBOL: (5962..5966)
+ IDENTIFIER: (5962..5966) "test"
+ ATMOSPHERE: (5966..5967) " "
+ CONSTANT: (5967..5969)
+ BOOLEAN: (5967..5969) "#t"
+ ATMOSPHERE: (5969..5974) "\n "
+ FORM: (5974..6262)
+ OPEN_PAREN: (5974..5975) "("
+ SYMBOL: (5975..5981)
+ IDENTIFIER: (5975..5981) "letrec"
+ ATMOSPHERE: (5981..5982) " "
+ FORM: (5982..6244)
+ OPEN_PAREN: (5982..5983) "("
+ FORM: (5983..6106)
+ OPEN_PAREN: (5983..5984) "("
+ SYMBOL: (5984..5989)
+ IDENTIFIER: (5984..5989) "even?"
+ ATMOSPHERE: (5989..6004) "\n "
+ FORM: (6004..6105)
+ OPEN_PAREN: (6004..6005) "("
+ SYMBOL: (6005..6011)
+ IDENTIFIER: (6005..6011) "lambda"
+ ATMOSPHERE: (6011..6012) " "
+ FORM: (6012..6015)
+ OPEN_PAREN: (6012..6013) "("
+ SYMBOL: (6013..6014)
+ IDENTIFIER: (6013..6014) "n"
+ CLOSE_PAREN: (6014..6015) ")"
+ ATMOSPHERE: (6015..6032) "\n "
+ FORM: (6032..6104)
+ OPEN_PAREN: (6032..6033) "("
+ SYMBOL: (6033..6035)
+ IDENTIFIER: (6033..6035) "if"
+ ATMOSPHERE: (6035..6036) " "
+ FORM: (6036..6045)
+ OPEN_PAREN: (6036..6037) "("
+ SYMBOL: (6037..6042)
+ IDENTIFIER: (6037..6042) "zero?"
+ ATMOSPHERE: (6042..6043) " "
+ SYMBOL: (6043..6044)
+ IDENTIFIER: (6043..6044) "n"
+ CLOSE_PAREN: (6044..6045) ")"
+ ATMOSPHERE: (6045..6066) "\n "
+ CONSTANT: (6066..6068)
+ BOOLEAN: (6066..6068) "#t"
+ ATMOSPHERE: (6068..6089) "\n "
+ FORM: (6089..6103)
+ OPEN_PAREN: (6089..6090) "("
+ SYMBOL: (6090..6094)
+ IDENTIFIER: (6090..6094) "odd?"
+ ATMOSPHERE: (6094..6095) " "
+ FORM: (6095..6102)
+ OPEN_PAREN: (6095..6096) "("
+ SYMBOL: (6096..6097)
+ IDENTIFIER: (6096..6097) "-"
+ ATMOSPHERE: (6097..6098) " "
+ SYMBOL: (6098..6099)
+ IDENTIFIER: (6098..6099) "n"
+ ATMOSPHERE: (6099..6100) " "
+ CONSTANT: (6100..6101)
+ NUMBER: (6100..6101) "1"
+ CLOSE_PAREN: (6101..6102) ")"
+ CLOSE_PAREN: (6102..6103) ")"
+ CLOSE_PAREN: (6103..6104) ")"
+ CLOSE_PAREN: (6104..6105) ")"
+ CLOSE_PAREN: (6105..6106) ")"
+ ATMOSPHERE: (6106..6120) "\n "
+ FORM: (6120..6243)
+ OPEN_PAREN: (6120..6121) "("
+ SYMBOL: (6121..6125)
+ IDENTIFIER: (6121..6125) "odd?"
+ ATMOSPHERE: (6125..6140) "\n "
+ FORM: (6140..6242)
+ OPEN_PAREN: (6140..6141) "("
+ SYMBOL: (6141..6147)
+ IDENTIFIER: (6141..6147) "lambda"
+ ATMOSPHERE: (6147..6148) " "
+ FORM: (6148..6151)
+ OPEN_PAREN: (6148..6149) "("
+ SYMBOL: (6149..6150)
+ IDENTIFIER: (6149..6150) "n"
+ CLOSE_PAREN: (6150..6151) ")"
+ ATMOSPHERE: (6151..6168) "\n "
+ FORM: (6168..6241)
+ OPEN_PAREN: (6168..6169) "("
+ SYMBOL: (6169..6171)
+ IDENTIFIER: (6169..6171) "if"
+ ATMOSPHERE: (6171..6172) " "
+ FORM: (6172..6181)
+ OPEN_PAREN: (6172..6173) "("
+ SYMBOL: (6173..6178)
+ IDENTIFIER: (6173..6178) "zero?"
+ ATMOSPHERE: (6178..6179) " "
+ SYMBOL: (6179..6180)
+ IDENTIFIER: (6179..6180) "n"
+ CLOSE_PAREN: (6180..6181) ")"
+ ATMOSPHERE: (6181..6202) "\n "
+ CONSTANT: (6202..6204)
+ BOOLEAN: (6202..6204) "#f"
+ ATMOSPHERE: (6204..6225) "\n "
+ FORM: (6225..6240)
+ OPEN_PAREN: (6225..6226) "("
+ SYMBOL: (6226..6231)
+ IDENTIFIER: (6226..6231) "even?"
+ ATMOSPHERE: (6231..6232) " "
+ FORM: (6232..6239)
+ OPEN_PAREN: (6232..6233) "("
+ SYMBOL: (6233..6234)
+ IDENTIFIER: (6233..6234) "-"
+ ATMOSPHERE: (6234..6235) " "
+ SYMBOL: (6235..6236)
+ IDENTIFIER: (6235..6236) "n"
+ ATMOSPHERE: (6236..6237) " "
+ CONSTANT: (6237..6238)
+ NUMBER: (6237..6238) "1"
+ CLOSE_PAREN: (6238..6239) ")"
+ CLOSE_PAREN: (6239..6240) ")"
+ CLOSE_PAREN: (6240..6241) ")"
+ CLOSE_PAREN: (6241..6242) ")"
+ CLOSE_PAREN: (6242..6243) ")"
+ CLOSE_PAREN: (6243..6244) ")"
+ ATMOSPHERE: (6244..6251) "\n "
+ FORM: (6251..6261)
+ OPEN_PAREN: (6251..6252) "("
+ SYMBOL: (6252..6257)
+ IDENTIFIER: (6252..6257) "even?"
+ ATMOSPHERE: (6257..6258) " "
+ CONSTANT: (6258..6260)
+ NUMBER: (6258..6260) "88"
+ CLOSE_PAREN: (6260..6261) ")"
+ CLOSE_PAREN: (6261..6262) ")"
+ CLOSE_PAREN: (6262..6263) ")"
+ ATMOSPHERE: (6263..6265) "\n\n"
+ FORM: (6265..6555)
+ OPEN_PAREN: (6265..6266) "("
+ SYMBOL: (6266..6270)
+ IDENTIFIER: (6266..6270) "test"
+ ATMOSPHERE: (6270..6271) " "
+ CONSTANT: (6271..6272)
+ NUMBER: (6271..6272) "5"
+ ATMOSPHERE: (6272..6277) "\n "
+ FORM: (6277..6554)
+ OPEN_PAREN: (6277..6278) "("
+ SYMBOL: (6278..6285)
+ IDENTIFIER: (6278..6285) "letrec*"
+ ATMOSPHERE: (6285..6286) " "
+ FORM: (6286..6538)
+ OPEN_PAREN: (6286..6287) "("
+ FORM: (6287..6353)
+ OPEN_PAREN: (6287..6288) "("
+ SYMBOL: (6288..6289)
+ IDENTIFIER: (6288..6289) "p"
+ ATMOSPHERE: (6289..6305) "\n "
+ FORM: (6305..6352)
+ OPEN_PAREN: (6305..6306) "("
+ SYMBOL: (6306..6312)
+ IDENTIFIER: (6306..6312) "lambda"
+ ATMOSPHERE: (6312..6313) " "
+ FORM: (6313..6316)
+ OPEN_PAREN: (6313..6314) "("
+ SYMBOL: (6314..6315)
+ IDENTIFIER: (6314..6315) "x"
+ CLOSE_PAREN: (6315..6316) ")"
+ ATMOSPHERE: (6316..6334) "\n "
+ FORM: (6334..6351)
+ OPEN_PAREN: (6334..6335) "("
+ SYMBOL: (6335..6336)
+ IDENTIFIER: (6335..6336) "+"
+ ATMOSPHERE: (6336..6337) " "
+ CONSTANT: (6337..6338)
+ NUMBER: (6337..6338) "1"
+ ATMOSPHERE: (6338..6339) " "
+ FORM: (6339..6350)
+ OPEN_PAREN: (6339..6340) "("
+ SYMBOL: (6340..6341)
+ IDENTIFIER: (6340..6341) "q"
+ ATMOSPHERE: (6341..6342) " "
+ FORM: (6342..6349)
+ OPEN_PAREN: (6342..6343) "("
+ SYMBOL: (6343..6344)
+ IDENTIFIER: (6343..6344) "-"
+ ATMOSPHERE: (6344..6345) " "
+ SYMBOL: (6345..6346)
+ IDENTIFIER: (6345..6346) "x"
+ ATMOSPHERE: (6346..6347) " "
+ CONSTANT: (6347..6348)
+ NUMBER: (6347..6348) "1"
+ CLOSE_PAREN: (6348..6349) ")"
+ CLOSE_PAREN: (6349..6350) ")"
+ CLOSE_PAREN: (6350..6351) ")"
+ CLOSE_PAREN: (6351..6352) ")"
+ CLOSE_PAREN: (6352..6353) ")"
+ ATMOSPHERE: (6353..6368) "\n "
+ FORM: (6368..6493)
+ OPEN_PAREN: (6368..6369) "("
+ SYMBOL: (6369..6370)
+ IDENTIFIER: (6369..6370) "q"
+ ATMOSPHERE: (6370..6386) "\n "
+ FORM: (6386..6492)
+ OPEN_PAREN: (6386..6387) "("
+ SYMBOL: (6387..6393)
+ IDENTIFIER: (6387..6393) "lambda"
+ ATMOSPHERE: (6393..6394) " "
+ FORM: (6394..6397)
+ OPEN_PAREN: (6394..6395) "("
+ SYMBOL: (6395..6396)
+ IDENTIFIER: (6395..6396) "y"
+ CLOSE_PAREN: (6396..6397) ")"
+ ATMOSPHERE: (6397..6415) "\n "
+ FORM: (6415..6491)
+ OPEN_PAREN: (6415..6416) "("
+ SYMBOL: (6416..6418)
+ IDENTIFIER: (6416..6418) "if"
+ ATMOSPHERE: (6418..6419) " "
+ FORM: (6419..6428)
+ OPEN_PAREN: (6419..6420) "("
+ SYMBOL: (6420..6425)
+ IDENTIFIER: (6420..6425) "zero?"
+ ATMOSPHERE: (6425..6426) " "
+ SYMBOL: (6426..6427)
+ IDENTIFIER: (6426..6427) "y"
+ CLOSE_PAREN: (6427..6428) ")"
+ ATMOSPHERE: (6428..6450) "\n "
+ CONSTANT: (6450..6451)
+ NUMBER: (6450..6451) "0"
+ ATMOSPHERE: (6451..6473) "\n "
+ FORM: (6473..6490)
+ OPEN_PAREN: (6473..6474) "("
+ SYMBOL: (6474..6475)
+ IDENTIFIER: (6474..6475) "+"
+ ATMOSPHERE: (6475..6476) " "
+ CONSTANT: (6476..6477)
+ NUMBER: (6476..6477) "1"
+ ATMOSPHERE: (6477..6478) " "
+ FORM: (6478..6489)
+ OPEN_PAREN: (6478..6479) "("
+ SYMBOL: (6479..6480)
+ IDENTIFIER: (6479..6480) "p"
+ ATMOSPHERE: (6480..6481) " "
+ FORM: (6481..6488)
+ OPEN_PAREN: (6481..6482) "("
+ SYMBOL: (6482..6483)
+ IDENTIFIER: (6482..6483) "-"
+ ATMOSPHERE: (6483..6484) " "
+ SYMBOL: (6484..6485)
+ IDENTIFIER: (6484..6485) "y"
+ ATMOSPHERE: (6485..6486) " "
+ CONSTANT: (6486..6487)
+ NUMBER: (6486..6487) "1"
+ CLOSE_PAREN: (6487..6488) ")"
+ CLOSE_PAREN: (6488..6489) ")"
+ CLOSE_PAREN: (6489..6490) ")"
+ CLOSE_PAREN: (6490..6491) ")"
+ CLOSE_PAREN: (6491..6492) ")"
+ CLOSE_PAREN: (6492..6493) ")"
+ ATMOSPHERE: (6493..6508) "\n "
+ FORM: (6508..6517)
+ OPEN_PAREN: (6508..6509) "("
+ SYMBOL: (6509..6510)
+ IDENTIFIER: (6509..6510) "x"
+ ATMOSPHERE: (6510..6511) " "
+ FORM: (6511..6516)
+ OPEN_PAREN: (6511..6512) "("
+ SYMBOL: (6512..6513)
+ IDENTIFIER: (6512..6513) "p"
+ ATMOSPHERE: (6513..6514) " "
+ CONSTANT: (6514..6515)
+ NUMBER: (6514..6515) "5"
+ CLOSE_PAREN: (6515..6516) ")"
+ CLOSE_PAREN: (6516..6517) ")"
+ ATMOSPHERE: (6517..6532) "\n "
+ FORM: (6532..6537)
+ OPEN_PAREN: (6532..6533) "("
+ SYMBOL: (6533..6534)
+ IDENTIFIER: (6533..6534) "y"
+ ATMOSPHERE: (6534..6535) " "
+ SYMBOL: (6535..6536)
+ IDENTIFIER: (6535..6536) "x"
+ CLOSE_PAREN: (6536..6537) ")"
+ CLOSE_PAREN: (6537..6538) ")"
+ ATMOSPHERE: (6538..6552) "\n "
+ SYMBOL: (6552..6553)
+ IDENTIFIER: (6552..6553) "y"
+ CLOSE_PAREN: (6553..6554) ")"
+ CLOSE_PAREN: (6554..6555) ")"
+ ATMOSPHERE: (6555..6558) "\n\n\n"
+ ATMOSPHERE: (6558..6590) ";;; FIXME: `let*values` support."
+ ATMOSPHERE: (6590..6591) "\n"
+ ATMOSPHERE: (6591..6645) ";; ;; By Jussi Piitulainen "
+ ATMOSPHERE: (6645..6646) "\n"
+ ATMOSPHERE: (6646..6692) ";; ;; and John Cowan :"
+ ATMOSPHERE: (6692..6693) "\n"
+ ATMOSPHERE: (6693..6781) ";; ;; http://lists.scheme-reports.org/pipermail/scheme-reports/2013-December/003876.html"
+ ATMOSPHERE: (6781..6782) "\n"
+ ATMOSPHERE: (6782..6804) ";; (define (means ton)"
+ ATMOSPHERE: (6804..6805) "\n"
+ ATMOSPHERE: (6805..6818) ";; (letrec*"
+ ATMOSPHERE: (6818..6819) "\n"
+ ATMOSPHERE: (6819..6833) ";; ((mean"
+ ATMOSPHERE: (6833..6834) "\n"
+ ATMOSPHERE: (6834..6858) ";; (lambda (f g)"
+ ATMOSPHERE: (6858..6859) "\n"
+ ATMOSPHERE: (6859..6895) ";; (f (/ (sum g ton) n))))"
+ ATMOSPHERE: (6895..6896) "\n"
+ ATMOSPHERE: (6896..6909) ";; (sum"
+ ATMOSPHERE: (6909..6910) "\n"
+ ATMOSPHERE: (6910..6936) ";; (lambda (g ton)"
+ ATMOSPHERE: (6936..6937) "\n"
+ ATMOSPHERE: (6937..6965) ";; (if (null? ton)"
+ ATMOSPHERE: (6965..6966) "\n"
+ ATMOSPHERE: (6966..6984) ";; (+)"
+ ATMOSPHERE: (6984..6985) "\n"
+ ATMOSPHERE: (6985..7017) ";; (if (number? ton)"
+ ATMOSPHERE: (7017..7018) "\n"
+ ATMOSPHERE: (7018..7044) ";; (g ton)"
+ ATMOSPHERE: (7044..7045) "\n"
+ ATMOSPHERE: (7045..7084) ";; (+ (sum g (car ton))"
+ ATMOSPHERE: (7084..7085) "\n"
+ ATMOSPHERE: (7085..7129) ";; (sum g (cdr ton)))))))"
+ ATMOSPHERE: (7129..7130) "\n"
+ ATMOSPHERE: (7130..7168) ";; (n (sum (lambda (x) 1) ton)))"
+ ATMOSPHERE: (7168..7169) "\n"
+ ATMOSPHERE: (7169..7204) ";; (values (mean values values)"
+ ATMOSPHERE: (7204..7205) "\n"
+ ATMOSPHERE: (7205..7234) ";; (mean exp log)"
+ ATMOSPHERE: (7234..7235) "\n"
+ ATMOSPHERE: (7235..7263) ";; (mean / /))))"
+ ATMOSPHERE: (7263..7264) "\n"
+ ATMOSPHERE: (7264..7314) ";; (let*-values (((a b c) (means '(8 5 99 1 22))))"
+ ATMOSPHERE: (7314..7315) "\n"
+ ATMOSPHERE: (7315..7331) ";; (test 27 a)"
+ ATMOSPHERE: (7331..7332) "\n"
+ ATMOSPHERE: (7332..7351) ";; (test 9.728 b)"
+ ATMOSPHERE: (7351..7352) "\n"
+ ATMOSPHERE: (7352..7375) ";; (test 1800/497 c))"
+ ATMOSPHERE: (7375..7377) "\n\n"
+ ATMOSPHERE: (7377..7431) ";; (let*-values (((root rem) (exact-integer-sqrt 32)))"
+ ATMOSPHERE: (7431..7432) "\n"
+ ATMOSPHERE: (7432..7460) ";; (test 35 (* root rem)))"
+ ATMOSPHERE: (7460..7462) "\n\n"
+ ATMOSPHERE: (7462..7486) ";; (test '(1073741824 0)"
+ ATMOSPHERE: (7486..7487) "\n"
+ ATMOSPHERE: (7487..7554) ";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 60))))"
+ ATMOSPHERE: (7554..7555) "\n"
+ ATMOSPHERE: (7555..7581) ";; (list root rem)))"
+ ATMOSPHERE: (7581..7583) "\n\n"
+ ATMOSPHERE: (7583..7616) ";; (test '(1518500249 3000631951)"
+ ATMOSPHERE: (7616..7617) "\n"
+ ATMOSPHERE: (7617..7684) ";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 61))))"
+ ATMOSPHERE: (7684..7685) "\n"
+ ATMOSPHERE: (7685..7711) ";; (list root rem)))"
+ ATMOSPHERE: (7711..7713) "\n\n"
+ ATMOSPHERE: (7713..7762) ";; (test '(815238614083298888 443242361398135744)"
+ ATMOSPHERE: (7762..7763) "\n"
+ ATMOSPHERE: (7763..7831) ";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 119))))"
+ ATMOSPHERE: (7831..7832) "\n"
+ ATMOSPHERE: (7832..7858) ";; (list root rem)))"
+ ATMOSPHERE: (7858..7860) "\n\n"
+ ATMOSPHERE: (7860..7893) ";; (test '(1152921504606846976 0)"
+ ATMOSPHERE: (7893..7894) "\n"
+ ATMOSPHERE: (7894..7962) ";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 120))))"
+ ATMOSPHERE: (7962..7963) "\n"
+ ATMOSPHERE: (7963..7989) ";; (list root rem)))"
+ ATMOSPHERE: (7989..7991) "\n\n"
+ ATMOSPHERE: (7991..8042) ";; (test '(1630477228166597776 1772969445592542976)"
+ ATMOSPHERE: (8042..8043) "\n"
+ ATMOSPHERE: (8043..8111) ";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 121))))"
+ ATMOSPHERE: (8111..8112) "\n"
+ ATMOSPHERE: (8112..8138) ";; (list root rem)))"
+ ATMOSPHERE: (8138..8140) "\n\n"
+ ATMOSPHERE: (8140..8193) ";; (test '(31622776601683793319 62545769258890964239)"
+ ATMOSPHERE: (8193..8194) "\n"
+ ATMOSPHERE: (8194..8262) ";; (let*-values (((root rem) (exact-integer-sqrt (expt 10 39))))"
+ ATMOSPHERE: (8262..8263) "\n"
+ ATMOSPHERE: (8263..8289) ";; (list root rem)))"
+ ATMOSPHERE: (8289..8291) "\n\n"
+ ATMOSPHERE: (8291..8355) ";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 140))))"
+ ATMOSPHERE: (8355..8356) "\n"
+ ATMOSPHERE: (8356..8373) ";; (test 0 rem)"
+ ATMOSPHERE: (8373..8374) "\n"
+ ATMOSPHERE: (8374..8413) ";; (test (expt 2 140) (square root)))"
+ ATMOSPHERE: (8413..8415) "\n\n"
+ ATMOSPHERE: (8415..8469) ";; (test '(x y x y) (let ((a 'a) (b 'b) (x 'x) (y 'y))"
+ ATMOSPHERE: (8469..8470) "\n"
+ ATMOSPHERE: (8470..8509) ";; (let*-values (((a b) (values x y))"
+ ATMOSPHERE: (8509..8510) "\n"
+ ATMOSPHERE: (8510..8550) ";; ((x y) (values a b)))"
+ ATMOSPHERE: (8550..8551) "\n"
+ ATMOSPHERE: (8551..8575) ";; (list a b x y))))"
+ ATMOSPHERE: (8575..8577) "\n\n"
+ ATMOSPHERE: (8577..8610) ";; (test 'ok (let-values () 'ok))"
+ ATMOSPHERE: (8610..8612) "\n\n"
+ ATMOSPHERE: (8612..8635) ";; (test 1 (let ((x 1))"
+ ATMOSPHERE: (8635..8636) "\n"
+ ATMOSPHERE: (8636..8657) ";; \t (let*-values ()"
+ ATMOSPHERE: (8657..8658) "\n"
+ ATMOSPHERE: (8658..8678) ";; \t (define x 2)"
+ ATMOSPHERE: (8678..8679) "\n"
+ ATMOSPHERE: (8679..8690) ";; \t #f)"
+ ATMOSPHERE: (8690..8691) "\n"
+ ATMOSPHERE: (8691..8700) ";; \t x))"
+ ATMOSPHERE: (8700..8702) "\n\n"
+ FORM: (8702..8757)
+ OPEN_PAREN: (8702..8703) "("
+ SYMBOL: (8703..8706)
+ IDENTIFIER: (8703..8706) "let"
+ ATMOSPHERE: (8706..8707) " "
+ FORM: (8707..8709)
+ OPEN_PAREN: (8707..8708) "("
+ CLOSE_PAREN: (8708..8709) ")"
+ ATMOSPHERE: (8709..8712) "\n "
+ FORM: (8712..8724)
+ OPEN_PAREN: (8712..8713) "("
+ SYMBOL: (8713..8719)
+ IDENTIFIER: (8713..8719) "define"
+ ATMOSPHERE: (8719..8720) " "
+ SYMBOL: (8720..8721)
+ IDENTIFIER: (8720..8721) "x"
+ ATMOSPHERE: (8721..8722) " "
+ CONSTANT: (8722..8723)
+ NUMBER: (8722..8723) "0"
+ CLOSE_PAREN: (8723..8724) ")"
+ ATMOSPHERE: (8724..8727) "\n "
+ FORM: (8727..8737)
+ OPEN_PAREN: (8727..8728) "("
+ SYMBOL: (8728..8732)
+ IDENTIFIER: (8728..8732) "set!"
+ ATMOSPHERE: (8732..8733) " "
+ SYMBOL: (8733..8734)
+ IDENTIFIER: (8733..8734) "x"
+ ATMOSPHERE: (8734..8735) " "
+ CONSTANT: (8735..8736)
+ NUMBER: (8735..8736) "5"
+ CLOSE_PAREN: (8736..8737) ")"
+ ATMOSPHERE: (8737..8740) "\n "
+ FORM: (8740..8756)
+ OPEN_PAREN: (8740..8741) "("
+ SYMBOL: (8741..8745)
+ IDENTIFIER: (8741..8745) "test"
+ ATMOSPHERE: (8745..8746) " "
+ CONSTANT: (8746..8747)
+ NUMBER: (8746..8747) "6"
+ ATMOSPHERE: (8747..8748) " "
+ FORM: (8748..8755)
+ OPEN_PAREN: (8748..8749) "("
+ SYMBOL: (8749..8750)
+ IDENTIFIER: (8749..8750) "+"
+ ATMOSPHERE: (8750..8751) " "
+ SYMBOL: (8751..8752)
+ IDENTIFIER: (8751..8752) "x"
+ ATMOSPHERE: (8752..8753) " "
+ CONSTANT: (8753..8754)
+ NUMBER: (8753..8754) "1"
+ CLOSE_PAREN: (8754..8755) ")"
+ CLOSE_PAREN: (8755..8756) ")"
+ CLOSE_PAREN: (8756..8757) ")"
+ ATMOSPHERE: (8757..8759) "\n\n"
+ ATMOSPHERE: (8759..8782) ";;; FIXME: `do` support"
+ ATMOSPHERE: (8782..8783) "\n"
+ ATMOSPHERE: (8783..8831) ";; (test #(0 1 2 3 4) (do ((vec (make-vector 5))"
+ ATMOSPHERE: (8831..8832) "\n"
+ ATMOSPHERE: (8832..8854) ";; (i 0 (+ i 1)))"
+ ATMOSPHERE: (8854..8855) "\n"
+ ATMOSPHERE: (8855..8875) ";; ((= i 5) vec)"
+ ATMOSPHERE: (8875..8876) "\n"
+ ATMOSPHERE: (8876..8904) ";; (vector-set! vec i i)))"
+ ATMOSPHERE: (8904..8906) "\n\n"
+ ATMOSPHERE: (8906..8941) ";; (test 25 (let ((x '(1 3 5 7 9)))"
+ ATMOSPHERE: (8941..8942) "\n"
+ ATMOSPHERE: (8942..8965) ";; (do ((x x (cdr x))"
+ ATMOSPHERE: (8965..8966) "\n"
+ ATMOSPHERE: (8966..9000) ";; (sum 0 (+ sum (car x))))"
+ ATMOSPHERE: (9000..9001) "\n"
+ ATMOSPHERE: (9001..9028) ";; ((null? x) sum))))"
+ ATMOSPHERE: (9028..9030) "\n\n"
+ ATMOSPHERE: (9030..9048) ";;; FIXME: looping"
+ ATMOSPHERE: (9048..9049) "\n"
+ ATMOSPHERE: (9049..9076) ";; (test '((6 1 3) (-5 -2))"
+ ATMOSPHERE: (9076..9077) "\n"
+ ATMOSPHERE: (9077..9119) ";; (let loop ((numbers '(3 -2 1 6 -5))"
+ ATMOSPHERE: (9119..9120) "\n"
+ ATMOSPHERE: (9120..9150) ";; (nonneg '())"
+ ATMOSPHERE: (9150..9151) "\n"
+ ATMOSPHERE: (9151..9179) ";; (neg '()))"
+ ATMOSPHERE: (9179..9180) "\n"
+ ATMOSPHERE: (9180..9230) ";; (cond ((null? numbers) (list nonneg neg))"
+ ATMOSPHERE: (9230..9231) "\n"
+ ATMOSPHERE: (9231..9267) ";; ((>= (car numbers) 0)"
+ ATMOSPHERE: (9267..9268) "\n"
+ ATMOSPHERE: (9268..9303) ";; (loop (cdr numbers)"
+ ATMOSPHERE: (9303..9304) "\n"
+ ATMOSPHERE: (9304..9353) ";; (cons (car numbers) nonneg)"
+ ATMOSPHERE: (9353..9354) "\n"
+ ATMOSPHERE: (9354..9381) ";; neg))"
+ ATMOSPHERE: (9381..9382) "\n"
+ ATMOSPHERE: (9382..9417) ";; ((< (car numbers) 0)"
+ ATMOSPHERE: (9417..9418) "\n"
+ ATMOSPHERE: (9418..9453) ";; (loop (cdr numbers)"
+ ATMOSPHERE: (9453..9454) "\n"
+ ATMOSPHERE: (9454..9482) ";; nonneg"
+ ATMOSPHERE: (9482..9483) "\n"
+ ATMOSPHERE: (9483..9534) ";; (cons (car numbers) neg))))))"
+ ATMOSPHERE: (9534..9536) "\n\n"
+ ATMOSPHERE: (9536..9571) ";; (test 3 (force (delay (+ 1 2))))"
+ ATMOSPHERE: (9571..9573) "\n\n"
+ ATMOSPHERE: (9573..9590) ";; (test '(3 3) "
+ ATMOSPHERE: (9590..9591) "\n"
+ ATMOSPHERE: (9591..9624) ";; (let ((p (delay (+ 1 2))))"
+ ATMOSPHERE: (9624..9625) "\n"
+ ATMOSPHERE: (9625..9662) ";; (list (force p) (force p))))"
+ ATMOSPHERE: (9662..9664) "\n\n"
+ ATMOSPHERE: (9664..9683) ";; (define integers"
+ ATMOSPHERE: (9683..9684) "\n"
+ ATMOSPHERE: (9684..9703) ";; (letrec ((next"
+ ATMOSPHERE: (9703..9704) "\n"
+ ATMOSPHERE: (9704..9730) ";; (lambda (n)"
+ ATMOSPHERE: (9730..9731) "\n"
+ ATMOSPHERE: (9731..9782) ";; (delay (cons n (next (+ n 1)))))))"
+ ATMOSPHERE: (9782..9783) "\n"
+ ATMOSPHERE: (9783..9800) ";; (next 0)))"
+ ATMOSPHERE: (9800..9801) "\n"
+ ATMOSPHERE: (9801..9816) ";; (define head"
+ ATMOSPHERE: (9816..9817) "\n"
+ ATMOSPHERE: (9817..9861) ";; (lambda (stream) (car (force stream))))"
+ ATMOSPHERE: (9861..9862) "\n"
+ ATMOSPHERE: (9862..9877) ";; (define tail"
+ ATMOSPHERE: (9877..9878) "\n"
+ ATMOSPHERE: (9878..9922) ";; (lambda (stream) (cdr (force stream))))"
+ ATMOSPHERE: (9922..9924) "\n\n"
+ ATMOSPHERE: (9924..9965) ";; (test 2 (head (tail (tail integers))))"
+ ATMOSPHERE: (9965..9967) "\n\n"
+ ATMOSPHERE: (9967..9998) ";; (define (stream-filter p? s)"
+ ATMOSPHERE: (9998..9999) "\n"
+ ATMOSPHERE: (9999..10016) ";; (delay-force"
+ ATMOSPHERE: (10016..10017) "\n"
+ ATMOSPHERE: (10017..10045) ";; (if (null? (force s)) "
+ ATMOSPHERE: (10045..10046) "\n"
+ ATMOSPHERE: (10046..10067) ";; (delay '())"
+ ATMOSPHERE: (10067..10068) "\n"
+ ATMOSPHERE: (10068..10103) ";; (let ((h (car (force s)))"
+ ATMOSPHERE: (10103..10104) "\n"
+ ATMOSPHERE: (10104..10140) ";; (t (cdr (force s))))"
+ ATMOSPHERE: (10140..10141) "\n"
+ ATMOSPHERE: (10141..10163) ";; (if (p? h)"
+ ATMOSPHERE: (10163..10164) "\n"
+ ATMOSPHERE: (10164..10217) ";; (delay (cons h (stream-filter p? t)))"
+ ATMOSPHERE: (10217..10218) "\n"
+ ATMOSPHERE: (10218..10259) ";; (stream-filter p? t))))))"
+ ATMOSPHERE: (10259..10261) "\n\n"
+ ATMOSPHERE: (10261..10323) ";; (test 5 (head (tail (tail (stream-filter odd? integers)))))"
+ ATMOSPHERE: (10323..10325) "\n\n"
+ ATMOSPHERE: (10325..10335) ";; (let ()"
+ ATMOSPHERE: (10335..10336) "\n"
+ ATMOSPHERE: (10336..10353) ";; (define x 5)"
+ ATMOSPHERE: (10353..10354) "\n"
+ ATMOSPHERE: (10354..10375) ";; (define count 0)"
+ ATMOSPHERE: (10375..10376) "\n"
+ ATMOSPHERE: (10376..10390) ";; (define p"
+ ATMOSPHERE: (10390..10391) "\n"
+ ATMOSPHERE: (10391..10436) ";; (delay (begin (set! count (+ count 1))"
+ ATMOSPHERE: (10436..10437) "\n"
+ ATMOSPHERE: (10437..10473) ";; (if (> count x)"
+ ATMOSPHERE: (10473..10474) "\n"
+ ATMOSPHERE: (10474..10504) ";; count"
+ ATMOSPHERE: (10504..10505) "\n"
+ ATMOSPHERE: (10505..10543) ";; (force p)))))"
+ ATMOSPHERE: (10543..10544) "\n"
+ ATMOSPHERE: (10544..10567) ";; (test 6 (force p))"
+ ATMOSPHERE: (10567..10568) "\n"
+ ATMOSPHERE: (10568..10612) ";; (test 6 (begin (set! x 10) (force p))))"
+ ATMOSPHERE: (10612..10614) "\n\n"
+ ATMOSPHERE: (10614..10653) ";; (test #t (promise? (delay (+ 2 2))))"
+ ATMOSPHERE: (10653..10654) "\n"
+ ATMOSPHERE: (10654..10700) ";; (test #t (promise? (make-promise (+ 2 2))))"
+ ATMOSPHERE: (10700..10701) "\n"
+ ATMOSPHERE: (10701..10712) ";; (test #t"
+ ATMOSPHERE: (10712..10713) "\n"
+ ATMOSPHERE: (10713..10746) ";; (let ((x (delay (+ 2 2))))"
+ ATMOSPHERE: (10746..10747) "\n"
+ ATMOSPHERE: (10747..10765) ";; (force x)"
+ ATMOSPHERE: (10765..10766) "\n"
+ ATMOSPHERE: (10766..10789) ";; (promise? x)))"
+ ATMOSPHERE: (10789..10790) "\n"
+ ATMOSPHERE: (10790..10801) ";; (test #t"
+ ATMOSPHERE: (10801..10802) "\n"
+ ATMOSPHERE: (10802..10842) ";; (let ((x (make-promise (+ 2 2))))"
+ ATMOSPHERE: (10842..10843) "\n"
+ ATMOSPHERE: (10843..10861) ";; (force x)"
+ ATMOSPHERE: (10861..10862) "\n"
+ ATMOSPHERE: (10862..10885) ";; (promise? x)))"
+ ATMOSPHERE: (10885..10886) "\n"
+ ATMOSPHERE: (10886..10928) ";; (test 4 (force (make-promise (+ 2 2))))"
+ ATMOSPHERE: (10928..10929) "\n"
+ ATMOSPHERE: (10929..10986) ";; (test 4 (force (make-promise (make-promise (+ 2 2)))))"
+ ATMOSPHERE: (10986..10988) "\n\n"
+ ATMOSPHERE: (10988..11004) ";; (define radix"
+ ATMOSPHERE: (11004..11005) "\n"
+ ATMOSPHERE: (11005..11025) ";; (make-parameter"
+ ATMOSPHERE: (11025..11026) "\n"
+ ATMOSPHERE: (11026..11034) ";; 10"
+ ATMOSPHERE: (11034..11035) "\n"
+ ATMOSPHERE: (11035..11052) ";; (lambda (x)"
+ ATMOSPHERE: (11052..11053) "\n"
+ ATMOSPHERE: (11053..11095) ";; (if (and (integer? x) (<= 2 x 16))"
+ ATMOSPHERE: (11095..11096) "\n"
+ ATMOSPHERE: (11096..11109) ";; x"
+ ATMOSPHERE: (11109..11110) "\n"
+ ATMOSPHERE: (11110..11149) ";; (error \"invalid radix\")))))"
+ ATMOSPHERE: (11149..11150) "\n"
+ ATMOSPHERE: (11150..11194) ";; (define (f n) (number->string n (radix)))"
+ ATMOSPHERE: (11194..11195) "\n"
+ ATMOSPHERE: (11195..11216) ";; (test \"12\" (f 12))"
+ ATMOSPHERE: (11216..11217) "\n"
+ ATMOSPHERE: (11217..11258) ";; (test \"1100\" (parameterize ((radix 2))"
+ ATMOSPHERE: (11258..11259) "\n"
+ ATMOSPHERE: (11259..11272) ";; (f 12)))"
+ ATMOSPHERE: (11272..11273) "\n"
+ ATMOSPHERE: (11273..11294) ";; (test \"12\" (f 12))"
+ ATMOSPHERE: (11294..11296) "\n\n"
+ ATMOSPHERE: (11296..11336) ";; (test '(list 3 4) `(list ,(+ 1 2) 4))"
+ ATMOSPHERE: (11336..11337) "\n"
+ ATMOSPHERE: (11337..11405) ";; (let ((name 'a)) (test '(list a (quote a)) `(list ,name ',name)))"
+ ATMOSPHERE: (11405..11406) "\n"
+ ATMOSPHERE: (11406..11468) ";; (test '(a 3 4 5 6 b) `(a ,(+ 1 2) ,@(map abs '(4 -5 6)) b))"
+ ATMOSPHERE: (11468..11469) "\n"
+ ATMOSPHERE: (11469..11494) ";; (test #(10 5 4 16 9 8)"
+ ATMOSPHERE: (11494..11495) "\n"
+ ATMOSPHERE: (11495..11547) ";; `#(10 5 ,(square 2) ,@(map square '(4 3)) 8))"
+ ATMOSPHERE: (11547..11548) "\n"
+ ATMOSPHERE: (11548..11590) ";; (test '(a `(b ,(+ 1 2) ,(foo 4 d) e) f)"
+ ATMOSPHERE: (11590..11591) "\n"
+ ATMOSPHERE: (11591..11640) ";; `(a `(b ,(+ 1 2) ,(foo ,(+ 1 3) d) e) f) )"
+ ATMOSPHERE: (11640..11641) "\n"
+ ATMOSPHERE: (11641..11660) ";; (let ((name1 'x)"
+ ATMOSPHERE: (11660..11661) "\n"
+ ATMOSPHERE: (11661..11681) ";; (name2 'y))"
+ ATMOSPHERE: (11681..11682) "\n"
+ ATMOSPHERE: (11682..11747) ";; (test '(a `(b ,x ,'y d) e) `(a `(b ,,name1 ,',name2 d) e)))"
+ ATMOSPHERE: (11747..11748) "\n"
+ ATMOSPHERE: (11748..11810) ";; (test '(list 3 4) (quasiquote (list (unquote (+ 1 2)) 4)) )"
+ ATMOSPHERE: (11810..11811) "\n"
+ ATMOSPHERE: (11811..11879) ";; (test `(list ,(+ 1 2) 4) (quasiquote (list (unquote (+ 1 2)) 4)))"
+ ATMOSPHERE: (11879..11881) "\n\n"
+ ATMOSPHERE: (11881..11896) ";; (define plus"
+ ATMOSPHERE: (11896..11897) "\n"
+ ATMOSPHERE: (11897..11915) ";; (case-lambda "
+ ATMOSPHERE: (11915..11916) "\n"
+ ATMOSPHERE: (11916..11928) ";; (() 0)"
+ ATMOSPHERE: (11928..11929) "\n"
+ ATMOSPHERE: (11929..11942) ";; ((x) x)"
+ ATMOSPHERE: (11942..11943) "\n"
+ ATMOSPHERE: (11943..11964) ";; ((x y) (+ x y))"
+ ATMOSPHERE: (11964..11965) "\n"
+ ATMOSPHERE: (11965..11994) ";; ((x y z) (+ (+ x y) z))"
+ ATMOSPHERE: (11994..11995) "\n"
+ ATMOSPHERE: (11995..12024) ";; (args (apply + args))))"
+ ATMOSPHERE: (12024..12026) "\n\n"
+ ATMOSPHERE: (12026..12044) ";; (test 0 (plus))"
+ ATMOSPHERE: (12044..12045) "\n"
+ ATMOSPHERE: (12045..12065) ";; (test 1 (plus 1))"
+ ATMOSPHERE: (12065..12066) "\n"
+ ATMOSPHERE: (12066..12088) ";; (test 3 (plus 1 2))"
+ ATMOSPHERE: (12088..12089) "\n"
+ ATMOSPHERE: (12089..12113) ";; (test 6 (plus 1 2 3))"
+ ATMOSPHERE: (12113..12114) "\n"
+ ATMOSPHERE: (12114..12141) ";; (test 10 (plus 1 2 3 4))"
+ ATMOSPHERE: (12141..12143) "\n\n"
+ ATMOSPHERE: (12143..12158) ";; (define mult"
+ ATMOSPHERE: (12158..12159) "\n"
+ ATMOSPHERE: (12159..12176) ";; (case-lambda"
+ ATMOSPHERE: (12176..12177) "\n"
+ ATMOSPHERE: (12177..12189) ";; (() 1)"
+ ATMOSPHERE: (12189..12190) "\n"
+ ATMOSPHERE: (12190..12203) ";; ((x) x)"
+ ATMOSPHERE: (12203..12204) "\n"
+ ATMOSPHERE: (12204..12225) ";; ((x y) (* x y))"
+ ATMOSPHERE: (12225..12226) "\n"
+ ATMOSPHERE: (12226..12268) ";; ((x y . z) (apply mult (* x y) z))))"
+ ATMOSPHERE: (12268..12270) "\n\n"
+ ATMOSPHERE: (12270..12288) ";; (test 1 (mult))"
+ ATMOSPHERE: (12288..12289) "\n"
+ ATMOSPHERE: (12289..12309) ";; (test 1 (mult 1))"
+ ATMOSPHERE: (12309..12310) "\n"
+ ATMOSPHERE: (12310..12332) ";; (test 2 (mult 1 2))"
+ ATMOSPHERE: (12332..12333) "\n"
+ ATMOSPHERE: (12333..12357) ";; (test 6 (mult 1 2 3))"
+ ATMOSPHERE: (12357..12358) "\n"
+ ATMOSPHERE: (12358..12385) ";; (test 24 (mult 1 2 3 4))"
+ ATMOSPHERE: (12385..12387) "\n\n"
+ FORM: (12387..12397)
+ OPEN_PAREN: (12387..12388) "("
+ SYMBOL: (12388..12396)
+ IDENTIFIER: (12388..12396) "test-end"
+ CLOSE_PAREN: (12396..12397) ")"
+ ATMOSPHERE: (12397..12399) "\n\n"
+ FORM: (12399..12424)
+ OPEN_PAREN: (12399..12400) "("
+ SYMBOL: (12400..12410)
+ IDENTIFIER: (12400..12410) "test-begin"
+ ATMOSPHERE: (12410..12411) " "
+ CONSTANT: (12411..12423)
+ STRING: (12411..12423) "\"4.3 Macros\""
+ CLOSE_PAREN: (12423..12424) ")"
+ ATMOSPHERE: (12424..12426) "\n\n"
+ FORM: (12426..12757)
+ OPEN_PAREN: (12426..12427) "("
+ SYMBOL: (12427..12431)
+ IDENTIFIER: (12427..12431) "test"
+ ATMOSPHERE: (12431..12432) " "
+ QUOTED_DATUM: (12432..12437)
+ QUOTE: (12432..12433) "'"
+ SYMBOL: (12433..12436)
+ IDENTIFIER: (12433..12436) "now"
+ ATMOSPHERE: (12436..12437) " "
+ FORM: (12437..12756)
+ OPEN_PAREN: (12437..12438) "("
+ SYMBOL: (12438..12448)
+ IDENTIFIER: (12438..12448) "let-syntax"
+ ATMOSPHERE: (12448..12464) "\n "
+ FORM: (12464..12668)
+ OPEN_PAREN: (12464..12465) "("
+ FORM: (12465..12667)
+ OPEN_PAREN: (12465..12466) "("
+ SYMBOL: (12466..12470)
+ IDENTIFIER: (12466..12470) "when"
+ ATMOSPHERE: (12470..12471) " "
+ FORM: (12471..12666)
+ OPEN_PAREN: (12471..12472) "("
+ SYMBOL: (12472..12484)
+ IDENTIFIER: (12472..12484) "syntax-rules"
+ ATMOSPHERE: (12484..12485) " "
+ FORM: (12485..12487)
+ OPEN_PAREN: (12485..12486) "("
+ CLOSE_PAREN: (12486..12487) ")"
+ ATMOSPHERE: (12487..12512) "\n "
+ FORM: (12512..12665)
+ OPEN_PAREN: (12512..12513) "("
+ FORM: (12513..12540)
+ OPEN_PAREN: (12513..12514) "("
+ SYMBOL: (12514..12518)
+ IDENTIFIER: (12514..12518) "when"
+ ATMOSPHERE: (12518..12519) " "
+ SYMBOL: (12519..12523)
+ IDENTIFIER: (12519..12523) "test"
+ ATMOSPHERE: (12523..12524) " "
+ SYMBOL: (12524..12529)
+ IDENTIFIER: (12524..12529) "stmt1"
+ ATMOSPHERE: (12529..12530) " "
+ SYMBOL: (12530..12535)
+ IDENTIFIER: (12530..12535) "stmt2"
+ ATMOSPHERE: (12535..12536) " "
+ SYMBOL: (12536..12539)
+ IDENTIFIER: (12536..12539) "..."
+ CLOSE_PAREN: (12539..12540) ")"
+ ATMOSPHERE: (12540..12566) "\n "
+ FORM: (12566..12664)
+ OPEN_PAREN: (12566..12567) "("
+ SYMBOL: (12567..12569)
+ IDENTIFIER: (12567..12569) "if"
+ ATMOSPHERE: (12569..12570) " "
+ SYMBOL: (12570..12574)
+ IDENTIFIER: (12570..12574) "test"
+ ATMOSPHERE: (12574..12604) "\n "
+ FORM: (12604..12663)
+ OPEN_PAREN: (12604..12605) "("
+ SYMBOL: (12605..12610)
+ IDENTIFIER: (12605..12610) "begin"
+ ATMOSPHERE: (12610..12611) " "
+ SYMBOL: (12611..12616)
+ IDENTIFIER: (12611..12616) "stmt1"
+ ATMOSPHERE: (12616..12653) "\n "
+ SYMBOL: (12653..12658)
+ IDENTIFIER: (12653..12658) "stmt2"
+ ATMOSPHERE: (12658..12659) " "
+ SYMBOL: (12659..12662)
+ IDENTIFIER: (12659..12662) "..."
+ CLOSE_PAREN: (12662..12663) ")"
+ CLOSE_PAREN: (12663..12664) ")"
+ CLOSE_PAREN: (12664..12665) ")"
+ CLOSE_PAREN: (12665..12666) ")"
+ CLOSE_PAREN: (12666..12667) ")"
+ CLOSE_PAREN: (12667..12668) ")"
+ ATMOSPHERE: (12668..12682) "\n "
+ FORM: (12682..12755)
+ OPEN_PAREN: (12682..12683) "("
+ SYMBOL: (12683..12686)
+ IDENTIFIER: (12683..12686) "let"
+ ATMOSPHERE: (12686..12687) " "
+ FORM: (12687..12696)
+ OPEN_PAREN: (12687..12688) "("
+ FORM: (12688..12695)
+ OPEN_PAREN: (12688..12689) "("
+ SYMBOL: (12689..12691)
+ IDENTIFIER: (12689..12691) "if"
+ ATMOSPHERE: (12691..12692) " "
+ CONSTANT: (12692..12694)
+ BOOLEAN: (12692..12694) "#t"
+ CLOSE_PAREN: (12694..12695) ")"
+ CLOSE_PAREN: (12695..12696) ")"
+ ATMOSPHERE: (12696..12712) "\n "
+ FORM: (12712..12736)
+ OPEN_PAREN: (12712..12713) "("
+ SYMBOL: (12713..12717)
+ IDENTIFIER: (12713..12717) "when"
+ ATMOSPHERE: (12717..12718) " "
+ SYMBOL: (12718..12720)
+ IDENTIFIER: (12718..12720) "if"
+ ATMOSPHERE: (12720..12721) " "
+ FORM: (12721..12735)
+ OPEN_PAREN: (12721..12722) "("
+ SYMBOL: (12722..12726)
+ IDENTIFIER: (12722..12726) "set!"
+ ATMOSPHERE: (12726..12727) " "
+ SYMBOL: (12727..12729)
+ IDENTIFIER: (12727..12729) "if"
+ ATMOSPHERE: (12729..12730) " "
+ QUOTED_DATUM: (12730..12734)
+ QUOTE: (12730..12731) "'"
+ SYMBOL: (12731..12734)
+ IDENTIFIER: (12731..12734) "now"
+ CLOSE_PAREN: (12734..12735) ")"
+ CLOSE_PAREN: (12735..12736) ")"
+ ATMOSPHERE: (12736..12752) "\n "
+ SYMBOL: (12752..12754)
+ IDENTIFIER: (12752..12754) "if"
+ CLOSE_PAREN: (12754..12755) ")"
+ CLOSE_PAREN: (12755..12756) ")"
+ CLOSE_PAREN: (12756..12757) ")"
+ ATMOSPHERE: (12757..12759) "\n\n"
+ FORM: (12759..12871)
+ OPEN_PAREN: (12759..12760) "("
+ SYMBOL: (12760..12764)
+ IDENTIFIER: (12760..12764) "test"
+ ATMOSPHERE: (12764..12765) " "
+ QUOTED_DATUM: (12765..12772)
+ QUOTE: (12765..12766) "'"
+ SYMBOL: (12766..12771)
+ IDENTIFIER: (12766..12771) "outer"
+ ATMOSPHERE: (12771..12772) " "
+ FORM: (12772..12870)
+ OPEN_PAREN: (12772..12773) "("
+ SYMBOL: (12773..12776)
+ IDENTIFIER: (12773..12776) "let"
+ ATMOSPHERE: (12776..12777) " "
+ FORM: (12777..12789)
+ OPEN_PAREN: (12777..12778) "("
+ FORM: (12778..12788)
+ OPEN_PAREN: (12778..12779) "("
+ SYMBOL: (12779..12780)
+ IDENTIFIER: (12779..12780) "x"
+ ATMOSPHERE: (12780..12781) " "
+ QUOTED_DATUM: (12781..12787)
+ QUOTE: (12781..12782) "'"
+ SYMBOL: (12782..12787)
+ IDENTIFIER: (12782..12787) "outer"
+ CLOSE_PAREN: (12787..12788) ")"
+ CLOSE_PAREN: (12788..12789) ")"
+ ATMOSPHERE: (12789..12792) "\n "
+ FORM: (12792..12869)
+ OPEN_PAREN: (12792..12793) "("
+ SYMBOL: (12793..12803)
+ IDENTIFIER: (12793..12803) "let-syntax"
+ ATMOSPHERE: (12803..12804) " "
+ FORM: (12804..12835)
+ OPEN_PAREN: (12804..12805) "("
+ FORM: (12805..12834)
+ OPEN_PAREN: (12805..12806) "("
+ SYMBOL: (12806..12807)
+ IDENTIFIER: (12806..12807) "m"
+ ATMOSPHERE: (12807..12808) " "
+ FORM: (12808..12833)
+ OPEN_PAREN: (12808..12809) "("
+ SYMBOL: (12809..12821)
+ IDENTIFIER: (12809..12821) "syntax-rules"
+ ATMOSPHERE: (12821..12822) " "
+ FORM: (12822..12824)
+ OPEN_PAREN: (12822..12823) "("
+ CLOSE_PAREN: (12823..12824) ")"
+ ATMOSPHERE: (12824..12825) " "
+ FORM: (12825..12832)
+ OPEN_PAREN: (12825..12826) "("
+ FORM: (12826..12829)
+ OPEN_PAREN: (12826..12827) "("
+ SYMBOL: (12827..12828)
+ IDENTIFIER: (12827..12828) "m"
+ CLOSE_PAREN: (12828..12829) ")"
+ ATMOSPHERE: (12829..12830) " "
+ SYMBOL: (12830..12831)
+ IDENTIFIER: (12830..12831) "x"
+ CLOSE_PAREN: (12831..12832) ")"
+ CLOSE_PAREN: (12832..12833) ")"
+ CLOSE_PAREN: (12833..12834) ")"
+ CLOSE_PAREN: (12834..12835) ")"
+ ATMOSPHERE: (12835..12840) "\n "
+ FORM: (12840..12868)
+ OPEN_PAREN: (12840..12841) "("
+ SYMBOL: (12841..12844)
+ IDENTIFIER: (12841..12844) "let"
+ ATMOSPHERE: (12844..12845) " "
+ FORM: (12845..12857)
+ OPEN_PAREN: (12845..12846) "("
+ FORM: (12846..12856)
+ OPEN_PAREN: (12846..12847) "("
+ SYMBOL: (12847..12848)
+ IDENTIFIER: (12847..12848) "x"
+ ATMOSPHERE: (12848..12849) " "
+ QUOTED_DATUM: (12849..12855)
+ QUOTE: (12849..12850) "'"
+ SYMBOL: (12850..12855)
+ IDENTIFIER: (12850..12855) "inner"
+ CLOSE_PAREN: (12855..12856) ")"
+ CLOSE_PAREN: (12856..12857) ")"
+ ATMOSPHERE: (12857..12864) "\n "
+ FORM: (12864..12867)
+ OPEN_PAREN: (12864..12865) "("
+ SYMBOL: (12865..12866)
+ IDENTIFIER: (12865..12866) "m"
+ CLOSE_PAREN: (12866..12867) ")"
+ CLOSE_PAREN: (12867..12868) ")"
+ CLOSE_PAREN: (12868..12869) ")"
+ CLOSE_PAREN: (12869..12870) ")"
+ CLOSE_PAREN: (12870..12871) ")"
+ ATMOSPHERE: (12871..12873) "\n\n"
+ ATMOSPHERE: (12873..12891) ";;; FIXME: hygene?"
+ ATMOSPHERE: (12891..12892) "\n"
+ ATMOSPHERE: (12892..12917) ";; (test 7 (letrec-syntax"
+ ATMOSPHERE: (12917..12918) "\n"
+ ATMOSPHERE: (12918..12947) ";; ((my-or (syntax-rules ()"
+ ATMOSPHERE: (12947..12948) "\n"
+ ATMOSPHERE: (12948..12975) ";; ((my-or) #f)"
+ ATMOSPHERE: (12975..12976) "\n"
+ ATMOSPHERE: (12976..13004) ";; ((my-or e) e)"
+ ATMOSPHERE: (13004..13005) "\n"
+ ATMOSPHERE: (13005..13038) ";; ((my-or e1 e2 ...)"
+ ATMOSPHERE: (13038..13039) "\n"
+ ATMOSPHERE: (13039..13071) ";; (let ((temp e1))"
+ ATMOSPHERE: (13071..13072) "\n"
+ ATMOSPHERE: (13072..13098) ";; (if temp"
+ ATMOSPHERE: (13098..13099) "\n"
+ ATMOSPHERE: (13099..13125) ";; temp"
+ ATMOSPHERE: (13125..13126) "\n"
+ ATMOSPHERE: (13126..13168) ";; (my-or e2 ...)))))))"
+ ATMOSPHERE: (13168..13169) "\n"
+ ATMOSPHERE: (13169..13186) ";; (let ((x #f)"
+ ATMOSPHERE: (13186..13187) "\n"
+ ATMOSPHERE: (13187..13203) ";; (y 7)"
+ ATMOSPHERE: (13203..13204) "\n"
+ ATMOSPHERE: (13204..13223) ";; (temp 8)"
+ ATMOSPHERE: (13223..13224) "\n"
+ ATMOSPHERE: (13224..13245) ";; (let odd?)"
+ ATMOSPHERE: (13245..13246) "\n"
+ ATMOSPHERE: (13246..13268) ";; (if even?))"
+ ATMOSPHERE: (13268..13269) "\n"
+ ATMOSPHERE: (13269..13284) ";; (my-or x"
+ ATMOSPHERE: (13284..13285) "\n"
+ ATMOSPHERE: (13285..13309) ";; (let temp)"
+ ATMOSPHERE: (13309..13310) "\n"
+ ATMOSPHERE: (13310..13330) ";; (if y)"
+ ATMOSPHERE: (13330..13331) "\n"
+ ATMOSPHERE: (13331..13350) ";; y))))"
+ ATMOSPHERE: (13350..13352) "\n\n"
+ ATMOSPHERE: (13352..13397) ";;; FIXME: quoted elipsis `(... ...)` support"
+ ATMOSPHERE: (13397..13398) "\n"
+ ATMOSPHERE: (13398..13430) ";; (define-syntax be-like-begin1"
+ ATMOSPHERE: (13430..13431) "\n"
+ ATMOSPHERE: (13431..13452) ";; (syntax-rules ()"
+ ATMOSPHERE: (13452..13453) "\n"
+ ATMOSPHERE: (13453..13482) ";; ((be-like-begin1 name)"
+ ATMOSPHERE: (13482..13483) "\n"
+ ATMOSPHERE: (13483..13510) ";; (define-syntax name"
+ ATMOSPHERE: (13510..13511) "\n"
+ ATMOSPHERE: (13511..13537) ";; (syntax-rules ()"
+ ATMOSPHERE: (13537..13538) "\n"
+ ATMOSPHERE: (13538..13572) ";; ((name expr (... ...))"
+ ATMOSPHERE: (13572..13573) "\n"
+ ATMOSPHERE: (13573..13614) ";; (begin expr (... ...))))))))"
+ ATMOSPHERE: (13614..13615) "\n"
+ ATMOSPHERE: (13615..13644) ";; (be-like-begin1 sequence1)"
+ ATMOSPHERE: (13644..13645) "\n"
+ ATMOSPHERE: (13645..13676) ";; (test 3 (sequence1 0 1 2 3))"
+ ATMOSPHERE: (13676..13678) "\n\n"
+ ATMOSPHERE: (13678..13710) ";; (define-syntax be-like-begin2"
+ ATMOSPHERE: (13710..13711) "\n"
+ ATMOSPHERE: (13711..13732) ";; (syntax-rules ()"
+ ATMOSPHERE: (13732..13733) "\n"
+ ATMOSPHERE: (13733..13762) ";; ((be-like-begin2 name)"
+ ATMOSPHERE: (13762..13763) "\n"
+ ATMOSPHERE: (13763..13790) ";; (define-syntax name"
+ ATMOSPHERE: (13790..13791) "\n"
+ ATMOSPHERE: (13791..13822) ";; (... (syntax-rules ()"
+ ATMOSPHERE: (13822..13823) "\n"
+ ATMOSPHERE: (13823..13856) ";; ((name expr ...)"
+ ATMOSPHERE: (13856..13857) "\n"
+ ATMOSPHERE: (13857..13898) ";; (begin expr ...))))))))"
+ ATMOSPHERE: (13898..13899) "\n"
+ ATMOSPHERE: (13899..13928) ";; (be-like-begin2 sequence2)"
+ ATMOSPHERE: (13928..13929) "\n"
+ ATMOSPHERE: (13929..13960) ";; (test 4 (sequence2 1 2 3 4))"
+ ATMOSPHERE: (13960..13962) "\n\n"
+ FORM: (13962..14152)
+ OPEN_PAREN: (13962..13963) "("
+ SYMBOL: (13963..13976)
+ IDENTIFIER: (13963..13976) "define-syntax"
+ ATMOSPHERE: (13976..13977) " "
+ SYMBOL: (13977..13991)
+ IDENTIFIER: (13977..13991) "be-like-begin3"
+ ATMOSPHERE: (13991..13994) "\n "
+ FORM: (13994..14151)
+ OPEN_PAREN: (13994..13995) "("
+ SYMBOL: (13995..14007)
+ IDENTIFIER: (13995..14007) "syntax-rules"
+ ATMOSPHERE: (14007..14008) " "
+ FORM: (14008..14010)
+ OPEN_PAREN: (14008..14009) "("
+ CLOSE_PAREN: (14009..14010) ")"
+ ATMOSPHERE: (14010..14015) "\n "
+ FORM: (14015..14150)
+ OPEN_PAREN: (14015..14016) "("
+ FORM: (14016..14037)
+ OPEN_PAREN: (14016..14017) "("
+ SYMBOL: (14017..14031)
+ IDENTIFIER: (14017..14031) "be-like-begin3"
+ ATMOSPHERE: (14031..14032) " "
+ SYMBOL: (14032..14036)
+ IDENTIFIER: (14032..14036) "name"
+ CLOSE_PAREN: (14036..14037) ")"
+ ATMOSPHERE: (14037..14043) "\n "
+ FORM: (14043..14149)
+ OPEN_PAREN: (14043..14044) "("
+ SYMBOL: (14044..14057)
+ IDENTIFIER: (14044..14057) "define-syntax"
+ ATMOSPHERE: (14057..14058) " "
+ SYMBOL: (14058..14062)
+ IDENTIFIER: (14058..14062) "name"
+ ATMOSPHERE: (14062..14070) "\n "
+ FORM: (14070..14148)
+ OPEN_PAREN: (14070..14071) "("
+ SYMBOL: (14071..14083)
+ IDENTIFIER: (14071..14083) "syntax-rules"
+ ATMOSPHERE: (14083..14084) " "
+ SYMBOL: (14084..14088)
+ IDENTIFIER: (14084..14088) "dots"
+ ATMOSPHERE: (14088..14089) " "
+ FORM: (14089..14091)
+ OPEN_PAREN: (14089..14090) "("
+ CLOSE_PAREN: (14090..14091) ")"
+ ATMOSPHERE: (14091..14101) "\n "
+ FORM: (14101..14147)
+ OPEN_PAREN: (14101..14102) "("
+ FORM: (14102..14118)
+ OPEN_PAREN: (14102..14103) "("
+ SYMBOL: (14103..14107)
+ IDENTIFIER: (14103..14107) "name"
+ ATMOSPHERE: (14107..14108) " "
+ SYMBOL: (14108..14112)
+ IDENTIFIER: (14108..14112) "expr"
+ ATMOSPHERE: (14112..14113) " "
+ SYMBOL: (14113..14117)
+ IDENTIFIER: (14113..14117) "dots"
+ CLOSE_PAREN: (14117..14118) ")"
+ ATMOSPHERE: (14118..14129) "\n "
+ FORM: (14129..14146)
+ OPEN_PAREN: (14129..14130) "("
+ SYMBOL: (14130..14135)
+ IDENTIFIER: (14130..14135) "begin"
+ ATMOSPHERE: (14135..14136) " "
+ SYMBOL: (14136..14140)
+ IDENTIFIER: (14136..14140) "expr"
+ ATMOSPHERE: (14140..14141) " "
+ SYMBOL: (14141..14145)
+ IDENTIFIER: (14141..14145) "dots"
+ CLOSE_PAREN: (14145..14146) ")"
+ CLOSE_PAREN: (14146..14147) ")"
+ CLOSE_PAREN: (14147..14148) ")"
+ CLOSE_PAREN: (14148..14149) ")"
+ CLOSE_PAREN: (14149..14150) ")"
+ CLOSE_PAREN: (14150..14151) ")"
+ CLOSE_PAREN: (14151..14152) ")"
+ ATMOSPHERE: (14152..14153) "\n"
+ FORM: (14153..14179)
+ OPEN_PAREN: (14153..14154) "("
+ SYMBOL: (14154..14168)
+ IDENTIFIER: (14154..14168) "be-like-begin3"
+ ATMOSPHERE: (14168..14169) " "
+ SYMBOL: (14169..14178)
+ IDENTIFIER: (14169..14178) "sequence3"
+ CLOSE_PAREN: (14178..14179) ")"
+ ATMOSPHERE: (14179..14180) "\n"
+ FORM: (14180..14208)
+ OPEN_PAREN: (14180..14181) "("
+ SYMBOL: (14181..14185)
+ IDENTIFIER: (14181..14185) "test"
+ ATMOSPHERE: (14185..14186) " "
+ CONSTANT: (14186..14187)
+ NUMBER: (14186..14187) "5"
+ ATMOSPHERE: (14187..14188) " "
+ FORM: (14188..14207)
+ OPEN_PAREN: (14188..14189) "("
+ SYMBOL: (14189..14198)
+ IDENTIFIER: (14189..14198) "sequence3"
+ ATMOSPHERE: (14198..14199) " "
+ CONSTANT: (14199..14200)
+ NUMBER: (14199..14200) "2"
+ ATMOSPHERE: (14200..14201) " "
+ CONSTANT: (14201..14202)
+ NUMBER: (14201..14202) "3"
+ ATMOSPHERE: (14202..14203) " "
+ CONSTANT: (14203..14204)
+ NUMBER: (14203..14204) "4"
+ ATMOSPHERE: (14204..14205) " "
+ CONSTANT: (14205..14206)
+ NUMBER: (14205..14206) "5"
+ CLOSE_PAREN: (14206..14207) ")"
+ CLOSE_PAREN: (14207..14208) ")"
+ ATMOSPHERE: (14208..14210) "\n\n"
+ ATMOSPHERE: (14210..14228) ";; ellipsis escape"
+ ATMOSPHERE: (14228..14229) "\n"
+ FORM: (14229..14369)
+ OPEN_PAREN: (14229..14230) "("
+ SYMBOL: (14230..14243)
+ IDENTIFIER: (14230..14243) "define-syntax"
+ ATMOSPHERE: (14243..14244) " "
+ SYMBOL: (14244..14254)
+ IDENTIFIER: (14244..14254) "elli-esc-1"
+ ATMOSPHERE: (14254..14257) "\n "
+ FORM: (14257..14368)
+ OPEN_PAREN: (14257..14258) "("
+ SYMBOL: (14258..14270)
+ IDENTIFIER: (14258..14270) "syntax-rules"
+ ATMOSPHERE: (14270..14271) " "
+ FORM: (14271..14273)
+ OPEN_PAREN: (14271..14272) "("
+ CLOSE_PAREN: (14272..14273) ")"
+ ATMOSPHERE: (14273..14278) "\n "
+ FORM: (14278..14299)
+ OPEN_PAREN: (14278..14279) "("
+ FORM: (14279..14282)
+ OPEN_PAREN: (14279..14280) "("
+ SYMBOL: (14280..14281)
+ IDENTIFIER: (14280..14281) "_"
+ CLOSE_PAREN: (14281..14282) ")"
+ ATMOSPHERE: (14282..14288) "\n "
+ QUOTED_DATUM: (14288..14298)
+ QUOTE: (14288..14289) "'"
+ FORM: (14289..14298)
+ OPEN_PAREN: (14289..14290) "("
+ SYMBOL: (14290..14293)
+ IDENTIFIER: (14290..14293) "..."
+ ATMOSPHERE: (14293..14294) " "
+ SYMBOL: (14294..14297)
+ IDENTIFIER: (14294..14297) "..."
+ CLOSE_PAREN: (14297..14298) ")"
+ CLOSE_PAREN: (14298..14299) ")"
+ ATMOSPHERE: (14299..14304) "\n "
+ FORM: (14304..14331)
+ OPEN_PAREN: (14304..14305) "("
+ FORM: (14305..14310)
+ OPEN_PAREN: (14305..14306) "("
+ SYMBOL: (14306..14307)
+ IDENTIFIER: (14306..14307) "_"
+ ATMOSPHERE: (14307..14308) " "
+ SYMBOL: (14308..14309)
+ IDENTIFIER: (14308..14309) "x"
+ CLOSE_PAREN: (14309..14310) ")"
+ ATMOSPHERE: (14310..14316) "\n "
+ QUOTED_DATUM: (14316..14330)
+ QUOTE: (14316..14317) "'"
+ FORM: (14317..14330)
+ OPEN_PAREN: (14317..14318) "("
+ SYMBOL: (14318..14321)
+ IDENTIFIER: (14318..14321) "..."
+ ATMOSPHERE: (14321..14322) " "
+ FORM: (14322..14329)
+ OPEN_PAREN: (14322..14323) "("
+ SYMBOL: (14323..14324)
+ IDENTIFIER: (14323..14324) "x"
+ ATMOSPHERE: (14324..14325) " "
+ SYMBOL: (14325..14328)
+ IDENTIFIER: (14325..14328) "..."
+ CLOSE_PAREN: (14328..14329) ")"
+ CLOSE_PAREN: (14329..14330) ")"
+ CLOSE_PAREN: (14330..14331) ")"
+ ATMOSPHERE: (14331..14336) "\n "
+ FORM: (14336..14367)
+ OPEN_PAREN: (14336..14337) "("
+ FORM: (14337..14344)
+ OPEN_PAREN: (14337..14338) "("
+ SYMBOL: (14338..14339)
+ IDENTIFIER: (14338..14339) "_"
+ ATMOSPHERE: (14339..14340) " "
+ SYMBOL: (14340..14341)
+ IDENTIFIER: (14340..14341) "x"
+ ATMOSPHERE: (14341..14342) " "
+ SYMBOL: (14342..14343)
+ IDENTIFIER: (14342..14343) "y"
+ CLOSE_PAREN: (14343..14344) ")"
+ ATMOSPHERE: (14344..14350) "\n "
+ QUOTED_DATUM: (14350..14366)
+ QUOTE: (14350..14351) "'"
+ FORM: (14351..14366)
+ OPEN_PAREN: (14351..14352) "("
+ SYMBOL: (14352..14355)
+ IDENTIFIER: (14352..14355) "..."
+ ATMOSPHERE: (14355..14356) " "
+ FORM: (14356..14365)
+ OPEN_PAREN: (14356..14357) "("
+ SYMBOL: (14357..14360)
+ IDENTIFIER: (14357..14360) "..."
+ ATMOSPHERE: (14360..14361) " "
+ SYMBOL: (14361..14362)
+ IDENTIFIER: (14361..14362) "x"
+ ATMOSPHERE: (14362..14363) " "
+ SYMBOL: (14363..14364)
+ IDENTIFIER: (14363..14364) "y"
+ CLOSE_PAREN: (14364..14365) ")"
+ CLOSE_PAREN: (14365..14366) ")"
+ CLOSE_PAREN: (14366..14367) ")"
+ CLOSE_PAREN: (14367..14368) ")"
+ CLOSE_PAREN: (14368..14369) ")"
+ ATMOSPHERE: (14369..14371) "\n\n"
+ FORM: (14371..14395)
+ OPEN_PAREN: (14371..14372) "("
+ SYMBOL: (14372..14376)
+ IDENTIFIER: (14372..14376) "test"
+ ATMOSPHERE: (14376..14377) " "
+ QUOTED_DATUM: (14377..14382)
+ QUOTE: (14377..14378) "'"
+ SYMBOL: (14378..14381)
+ IDENTIFIER: (14378..14381) "..."
+ ATMOSPHERE: (14381..14382) " "
+ FORM: (14382..14394)
+ OPEN_PAREN: (14382..14383) "("
+ SYMBOL: (14383..14393)
+ IDENTIFIER: (14383..14393) "elli-esc-1"
+ CLOSE_PAREN: (14393..14394) ")"
+ CLOSE_PAREN: (14394..14395) ")"
+ ATMOSPHERE: (14395..14396) "\n"
+ FORM: (14396..14430)
+ OPEN_PAREN: (14396..14397) "("
+ SYMBOL: (14397..14401)
+ IDENTIFIER: (14397..14401) "test"
+ ATMOSPHERE: (14401..14402) " "
+ QUOTED_DATUM: (14402..14413)
+ QUOTE: (14402..14403) "'"
+ FORM: (14403..14412)
+ OPEN_PAREN: (14403..14404) "("
+ CONSTANT: (14404..14407)
+ NUMBER: (14404..14407) "100"
+ ATMOSPHERE: (14407..14408) " "
+ SYMBOL: (14408..14411)
+ IDENTIFIER: (14408..14411) "..."
+ CLOSE_PAREN: (14411..14412) ")"
+ ATMOSPHERE: (14412..14413) " "
+ FORM: (14413..14429)
+ OPEN_PAREN: (14413..14414) "("
+ SYMBOL: (14414..14424)
+ IDENTIFIER: (14414..14424) "elli-esc-1"
+ ATMOSPHERE: (14424..14425) " "
+ CONSTANT: (14425..14428)
+ NUMBER: (14425..14428) "100"
+ CLOSE_PAREN: (14428..14429) ")"
+ CLOSE_PAREN: (14429..14430) ")"
+ ATMOSPHERE: (14430..14431) "\n"
+ FORM: (14431..14473)
+ OPEN_PAREN: (14431..14432) "("
+ SYMBOL: (14432..14436)
+ IDENTIFIER: (14432..14436) "test"
+ ATMOSPHERE: (14436..14437) " "
+ QUOTED_DATUM: (14437..14452)
+ QUOTE: (14437..14438) "'"
+ FORM: (14438..14451)
+ OPEN_PAREN: (14438..14439) "("
+ SYMBOL: (14439..14442)
+ IDENTIFIER: (14439..14442) "..."
+ ATMOSPHERE: (14442..14443) " "
+ CONSTANT: (14443..14446)
+ NUMBER: (14443..14446) "100"
+ ATMOSPHERE: (14446..14447) " "
+ CONSTANT: (14447..14450)
+ NUMBER: (14447..14450) "200"
+ CLOSE_PAREN: (14450..14451) ")"
+ ATMOSPHERE: (14451..14452) " "
+ FORM: (14452..14472)
+ OPEN_PAREN: (14452..14453) "("
+ SYMBOL: (14453..14463)
+ IDENTIFIER: (14453..14463) "elli-esc-1"
+ ATMOSPHERE: (14463..14464) " "
+ CONSTANT: (14464..14467)
+ NUMBER: (14464..14467) "100"
+ ATMOSPHERE: (14467..14468) " "
+ CONSTANT: (14468..14471)
+ NUMBER: (14468..14471) "200"
+ CLOSE_PAREN: (14471..14472) ")"
+ CLOSE_PAREN: (14472..14473) ")"
+ ATMOSPHERE: (14473..14475) "\n\n"
+ ATMOSPHERE: (14475..14532) ";; Syntax pattern with ellipsis in middle of proper list."
+ ATMOSPHERE: (14532..14533) "\n"
+ FORM: (14533..14689)
+ OPEN_PAREN: (14533..14534) "("
+ SYMBOL: (14534..14547)
+ IDENTIFIER: (14534..14547) "define-syntax"
+ ATMOSPHERE: (14547..14548) " "
+ SYMBOL: (14548..14554)
+ IDENTIFIER: (14548..14554) "part-2"
+ ATMOSPHERE: (14554..14557) "\n "
+ FORM: (14557..14688)
+ OPEN_PAREN: (14557..14558) "("
+ SYMBOL: (14558..14570)
+ IDENTIFIER: (14558..14570) "syntax-rules"
+ ATMOSPHERE: (14570..14571) " "
+ FORM: (14571..14573)
+ OPEN_PAREN: (14571..14572) "("
+ CLOSE_PAREN: (14572..14573) ")"
+ ATMOSPHERE: (14573..14578) "\n "
+ FORM: (14578..14663)
+ OPEN_PAREN: (14578..14579) "("
+ FORM: (14579..14600)
+ OPEN_PAREN: (14579..14580) "("
+ SYMBOL: (14580..14581)
+ IDENTIFIER: (14580..14581) "_"
+ ATMOSPHERE: (14581..14582) " "
+ SYMBOL: (14582..14583)
+ IDENTIFIER: (14582..14583) "a"
+ ATMOSPHERE: (14583..14584) " "
+ SYMBOL: (14584..14585)
+ IDENTIFIER: (14584..14585) "b"
+ ATMOSPHERE: (14585..14586) " "
+ FORM: (14586..14591)
+ OPEN_PAREN: (14586..14587) "("
+ SYMBOL: (14587..14588)
+ IDENTIFIER: (14587..14588) "m"
+ ATMOSPHERE: (14588..14589) " "
+ SYMBOL: (14589..14590)
+ IDENTIFIER: (14589..14590) "n"
+ CLOSE_PAREN: (14590..14591) ")"
+ ATMOSPHERE: (14591..14592) " "
+ SYMBOL: (14592..14595)
+ IDENTIFIER: (14592..14595) "..."
+ ATMOSPHERE: (14595..14596) " "
+ SYMBOL: (14596..14597)
+ IDENTIFIER: (14596..14597) "x"
+ ATMOSPHERE: (14597..14598) " "
+ SYMBOL: (14598..14599)
+ IDENTIFIER: (14598..14599) "y"
+ CLOSE_PAREN: (14599..14600) ")"
+ ATMOSPHERE: (14600..14606) "\n "
+ FORM: (14606..14662)
+ OPEN_PAREN: (14606..14607) "("
+ SYMBOL: (14607..14613)
+ IDENTIFIER: (14607..14613) "vector"
+ ATMOSPHERE: (14613..14614) " "
+ FORM: (14614..14624)
+ OPEN_PAREN: (14614..14615) "("
+ SYMBOL: (14615..14619)
+ IDENTIFIER: (14615..14619) "list"
+ ATMOSPHERE: (14619..14620) " "
+ SYMBOL: (14620..14621)
+ IDENTIFIER: (14620..14621) "a"
+ ATMOSPHERE: (14621..14622) " "
+ SYMBOL: (14622..14623)
+ IDENTIFIER: (14622..14623) "b"
+ CLOSE_PAREN: (14623..14624) ")"
+ ATMOSPHERE: (14624..14625) " "
+ FORM: (14625..14637)
+ OPEN_PAREN: (14625..14626) "("
+ SYMBOL: (14626..14630)
+ IDENTIFIER: (14626..14630) "list"
+ ATMOSPHERE: (14630..14631) " "
+ SYMBOL: (14631..14632)
+ IDENTIFIER: (14631..14632) "m"
+ ATMOSPHERE: (14632..14633) " "
+ SYMBOL: (14633..14636)
+ IDENTIFIER: (14633..14636) "..."
+ CLOSE_PAREN: (14636..14637) ")"
+ ATMOSPHERE: (14637..14638) " "
+ FORM: (14638..14650)
+ OPEN_PAREN: (14638..14639) "("
+ SYMBOL: (14639..14643)
+ IDENTIFIER: (14639..14643) "list"
+ ATMOSPHERE: (14643..14644) " "
+ SYMBOL: (14644..14645)
+ IDENTIFIER: (14644..14645) "n"
+ ATMOSPHERE: (14645..14646) " "
+ SYMBOL: (14646..14649)
+ IDENTIFIER: (14646..14649) "..."
+ CLOSE_PAREN: (14649..14650) ")"
+ ATMOSPHERE: (14650..14651) " "
+ FORM: (14651..14661)
+ OPEN_PAREN: (14651..14652) "("
+ SYMBOL: (14652..14656)
+ IDENTIFIER: (14652..14656) "list"
+ ATMOSPHERE: (14656..14657) " "
+ SYMBOL: (14657..14658)
+ IDENTIFIER: (14657..14658) "x"
+ ATMOSPHERE: (14658..14659) " "
+ SYMBOL: (14659..14660)
+ IDENTIFIER: (14659..14660) "y"
+ CLOSE_PAREN: (14660..14661) ")"
+ CLOSE_PAREN: (14661..14662) ")"
+ CLOSE_PAREN: (14662..14663) ")"
+ ATMOSPHERE: (14663..14668) "\n "
+ FORM: (14668..14687)
+ OPEN_PAREN: (14668..14669) "("
+ FORM: (14669..14679)
+ OPEN_PAREN: (14669..14670) "("
+ SYMBOL: (14670..14671)
+ IDENTIFIER: (14670..14671) "_"
+ ATMOSPHERE: (14671..14672) " "
+ DOTTED_TAIL: (14672..14678)
+ DOT: (14672..14673) "."
+ ATMOSPHERE: (14673..14674) " "
+ SYMBOL: (14674..14678)
+ IDENTIFIER: (14674..14678) "rest"
+ CLOSE_PAREN: (14678..14679) ")"
+ ATMOSPHERE: (14679..14680) " "
+ QUOTED_DATUM: (14680..14686)
+ QUOTE: (14680..14681) "'"
+ SYMBOL: (14681..14686)
+ IDENTIFIER: (14681..14686) "error"
+ CLOSE_PAREN: (14686..14687) ")"
+ CLOSE_PAREN: (14687..14688) ")"
+ CLOSE_PAREN: (14688..14689) ")"
+ ATMOSPHERE: (14689..14690) "\n"
+ FORM: (14690..14800)
+ OPEN_PAREN: (14690..14691) "("
+ SYMBOL: (14691..14695)
+ IDENTIFIER: (14691..14695) "test"
+ ATMOSPHERE: (14695..14696) " "
+ QUOTED_DATUM: (14696..14742)
+ QUOTE: (14696..14697) "'"
+ VEC: (14697..14737)
+ OPEN_PAREN: (14697..14699) "#("
+ FORM: (14699..14706)
+ OPEN_PAREN: (14699..14700) "("
+ CONSTANT: (14700..14702)
+ NUMBER: (14700..14702) "10"
+ ATMOSPHERE: (14702..14703) " "
+ CONSTANT: (14703..14705)
+ NUMBER: (14703..14705) "43"
+ CLOSE_PAREN: (14705..14706) ")"
+ ATMOSPHERE: (14706..14707) " "
+ FORM: (14707..14717)
+ OPEN_PAREN: (14707..14708) "("
+ CONSTANT: (14708..14710)
+ NUMBER: (14708..14710) "31"
+ ATMOSPHERE: (14710..14711) " "
+ CONSTANT: (14711..14713)
+ NUMBER: (14711..14713) "41"
+ ATMOSPHERE: (14713..14714) " "
+ CONSTANT: (14714..14716)
+ NUMBER: (14714..14716) "51"
+ CLOSE_PAREN: (14716..14717) ")"
+ ATMOSPHERE: (14717..14718) " "
+ FORM: (14718..14728)
+ OPEN_PAREN: (14718..14719) "("
+ CONSTANT: (14719..14721)
+ NUMBER: (14719..14721) "32"
+ ATMOSPHERE: (14721..14722) " "
+ CONSTANT: (14722..14724)
+ NUMBER: (14722..14724) "42"
+ ATMOSPHERE: (14724..14725) " "
+ CONSTANT: (14725..14727)
+ NUMBER: (14725..14727) "52"
+ CLOSE_PAREN: (14727..14728) ")"
+ ATMOSPHERE: (14728..14729) " "
+ FORM: (14729..14736)
+ OPEN_PAREN: (14729..14730) "("
+ CONSTANT: (14730..14732)
+ NUMBER: (14730..14732) "63"
+ ATMOSPHERE: (14732..14733) " "
+ CONSTANT: (14733..14735)
+ NUMBER: (14733..14735) "77"
+ CLOSE_PAREN: (14735..14736) ")"
+ CLOSE_PAREN: (14736..14737) ")"
+ ATMOSPHERE: (14737..14742) "\n "
+ FORM: (14742..14799)
+ OPEN_PAREN: (14742..14743) "("
+ SYMBOL: (14743..14749)
+ IDENTIFIER: (14743..14749) "part-2"
+ ATMOSPHERE: (14749..14750) " "
+ CONSTANT: (14750..14752)
+ NUMBER: (14750..14752) "10"
+ ATMOSPHERE: (14752..14753) " "
+ FORM: (14753..14762)
+ OPEN_PAREN: (14753..14754) "("
+ SYMBOL: (14754..14755)
+ IDENTIFIER: (14754..14755) "+"
+ ATMOSPHERE: (14755..14756) " "
+ CONSTANT: (14756..14758)
+ NUMBER: (14756..14758) "21"
+ ATMOSPHERE: (14758..14759) " "
+ CONSTANT: (14759..14761)
+ NUMBER: (14759..14761) "22"
+ CLOSE_PAREN: (14761..14762) ")"
+ ATMOSPHERE: (14762..14763) " "
+ FORM: (14763..14770)
+ OPEN_PAREN: (14763..14764) "("
+ CONSTANT: (14764..14766)
+ NUMBER: (14764..14766) "31"
+ ATMOSPHERE: (14766..14767) " "
+ CONSTANT: (14767..14769)
+ NUMBER: (14767..14769) "32"
+ CLOSE_PAREN: (14769..14770) ")"
+ ATMOSPHERE: (14770..14771) " "
+ FORM: (14771..14778)
+ OPEN_PAREN: (14771..14772) "("
+ CONSTANT: (14772..14774)
+ NUMBER: (14772..14774) "41"
+ ATMOSPHERE: (14774..14775) " "
+ CONSTANT: (14775..14777)
+ NUMBER: (14775..14777) "42"
+ CLOSE_PAREN: (14777..14778) ")"
+ ATMOSPHERE: (14778..14779) " "
+ FORM: (14779..14786)
+ OPEN_PAREN: (14779..14780) "("
+ CONSTANT: (14780..14782)
+ NUMBER: (14780..14782) "51"
+ ATMOSPHERE: (14782..14783) " "
+ CONSTANT: (14783..14785)
+ NUMBER: (14783..14785) "52"
+ CLOSE_PAREN: (14785..14786) ")"
+ ATMOSPHERE: (14786..14787) " "
+ FORM: (14787..14795)
+ OPEN_PAREN: (14787..14788) "("
+ SYMBOL: (14788..14789)
+ IDENTIFIER: (14788..14789) "+"
+ ATMOSPHERE: (14789..14790) " "
+ CONSTANT: (14790..14792)
+ NUMBER: (14790..14792) "61"
+ ATMOSPHERE: (14792..14793) " "
+ CONSTANT: (14793..14794)
+ NUMBER: (14793..14794) "2"
+ CLOSE_PAREN: (14794..14795) ")"
+ ATMOSPHERE: (14795..14796) " "
+ CONSTANT: (14796..14798)
+ NUMBER: (14796..14798) "77"
+ CLOSE_PAREN: (14798..14799) ")"
+ CLOSE_PAREN: (14799..14800) ")"
+ ATMOSPHERE: (14800..14801) "\n"
+ ATMOSPHERE: (14801..14863) ";; ;; Syntax pattern with ellipsis in middle of improper list."
+ ATMOSPHERE: (14863..14864) "\n"
+ ATMOSPHERE: (14864..14889) ";; (define-syntax part-2x"
+ ATMOSPHERE: (14889..14890) "\n"
+ ATMOSPHERE: (14890..14911) ";; (syntax-rules ()"
+ ATMOSPHERE: (14911..14912) "\n"
+ ATMOSPHERE: (14912..14950) ";; ((_ (a b (m n) ... x y . rest))"
+ ATMOSPHERE: (14950..14951) "\n"
+ ATMOSPHERE: (14951..15014) ";; (vector (list a b) (list m ...) (list n ...) (list x y)"
+ ATMOSPHERE: (15014..15015) "\n"
+ ATMOSPHERE: (15015..15053) ";; (cons \"rest:\" 'rest)))"
+ ATMOSPHERE: (15053..15054) "\n"
+ ATMOSPHERE: (15054..15082) ";; ((_ . rest) 'error)))"
+ ATMOSPHERE: (15082..15083) "\n"
+ ATMOSPHERE: (15083..15143) ";; (test '#((10 43) (31 41 51) (32 42 52) (63 77) (\"rest:\"))"
+ ATMOSPHERE: (15143..15144) "\n"
+ ATMOSPHERE: (15144..15212) ";; (part-2x (10 (+ 21 22) (31 32) (41 42) (51 52) (+ 61 2) 77)))"
+ ATMOSPHERE: (15212..15213) "\n"
+ ATMOSPHERE: (15213..15282) ";; (test '#((10 43) (31 41 51) (32 42 52) (63 77) (\"rest:\" . \"tail\"))"
+ ATMOSPHERE: (15282..15283) "\n"
+ ATMOSPHERE: (15283..15360) ";; (part-2x (10 (+ 21 22) (31 32) (41 42) (51 52) (+ 61 2) 77 . \"tail\")))"
+ ATMOSPHERE: (15360..15362) "\n\n"
+ ATMOSPHERE: (15362..15375) ";; underscore"
+ ATMOSPHERE: (15375..15376) "\n"
+ FORM: (15376..15439)
+ OPEN_PAREN: (15376..15377) "("
+ SYMBOL: (15377..15390)
+ IDENTIFIER: (15377..15390) "define-syntax"
+ ATMOSPHERE: (15390..15391) " "
+ SYMBOL: (15391..15401)
+ IDENTIFIER: (15391..15401) "underscore"
+ ATMOSPHERE: (15401..15404) "\n "
+ FORM: (15404..15438)
+ OPEN_PAREN: (15404..15405) "("
+ SYMBOL: (15405..15417)
+ IDENTIFIER: (15405..15417) "syntax-rules"
+ ATMOSPHERE: (15417..15418) " "
+ FORM: (15418..15420)
+ OPEN_PAREN: (15418..15419) "("
+ CLOSE_PAREN: (15419..15420) ")"
+ ATMOSPHERE: (15420..15425) "\n "
+ FORM: (15425..15437)
+ OPEN_PAREN: (15425..15426) "("
+ FORM: (15426..15433)
+ OPEN_PAREN: (15426..15427) "("
+ SYMBOL: (15427..15430)
+ IDENTIFIER: (15427..15430) "foo"
+ ATMOSPHERE: (15430..15431) " "
+ SYMBOL: (15431..15432)
+ IDENTIFIER: (15431..15432) "_"
+ CLOSE_PAREN: (15432..15433) ")"
+ ATMOSPHERE: (15433..15434) " "
+ QUOTED_DATUM: (15434..15436)
+ QUOTE: (15434..15435) "'"
+ SYMBOL: (15435..15436)
+ IDENTIFIER: (15435..15436) "_"
+ CLOSE_PAREN: (15436..15437) ")"
+ CLOSE_PAREN: (15437..15438) ")"
+ CLOSE_PAREN: (15438..15439) ")"
+ ATMOSPHERE: (15439..15440) "\n"
+ FORM: (15440..15466)
+ OPEN_PAREN: (15440..15441) "("
+ SYMBOL: (15441..15445)
+ IDENTIFIER: (15441..15445) "test"
+ ATMOSPHERE: (15445..15446) " "
+ QUOTED_DATUM: (15446..15449)
+ QUOTE: (15446..15447) "'"
+ SYMBOL: (15447..15448)
+ IDENTIFIER: (15447..15448) "_"
+ ATMOSPHERE: (15448..15449) " "
+ FORM: (15449..15465)
+ OPEN_PAREN: (15449..15450) "("
+ SYMBOL: (15450..15460)
+ IDENTIFIER: (15450..15460) "underscore"
+ ATMOSPHERE: (15460..15461) " "
+ SYMBOL: (15461..15464)
+ IDENTIFIER: (15461..15464) "foo"
+ CLOSE_PAREN: (15464..15465) ")"
+ CLOSE_PAREN: (15465..15466) ")"
+ ATMOSPHERE: (15466..15468) "\n\n"
+ FORM: (15468..15595)
+ OPEN_PAREN: (15468..15469) "("
+ SYMBOL: (15469..15472)
+ IDENTIFIER: (15469..15472) "let"
+ ATMOSPHERE: (15472..15473) " "
+ FORM: (15473..15475)
+ OPEN_PAREN: (15473..15474) "("
+ CLOSE_PAREN: (15474..15475) ")"
+ ATMOSPHERE: (15475..15478) "\n "
+ FORM: (15478..15562)
+ OPEN_PAREN: (15478..15479) "("
+ SYMBOL: (15479..15492)
+ IDENTIFIER: (15479..15492) "define-syntax"
+ ATMOSPHERE: (15492..15493) " "
+ SYMBOL: (15493..15504)
+ IDENTIFIER: (15493..15504) "underscore2"
+ ATMOSPHERE: (15504..15509) "\n "
+ FORM: (15509..15561)
+ OPEN_PAREN: (15509..15510) "("
+ SYMBOL: (15510..15522)
+ IDENTIFIER: (15510..15522) "syntax-rules"
+ ATMOSPHERE: (15522..15523) " "
+ FORM: (15523..15525)
+ OPEN_PAREN: (15523..15524) "("
+ CLOSE_PAREN: (15524..15525) ")"
+ ATMOSPHERE: (15525..15532) "\n "
+ FORM: (15532..15560)
+ OPEN_PAREN: (15532..15533) "("
+ FORM: (15533..15556)
+ OPEN_PAREN: (15533..15534) "("
+ SYMBOL: (15534..15545)
+ IDENTIFIER: (15534..15545) "underscore2"
+ ATMOSPHERE: (15545..15546) " "
+ FORM: (15546..15551)
+ OPEN_PAREN: (15546..15547) "("
+ SYMBOL: (15547..15548)
+ IDENTIFIER: (15547..15548) "a"
+ ATMOSPHERE: (15548..15549) " "
+ SYMBOL: (15549..15550)
+ IDENTIFIER: (15549..15550) "_"
+ CLOSE_PAREN: (15550..15551) ")"
+ ATMOSPHERE: (15551..15552) " "
+ SYMBOL: (15552..15555)
+ IDENTIFIER: (15552..15555) "..."
+ CLOSE_PAREN: (15555..15556) ")"
+ ATMOSPHERE: (15556..15557) " "
+ CONSTANT: (15557..15559)
+ NUMBER: (15557..15559) "42"
+ CLOSE_PAREN: (15559..15560) ")"
+ CLOSE_PAREN: (15560..15561) ")"
+ CLOSE_PAREN: (15561..15562) ")"
+ ATMOSPHERE: (15562..15565) "\n "
+ FORM: (15565..15594)
+ OPEN_PAREN: (15565..15566) "("
+ SYMBOL: (15566..15570)
+ IDENTIFIER: (15566..15570) "test"
+ ATMOSPHERE: (15570..15571) " "
+ CONSTANT: (15571..15573)
+ NUMBER: (15571..15573) "42"
+ ATMOSPHERE: (15573..15574) " "
+ FORM: (15574..15593)
+ OPEN_PAREN: (15574..15575) "("
+ SYMBOL: (15575..15586)
+ IDENTIFIER: (15575..15586) "underscore2"
+ ATMOSPHERE: (15586..15587) " "
+ FORM: (15587..15592)
+ OPEN_PAREN: (15587..15588) "("
+ CONSTANT: (15588..15589)
+ NUMBER: (15588..15589) "1"
+ ATMOSPHERE: (15589..15590) " "
+ CONSTANT: (15590..15591)
+ NUMBER: (15590..15591) "2"
+ CLOSE_PAREN: (15591..15592) ")"
+ CLOSE_PAREN: (15592..15593) ")"
+ CLOSE_PAREN: (15593..15594) ")"
+ CLOSE_PAREN: (15594..15595) ")"
+ ATMOSPHERE: (15595..15597) "\n\n"
+ FORM: (15597..15705)
+ OPEN_PAREN: (15597..15598) "("
+ SYMBOL: (15598..15611)
+ IDENTIFIER: (15598..15611) "define-syntax"
+ ATMOSPHERE: (15611..15612) " "
+ SYMBOL: (15612..15622)
+ IDENTIFIER: (15612..15622) "count-to-2"
+ ATMOSPHERE: (15622..15625) "\n "
+ FORM: (15625..15704)
+ OPEN_PAREN: (15625..15626) "("
+ SYMBOL: (15626..15638)
+ IDENTIFIER: (15626..15638) "syntax-rules"
+ ATMOSPHERE: (15638..15639) " "
+ FORM: (15639..15641)
+ OPEN_PAREN: (15639..15640) "("
+ CLOSE_PAREN: (15640..15641) ")"
+ ATMOSPHERE: (15641..15646) "\n "
+ FORM: (15646..15653)
+ OPEN_PAREN: (15646..15647) "("
+ FORM: (15647..15650)
+ OPEN_PAREN: (15647..15648) "("
+ SYMBOL: (15648..15649)
+ IDENTIFIER: (15648..15649) "_"
+ CLOSE_PAREN: (15649..15650) ")"
+ ATMOSPHERE: (15650..15651) " "
+ CONSTANT: (15651..15652)
+ NUMBER: (15651..15652) "0"
+ CLOSE_PAREN: (15652..15653) ")"
+ ATMOSPHERE: (15653..15658) "\n "
+ FORM: (15658..15667)
+ OPEN_PAREN: (15658..15659) "("
+ FORM: (15659..15664)
+ OPEN_PAREN: (15659..15660) "("
+ SYMBOL: (15660..15661)
+ IDENTIFIER: (15660..15661) "_"
+ ATMOSPHERE: (15661..15662) " "
+ SYMBOL: (15662..15663)
+ IDENTIFIER: (15662..15663) "_"
+ CLOSE_PAREN: (15663..15664) ")"
+ ATMOSPHERE: (15664..15665) " "
+ CONSTANT: (15665..15666)
+ NUMBER: (15665..15666) "1"
+ CLOSE_PAREN: (15666..15667) ")"
+ ATMOSPHERE: (15667..15672) "\n "
+ FORM: (15672..15683)
+ OPEN_PAREN: (15672..15673) "("
+ FORM: (15673..15680)
+ OPEN_PAREN: (15673..15674) "("
+ SYMBOL: (15674..15675)
+ IDENTIFIER: (15674..15675) "_"
+ ATMOSPHERE: (15675..15676) " "
+ SYMBOL: (15676..15677)
+ IDENTIFIER: (15676..15677) "_"
+ ATMOSPHERE: (15677..15678) " "
+ SYMBOL: (15678..15679)
+ IDENTIFIER: (15678..15679) "_"
+ CLOSE_PAREN: (15679..15680) ")"
+ ATMOSPHERE: (15680..15681) " "
+ CONSTANT: (15681..15682)
+ NUMBER: (15681..15682) "2"
+ CLOSE_PAREN: (15682..15683) ")"
+ ATMOSPHERE: (15683..15688) "\n "
+ FORM: (15688..15703)
+ OPEN_PAREN: (15688..15689) "("
+ FORM: (15689..15696)
+ OPEN_PAREN: (15689..15690) "("
+ SYMBOL: (15690..15691)
+ IDENTIFIER: (15690..15691) "_"
+ ATMOSPHERE: (15691..15692) " "
+ DOTTED_TAIL: (15692..15695)
+ DOT: (15692..15693) "."
+ ATMOSPHERE: (15693..15694) " "
+ SYMBOL: (15694..15695)
+ IDENTIFIER: (15694..15695) "_"
+ CLOSE_PAREN: (15695..15696) ")"
+ ATMOSPHERE: (15696..15697) " "
+ QUOTED_DATUM: (15697..15702)
+ QUOTE: (15697..15698) "'"
+ SYMBOL: (15698..15702)
+ IDENTIFIER: (15698..15702) "many"
+ CLOSE_PAREN: (15702..15703) ")"
+ CLOSE_PAREN: (15703..15704) ")"
+ CLOSE_PAREN: (15704..15705) ")"
+ ATMOSPHERE: (15705..15706) "\n"
+ FORM: (15706..15786)
+ OPEN_PAREN: (15706..15707) "("
+ SYMBOL: (15707..15711)
+ IDENTIFIER: (15707..15711) "test"
+ ATMOSPHERE: (15711..15712) " "
+ QUOTED_DATUM: (15712..15728)
+ QUOTE: (15712..15713) "'"
+ FORM: (15713..15723)
+ OPEN_PAREN: (15713..15714) "("
+ CONSTANT: (15714..15715)
+ NUMBER: (15714..15715) "2"
+ ATMOSPHERE: (15715..15716) " "
+ CONSTANT: (15716..15717)
+ NUMBER: (15716..15717) "0"
+ ATMOSPHERE: (15717..15718) " "
+ SYMBOL: (15718..15722)
+ IDENTIFIER: (15718..15722) "many"
+ CLOSE_PAREN: (15722..15723) ")"
+ ATMOSPHERE: (15723..15728) "\n "
+ FORM: (15728..15785)
+ OPEN_PAREN: (15728..15729) "("
+ SYMBOL: (15729..15733)
+ IDENTIFIER: (15729..15733) "list"
+ ATMOSPHERE: (15733..15734) " "
+ FORM: (15734..15750)
+ OPEN_PAREN: (15734..15735) "("
+ SYMBOL: (15735..15745)
+ IDENTIFIER: (15735..15745) "count-to-2"
+ ATMOSPHERE: (15745..15746) " "
+ SYMBOL: (15746..15747)
+ IDENTIFIER: (15746..15747) "a"
+ ATMOSPHERE: (15747..15748) " "
+ SYMBOL: (15748..15749)
+ IDENTIFIER: (15748..15749) "b"
+ CLOSE_PAREN: (15749..15750) ")"
+ ATMOSPHERE: (15750..15751) " "
+ FORM: (15751..15763)
+ OPEN_PAREN: (15751..15752) "("
+ SYMBOL: (15752..15762)
+ IDENTIFIER: (15752..15762) "count-to-2"
+ CLOSE_PAREN: (15762..15763) ")"
+ ATMOSPHERE: (15763..15764) " "
+ FORM: (15764..15784)
+ OPEN_PAREN: (15764..15765) "("
+ SYMBOL: (15765..15775)
+ IDENTIFIER: (15765..15775) "count-to-2"
+ ATMOSPHERE: (15775..15776) " "
+ SYMBOL: (15776..15777)
+ IDENTIFIER: (15776..15777) "a"
+ ATMOSPHERE: (15777..15778) " "
+ SYMBOL: (15778..15779)
+ IDENTIFIER: (15778..15779) "b"
+ ATMOSPHERE: (15779..15780) " "
+ SYMBOL: (15780..15781)
+ IDENTIFIER: (15780..15781) "c"
+ ATMOSPHERE: (15781..15782) " "
+ SYMBOL: (15782..15783)
+ IDENTIFIER: (15782..15783) "d"
+ CLOSE_PAREN: (15783..15784) ")"
+ CLOSE_PAREN: (15784..15785) ")"
+ CLOSE_PAREN: (15785..15786) ")"
+ ATMOSPHERE: (15786..15788) "\n\n"
+ FORM: (15788..15898)
+ OPEN_PAREN: (15788..15789) "("
+ SYMBOL: (15789..15802)
+ IDENTIFIER: (15789..15802) "define-syntax"
+ ATMOSPHERE: (15802..15803) " "
+ SYMBOL: (15803..15814)
+ IDENTIFIER: (15803..15814) "count-to-2_"
+ ATMOSPHERE: (15814..15817) "\n "
+ FORM: (15817..15897)
+ OPEN_PAREN: (15817..15818) "("
+ SYMBOL: (15818..15830)
+ IDENTIFIER: (15818..15830) "syntax-rules"
+ ATMOSPHERE: (15830..15831) " "
+ FORM: (15831..15834)
+ OPEN_PAREN: (15831..15832) "("
+ SYMBOL: (15832..15833)
+ IDENTIFIER: (15832..15833) "_"
+ CLOSE_PAREN: (15833..15834) ")"
+ ATMOSPHERE: (15834..15839) "\n "
+ FORM: (15839..15846)
+ OPEN_PAREN: (15839..15840) "("
+ FORM: (15840..15843)
+ OPEN_PAREN: (15840..15841) "("
+ SYMBOL: (15841..15842)
+ IDENTIFIER: (15841..15842) "_"
+ CLOSE_PAREN: (15842..15843) ")"
+ ATMOSPHERE: (15843..15844) " "
+ CONSTANT: (15844..15845)
+ NUMBER: (15844..15845) "0"
+ CLOSE_PAREN: (15845..15846) ")"
+ ATMOSPHERE: (15846..15851) "\n "
+ FORM: (15851..15860)
+ OPEN_PAREN: (15851..15852) "("
+ FORM: (15852..15857)
+ OPEN_PAREN: (15852..15853) "("
+ SYMBOL: (15853..15854)
+ IDENTIFIER: (15853..15854) "_"
+ ATMOSPHERE: (15854..15855) " "
+ SYMBOL: (15855..15856)
+ IDENTIFIER: (15855..15856) "_"
+ CLOSE_PAREN: (15856..15857) ")"
+ ATMOSPHERE: (15857..15858) " "
+ CONSTANT: (15858..15859)
+ NUMBER: (15858..15859) "1"
+ CLOSE_PAREN: (15859..15860) ")"
+ ATMOSPHERE: (15860..15865) "\n "
+ FORM: (15865..15876)
+ OPEN_PAREN: (15865..15866) "("
+ FORM: (15866..15873)
+ OPEN_PAREN: (15866..15867) "("
+ SYMBOL: (15867..15868)
+ IDENTIFIER: (15867..15868) "_"
+ ATMOSPHERE: (15868..15869) " "
+ SYMBOL: (15869..15870)
+ IDENTIFIER: (15869..15870) "_"
+ ATMOSPHERE: (15870..15871) " "
+ SYMBOL: (15871..15872)
+ IDENTIFIER: (15871..15872) "_"
+ CLOSE_PAREN: (15872..15873) ")"
+ ATMOSPHERE: (15873..15874) " "
+ CONSTANT: (15874..15875)
+ NUMBER: (15874..15875) "2"
+ CLOSE_PAREN: (15875..15876) ")"
+ ATMOSPHERE: (15876..15881) "\n "
+ FORM: (15881..15896)
+ OPEN_PAREN: (15881..15882) "("
+ FORM: (15882..15889)
+ OPEN_PAREN: (15882..15883) "("
+ SYMBOL: (15883..15884)
+ IDENTIFIER: (15883..15884) "x"
+ ATMOSPHERE: (15884..15885) " "
+ DOTTED_TAIL: (15885..15888)
+ DOT: (15885..15886) "."
+ ATMOSPHERE: (15886..15887) " "
+ SYMBOL: (15887..15888)
+ IDENTIFIER: (15887..15888) "y"
+ CLOSE_PAREN: (15888..15889) ")"
+ ATMOSPHERE: (15889..15890) " "
+ QUOTED_DATUM: (15890..15895)
+ QUOTE: (15890..15891) "'"
+ SYMBOL: (15891..15895)
+ IDENTIFIER: (15891..15895) "fail"
+ CLOSE_PAREN: (15895..15896) ")"
+ CLOSE_PAREN: (15896..15897) ")"
+ CLOSE_PAREN: (15897..15898) ")"
+ ATMOSPHERE: (15898..15899) "\n"
+ FORM: (15899..16015)
+ OPEN_PAREN: (15899..15900) "("
+ SYMBOL: (15900..15904)
+ IDENTIFIER: (15900..15904) "test"
+ ATMOSPHERE: (15904..15905) " "
+ QUOTED_DATUM: (15905..15926)
+ QUOTE: (15905..15906) "'"
+ FORM: (15906..15921)
+ OPEN_PAREN: (15906..15907) "("
+ CONSTANT: (15907..15908)
+ NUMBER: (15907..15908) "2"
+ ATMOSPHERE: (15908..15909) " "
+ CONSTANT: (15909..15910)
+ NUMBER: (15909..15910) "0"
+ ATMOSPHERE: (15910..15911) " "
+ SYMBOL: (15911..15915)
+ IDENTIFIER: (15911..15915) "fail"
+ ATMOSPHERE: (15915..15916) " "
+ SYMBOL: (15916..15920)
+ IDENTIFIER: (15916..15920) "fail"
+ CLOSE_PAREN: (15920..15921) ")"
+ ATMOSPHERE: (15921..15926) "\n "
+ FORM: (15926..16014)
+ OPEN_PAREN: (15926..15927) "("
+ SYMBOL: (15927..15931)
+ IDENTIFIER: (15927..15931) "list"
+ ATMOSPHERE: (15931..15932) " "
+ FORM: (15932..15949)
+ OPEN_PAREN: (15932..15933) "("
+ SYMBOL: (15933..15944)
+ IDENTIFIER: (15933..15944) "count-to-2_"
+ ATMOSPHERE: (15944..15945) " "
+ SYMBOL: (15945..15946)
+ IDENTIFIER: (15945..15946) "_"
+ ATMOSPHERE: (15946..15947) " "
+ SYMBOL: (15947..15948)
+ IDENTIFIER: (15947..15948) "_"
+ CLOSE_PAREN: (15948..15949) ")"
+ ATMOSPHERE: (15949..15950) " "
+ FORM: (15950..15963)
+ OPEN_PAREN: (15950..15951) "("
+ SYMBOL: (15951..15962)
+ IDENTIFIER: (15951..15962) "count-to-2_"
+ CLOSE_PAREN: (15962..15963) ")"
+ ATMOSPHERE: (15963..15974) "\n "
+ FORM: (15974..15991)
+ OPEN_PAREN: (15974..15975) "("
+ SYMBOL: (15975..15986)
+ IDENTIFIER: (15975..15986) "count-to-2_"
+ ATMOSPHERE: (15986..15987) " "
+ SYMBOL: (15987..15988)
+ IDENTIFIER: (15987..15988) "a"
+ ATMOSPHERE: (15988..15989) " "
+ SYMBOL: (15989..15990)
+ IDENTIFIER: (15989..15990) "b"
+ CLOSE_PAREN: (15990..15991) ")"
+ ATMOSPHERE: (15991..15992) " "
+ FORM: (15992..16013)
+ OPEN_PAREN: (15992..15993) "("
+ SYMBOL: (15993..16004)
+ IDENTIFIER: (15993..16004) "count-to-2_"
+ ATMOSPHERE: (16004..16005) " "
+ SYMBOL: (16005..16006)
+ IDENTIFIER: (16005..16006) "a"
+ ATMOSPHERE: (16006..16007) " "
+ SYMBOL: (16007..16008)
+ IDENTIFIER: (16007..16008) "b"
+ ATMOSPHERE: (16008..16009) " "
+ SYMBOL: (16009..16010)
+ IDENTIFIER: (16009..16010) "c"
+ ATMOSPHERE: (16010..16011) " "
+ SYMBOL: (16011..16012)
+ IDENTIFIER: (16011..16012) "d"
+ CLOSE_PAREN: (16012..16013) ")"
+ CLOSE_PAREN: (16013..16014) ")"
+ CLOSE_PAREN: (16014..16015) ")"
+ ATMOSPHERE: (16015..16017) "\n\n"
+ FORM: (16017..16209)
+ OPEN_PAREN: (16017..16018) "("
+ SYMBOL: (16018..16031)
+ IDENTIFIER: (16018..16031) "define-syntax"
+ ATMOSPHERE: (16031..16032) " "
+ SYMBOL: (16032..16043)
+ IDENTIFIER: (16032..16043) "jabberwocky"
+ ATMOSPHERE: (16043..16046) "\n "
+ FORM: (16046..16208)
+ OPEN_PAREN: (16046..16047) "("
+ SYMBOL: (16047..16059)
+ IDENTIFIER: (16047..16059) "syntax-rules"
+ ATMOSPHERE: (16059..16060) " "
+ FORM: (16060..16062)
+ OPEN_PAREN: (16060..16061) "("
+ CLOSE_PAREN: (16061..16062) ")"
+ ATMOSPHERE: (16062..16067) "\n "
+ FORM: (16067..16207)
+ OPEN_PAREN: (16067..16068) "("
+ FORM: (16068..16078)
+ OPEN_PAREN: (16068..16069) "("
+ SYMBOL: (16069..16070)
+ IDENTIFIER: (16069..16070) "_"
+ ATMOSPHERE: (16070..16071) " "
+ SYMBOL: (16071..16077)
+ IDENTIFIER: (16071..16077) "hatter"
+ CLOSE_PAREN: (16077..16078) ")"
+ ATMOSPHERE: (16078..16084) "\n "
+ FORM: (16084..16206)
+ OPEN_PAREN: (16084..16085) "("
+ SYMBOL: (16085..16090)
+ IDENTIFIER: (16085..16090) "begin"
+ ATMOSPHERE: (16090..16098) "\n "
+ FORM: (16098..16120)
+ OPEN_PAREN: (16098..16099) "("
+ SYMBOL: (16099..16105)
+ IDENTIFIER: (16099..16105) "define"
+ ATMOSPHERE: (16105..16106) " "
+ SYMBOL: (16106..16116)
+ IDENTIFIER: (16106..16116) "march-hare"
+ ATMOSPHERE: (16116..16117) " "
+ CONSTANT: (16117..16119)
+ NUMBER: (16117..16119) "42"
+ CLOSE_PAREN: (16119..16120) ")"
+ ATMOSPHERE: (16120..16128) "\n "
+ FORM: (16128..16205)
+ OPEN_PAREN: (16128..16129) "("
+ SYMBOL: (16129..16142)
+ IDENTIFIER: (16129..16142) "define-syntax"
+ ATMOSPHERE: (16142..16143) " "
+ SYMBOL: (16143..16149)
+ IDENTIFIER: (16143..16149) "hatter"
+ ATMOSPHERE: (16149..16159) "\n "
+ FORM: (16159..16204)
+ OPEN_PAREN: (16159..16160) "("
+ SYMBOL: (16160..16172)
+ IDENTIFIER: (16160..16172) "syntax-rules"
+ ATMOSPHERE: (16172..16173) " "
+ FORM: (16173..16175)
+ OPEN_PAREN: (16173..16174) "("
+ CLOSE_PAREN: (16174..16175) ")"
+ ATMOSPHERE: (16175..16187) "\n "
+ FORM: (16187..16203)
+ OPEN_PAREN: (16187..16188) "("
+ FORM: (16188..16191)
+ OPEN_PAREN: (16188..16189) "("
+ SYMBOL: (16189..16190)
+ IDENTIFIER: (16189..16190) "_"
+ CLOSE_PAREN: (16190..16191) ")"
+ ATMOSPHERE: (16191..16192) " "
+ SYMBOL: (16192..16202)
+ IDENTIFIER: (16192..16202) "march-hare"
+ CLOSE_PAREN: (16202..16203) ")"
+ CLOSE_PAREN: (16203..16204) ")"
+ CLOSE_PAREN: (16204..16205) ")"
+ CLOSE_PAREN: (16205..16206) ")"
+ CLOSE_PAREN: (16206..16207) ")"
+ CLOSE_PAREN: (16207..16208) ")"
+ CLOSE_PAREN: (16208..16209) ")"
+ ATMOSPHERE: (16209..16210) "\n"
+ FORM: (16210..16234)
+ OPEN_PAREN: (16210..16211) "("
+ SYMBOL: (16211..16222)
+ IDENTIFIER: (16211..16222) "jabberwocky"
+ ATMOSPHERE: (16222..16223) " "
+ SYMBOL: (16223..16233)
+ IDENTIFIER: (16223..16233) "mad-hatter"
+ CLOSE_PAREN: (16233..16234) ")"
+ ATMOSPHERE: (16234..16235) "\n"
+ FORM: (16235..16257)
+ OPEN_PAREN: (16235..16236) "("
+ SYMBOL: (16236..16240)
+ IDENTIFIER: (16236..16240) "test"
+ ATMOSPHERE: (16240..16241) " "
+ CONSTANT: (16241..16243)
+ NUMBER: (16241..16243) "42"
+ ATMOSPHERE: (16243..16244) " "
+ FORM: (16244..16256)
+ OPEN_PAREN: (16244..16245) "("
+ SYMBOL: (16245..16255)
+ IDENTIFIER: (16245..16255) "mad-hatter"
+ CLOSE_PAREN: (16255..16256) ")"
+ CLOSE_PAREN: (16256..16257) ")"
+ ATMOSPHERE: (16257..16259) "\n\n"
+ ATMOSPHERE: (16259..16307) ";; (test 'ok (let ((=> #f)) (cond (#t => 'ok))))"
+ ATMOSPHERE: (16307..16309) "\n\n"
+ FORM: (16309..16387)
+ OPEN_PAREN: (16309..16310) "("
+ SYMBOL: (16310..16313)
+ IDENTIFIER: (16310..16313) "let"
+ ATMOSPHERE: (16313..16314) " "
+ FORM: (16314..16316)
+ OPEN_PAREN: (16314..16315) "("
+ CLOSE_PAREN: (16315..16316) ")"
+ ATMOSPHERE: (16316..16319) "\n "
+ FORM: (16319..16331)
+ OPEN_PAREN: (16319..16320) "("
+ SYMBOL: (16320..16326)
+ IDENTIFIER: (16320..16326) "define"
+ ATMOSPHERE: (16326..16327) " "
+ SYMBOL: (16327..16328)
+ IDENTIFIER: (16327..16328) "x"
+ ATMOSPHERE: (16328..16329) " "
+ CONSTANT: (16329..16330)
+ NUMBER: (16329..16330) "1"
+ CLOSE_PAREN: (16330..16331) ")"
+ ATMOSPHERE: (16331..16334) "\n "
+ FORM: (16334..16373)
+ OPEN_PAREN: (16334..16335) "("
+ SYMBOL: (16335..16345)
+ IDENTIFIER: (16335..16345) "let-syntax"
+ ATMOSPHERE: (16345..16346) " "
+ FORM: (16346..16348)
+ OPEN_PAREN: (16346..16347) "("
+ CLOSE_PAREN: (16347..16348) ")"
+ ATMOSPHERE: (16348..16353) "\n "
+ FORM: (16353..16365)
+ OPEN_PAREN: (16353..16354) "("
+ SYMBOL: (16354..16360)
+ IDENTIFIER: (16354..16360) "define"
+ ATMOSPHERE: (16360..16361) " "
+ SYMBOL: (16361..16362)
+ IDENTIFIER: (16361..16362) "x"
+ ATMOSPHERE: (16362..16363) " "
+ CONSTANT: (16363..16364)
+ NUMBER: (16363..16364) "2"
+ CLOSE_PAREN: (16364..16365) ")"
+ ATMOSPHERE: (16365..16370) "\n "
+ CONSTANT: (16370..16372)
+ BOOLEAN: (16370..16372) "#f"
+ CLOSE_PAREN: (16372..16373) ")"
+ ATMOSPHERE: (16373..16376) "\n "
+ FORM: (16376..16386)
+ OPEN_PAREN: (16376..16377) "("
+ SYMBOL: (16377..16381)
+ IDENTIFIER: (16377..16381) "test"
+ ATMOSPHERE: (16381..16382) " "
+ CONSTANT: (16382..16383)
+ NUMBER: (16382..16383) "1"
+ ATMOSPHERE: (16383..16384) " "
+ SYMBOL: (16384..16385)
+ IDENTIFIER: (16384..16385) "x"
+ CLOSE_PAREN: (16385..16386) ")"
+ CLOSE_PAREN: (16386..16387) ")"
+ ATMOSPHERE: (16387..16389) "\n\n"
+ FORM: (16389..16565)
+ OPEN_PAREN: (16389..16390) "("
+ SYMBOL: (16390..16393)
+ IDENTIFIER: (16390..16393) "let"
+ ATMOSPHERE: (16393..16394) " "
+ FORM: (16394..16396)
+ OPEN_PAREN: (16394..16395) "("
+ CLOSE_PAREN: (16395..16396) ")"
+ ATMOSPHERE: (16396..16398) "\n "
+ FORM: (16398..16532)
+ OPEN_PAREN: (16398..16399) "("
+ SYMBOL: (16399..16412)
+ IDENTIFIER: (16399..16412) "define-syntax"
+ ATMOSPHERE: (16412..16413) " "
+ SYMBOL: (16413..16416)
+ IDENTIFIER: (16413..16416) "foo"
+ ATMOSPHERE: (16416..16420) "\n "
+ FORM: (16420..16531)
+ OPEN_PAREN: (16420..16421) "("
+ SYMBOL: (16421..16433)
+ IDENTIFIER: (16421..16433) "syntax-rules"
+ ATMOSPHERE: (16433..16434) " "
+ FORM: (16434..16436)
+ OPEN_PAREN: (16434..16435) "("
+ CLOSE_PAREN: (16435..16436) ")"
+ ATMOSPHERE: (16436..16442) "\n "
+ FORM: (16442..16530)
+ OPEN_PAREN: (16442..16443) "("
+ FORM: (16443..16454)
+ OPEN_PAREN: (16443..16444) "("
+ SYMBOL: (16444..16447)
+ IDENTIFIER: (16444..16447) "foo"
+ ATMOSPHERE: (16447..16448) " "
+ SYMBOL: (16448..16451)
+ IDENTIFIER: (16448..16451) "bar"
+ ATMOSPHERE: (16451..16452) " "
+ SYMBOL: (16452..16453)
+ IDENTIFIER: (16452..16453) "y"
+ CLOSE_PAREN: (16453..16454) ")"
+ ATMOSPHERE: (16454..16461) "\n "
+ FORM: (16461..16529)
+ OPEN_PAREN: (16461..16462) "("
+ SYMBOL: (16462..16475)
+ IDENTIFIER: (16462..16475) "define-syntax"
+ ATMOSPHERE: (16475..16476) " "
+ SYMBOL: (16476..16479)
+ IDENTIFIER: (16476..16479) "bar"
+ ATMOSPHERE: (16479..16488) "\n "
+ FORM: (16488..16528)
+ OPEN_PAREN: (16488..16489) "("
+ SYMBOL: (16489..16501)
+ IDENTIFIER: (16489..16501) "syntax-rules"
+ ATMOSPHERE: (16501..16502) " "
+ FORM: (16502..16504)
+ OPEN_PAREN: (16502..16503) "("
+ CLOSE_PAREN: (16503..16504) ")"
+ ATMOSPHERE: (16504..16515) "\n "
+ FORM: (16515..16527)
+ OPEN_PAREN: (16515..16516) "("
+ FORM: (16516..16523)
+ OPEN_PAREN: (16516..16517) "("
+ SYMBOL: (16517..16520)
+ IDENTIFIER: (16517..16520) "bar"
+ ATMOSPHERE: (16520..16521) " "
+ SYMBOL: (16521..16522)
+ IDENTIFIER: (16521..16522) "x"
+ CLOSE_PAREN: (16522..16523) ")"
+ ATMOSPHERE: (16523..16524) " "
+ QUOTED_DATUM: (16524..16526)
+ QUOTE: (16524..16525) "'"
+ SYMBOL: (16525..16526)
+ IDENTIFIER: (16525..16526) "y"
+ CLOSE_PAREN: (16526..16527) ")"
+ CLOSE_PAREN: (16527..16528) ")"
+ CLOSE_PAREN: (16528..16529) ")"
+ CLOSE_PAREN: (16529..16530) ")"
+ CLOSE_PAREN: (16530..16531) ")"
+ CLOSE_PAREN: (16531..16532) ")"
+ ATMOSPHERE: (16532..16534) "\n "
+ FORM: (16534..16545)
+ OPEN_PAREN: (16534..16535) "("
+ SYMBOL: (16535..16538)
+ IDENTIFIER: (16535..16538) "foo"
+ ATMOSPHERE: (16538..16539) " "
+ SYMBOL: (16539..16542)
+ IDENTIFIER: (16539..16542) "bar"
+ ATMOSPHERE: (16542..16543) " "
+ SYMBOL: (16543..16544)
+ IDENTIFIER: (16543..16544) "x"
+ CLOSE_PAREN: (16544..16545) ")"
+ ATMOSPHERE: (16545..16547) "\n "
+ FORM: (16547..16564)
+ OPEN_PAREN: (16547..16548) "("
+ SYMBOL: (16548..16552)
+ IDENTIFIER: (16548..16552) "test"
+ ATMOSPHERE: (16552..16553) " "
+ QUOTED_DATUM: (16553..16556)
+ QUOTE: (16553..16554) "'"
+ SYMBOL: (16554..16555)
+ IDENTIFIER: (16554..16555) "x"
+ ATMOSPHERE: (16555..16556) " "
+ FORM: (16556..16563)
+ OPEN_PAREN: (16556..16557) "("
+ SYMBOL: (16557..16560)
+ IDENTIFIER: (16557..16560) "bar"
+ ATMOSPHERE: (16560..16561) " "
+ CONSTANT: (16561..16562)
+ NUMBER: (16561..16562) "1"
+ CLOSE_PAREN: (16562..16563) ")"
+ CLOSE_PAREN: (16563..16564) ")"
+ CLOSE_PAREN: (16564..16565) ")"
+ ATMOSPHERE: (16565..16567) "\n\n"
+ ATMOSPHERE: (16567..16613) ";;; FIXME: Mutual recursion of `define` forms?"
+ ATMOSPHERE: (16613..16614) "\n"
+ ATMOSPHERE: (16614..16623) ";; (begin"
+ ATMOSPHERE: (16623..16624) "\n"
+ ATMOSPHERE: (16624..16648) ";; (define-syntax ffoo"
+ ATMOSPHERE: (16648..16649) "\n"
+ ATMOSPHERE: (16649..16672) ";; (syntax-rules ()"
+ ATMOSPHERE: (16672..16673) "\n"
+ ATMOSPHERE: (16673..16692) ";; ((ffoo ff)"
+ ATMOSPHERE: (16692..16693) "\n"
+ ATMOSPHERE: (16693..16709) ";; (begin"
+ ATMOSPHERE: (16709..16710) "\n"
+ ATMOSPHERE: (16710..16736) ";; (define (ff x)"
+ ATMOSPHERE: (16736..16737) "\n"
+ ATMOSPHERE: (16737..16758) ";; (gg x))"
+ ATMOSPHERE: (16758..16759) "\n"
+ ATMOSPHERE: (16759..16785) ";; (define (gg x)"
+ ATMOSPHERE: (16785..16786) "\n"
+ ATMOSPHERE: (16786..16812) ";; (* x x))))))"
+ ATMOSPHERE: (16812..16813) "\n"
+ ATMOSPHERE: (16813..16827) ";; (ffoo ff)"
+ ATMOSPHERE: (16827..16828) "\n"
+ ATMOSPHERE: (16828..16852) ";; (test 100 (ff 10)))"
+ ATMOSPHERE: (16852..16854) "\n\n"
+ FORM: (16854..16998)
+ OPEN_PAREN: (16854..16855) "("
+ SYMBOL: (16855..16865)
+ IDENTIFIER: (16855..16865) "let-syntax"
+ ATMOSPHERE: (16865..16866) " "
+ FORM: (16866..16969)
+ OPEN_PAREN: (16866..16867) "("
+ FORM: (16867..16968)
+ OPEN_PAREN: (16867..16868) "("
+ SYMBOL: (16868..16878)
+ IDENTIFIER: (16868..16878) "vector-lit"
+ ATMOSPHERE: (16878..16894) "\n "
+ FORM: (16894..16967)
+ OPEN_PAREN: (16894..16895) "("
+ SYMBOL: (16895..16907)
+ IDENTIFIER: (16895..16907) "syntax-rules"
+ ATMOSPHERE: (16907..16908) " "
+ FORM: (16908..16910)
+ OPEN_PAREN: (16908..16909) "("
+ CLOSE_PAREN: (16909..16910) ")"
+ ATMOSPHERE: (16910..16928) "\n "
+ FORM: (16928..16966)
+ OPEN_PAREN: (16928..16929) "("
+ FORM: (16929..16941)
+ OPEN_PAREN: (16929..16930) "("
+ SYMBOL: (16930..16940)
+ IDENTIFIER: (16930..16940) "vector-lit"
+ CLOSE_PAREN: (16940..16941) ")"
+ ATMOSPHERE: (16941..16960) "\n "
+ QUOTED_DATUM: (16960..16965)
+ QUOTE: (16960..16961) "'"
+ VEC: (16961..16965)
+ OPEN_PAREN: (16961..16963) "#("
+ SYMBOL: (16963..16964)
+ IDENTIFIER: (16963..16964) "b"
+ CLOSE_PAREN: (16964..16965) ")"
+ CLOSE_PAREN: (16965..16966) ")"
+ CLOSE_PAREN: (16966..16967) ")"
+ CLOSE_PAREN: (16967..16968) ")"
+ CLOSE_PAREN: (16968..16969) ")"
+ ATMOSPHERE: (16969..16972) "\n "
+ FORM: (16972..16997)
+ OPEN_PAREN: (16972..16973) "("
+ SYMBOL: (16973..16977)
+ IDENTIFIER: (16973..16977) "test"
+ ATMOSPHERE: (16977..16978) " "
+ QUOTED_DATUM: (16978..16984)
+ QUOTE: (16978..16979) "'"
+ VEC: (16979..16983)
+ OPEN_PAREN: (16979..16981) "#("
+ SYMBOL: (16981..16982)
+ IDENTIFIER: (16981..16982) "b"
+ CLOSE_PAREN: (16982..16983) ")"
+ ATMOSPHERE: (16983..16984) " "
+ FORM: (16984..16996)
+ OPEN_PAREN: (16984..16985) "("
+ SYMBOL: (16985..16995)
+ IDENTIFIER: (16985..16995) "vector-lit"
+ CLOSE_PAREN: (16995..16996) ")"
+ CLOSE_PAREN: (16996..16997) ")"
+ CLOSE_PAREN: (16997..16998) ")"
+ ATMOSPHERE: (16998..17000) "\n\n"
+ ATMOSPHERE: (17000..17010) ";; (let ()"
+ ATMOSPHERE: (17010..17011) "\n"
+ ATMOSPHERE: (17011..17040) ";; ;; forward hygienic refs"
+ ATMOSPHERE: (17040..17041) "\n"
+ ATMOSPHERE: (17041..17067) ";; (define-syntax foo399"
+ ATMOSPHERE: (17067..17068) "\n"
+ ATMOSPHERE: (17068..17113) ";; (syntax-rules () ((foo399) (bar399))))"
+ ATMOSPHERE: (17113..17114) "\n"
+ ATMOSPHERE: (17114..17136) ";; (define (quux399)"
+ ATMOSPHERE: (17136..17137) "\n"
+ ATMOSPHERE: (17137..17153) ";; (foo399))"
+ ATMOSPHERE: (17153..17154) "\n"
+ ATMOSPHERE: (17154..17175) ";; (define (bar399)"
+ ATMOSPHERE: (17175..17176) "\n"
+ ATMOSPHERE: (17176..17186) ";; 42)"
+ ATMOSPHERE: (17186..17187) "\n"
+ ATMOSPHERE: (17187..17212) ";; (test 42 (quux399)))"
+ ATMOSPHERE: (17212..17214) "\n\n"
+ ATMOSPHERE: (17214..17232) ";;; FIXME: Hygene."
+ ATMOSPHERE: (17232..17233) "\n"
+ FORM: (17233..17519)
+ OPEN_PAREN: (17233..17234) "("
+ SYMBOL: (17234..17244)
+ IDENTIFIER: (17234..17244) "let-syntax"
+ ATMOSPHERE: (17244..17249) "\n "
+ FORM: (17249..17483)
+ OPEN_PAREN: (17249..17250) "("
+ FORM: (17250..17482)
+ OPEN_PAREN: (17250..17251) "("
+ SYMBOL: (17251..17252)
+ IDENTIFIER: (17251..17252) "m"
+ ATMOSPHERE: (17252..17253) " "
+ FORM: (17253..17481)
+ OPEN_PAREN: (17253..17254) "("
+ SYMBOL: (17254..17266)
+ IDENTIFIER: (17254..17266) "syntax-rules"
+ ATMOSPHERE: (17266..17267) " "
+ FORM: (17267..17269)
+ OPEN_PAREN: (17267..17268) "("
+ CLOSE_PAREN: (17268..17269) ")"
+ ATMOSPHERE: (17269..17280) "\n "
+ FORM: (17280..17480)
+ OPEN_PAREN: (17280..17281) "("
+ FORM: (17281..17286)
+ OPEN_PAREN: (17281..17282) "("
+ SYMBOL: (17282..17283)
+ IDENTIFIER: (17282..17283) "m"
+ ATMOSPHERE: (17283..17284) " "
+ SYMBOL: (17284..17285)
+ IDENTIFIER: (17284..17285) "x"
+ CLOSE_PAREN: (17285..17286) ")"
+ ATMOSPHERE: (17286..17287) " "
+ FORM: (17287..17479)
+ OPEN_PAREN: (17287..17288) "("
+ SYMBOL: (17288..17298)
+ IDENTIFIER: (17288..17298) "let-syntax"
+ ATMOSPHERE: (17298..17320) "\n "
+ FORM: (17320..17453)
+ OPEN_PAREN: (17320..17321) "("
+ FORM: (17321..17452)
+ OPEN_PAREN: (17321..17322) "("
+ SYMBOL: (17322..17323)
+ IDENTIFIER: (17322..17323) "n"
+ ATMOSPHERE: (17323..17324) " "
+ FORM: (17324..17451)
+ OPEN_PAREN: (17324..17325) "("
+ SYMBOL: (17325..17337)
+ IDENTIFIER: (17325..17337) "syntax-rules"
+ ATMOSPHERE: (17337..17338) " "
+ FORM: (17338..17341)
+ OPEN_PAREN: (17338..17339) "("
+ SYMBOL: (17339..17340)
+ IDENTIFIER: (17339..17340) "k"
+ CLOSE_PAREN: (17340..17341) ")"
+ ATMOSPHERE: (17341..17369) "\n "
+ FORM: (17369..17396)
+ OPEN_PAREN: (17369..17370) "("
+ FORM: (17370..17375)
+ OPEN_PAREN: (17370..17371) "("
+ SYMBOL: (17371..17372)
+ IDENTIFIER: (17371..17372) "n"
+ ATMOSPHERE: (17372..17373) " "
+ SYMBOL: (17373..17374)
+ IDENTIFIER: (17373..17374) "x"
+ CLOSE_PAREN: (17374..17375) ")"
+ ATMOSPHERE: (17375..17376) " "
+ QUOTED_DATUM: (17376..17395)
+ QUOTE: (17376..17377) "'"
+ SYMBOL: (17377..17395)
+ IDENTIFIER: (17377..17395) "bound-identifier=?"
+ CLOSE_PAREN: (17395..17396) ")"
+ ATMOSPHERE: (17396..17424) "\n "
+ FORM: (17424..17450)
+ OPEN_PAREN: (17424..17425) "("
+ FORM: (17425..17430)
+ OPEN_PAREN: (17425..17426) "("
+ SYMBOL: (17426..17427)
+ IDENTIFIER: (17426..17427) "n"
+ ATMOSPHERE: (17427..17428) " "
+ SYMBOL: (17428..17429)
+ IDENTIFIER: (17428..17429) "y"
+ CLOSE_PAREN: (17429..17430) ")"
+ ATMOSPHERE: (17430..17431) " "
+ QUOTED_DATUM: (17431..17449)
+ QUOTE: (17431..17432) "'"
+ SYMBOL: (17432..17449)
+ IDENTIFIER: (17432..17449) "free-identifier=?"
+ CLOSE_PAREN: (17449..17450) ")"
+ CLOSE_PAREN: (17450..17451) ")"
+ CLOSE_PAREN: (17451..17452) ")"
+ CLOSE_PAREN: (17452..17453) ")"
+ ATMOSPHERE: (17453..17473) "\n "
+ FORM: (17473..17478)
+ OPEN_PAREN: (17473..17474) "("
+ SYMBOL: (17474..17475)
+ IDENTIFIER: (17474..17475) "n"
+ ATMOSPHERE: (17475..17476) " "
+ SYMBOL: (17476..17477)
+ IDENTIFIER: (17476..17477) "z"
+ CLOSE_PAREN: (17477..17478) ")"
+ CLOSE_PAREN: (17478..17479) ")"
+ CLOSE_PAREN: (17479..17480) ")"
+ CLOSE_PAREN: (17480..17481) ")"
+ CLOSE_PAREN: (17481..17482) ")"
+ CLOSE_PAREN: (17482..17483) ")"
+ ATMOSPHERE: (17483..17486) "\n "
+ FORM: (17486..17518)
+ OPEN_PAREN: (17486..17487) "("
+ SYMBOL: (17487..17491)
+ IDENTIFIER: (17487..17491) "test"
+ ATMOSPHERE: (17491..17492) " "
+ QUOTED_DATUM: (17492..17512)
+ QUOTE: (17492..17493) "'"
+ SYMBOL: (17493..17511)
+ IDENTIFIER: (17493..17511) "bound-identifier=?"
+ ATMOSPHERE: (17511..17512) " "
+ FORM: (17512..17517)
+ OPEN_PAREN: (17512..17513) "("
+ SYMBOL: (17513..17514)
+ IDENTIFIER: (17513..17514) "m"
+ ATMOSPHERE: (17514..17515) " "
+ SYMBOL: (17515..17516)
+ IDENTIFIER: (17515..17516) "k"
+ CLOSE_PAREN: (17516..17517) ")"
+ CLOSE_PAREN: (17517..17518) ")"
+ CLOSE_PAREN: (17518..17519) ")"
+ ATMOSPHERE: (17519..17521) "\n\n"
+ ATMOSPHERE: (17521..17569) ";; literal has priority to ellipsis (R7RS 4.3.2)"
+ ATMOSPHERE: (17569..17570) "\n"
+ FORM: (17570..17703)
+ OPEN_PAREN: (17570..17571) "("
+ SYMBOL: (17571..17574)
+ IDENTIFIER: (17571..17574) "let"
+ ATMOSPHERE: (17574..17575) " "
+ FORM: (17575..17577)
+ OPEN_PAREN: (17575..17576) "("
+ CLOSE_PAREN: (17576..17577) ")"
+ ATMOSPHERE: (17577..17580) "\n "
+ FORM: (17580..17665)
+ OPEN_PAREN: (17580..17581) "("
+ SYMBOL: (17581..17594)
+ IDENTIFIER: (17581..17594) "define-syntax"
+ ATMOSPHERE: (17594..17595) " "
+ SYMBOL: (17595..17605)
+ IDENTIFIER: (17595..17605) "elli-lit-1"
+ ATMOSPHERE: (17605..17610) "\n "
+ FORM: (17610..17664)
+ OPEN_PAREN: (17610..17611) "("
+ SYMBOL: (17611..17623)
+ IDENTIFIER: (17611..17623) "syntax-rules"
+ ATMOSPHERE: (17623..17624) " "
+ SYMBOL: (17624..17627)
+ IDENTIFIER: (17624..17627) "..."
+ ATMOSPHERE: (17627..17628) " "
+ FORM: (17628..17633)
+ OPEN_PAREN: (17628..17629) "("
+ SYMBOL: (17629..17632)
+ IDENTIFIER: (17629..17632) "..."
+ CLOSE_PAREN: (17632..17633) ")"
+ ATMOSPHERE: (17633..17640) "\n "
+ FORM: (17640..17663)
+ OPEN_PAREN: (17640..17641) "("
+ FORM: (17641..17646)
+ OPEN_PAREN: (17641..17642) "("
+ SYMBOL: (17642..17643)
+ IDENTIFIER: (17642..17643) "_"
+ ATMOSPHERE: (17643..17644) " "
+ SYMBOL: (17644..17645)
+ IDENTIFIER: (17644..17645) "x"
+ CLOSE_PAREN: (17645..17646) ")"
+ ATMOSPHERE: (17646..17654) "\n "
+ QUOTED_DATUM: (17654..17662)
+ QUOTE: (17654..17655) "'"
+ FORM: (17655..17662)
+ OPEN_PAREN: (17655..17656) "("
+ SYMBOL: (17656..17657)
+ IDENTIFIER: (17656..17657) "x"
+ ATMOSPHERE: (17657..17658) " "
+ SYMBOL: (17658..17661)
+ IDENTIFIER: (17658..17661) "..."
+ CLOSE_PAREN: (17661..17662) ")"
+ CLOSE_PAREN: (17662..17663) ")"
+ CLOSE_PAREN: (17663..17664) ")"
+ CLOSE_PAREN: (17664..17665) ")"
+ ATMOSPHERE: (17665..17668) "\n "
+ FORM: (17668..17702)
+ OPEN_PAREN: (17668..17669) "("
+ SYMBOL: (17669..17673)
+ IDENTIFIER: (17669..17673) "test"
+ ATMOSPHERE: (17673..17674) " "
+ QUOTED_DATUM: (17674..17685)
+ QUOTE: (17674..17675) "'"
+ FORM: (17675..17684)
+ OPEN_PAREN: (17675..17676) "("
+ CONSTANT: (17676..17679)
+ NUMBER: (17676..17679) "100"
+ ATMOSPHERE: (17679..17680) " "
+ SYMBOL: (17680..17683)
+ IDENTIFIER: (17680..17683) "..."
+ CLOSE_PAREN: (17683..17684) ")"
+ ATMOSPHERE: (17684..17685) " "
+ FORM: (17685..17701)
+ OPEN_PAREN: (17685..17686) "("
+ SYMBOL: (17686..17696)
+ IDENTIFIER: (17686..17696) "elli-lit-1"
+ ATMOSPHERE: (17696..17697) " "
+ CONSTANT: (17697..17700)
+ NUMBER: (17697..17700) "100"
+ CLOSE_PAREN: (17700..17701) ")"
+ CLOSE_PAREN: (17701..17702) ")"
+ CLOSE_PAREN: (17702..17703) ")"
+ ATMOSPHERE: (17703..17705) "\n\n"
+ ATMOSPHERE: (17705..17720) ";; bad ellipsis"
+ ATMOSPHERE: (17720..17721) "\n"
+ ATMOSPHERE: (17721..18159) "#|\n(test 'error\n (guard (exn (else 'error))\n (eval\n '(define-syntax bad-elli-1\n (syntax-rules ()\n ((_ ... x)\n '(... x))))\n (interaction-environment))))\n\n(test 'error\n (guard (exn (else 'error))\n (eval\n '(define-syntax bad-elli-2\n (syntax-rules ()\n ((_ (... x))\n '(... x))))\n (interaction-environment))))\n|#"
+ ATMOSPHERE: (18159..18161) "\n\n"
+ FORM: (18161..18171)
+ OPEN_PAREN: (18161..18162) "("
+ SYMBOL: (18162..18170)
+ IDENTIFIER: (18162..18170) "test-end"
+ CLOSE_PAREN: (18170..18171) ")"
+ ATMOSPHERE: (18171..18173) "\n\n"
+ FORM: (18173..18207)
+ OPEN_PAREN: (18173..18174) "("
+ SYMBOL: (18174..18184)
+ IDENTIFIER: (18174..18184) "test-begin"
+ ATMOSPHERE: (18184..18185) " "
+ CONSTANT: (18185..18206)
+ STRING: (18185..18206) "\"5 Program structure\""
+ CLOSE_PAREN: (18206..18207) ")"
+ ATMOSPHERE: (18207..18209) "\n\n"
+ FORM: (18209..18245)
+ OPEN_PAREN: (18209..18210) "("
+ SYMBOL: (18210..18216)
+ IDENTIFIER: (18210..18216) "define"
+ ATMOSPHERE: (18216..18217) " "
+ SYMBOL: (18217..18221)
+ IDENTIFIER: (18217..18221) "add3"
+ ATMOSPHERE: (18221..18224) "\n "
+ FORM: (18224..18244)
+ OPEN_PAREN: (18224..18225) "("
+ SYMBOL: (18225..18231)
+ IDENTIFIER: (18225..18231) "lambda"
+ ATMOSPHERE: (18231..18232) " "
+ FORM: (18232..18235)
+ OPEN_PAREN: (18232..18233) "("
+ SYMBOL: (18233..18234)
+ IDENTIFIER: (18233..18234) "x"
+ CLOSE_PAREN: (18234..18235) ")"
+ ATMOSPHERE: (18235..18236) " "
+ FORM: (18236..18243)
+ OPEN_PAREN: (18236..18237) "("
+ SYMBOL: (18237..18238)
+ IDENTIFIER: (18237..18238) "+"
+ ATMOSPHERE: (18238..18239) " "
+ SYMBOL: (18239..18240)
+ IDENTIFIER: (18239..18240) "x"
+ ATMOSPHERE: (18240..18241) " "
+ CONSTANT: (18241..18242)
+ NUMBER: (18241..18242) "3"
+ CLOSE_PAREN: (18242..18243) ")"
+ CLOSE_PAREN: (18243..18244) ")"
+ CLOSE_PAREN: (18244..18245) ")"
+ ATMOSPHERE: (18245..18246) "\n"
+ FORM: (18246..18263)
+ OPEN_PAREN: (18246..18247) "("
+ SYMBOL: (18247..18251)
+ IDENTIFIER: (18247..18251) "test"
+ ATMOSPHERE: (18251..18252) " "
+ CONSTANT: (18252..18253)
+ NUMBER: (18252..18253) "6"
+ ATMOSPHERE: (18253..18254) " "
+ FORM: (18254..18262)
+ OPEN_PAREN: (18254..18255) "("
+ SYMBOL: (18255..18259)
+ IDENTIFIER: (18255..18259) "add3"
+ ATMOSPHERE: (18259..18260) " "
+ CONSTANT: (18260..18261)
+ NUMBER: (18260..18261) "3"
+ CLOSE_PAREN: (18261..18262) ")"
+ CLOSE_PAREN: (18262..18263) ")"
+ ATMOSPHERE: (18263..18264) "\n"
+ FORM: (18264..18282)
+ OPEN_PAREN: (18264..18265) "("
+ SYMBOL: (18265..18271)
+ IDENTIFIER: (18265..18271) "define"
+ ATMOSPHERE: (18271..18272) " "
+ SYMBOL: (18272..18277)
+ IDENTIFIER: (18272..18277) "first"
+ ATMOSPHERE: (18277..18278) " "
+ SYMBOL: (18278..18281)
+ IDENTIFIER: (18278..18281) "car"
+ CLOSE_PAREN: (18281..18282) ")"
+ ATMOSPHERE: (18282..18283) "\n"
+ FORM: (18283..18306)
+ OPEN_PAREN: (18283..18284) "("
+ SYMBOL: (18284..18288)
+ IDENTIFIER: (18284..18288) "test"
+ ATMOSPHERE: (18288..18289) " "
+ CONSTANT: (18289..18290)
+ NUMBER: (18289..18290) "1"
+ ATMOSPHERE: (18290..18291) " "
+ FORM: (18291..18305)
+ OPEN_PAREN: (18291..18292) "("
+ SYMBOL: (18292..18297)
+ IDENTIFIER: (18292..18297) "first"
+ ATMOSPHERE: (18297..18298) " "
+ QUOTED_DATUM: (18298..18304)
+ QUOTE: (18298..18299) "'"
+ FORM: (18299..18304)
+ OPEN_PAREN: (18299..18300) "("
+ CONSTANT: (18300..18301)
+ NUMBER: (18300..18301) "1"
+ ATMOSPHERE: (18301..18302) " "
+ CONSTANT: (18302..18303)
+ NUMBER: (18302..18303) "2"
+ CLOSE_PAREN: (18303..18304) ")"
+ CLOSE_PAREN: (18304..18305) ")"
+ CLOSE_PAREN: (18305..18306) ")"
+ ATMOSPHERE: (18306..18308) "\n\n"
+ ATMOSPHERE: (18308..18345) ";;; FIXME: `define` mutual recursion."
+ ATMOSPHERE: (18345..18346) "\n"
+ ATMOSPHERE: (18346..18370) ";; (test 45 (let ((x 5))"
+ ATMOSPHERE: (18370..18371) "\n"
+ ATMOSPHERE: (18371..18411) ";; (define foo (lambda (y) (bar x y)))"
+ ATMOSPHERE: (18411..18412) "\n"
+ ATMOSPHERE: (18412..18458) ";; (define bar (lambda (a b) (+ (* a b) a)))"
+ ATMOSPHERE: (18458..18459) "\n"
+ ATMOSPHERE: (18459..18479) ";; (foo (+ x 3))))"
+ ATMOSPHERE: (18479..18481) "\n\n"
+ ATMOSPHERE: (18481..18493) ";; (test 'ok"
+ ATMOSPHERE: (18493..18494) "\n"
+ ATMOSPHERE: (18494..18508) ";; (let ()"
+ ATMOSPHERE: (18508..18509) "\n"
+ ATMOSPHERE: (18509..18545) ";; (define-values () (values))"
+ ATMOSPHERE: (18545..18546) "\n"
+ ATMOSPHERE: (18546..18560) ";; 'ok))"
+ ATMOSPHERE: (18560..18561) "\n"
+ ATMOSPHERE: (18561..18571) ";; (test 1"
+ ATMOSPHERE: (18571..18572) "\n"
+ ATMOSPHERE: (18572..18586) ";; (let ()"
+ ATMOSPHERE: (18586..18587) "\n"
+ ATMOSPHERE: (18587..18626) ";; (define-values (x) (values 1))"
+ ATMOSPHERE: (18626..18627) "\n"
+ ATMOSPHERE: (18627..18639) ";; x))"
+ ATMOSPHERE: (18639..18640) "\n"
+ ATMOSPHERE: (18640..18650) ";; (test 3"
+ ATMOSPHERE: (18650..18651) "\n"
+ ATMOSPHERE: (18651..18665) ";; (let ()"
+ ATMOSPHERE: (18665..18666) "\n"
+ ATMOSPHERE: (18666..18705) ";; (define-values x (values 1 2))"
+ ATMOSPHERE: (18705..18706) "\n"
+ ATMOSPHERE: (18706..18728) ";; (apply + x)))"
+ ATMOSPHERE: (18728..18729) "\n"
+ ATMOSPHERE: (18729..18739) ";; (test 3"
+ ATMOSPHERE: (18739..18740) "\n"
+ ATMOSPHERE: (18740..18754) ";; (let ()"
+ ATMOSPHERE: (18754..18755) "\n"
+ ATMOSPHERE: (18755..18798) ";; (define-values (x y) (values 1 2))"
+ ATMOSPHERE: (18798..18799) "\n"
+ ATMOSPHERE: (18799..18817) ";; (+ x y)))"
+ ATMOSPHERE: (18817..18818) "\n"
+ ATMOSPHERE: (18818..18828) ";; (test 6"
+ ATMOSPHERE: (18828..18829) "\n"
+ ATMOSPHERE: (18829..18843) ";; (let ()"
+ ATMOSPHERE: (18843..18844) "\n"
+ ATMOSPHERE: (18844..18891) ";; (define-values (x y z) (values 1 2 3))"
+ ATMOSPHERE: (18891..18892) "\n"
+ ATMOSPHERE: (18892..18912) ";; (+ x y z)))"
+ ATMOSPHERE: (18912..18913) "\n"
+ ATMOSPHERE: (18913..18924) ";; (test 10"
+ ATMOSPHERE: (18924..18925) "\n"
+ ATMOSPHERE: (18925..18939) ";; (let ()"
+ ATMOSPHERE: (18939..18940) "\n"
+ ATMOSPHERE: (18940..18991) ";; (define-values (x y . z) (values 1 2 3 4))"
+ ATMOSPHERE: (18991..18992) "\n"
+ ATMOSPHERE: (18992..19027) ";; (+ x y (car z) (cadr z))))"
+ ATMOSPHERE: (19027..19029) "\n\n"
+ ATMOSPHERE: (19029..19063) ";; (test '(2 1) (let ((x 1) (y 2))"
+ ATMOSPHERE: (19063..19064) "\n"
+ ATMOSPHERE: (19064..19089) ";; (define-syntax swap!"
+ ATMOSPHERE: (19089..19090) "\n"
+ ATMOSPHERE: (19090..19113) ";; (syntax-rules ()"
+ ATMOSPHERE: (19113..19114) "\n"
+ ATMOSPHERE: (19114..19135) ";; ((swap! a b)"
+ ATMOSPHERE: (19135..19136) "\n"
+ ATMOSPHERE: (19136..19160) ";; (let ((tmp a))"
+ ATMOSPHERE: (19160..19161) "\n"
+ ATMOSPHERE: (19161..19183) ";; (set! a b)"
+ ATMOSPHERE: (19183..19184) "\n"
+ ATMOSPHERE: (19184..19212) ";; (set! b tmp)))))"
+ ATMOSPHERE: (19212..19213) "\n"
+ ATMOSPHERE: (19213..19229) ";; (swap! x y)"
+ ATMOSPHERE: (19229..19230) "\n"
+ ATMOSPHERE: (19230..19247) ";; (list x y)))"
+ ATMOSPHERE: (19247..19249) "\n\n"
+ ATMOSPHERE: (19249..19262) ";; ;; Records"
+ ATMOSPHERE: (19262..19264) "\n\n"
+ ATMOSPHERE: (19264..19293) ";; (define-record-type "
+ ATMOSPHERE: (19293..19294) "\n"
+ ATMOSPHERE: (19294..19309) ";; (kons x y)"
+ ATMOSPHERE: (19309..19310) "\n"
+ ATMOSPHERE: (19310..19320) ";; pare?"
+ ATMOSPHERE: (19320..19321) "\n"
+ ATMOSPHERE: (19321..19342) ";; (x kar set-kar!)"
+ ATMOSPHERE: (19342..19343) "\n"
+ ATMOSPHERE: (19343..19356) ";; (y kdr))"
+ ATMOSPHERE: (19356..19358) "\n\n"
+ ATMOSPHERE: (19358..19389) ";; (test #t (pare? (kons 1 2)))"
+ ATMOSPHERE: (19389..19390) "\n"
+ ATMOSPHERE: (19390..19421) ";; (test #f (pare? (cons 1 2)))"
+ ATMOSPHERE: (19421..19422) "\n"
+ ATMOSPHERE: (19422..19450) ";; (test 1 (kar (kons 1 2)))"
+ ATMOSPHERE: (19450..19451) "\n"
+ ATMOSPHERE: (19451..19479) ";; (test 2 (kdr (kons 1 2)))"
+ ATMOSPHERE: (19479..19480) "\n"
+ ATMOSPHERE: (19480..19512) ";; (test 3 (let ((k (kons 1 2)))"
+ ATMOSPHERE: (19512..19513) "\n"
+ ATMOSPHERE: (19513..19540) ";; (set-kar! k 3)"
+ ATMOSPHERE: (19540..19541) "\n"
+ ATMOSPHERE: (19541..19563) ";; (kar k)))"
+ ATMOSPHERE: (19563..19565) "\n\n"
+ FORM: (19565..19575)
+ OPEN_PAREN: (19565..19566) "("
+ SYMBOL: (19566..19574)
+ IDENTIFIER: (19566..19574) "test-end"
+ CLOSE_PAREN: (19574..19575) ")"
+ ATMOSPHERE: (19575..19577) "\n\n"
+ ATMOSPHERE: (19577..19652) ";; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+ ATMOSPHERE: (19652..19653) "\n"
+ ATMOSPHERE: (19653..19680) ";; ;; 6 Standard Procedures"
+ ATMOSPHERE: (19680..19682) "\n\n"
+ FORM: (19682..19723)
+ OPEN_PAREN: (19682..19683) "("
+ SYMBOL: (19683..19693)
+ IDENTIFIER: (19683..19693) "test-begin"
+ ATMOSPHERE: (19693..19694) " "
+ CONSTANT: (19694..19722)
+ STRING: (19694..19722) "\"6.1 Equivalence Predicates\""
+ CLOSE_PAREN: (19722..19723) ")"
+ ATMOSPHERE: (19723..19725) "\n\n"
+ FORM: (19725..19747)
+ OPEN_PAREN: (19725..19726) "("
+ SYMBOL: (19726..19730)
+ IDENTIFIER: (19726..19730) "test"
+ ATMOSPHERE: (19730..19731) " "
+ CONSTANT: (19731..19733)
+ BOOLEAN: (19731..19733) "#t"
+ ATMOSPHERE: (19733..19734) " "
+ FORM: (19734..19746)
+ OPEN_PAREN: (19734..19735) "("
+ SYMBOL: (19735..19739)
+ IDENTIFIER: (19735..19739) "eqv?"
+ ATMOSPHERE: (19739..19740) " "
+ QUOTED_DATUM: (19740..19743)
+ QUOTE: (19740..19741) "'"
+ SYMBOL: (19741..19742)
+ IDENTIFIER: (19741..19742) "a"
+ ATMOSPHERE: (19742..19743) " "
+ QUOTED_DATUM: (19743..19745)
+ QUOTE: (19743..19744) "'"
+ SYMBOL: (19744..19745)
+ IDENTIFIER: (19744..19745) "a"
+ CLOSE_PAREN: (19745..19746) ")"
+ CLOSE_PAREN: (19746..19747) ")"
+ ATMOSPHERE: (19747..19748) "\n"
+ FORM: (19748..19770)
+ OPEN_PAREN: (19748..19749) "("
+ SYMBOL: (19749..19753)
+ IDENTIFIER: (19749..19753) "test"
+ ATMOSPHERE: (19753..19754) " "
+ CONSTANT: (19754..19756)
+ BOOLEAN: (19754..19756) "#f"
+ ATMOSPHERE: (19756..19757) " "
+ FORM: (19757..19769)
+ OPEN_PAREN: (19757..19758) "("
+ SYMBOL: (19758..19762)
+ IDENTIFIER: (19758..19762) "eqv?"
+ ATMOSPHERE: (19762..19763) " "
+ QUOTED_DATUM: (19763..19766)
+ QUOTE: (19763..19764) "'"
+ SYMBOL: (19764..19765)
+ IDENTIFIER: (19764..19765) "a"
+ ATMOSPHERE: (19765..19766) " "
+ QUOTED_DATUM: (19766..19768)
+ QUOTE: (19766..19767) "'"
+ SYMBOL: (19767..19768)
+ IDENTIFIER: (19767..19768) "b"
+ CLOSE_PAREN: (19768..19769) ")"
+ CLOSE_PAREN: (19769..19770) ")"
+ ATMOSPHERE: (19770..19771) "\n"
+ FORM: (19771..19791)
+ OPEN_PAREN: (19771..19772) "("
+ SYMBOL: (19772..19776)
+ IDENTIFIER: (19772..19776) "test"
+ ATMOSPHERE: (19776..19777) " "
+ CONSTANT: (19777..19779)
+ BOOLEAN: (19777..19779) "#t"
+ ATMOSPHERE: (19779..19780) " "
+ FORM: (19780..19790)
+ OPEN_PAREN: (19780..19781) "("
+ SYMBOL: (19781..19785)
+ IDENTIFIER: (19781..19785) "eqv?"
+ ATMOSPHERE: (19785..19786) " "
+ CONSTANT: (19786..19787)
+ NUMBER: (19786..19787) "2"
+ ATMOSPHERE: (19787..19788) " "
+ CONSTANT: (19788..19789)
+ NUMBER: (19788..19789) "2"
+ CLOSE_PAREN: (19789..19790) ")"
+ CLOSE_PAREN: (19790..19791) ")"
+ ATMOSPHERE: (19791..19792) "\n"
+ FORM: (19792..19816)
+ OPEN_PAREN: (19792..19793) "("
+ SYMBOL: (19793..19797)
+ IDENTIFIER: (19793..19797) "test"
+ ATMOSPHERE: (19797..19798) " "
+ CONSTANT: (19798..19800)
+ BOOLEAN: (19798..19800) "#t"
+ ATMOSPHERE: (19800..19801) " "
+ FORM: (19801..19815)
+ OPEN_PAREN: (19801..19802) "("
+ SYMBOL: (19802..19806)
+ IDENTIFIER: (19802..19806) "eqv?"
+ ATMOSPHERE: (19806..19807) " "
+ QUOTED_DATUM: (19807..19811)
+ QUOTE: (19807..19808) "'"
+ FORM: (19808..19810)
+ OPEN_PAREN: (19808..19809) "("
+ CLOSE_PAREN: (19809..19810) ")"
+ ATMOSPHERE: (19810..19811) " "
+ QUOTED_DATUM: (19811..19814)
+ QUOTE: (19811..19812) "'"
+ FORM: (19812..19814)
+ OPEN_PAREN: (19812..19813) "("
+ CLOSE_PAREN: (19813..19814) ")"
+ CLOSE_PAREN: (19814..19815) ")"
+ CLOSE_PAREN: (19815..19816) ")"
+ ATMOSPHERE: (19816..19817) "\n"
+ FORM: (19817..19853)
+ OPEN_PAREN: (19817..19818) "("
+ SYMBOL: (19818..19822)
+ IDENTIFIER: (19818..19822) "test"
+ ATMOSPHERE: (19822..19823) " "
+ CONSTANT: (19823..19825)
+ BOOLEAN: (19823..19825) "#t"
+ ATMOSPHERE: (19825..19826) " "
+ FORM: (19826..19852)
+ OPEN_PAREN: (19826..19827) "("
+ SYMBOL: (19827..19831)
+ IDENTIFIER: (19827..19831) "eqv?"
+ ATMOSPHERE: (19831..19832) " "
+ CONSTANT: (19832..19841)
+ NUMBER: (19832..19841) "100000000"
+ ATMOSPHERE: (19841..19842) " "
+ CONSTANT: (19842..19851)
+ NUMBER: (19842..19851) "100000000"
+ CLOSE_PAREN: (19851..19852) ")"
+ CLOSE_PAREN: (19852..19853) ")"
+ ATMOSPHERE: (19853..19854) "\n"
+ FORM: (19854..19892)
+ OPEN_PAREN: (19854..19855) "("
+ SYMBOL: (19855..19859)
+ IDENTIFIER: (19855..19859) "test"
+ ATMOSPHERE: (19859..19860) " "
+ CONSTANT: (19860..19862)
+ BOOLEAN: (19860..19862) "#f"
+ ATMOSPHERE: (19862..19863) " "
+ FORM: (19863..19891)
+ OPEN_PAREN: (19863..19864) "("
+ SYMBOL: (19864..19868)
+ IDENTIFIER: (19864..19868) "eqv?"
+ ATMOSPHERE: (19868..19869) " "
+ FORM: (19869..19879)
+ OPEN_PAREN: (19869..19870) "("
+ SYMBOL: (19870..19874)
+ IDENTIFIER: (19870..19874) "cons"
+ ATMOSPHERE: (19874..19875) " "
+ CONSTANT: (19875..19876)
+ NUMBER: (19875..19876) "1"
+ ATMOSPHERE: (19876..19877) " "
+ CONSTANT: (19877..19878)
+ NUMBER: (19877..19878) "2"
+ CLOSE_PAREN: (19878..19879) ")"
+ ATMOSPHERE: (19879..19880) " "
+ FORM: (19880..19890)
+ OPEN_PAREN: (19880..19881) "("
+ SYMBOL: (19881..19885)
+ IDENTIFIER: (19881..19885) "cons"
+ ATMOSPHERE: (19885..19886) " "
+ CONSTANT: (19886..19887)
+ NUMBER: (19886..19887) "1"
+ ATMOSPHERE: (19887..19888) " "
+ CONSTANT: (19888..19889)
+ NUMBER: (19888..19889) "2"
+ CLOSE_PAREN: (19889..19890) ")"
+ CLOSE_PAREN: (19890..19891) ")"
+ CLOSE_PAREN: (19891..19892) ")"
+ ATMOSPHERE: (19892..19893) "\n"
+ FORM: (19893..19952)
+ OPEN_PAREN: (19893..19894) "("
+ SYMBOL: (19894..19898)
+ IDENTIFIER: (19894..19898) "test"
+ ATMOSPHERE: (19898..19899) " "
+ CONSTANT: (19899..19901)
+ BOOLEAN: (19899..19901) "#f"
+ ATMOSPHERE: (19901..19902) " "
+ FORM: (19902..19951)
+ OPEN_PAREN: (19902..19903) "("
+ SYMBOL: (19903..19907)
+ IDENTIFIER: (19903..19907) "eqv?"
+ ATMOSPHERE: (19907..19908) " "
+ FORM: (19908..19921)
+ OPEN_PAREN: (19908..19909) "("
+ SYMBOL: (19909..19915)
+ IDENTIFIER: (19909..19915) "lambda"
+ ATMOSPHERE: (19915..19916) " "
+ FORM: (19916..19918)
+ OPEN_PAREN: (19916..19917) "("
+ CLOSE_PAREN: (19917..19918) ")"
+ ATMOSPHERE: (19918..19919) " "
+ CONSTANT: (19919..19920)
+ NUMBER: (19919..19920) "1"
+ CLOSE_PAREN: (19920..19921) ")"
+ ATMOSPHERE: (19921..19937) "\n "
+ FORM: (19937..19950)
+ OPEN_PAREN: (19937..19938) "("
+ SYMBOL: (19938..19944)
+ IDENTIFIER: (19938..19944) "lambda"
+ ATMOSPHERE: (19944..19945) " "
+ FORM: (19945..19947)
+ OPEN_PAREN: (19945..19946) "("
+ CLOSE_PAREN: (19946..19947) ")"
+ ATMOSPHERE: (19947..19948) " "
+ CONSTANT: (19948..19949)
+ NUMBER: (19948..19949) "2"
+ CLOSE_PAREN: (19949..19950) ")"
+ CLOSE_PAREN: (19950..19951) ")"
+ CLOSE_PAREN: (19951..19952) ")"
+ ATMOSPHERE: (19952..19953) "\n"
+ FORM: (19953..19977)
+ OPEN_PAREN: (19953..19954) "("
+ SYMBOL: (19954..19958)
+ IDENTIFIER: (19954..19958) "test"
+ ATMOSPHERE: (19958..19959) " "
+ CONSTANT: (19959..19961)
+ BOOLEAN: (19959..19961) "#f"
+ ATMOSPHERE: (19961..19962) " "
+ FORM: (19962..19976)
+ OPEN_PAREN: (19962..19963) "("
+ SYMBOL: (19963..19967)
+ IDENTIFIER: (19963..19967) "eqv?"
+ ATMOSPHERE: (19967..19968) " "
+ CONSTANT: (19968..19970)
+ BOOLEAN: (19968..19970) "#f"
+ ATMOSPHERE: (19970..19971) " "
+ QUOTED_DATUM: (19971..19975)
+ QUOTE: (19971..19972) "'"
+ SYMBOL: (19972..19975)
+ IDENTIFIER: (19972..19975) "nil"
+ CLOSE_PAREN: (19975..19976) ")"
+ CLOSE_PAREN: (19976..19977) ")"
+ ATMOSPHERE: (19977..19979) "\n\n"
+ FORM: (19979..20068)
+ OPEN_PAREN: (19979..19980) "("
+ SYMBOL: (19980..19986)
+ IDENTIFIER: (19980..19986) "define"
+ ATMOSPHERE: (19986..19987) " "
+ SYMBOL: (19987..19998)
+ IDENTIFIER: (19987..19998) "gen-counter"
+ ATMOSPHERE: (19998..20001) "\n "
+ FORM: (20001..20067)
+ OPEN_PAREN: (20001..20002) "("
+ SYMBOL: (20002..20008)
+ IDENTIFIER: (20002..20008) "lambda"
+ ATMOSPHERE: (20008..20009) " "
+ FORM: (20009..20011)
+ OPEN_PAREN: (20009..20010) "("
+ CLOSE_PAREN: (20010..20011) ")"
+ ATMOSPHERE: (20011..20016) "\n "
+ FORM: (20016..20066)
+ OPEN_PAREN: (20016..20017) "("
+ SYMBOL: (20017..20020)
+ IDENTIFIER: (20017..20020) "let"
+ ATMOSPHERE: (20020..20021) " "
+ FORM: (20021..20028)
+ OPEN_PAREN: (20021..20022) "("
+ FORM: (20022..20027)
+ OPEN_PAREN: (20022..20023) "("
+ SYMBOL: (20023..20024)
+ IDENTIFIER: (20023..20024) "n"
+ ATMOSPHERE: (20024..20025) " "
+ CONSTANT: (20025..20026)
+ NUMBER: (20025..20026) "0"
+ CLOSE_PAREN: (20026..20027) ")"
+ CLOSE_PAREN: (20027..20028) ")"
+ ATMOSPHERE: (20028..20035) "\n "
+ FORM: (20035..20065)
+ OPEN_PAREN: (20035..20036) "("
+ SYMBOL: (20036..20042)
+ IDENTIFIER: (20036..20042) "lambda"
+ ATMOSPHERE: (20042..20043) " "
+ FORM: (20043..20045)
+ OPEN_PAREN: (20043..20044) "("
+ CLOSE_PAREN: (20044..20045) ")"
+ ATMOSPHERE: (20045..20046) " "
+ FORM: (20046..20062)
+ OPEN_PAREN: (20046..20047) "("
+ SYMBOL: (20047..20051)
+ IDENTIFIER: (20047..20051) "set!"
+ ATMOSPHERE: (20051..20052) " "
+ SYMBOL: (20052..20053)
+ IDENTIFIER: (20052..20053) "n"
+ ATMOSPHERE: (20053..20054) " "
+ FORM: (20054..20061)
+ OPEN_PAREN: (20054..20055) "("
+ SYMBOL: (20055..20056)
+ IDENTIFIER: (20055..20056) "+"
+ ATMOSPHERE: (20056..20057) " "
+ SYMBOL: (20057..20058)
+ IDENTIFIER: (20057..20058) "n"
+ ATMOSPHERE: (20058..20059) " "
+ CONSTANT: (20059..20060)
+ NUMBER: (20059..20060) "1"
+ CLOSE_PAREN: (20060..20061) ")"
+ CLOSE_PAREN: (20061..20062) ")"
+ ATMOSPHERE: (20062..20063) " "
+ SYMBOL: (20063..20064)
+ IDENTIFIER: (20063..20064) "n"
+ CLOSE_PAREN: (20064..20065) ")"
+ CLOSE_PAREN: (20065..20066) ")"
+ CLOSE_PAREN: (20066..20067) ")"
+ CLOSE_PAREN: (20067..20068) ")"
+ ATMOSPHERE: (20068..20069) "\n"
+ FORM: (20069..20125)
+ OPEN_PAREN: (20069..20070) "("
+ SYMBOL: (20070..20074)
+ IDENTIFIER: (20070..20074) "test"
+ ATMOSPHERE: (20074..20075) " "
+ CONSTANT: (20075..20077)
+ BOOLEAN: (20075..20077) "#t"
+ ATMOSPHERE: (20077..20082) "\n "
+ FORM: (20082..20124)
+ OPEN_PAREN: (20082..20083) "("
+ SYMBOL: (20083..20086)
+ IDENTIFIER: (20083..20086) "let"
+ ATMOSPHERE: (20086..20087) " "
+ FORM: (20087..20106)
+ OPEN_PAREN: (20087..20088) "("
+ FORM: (20088..20105)
+ OPEN_PAREN: (20088..20089) "("
+ SYMBOL: (20089..20090)
+ IDENTIFIER: (20089..20090) "g"
+ ATMOSPHERE: (20090..20091) " "
+ FORM: (20091..20104)
+ OPEN_PAREN: (20091..20092) "("
+ SYMBOL: (20092..20103)
+ IDENTIFIER: (20092..20103) "gen-counter"
+ CLOSE_PAREN: (20103..20104) ")"
+ CLOSE_PAREN: (20104..20105) ")"
+ CLOSE_PAREN: (20105..20106) ")"
+ ATMOSPHERE: (20106..20113) "\n "
+ FORM: (20113..20123)
+ OPEN_PAREN: (20113..20114) "("
+ SYMBOL: (20114..20118)
+ IDENTIFIER: (20114..20118) "eqv?"
+ ATMOSPHERE: (20118..20119) " "
+ SYMBOL: (20119..20120)
+ IDENTIFIER: (20119..20120) "g"
+ ATMOSPHERE: (20120..20121) " "
+ SYMBOL: (20121..20122)
+ IDENTIFIER: (20121..20122) "g"
+ CLOSE_PAREN: (20122..20123) ")"
+ CLOSE_PAREN: (20123..20124) ")"
+ CLOSE_PAREN: (20124..20125) ")"
+ ATMOSPHERE: (20125..20126) "\n"
+ FORM: (20126..20170)
+ OPEN_PAREN: (20126..20127) "("
+ SYMBOL: (20127..20131)
+ IDENTIFIER: (20127..20131) "test"
+ ATMOSPHERE: (20131..20132) " "
+ CONSTANT: (20132..20134)
+ BOOLEAN: (20132..20134) "#f"
+ ATMOSPHERE: (20134..20135) " "
+ FORM: (20135..20169)
+ OPEN_PAREN: (20135..20136) "("
+ SYMBOL: (20136..20140)
+ IDENTIFIER: (20136..20140) "eqv?"
+ ATMOSPHERE: (20140..20141) " "
+ FORM: (20141..20154)
+ OPEN_PAREN: (20141..20142) "("
+ SYMBOL: (20142..20153)
+ IDENTIFIER: (20142..20153) "gen-counter"
+ CLOSE_PAREN: (20153..20154) ")"
+ ATMOSPHERE: (20154..20155) " "
+ FORM: (20155..20168)
+ OPEN_PAREN: (20155..20156) "("
+ SYMBOL: (20156..20167)
+ IDENTIFIER: (20156..20167) "gen-counter"
+ CLOSE_PAREN: (20167..20168) ")"
+ CLOSE_PAREN: (20168..20169) ")"
+ CLOSE_PAREN: (20169..20170) ")"
+ ATMOSPHERE: (20170..20171) "\n"
+ FORM: (20171..20259)
+ OPEN_PAREN: (20171..20172) "("
+ SYMBOL: (20172..20178)
+ IDENTIFIER: (20172..20178) "define"
+ ATMOSPHERE: (20178..20179) " "
+ SYMBOL: (20179..20188)
+ IDENTIFIER: (20179..20188) "gen-loser"
+ ATMOSPHERE: (20188..20191) "\n "
+ FORM: (20191..20258)
+ OPEN_PAREN: (20191..20192) "("
+ SYMBOL: (20192..20198)
+ IDENTIFIER: (20192..20198) "lambda"
+ ATMOSPHERE: (20198..20199) " "
+ FORM: (20199..20201)
+ OPEN_PAREN: (20199..20200) "("
+ CLOSE_PAREN: (20200..20201) ")"
+ ATMOSPHERE: (20201..20206) "\n "
+ FORM: (20206..20257)
+ OPEN_PAREN: (20206..20207) "("
+ SYMBOL: (20207..20210)
+ IDENTIFIER: (20207..20210) "let"
+ ATMOSPHERE: (20210..20211) " "
+ FORM: (20211..20218)
+ OPEN_PAREN: (20211..20212) "("
+ FORM: (20212..20217)
+ OPEN_PAREN: (20212..20213) "("
+ SYMBOL: (20213..20214)
+ IDENTIFIER: (20213..20214) "n"
+ ATMOSPHERE: (20214..20215) " "
+ CONSTANT: (20215..20216)
+ NUMBER: (20215..20216) "0"
+ CLOSE_PAREN: (20216..20217) ")"
+ CLOSE_PAREN: (20217..20218) ")"
+ ATMOSPHERE: (20218..20225) "\n "
+ FORM: (20225..20256)
+ OPEN_PAREN: (20225..20226) "("
+ SYMBOL: (20226..20232)
+ IDENTIFIER: (20226..20232) "lambda"
+ ATMOSPHERE: (20232..20233) " "
+ FORM: (20233..20235)
+ OPEN_PAREN: (20233..20234) "("
+ CLOSE_PAREN: (20234..20235) ")"
+ ATMOSPHERE: (20235..20236) " "
+ FORM: (20236..20252)
+ OPEN_PAREN: (20236..20237) "("
+ SYMBOL: (20237..20241)
+ IDENTIFIER: (20237..20241) "set!"
+ ATMOSPHERE: (20241..20242) " "
+ SYMBOL: (20242..20243)
+ IDENTIFIER: (20242..20243) "n"
+ ATMOSPHERE: (20243..20244) " "
+ FORM: (20244..20251)
+ OPEN_PAREN: (20244..20245) "("
+ SYMBOL: (20245..20246)
+ IDENTIFIER: (20245..20246) "+"
+ ATMOSPHERE: (20246..20247) " "
+ SYMBOL: (20247..20248)
+ IDENTIFIER: (20247..20248) "n"
+ ATMOSPHERE: (20248..20249) " "
+ CONSTANT: (20249..20250)
+ NUMBER: (20249..20250) "1"
+ CLOSE_PAREN: (20250..20251) ")"
+ CLOSE_PAREN: (20251..20252) ")"
+ ATMOSPHERE: (20252..20253) " "
+ CONSTANT: (20253..20255)
+ NUMBER: (20253..20255) "27"
+ CLOSE_PAREN: (20255..20256) ")"
+ CLOSE_PAREN: (20256..20257) ")"
+ CLOSE_PAREN: (20257..20258) ")"
+ CLOSE_PAREN: (20258..20259) ")"
+ ATMOSPHERE: (20259..20260) "\n"
+ FORM: (20260..20306)
+ OPEN_PAREN: (20260..20261) "("
+ SYMBOL: (20261..20265)
+ IDENTIFIER: (20261..20265) "test"
+ ATMOSPHERE: (20265..20266) " "
+ CONSTANT: (20266..20268)
+ BOOLEAN: (20266..20268) "#t"
+ ATMOSPHERE: (20268..20269) " "
+ FORM: (20269..20305)
+ OPEN_PAREN: (20269..20270) "("
+ SYMBOL: (20270..20273)
+ IDENTIFIER: (20270..20273) "let"
+ ATMOSPHERE: (20273..20274) " "
+ FORM: (20274..20291)
+ OPEN_PAREN: (20274..20275) "("
+ FORM: (20275..20290)
+ OPEN_PAREN: (20275..20276) "("
+ SYMBOL: (20276..20277)
+ IDENTIFIER: (20276..20277) "g"
+ ATMOSPHERE: (20277..20278) " "
+ FORM: (20278..20289)
+ OPEN_PAREN: (20278..20279) "("
+ SYMBOL: (20279..20288)
+ IDENTIFIER: (20279..20288) "gen-loser"
+ CLOSE_PAREN: (20288..20289) ")"
+ CLOSE_PAREN: (20289..20290) ")"
+ CLOSE_PAREN: (20290..20291) ")"
+ ATMOSPHERE: (20291..20294) "\n "
+ FORM: (20294..20304)
+ OPEN_PAREN: (20294..20295) "("
+ SYMBOL: (20295..20299)
+ IDENTIFIER: (20295..20299) "eqv?"
+ ATMOSPHERE: (20299..20300) " "
+ SYMBOL: (20300..20301)
+ IDENTIFIER: (20300..20301) "g"
+ ATMOSPHERE: (20301..20302) " "
+ SYMBOL: (20302..20303)
+ IDENTIFIER: (20302..20303) "g"
+ CLOSE_PAREN: (20303..20304) ")"
+ CLOSE_PAREN: (20304..20305) ")"
+ CLOSE_PAREN: (20305..20306) ")"
+ ATMOSPHERE: (20306..20308) "\n\n"
+ FORM: (20308..20433)
+ OPEN_PAREN: (20308..20309) "("
+ SYMBOL: (20309..20313)
+ IDENTIFIER: (20309..20313) "test"
+ ATMOSPHERE: (20313..20314) " "
+ CONSTANT: (20314..20316)
+ BOOLEAN: (20314..20316) "#f"
+ ATMOSPHERE: (20316..20317) "\n"
+ FORM: (20317..20432)
+ OPEN_PAREN: (20317..20318) "("
+ SYMBOL: (20318..20324)
+ IDENTIFIER: (20318..20324) "letrec"
+ ATMOSPHERE: (20324..20325) " "
+ FORM: (20325..20417)
+ OPEN_PAREN: (20325..20326) "("
+ FORM: (20326..20366)
+ OPEN_PAREN: (20326..20327) "("
+ SYMBOL: (20327..20328)
+ IDENTIFIER: (20327..20328) "f"
+ ATMOSPHERE: (20328..20329) " "
+ FORM: (20329..20365)
+ OPEN_PAREN: (20329..20330) "("
+ SYMBOL: (20330..20336)
+ IDENTIFIER: (20330..20336) "lambda"
+ ATMOSPHERE: (20336..20337) " "
+ FORM: (20337..20339)
+ OPEN_PAREN: (20337..20338) "("
+ CLOSE_PAREN: (20338..20339) ")"
+ ATMOSPHERE: (20339..20340) " "
+ FORM: (20340..20364)
+ OPEN_PAREN: (20340..20341) "("
+ SYMBOL: (20341..20343)
+ IDENTIFIER: (20341..20343) "if"
+ ATMOSPHERE: (20343..20344) " "
+ FORM: (20344..20354)
+ OPEN_PAREN: (20344..20345) "("
+ SYMBOL: (20345..20349)
+ IDENTIFIER: (20345..20349) "eqv?"
+ ATMOSPHERE: (20349..20350) " "
+ SYMBOL: (20350..20351)
+ IDENTIFIER: (20350..20351) "f"
+ ATMOSPHERE: (20351..20352) " "
+ SYMBOL: (20352..20353)
+ IDENTIFIER: (20352..20353) "g"
+ CLOSE_PAREN: (20353..20354) ")"
+ ATMOSPHERE: (20354..20355) " "
+ QUOTED_DATUM: (20355..20358)
+ QUOTE: (20355..20356) "'"
+ SYMBOL: (20356..20357)
+ IDENTIFIER: (20356..20357) "f"
+ ATMOSPHERE: (20357..20358) " "
+ QUOTED_DATUM: (20358..20363)
+ QUOTE: (20358..20359) "'"
+ SYMBOL: (20359..20363)
+ IDENTIFIER: (20359..20363) "both"
+ CLOSE_PAREN: (20363..20364) ")"
+ CLOSE_PAREN: (20364..20365) ")"
+ CLOSE_PAREN: (20365..20366) ")"
+ ATMOSPHERE: (20366..20376) "\n "
+ FORM: (20376..20416)
+ OPEN_PAREN: (20376..20377) "("
+ SYMBOL: (20377..20378)
+ IDENTIFIER: (20377..20378) "g"
+ ATMOSPHERE: (20378..20379) " "
+ FORM: (20379..20415)
+ OPEN_PAREN: (20379..20380) "("
+ SYMBOL: (20380..20386)
+ IDENTIFIER: (20380..20386) "lambda"
+ ATMOSPHERE: (20386..20387) " "
+ FORM: (20387..20389)
+ OPEN_PAREN: (20387..20388) "("
+ CLOSE_PAREN: (20388..20389) ")"
+ ATMOSPHERE: (20389..20390) " "
+ FORM: (20390..20414)
+ OPEN_PAREN: (20390..20391) "("
+ SYMBOL: (20391..20393)
+ IDENTIFIER: (20391..20393) "if"
+ ATMOSPHERE: (20393..20394) " "
+ FORM: (20394..20404)
+ OPEN_PAREN: (20394..20395) "("
+ SYMBOL: (20395..20399)
+ IDENTIFIER: (20395..20399) "eqv?"
+ ATMOSPHERE: (20399..20400) " "
+ SYMBOL: (20400..20401)
+ IDENTIFIER: (20400..20401) "f"
+ ATMOSPHERE: (20401..20402) " "
+ SYMBOL: (20402..20403)
+ IDENTIFIER: (20402..20403) "g"
+ CLOSE_PAREN: (20403..20404) ")"
+ ATMOSPHERE: (20404..20405) " "
+ QUOTED_DATUM: (20405..20408)
+ QUOTE: (20405..20406) "'"
+ SYMBOL: (20406..20407)
+ IDENTIFIER: (20406..20407) "g"
+ ATMOSPHERE: (20407..20408) " "
+ QUOTED_DATUM: (20408..20413)
+ QUOTE: (20408..20409) "'"
+ SYMBOL: (20409..20413)
+ IDENTIFIER: (20409..20413) "both"
+ CLOSE_PAREN: (20413..20414) ")"
+ CLOSE_PAREN: (20414..20415) ")"
+ CLOSE_PAREN: (20415..20416) ")"
+ CLOSE_PAREN: (20416..20417) ")"
+ ATMOSPHERE: (20417..20421) "\n "
+ FORM: (20421..20431)
+ OPEN_PAREN: (20421..20422) "("
+ SYMBOL: (20422..20426)
+ IDENTIFIER: (20422..20426) "eqv?"
+ ATMOSPHERE: (20426..20427) " "
+ SYMBOL: (20427..20428)
+ IDENTIFIER: (20427..20428) "f"
+ ATMOSPHERE: (20428..20429) " "
+ SYMBOL: (20429..20430)
+ IDENTIFIER: (20429..20430) "g"
+ CLOSE_PAREN: (20430..20431) ")"
+ CLOSE_PAREN: (20431..20432) ")"
+ CLOSE_PAREN: (20432..20433) ")"
+ ATMOSPHERE: (20433..20435) "\n\n"
+ FORM: (20435..20482)
+ OPEN_PAREN: (20435..20436) "("
+ SYMBOL: (20436..20440)
+ IDENTIFIER: (20436..20440) "test"
+ ATMOSPHERE: (20440..20441) " "
+ CONSTANT: (20441..20443)
+ BOOLEAN: (20441..20443) "#t"
+ ATMOSPHERE: (20443..20448) "\n "
+ FORM: (20448..20481)
+ OPEN_PAREN: (20448..20449) "("
+ SYMBOL: (20449..20452)
+ IDENTIFIER: (20449..20452) "let"
+ ATMOSPHERE: (20452..20453) " "
+ FORM: (20453..20463)
+ OPEN_PAREN: (20453..20454) "("
+ FORM: (20454..20462)
+ OPEN_PAREN: (20454..20455) "("
+ SYMBOL: (20455..20456)
+ IDENTIFIER: (20455..20456) "x"
+ ATMOSPHERE: (20456..20457) " "
+ QUOTED_DATUM: (20457..20461)
+ QUOTE: (20457..20458) "'"
+ FORM: (20458..20461)
+ OPEN_PAREN: (20458..20459) "("
+ SYMBOL: (20459..20460)
+ IDENTIFIER: (20459..20460) "a"
+ CLOSE_PAREN: (20460..20461) ")"
+ CLOSE_PAREN: (20461..20462) ")"
+ CLOSE_PAREN: (20462..20463) ")"
+ ATMOSPHERE: (20463..20470) "\n "
+ FORM: (20470..20480)
+ OPEN_PAREN: (20470..20471) "("
+ SYMBOL: (20471..20475)
+ IDENTIFIER: (20471..20475) "eqv?"
+ ATMOSPHERE: (20475..20476) " "
+ SYMBOL: (20476..20477)
+ IDENTIFIER: (20476..20477) "x"
+ ATMOSPHERE: (20477..20478) " "
+ SYMBOL: (20478..20479)
+ IDENTIFIER: (20478..20479) "x"
+ CLOSE_PAREN: (20479..20480) ")"
+ CLOSE_PAREN: (20480..20481) ")"
+ CLOSE_PAREN: (20481..20482) ")"
+ ATMOSPHERE: (20482..20484) "\n\n"
+ FORM: (20484..20505)
+ OPEN_PAREN: (20484..20485) "("
+ SYMBOL: (20485..20489)
+ IDENTIFIER: (20485..20489) "test"
+ ATMOSPHERE: (20489..20490) " "
+ CONSTANT: (20490..20492)
+ BOOLEAN: (20490..20492) "#t"
+ ATMOSPHERE: (20492..20493) " "
+ FORM: (20493..20504)
+ OPEN_PAREN: (20493..20494) "("
+ SYMBOL: (20494..20497)
+ IDENTIFIER: (20494..20497) "eq?"
+ ATMOSPHERE: (20497..20498) " "
+ QUOTED_DATUM: (20498..20501)
+ QUOTE: (20498..20499) "'"
+ SYMBOL: (20499..20500)
+ IDENTIFIER: (20499..20500) "a"
+ ATMOSPHERE: (20500..20501) " "
+ QUOTED_DATUM: (20501..20503)
+ QUOTE: (20501..20502) "'"
+ SYMBOL: (20502..20503)
+ IDENTIFIER: (20502..20503) "a"
+ CLOSE_PAREN: (20503..20504) ")"
+ CLOSE_PAREN: (20504..20505) ")"
+ ATMOSPHERE: (20505..20506) "\n"
+ FORM: (20506..20541)
+ OPEN_PAREN: (20506..20507) "("
+ SYMBOL: (20507..20511)
+ IDENTIFIER: (20507..20511) "test"
+ ATMOSPHERE: (20511..20512) " "
+ CONSTANT: (20512..20514)
+ BOOLEAN: (20512..20514) "#f"
+ ATMOSPHERE: (20514..20515) " "
+ FORM: (20515..20540)
+ OPEN_PAREN: (20515..20516) "("
+ SYMBOL: (20516..20519)
+ IDENTIFIER: (20516..20519) "eq?"
+ ATMOSPHERE: (20519..20520) " "
+ FORM: (20520..20529)
+ OPEN_PAREN: (20520..20521) "("
+ SYMBOL: (20521..20525)
+ IDENTIFIER: (20521..20525) "list"
+ ATMOSPHERE: (20525..20526) " "
+ QUOTED_DATUM: (20526..20528)
+ QUOTE: (20526..20527) "'"
+ SYMBOL: (20527..20528)
+ IDENTIFIER: (20527..20528) "a"
+ CLOSE_PAREN: (20528..20529) ")"
+ ATMOSPHERE: (20529..20530) " "
+ FORM: (20530..20539)
+ OPEN_PAREN: (20530..20531) "("
+ SYMBOL: (20531..20535)
+ IDENTIFIER: (20531..20535) "list"
+ ATMOSPHERE: (20535..20536) " "
+ QUOTED_DATUM: (20536..20538)
+ QUOTE: (20536..20537) "'"
+ SYMBOL: (20537..20538)
+ IDENTIFIER: (20537..20538) "a"
+ CLOSE_PAREN: (20538..20539) ")"
+ CLOSE_PAREN: (20539..20540) ")"
+ CLOSE_PAREN: (20540..20541) ")"
+ ATMOSPHERE: (20541..20542) "\n"
+ FORM: (20542..20565)
+ OPEN_PAREN: (20542..20543) "("
+ SYMBOL: (20543..20547)
+ IDENTIFIER: (20543..20547) "test"
+ ATMOSPHERE: (20547..20548) " "
+ CONSTANT: (20548..20550)
+ BOOLEAN: (20548..20550) "#t"
+ ATMOSPHERE: (20550..20551) " "
+ FORM: (20551..20564)
+ OPEN_PAREN: (20551..20552) "("
+ SYMBOL: (20552..20555)
+ IDENTIFIER: (20552..20555) "eq?"
+ ATMOSPHERE: (20555..20556) " "
+ QUOTED_DATUM: (20556..20560)
+ QUOTE: (20556..20557) "'"
+ FORM: (20557..20559)
+ OPEN_PAREN: (20557..20558) "("
+ CLOSE_PAREN: (20558..20559) ")"
+ ATMOSPHERE: (20559..20560) " "
+ QUOTED_DATUM: (20560..20563)
+ QUOTE: (20560..20561) "'"
+ FORM: (20561..20563)
+ OPEN_PAREN: (20561..20562) "("
+ CLOSE_PAREN: (20562..20563) ")"
+ CLOSE_PAREN: (20563..20564) ")"
+ CLOSE_PAREN: (20564..20565) ")"
+ ATMOSPHERE: (20565..20566) "\n"
+ FORM: (20566..20612)
+ OPEN_PAREN: (20566..20567) "("
+ SYMBOL: (20567..20571)
+ IDENTIFIER: (20567..20571) "test"
+ ATMOSPHERE: (20571..20572) " "
+ CONSTANT: (20572..20574)
+ BOOLEAN: (20572..20574) "#t"
+ ATMOSPHERE: (20574..20579) "\n "
+ FORM: (20579..20611)
+ OPEN_PAREN: (20579..20580) "("
+ SYMBOL: (20580..20583)
+ IDENTIFIER: (20580..20583) "let"
+ ATMOSPHERE: (20583..20584) " "
+ FORM: (20584..20594)
+ OPEN_PAREN: (20584..20585) "("
+ FORM: (20585..20593)
+ OPEN_PAREN: (20585..20586) "("
+ SYMBOL: (20586..20587)
+ IDENTIFIER: (20586..20587) "x"
+ ATMOSPHERE: (20587..20588) " "
+ QUOTED_DATUM: (20588..20592)
+ QUOTE: (20588..20589) "'"
+ FORM: (20589..20592)
+ OPEN_PAREN: (20589..20590) "("
+ SYMBOL: (20590..20591)
+ IDENTIFIER: (20590..20591) "a"
+ CLOSE_PAREN: (20591..20592) ")"
+ CLOSE_PAREN: (20592..20593) ")"
+ CLOSE_PAREN: (20593..20594) ")"
+ ATMOSPHERE: (20594..20601) "\n "
+ FORM: (20601..20610)
+ OPEN_PAREN: (20601..20602) "("
+ SYMBOL: (20602..20605)
+ IDENTIFIER: (20602..20605) "eq?"
+ ATMOSPHERE: (20605..20606) " "
+ SYMBOL: (20606..20607)
+ IDENTIFIER: (20606..20607) "x"
+ ATMOSPHERE: (20607..20608) " "
+ SYMBOL: (20608..20609)
+ IDENTIFIER: (20608..20609) "x"
+ CLOSE_PAREN: (20609..20610) ")"
+ CLOSE_PAREN: (20610..20611) ")"
+ CLOSE_PAREN: (20611..20612) ")"
+ ATMOSPHERE: (20612..20613) "\n"
+ FORM: (20613..20659)
+ OPEN_PAREN: (20613..20614) "("
+ SYMBOL: (20614..20618)
+ IDENTIFIER: (20614..20618) "test"
+ ATMOSPHERE: (20618..20619) " "
+ CONSTANT: (20619..20621)
+ BOOLEAN: (20619..20621) "#t"
+ ATMOSPHERE: (20621..20626) "\n "
+ FORM: (20626..20658)
+ OPEN_PAREN: (20626..20627) "("
+ SYMBOL: (20627..20630)
+ IDENTIFIER: (20627..20630) "let"
+ ATMOSPHERE: (20630..20631) " "
+ FORM: (20631..20641)
+ OPEN_PAREN: (20631..20632) "("
+ FORM: (20632..20640)
+ OPEN_PAREN: (20632..20633) "("
+ SYMBOL: (20633..20634)
+ IDENTIFIER: (20633..20634) "x"
+ ATMOSPHERE: (20634..20635) " "
+ QUOTED_DATUM: (20635..20639)
+ QUOTE: (20635..20636) "'"
+ VEC: (20636..20639)
+ OPEN_PAREN: (20636..20638) "#("
+ CLOSE_PAREN: (20638..20639) ")"
+ CLOSE_PAREN: (20639..20640) ")"
+ CLOSE_PAREN: (20640..20641) ")"
+ ATMOSPHERE: (20641..20648) "\n "
+ FORM: (20648..20657)
+ OPEN_PAREN: (20648..20649) "("
+ SYMBOL: (20649..20652)
+ IDENTIFIER: (20649..20652) "eq?"
+ ATMOSPHERE: (20652..20653) " "
+ SYMBOL: (20653..20654)
+ IDENTIFIER: (20653..20654) "x"
+ ATMOSPHERE: (20654..20655) " "
+ SYMBOL: (20655..20656)
+ IDENTIFIER: (20655..20656) "x"
+ CLOSE_PAREN: (20656..20657) ")"
+ CLOSE_PAREN: (20657..20658) ")"
+ CLOSE_PAREN: (20658..20659) ")"
+ ATMOSPHERE: (20659..20660) "\n"
+ FORM: (20660..20716)
+ OPEN_PAREN: (20660..20661) "("
+ SYMBOL: (20661..20665)
+ IDENTIFIER: (20661..20665) "test"
+ ATMOSPHERE: (20665..20666) " "
+ CONSTANT: (20666..20668)
+ BOOLEAN: (20666..20668) "#t"
+ ATMOSPHERE: (20668..20673) "\n "
+ FORM: (20673..20715)
+ OPEN_PAREN: (20673..20674) "("
+ SYMBOL: (20674..20677)
+ IDENTIFIER: (20674..20677) "let"
+ ATMOSPHERE: (20677..20678) " "
+ FORM: (20678..20698)
+ OPEN_PAREN: (20678..20679) "("
+ FORM: (20679..20697)
+ OPEN_PAREN: (20679..20680) "("
+ SYMBOL: (20680..20681)
+ IDENTIFIER: (20680..20681) "p"
+ ATMOSPHERE: (20681..20682) " "
+ FORM: (20682..20696)
+ OPEN_PAREN: (20682..20683) "("
+ SYMBOL: (20683..20689)
+ IDENTIFIER: (20683..20689) "lambda"
+ ATMOSPHERE: (20689..20690) " "
+ FORM: (20690..20693)
+ OPEN_PAREN: (20690..20691) "("
+ SYMBOL: (20691..20692)
+ IDENTIFIER: (20691..20692) "x"
+ CLOSE_PAREN: (20692..20693) ")"
+ ATMOSPHERE: (20693..20694) " "
+ SYMBOL: (20694..20695)
+ IDENTIFIER: (20694..20695) "x"
+ CLOSE_PAREN: (20695..20696) ")"
+ CLOSE_PAREN: (20696..20697) ")"
+ CLOSE_PAREN: (20697..20698) ")"
+ ATMOSPHERE: (20698..20705) "\n "
+ FORM: (20705..20714)
+ OPEN_PAREN: (20705..20706) "("
+ SYMBOL: (20706..20709)
+ IDENTIFIER: (20706..20709) "eq?"
+ ATMOSPHERE: (20709..20710) " "
+ SYMBOL: (20710..20711)
+ IDENTIFIER: (20710..20711) "p"
+ ATMOSPHERE: (20711..20712) " "
+ SYMBOL: (20712..20713)
+ IDENTIFIER: (20712..20713) "p"
+ CLOSE_PAREN: (20713..20714) ")"
+ CLOSE_PAREN: (20714..20715) ")"
+ CLOSE_PAREN: (20715..20716) ")"
+ ATMOSPHERE: (20716..20718) "\n\n"
+ FORM: (20718..20742)
+ OPEN_PAREN: (20718..20719) "("
+ SYMBOL: (20719..20723)
+ IDENTIFIER: (20719..20723) "test"
+ ATMOSPHERE: (20723..20724) " "
+ CONSTANT: (20724..20726)
+ BOOLEAN: (20724..20726) "#t"
+ ATMOSPHERE: (20726..20727) " "
+ FORM: (20727..20741)
+ OPEN_PAREN: (20727..20728) "("
+ SYMBOL: (20728..20734)
+ IDENTIFIER: (20728..20734) "equal?"
+ ATMOSPHERE: (20734..20735) " "
+ QUOTED_DATUM: (20735..20738)
+ QUOTE: (20735..20736) "'"
+ SYMBOL: (20736..20737)
+ IDENTIFIER: (20736..20737) "a"
+ ATMOSPHERE: (20737..20738) " "
+ QUOTED_DATUM: (20738..20740)
+ QUOTE: (20738..20739) "'"
+ SYMBOL: (20739..20740)
+ IDENTIFIER: (20739..20740) "a"
+ CLOSE_PAREN: (20740..20741) ")"
+ CLOSE_PAREN: (20741..20742) ")"
+ ATMOSPHERE: (20742..20743) "\n"
+ FORM: (20743..20771)
+ OPEN_PAREN: (20743..20744) "("
+ SYMBOL: (20744..20748)
+ IDENTIFIER: (20744..20748) "test"
+ ATMOSPHERE: (20748..20749) " "
+ CONSTANT: (20749..20751)
+ BOOLEAN: (20749..20751) "#t"
+ ATMOSPHERE: (20751..20752) " "
+ FORM: (20752..20770)
+ OPEN_PAREN: (20752..20753) "("
+ SYMBOL: (20753..20759)
+ IDENTIFIER: (20753..20759) "equal?"
+ ATMOSPHERE: (20759..20760) " "
+ QUOTED_DATUM: (20760..20765)
+ QUOTE: (20760..20761) "'"
+ FORM: (20761..20764)
+ OPEN_PAREN: (20761..20762) "("
+ SYMBOL: (20762..20763)
+ IDENTIFIER: (20762..20763) "a"
+ CLOSE_PAREN: (20763..20764) ")"
+ ATMOSPHERE: (20764..20765) " "
+ QUOTED_DATUM: (20765..20769)
+ QUOTE: (20765..20766) "'"
+ FORM: (20766..20769)
+ OPEN_PAREN: (20766..20767) "("
+ SYMBOL: (20767..20768)
+ IDENTIFIER: (20767..20768) "a"
+ CLOSE_PAREN: (20768..20769) ")"
+ CLOSE_PAREN: (20769..20770) ")"
+ CLOSE_PAREN: (20770..20771) ")"
+ ATMOSPHERE: (20771..20772) "\n"
+ FORM: (20772..20829)
+ OPEN_PAREN: (20772..20773) "("
+ SYMBOL: (20773..20777)
+ IDENTIFIER: (20773..20777) "test"
+ ATMOSPHERE: (20777..20778) " "
+ CONSTANT: (20778..20780)
+ BOOLEAN: (20778..20780) "#t"
+ ATMOSPHERE: (20780..20781) " "
+ FORM: (20781..20828)
+ OPEN_PAREN: (20781..20782) "("
+ SYMBOL: (20782..20788)
+ IDENTIFIER: (20782..20788) "equal?"
+ ATMOSPHERE: (20788..20789) " "
+ QUOTED_DATUM: (20789..20817)
+ QUOTE: (20789..20790) "'"
+ FORM: (20790..20799)
+ OPEN_PAREN: (20790..20791) "("
+ SYMBOL: (20791..20792)
+ IDENTIFIER: (20791..20792) "a"
+ ATMOSPHERE: (20792..20793) " "
+ FORM: (20793..20796)
+ OPEN_PAREN: (20793..20794) "("
+ SYMBOL: (20794..20795)
+ IDENTIFIER: (20794..20795) "b"
+ CLOSE_PAREN: (20795..20796) ")"
+ ATMOSPHERE: (20796..20797) " "
+ SYMBOL: (20797..20798)
+ IDENTIFIER: (20797..20798) "c"
+ CLOSE_PAREN: (20798..20799) ")"
+ ATMOSPHERE: (20799..20817) "\n "
+ QUOTED_DATUM: (20817..20827)
+ QUOTE: (20817..20818) "'"
+ FORM: (20818..20827)
+ OPEN_PAREN: (20818..20819) "("
+ SYMBOL: (20819..20820)
+ IDENTIFIER: (20819..20820) "a"
+ ATMOSPHERE: (20820..20821) " "
+ FORM: (20821..20824)
+ OPEN_PAREN: (20821..20822) "("
+ SYMBOL: (20822..20823)
+ IDENTIFIER: (20822..20823) "b"
+ CLOSE_PAREN: (20823..20824) ")"
+ ATMOSPHERE: (20824..20825) " "
+ SYMBOL: (20825..20826)
+ IDENTIFIER: (20825..20826) "c"
+ CLOSE_PAREN: (20826..20827) ")"
+ CLOSE_PAREN: (20827..20828) ")"
+ CLOSE_PAREN: (20828..20829) ")"
+ ATMOSPHERE: (20829..20830) "\n"
+ FORM: (20830..20860)
+ OPEN_PAREN: (20830..20831) "("
+ SYMBOL: (20831..20835)
+ IDENTIFIER: (20831..20835) "test"
+ ATMOSPHERE: (20835..20836) " "
+ CONSTANT: (20836..20838)
+ BOOLEAN: (20836..20838) "#t"
+ ATMOSPHERE: (20838..20839) " "
+ FORM: (20839..20859)
+ OPEN_PAREN: (20839..20840) "("
+ SYMBOL: (20840..20846)
+ IDENTIFIER: (20840..20846) "equal?"
+ ATMOSPHERE: (20846..20847) " "
+ CONSTANT: (20847..20852)
+ STRING: (20847..20852) "\"abc\""
+ ATMOSPHERE: (20852..20853) " "
+ CONSTANT: (20853..20858)
+ STRING: (20853..20858) "\"abc\""
+ CLOSE_PAREN: (20858..20859) ")"
+ CLOSE_PAREN: (20859..20860) ")"
+ ATMOSPHERE: (20860..20861) "\n"
+ FORM: (20861..20883)
+ OPEN_PAREN: (20861..20862) "("
+ SYMBOL: (20862..20866)
+ IDENTIFIER: (20862..20866) "test"
+ ATMOSPHERE: (20866..20867) " "
+ CONSTANT: (20867..20869)
+ BOOLEAN: (20867..20869) "#t"
+ ATMOSPHERE: (20869..20870) " "
+ FORM: (20870..20882)
+ OPEN_PAREN: (20870..20871) "("
+ SYMBOL: (20871..20877)
+ IDENTIFIER: (20871..20877) "equal?"
+ ATMOSPHERE: (20877..20878) " "
+ CONSTANT: (20878..20879)
+ NUMBER: (20878..20879) "2"
+ ATMOSPHERE: (20879..20880) " "
+ CONSTANT: (20880..20881)
+ NUMBER: (20880..20881) "2"
+ CLOSE_PAREN: (20881..20882) ")"
+ CLOSE_PAREN: (20882..20883) ")"
+ ATMOSPHERE: (20883..20884) "\n"
+ FORM: (20884..20957)
+ OPEN_PAREN: (20884..20885) "("
+ SYMBOL: (20885..20889)
+ IDENTIFIER: (20885..20889) "test"
+ ATMOSPHERE: (20889..20890) " "
+ CONSTANT: (20890..20892)
+ BOOLEAN: (20890..20892) "#t"
+ ATMOSPHERE: (20892..20893) " "
+ FORM: (20893..20956)
+ OPEN_PAREN: (20893..20894) "("
+ SYMBOL: (20894..20900)
+ IDENTIFIER: (20894..20900) "equal?"
+ ATMOSPHERE: (20900..20901) " "
+ FORM: (20901..20919)
+ OPEN_PAREN: (20901..20902) "("
+ SYMBOL: (20902..20913)
+ IDENTIFIER: (20902..20913) "make-vector"
+ ATMOSPHERE: (20913..20914) " "
+ CONSTANT: (20914..20915)
+ NUMBER: (20914..20915) "5"
+ ATMOSPHERE: (20915..20916) " "
+ QUOTED_DATUM: (20916..20918)
+ QUOTE: (20916..20917) "'"
+ SYMBOL: (20917..20918)
+ IDENTIFIER: (20917..20918) "a"
+ CLOSE_PAREN: (20918..20919) ")"
+ ATMOSPHERE: (20919..20937) "\n "
+ FORM: (20937..20955)
+ OPEN_PAREN: (20937..20938) "("
+ SYMBOL: (20938..20949)
+ IDENTIFIER: (20938..20949) "make-vector"
+ ATMOSPHERE: (20949..20950) " "
+ CONSTANT: (20950..20951)
+ NUMBER: (20950..20951) "5"
+ ATMOSPHERE: (20951..20952) " "
+ QUOTED_DATUM: (20952..20954)
+ QUOTE: (20952..20953) "'"
+ SYMBOL: (20953..20954)
+ IDENTIFIER: (20953..20954) "a"
+ CLOSE_PAREN: (20954..20955) ")"
+ CLOSE_PAREN: (20955..20956) ")"
+ CLOSE_PAREN: (20956..20957) ")"
+ ATMOSPHERE: (20957..20959) "\n\n"
+ FORM: (20959..20969)
+ OPEN_PAREN: (20959..20960) "("
+ SYMBOL: (20960..20968)
+ IDENTIFIER: (20960..20968) "test-end"
+ CLOSE_PAREN: (20968..20969) ")"
+ ATMOSPHERE: (20969..20971) "\n\n"
+ FORM: (20971..20997)
+ OPEN_PAREN: (20971..20972) "("
+ SYMBOL: (20972..20982)
+ IDENTIFIER: (20972..20982) "test-begin"
+ ATMOSPHERE: (20982..20983) " "
+ CONSTANT: (20983..20996)
+ STRING: (20983..20996) "\"6.2 Numbers\""
+ CLOSE_PAREN: (20996..20997) ")"
+ ATMOSPHERE: (20997..20999) "\n\n"
+ ATMOSPHERE: (20999..21027) ";; (test #t (complex? 3+4i))"
+ ATMOSPHERE: (21027..21028) "\n"
+ ATMOSPHERE: (21028..21053) ";; (test #t (complex? 3))"
+ ATMOSPHERE: (21053..21054) "\n"
+ ATMOSPHERE: (21054..21076) ";; (test #t (real? 3))"
+ ATMOSPHERE: (21076..21077) "\n"
+ ATMOSPHERE: (21077..21105) ";; (test #t (real? -2.5+0i))"
+ ATMOSPHERE: (21105..21106) "\n"
+ ATMOSPHERE: (21106..21136) ";; (test #f (real? -2.5+0.0i))"
+ ATMOSPHERE: (21136..21137) "\n"
+ ATMOSPHERE: (21137..21164) ";; (test #t (real? #e1e10))"
+ ATMOSPHERE: (21164..21165) "\n"
+ ATMOSPHERE: (21165..21192) ";; (test #t (real? +inf.0))"
+ ATMOSPHERE: (21192..21193) "\n"
+ ATMOSPHERE: (21193..21224) ";; (test #f (rational? -inf.0))"
+ ATMOSPHERE: (21224..21225) "\n"
+ ATMOSPHERE: (21225..21256) ";; (test #f (rational? +nan.0))"
+ ATMOSPHERE: (21256..21257) "\n"
+ ATMOSPHERE: (21257..21300) ";; (test #t (rational? 9007199254740991.0))"
+ ATMOSPHERE: (21300..21301) "\n"
+ ATMOSPHERE: (21301..21344) ";; (test #t (rational? 9007199254740992.0))"
+ ATMOSPHERE: (21344..21345) "\n"
+ ATMOSPHERE: (21345..21392) ";; (test #t (rational? 1.7976931348623157e308))"
+ ATMOSPHERE: (21392..21393) "\n"
+ ATMOSPHERE: (21393..21422) ";; (test #t (rational? 6/10))"
+ ATMOSPHERE: (21422..21423) "\n"
+ ATMOSPHERE: (21423..21451) ";; (test #t (rational? 6/3))"
+ ATMOSPHERE: (21451..21452) "\n"
+ ATMOSPHERE: (21452..21480) ";; (test #t (integer? 3+0i))"
+ ATMOSPHERE: (21480..21481) "\n"
+ ATMOSPHERE: (21481..21508) ";; (test #t (integer? 3.0))"
+ ATMOSPHERE: (21508..21509) "\n"
+ ATMOSPHERE: (21509..21536) ";; (test #t (integer? 8/4))"
+ ATMOSPHERE: (21536..21538) "\n\n"
+ ATMOSPHERE: (21538..21563) ";; (test #f (exact? 3.0))"
+ ATMOSPHERE: (21563..21564) "\n"
+ ATMOSPHERE: (21564..21591) ";; (test #t (exact? #e3.0))"
+ ATMOSPHERE: (21591..21592) "\n"
+ ATMOSPHERE: (21592..21618) ";; (test #t (inexact? 3.))"
+ ATMOSPHERE: (21618..21620) "\n\n"
+ ATMOSPHERE: (21620..21652) ";; (test #t (exact-integer? 32))"
+ ATMOSPHERE: (21652..21653) "\n"
+ ATMOSPHERE: (21653..21687) ";; (test #f (exact-integer? 32.0))"
+ ATMOSPHERE: (21687..21688) "\n"
+ ATMOSPHERE: (21688..21722) ";; (test #f (exact-integer? 32/5))"
+ ATMOSPHERE: (21722..21724) "\n\n"
+ ATMOSPHERE: (21724..21748) ";; (test #t (finite? 3))"
+ ATMOSPHERE: (21748..21749) "\n"
+ ATMOSPHERE: (21749..21778) ";; (test #f (finite? +inf.0))"
+ ATMOSPHERE: (21778..21779) "\n"
+ ATMOSPHERE: (21779..21812) ";; (test #f (finite? 3.0+inf.0i))"
+ ATMOSPHERE: (21812..21814) "\n\n"
+ ATMOSPHERE: (21814..21840) ";; (test #f (infinite? 3))"
+ ATMOSPHERE: (21840..21841) "\n"
+ ATMOSPHERE: (21841..21872) ";; (test #t (infinite? +inf.0))"
+ ATMOSPHERE: (21872..21873) "\n"
+ ATMOSPHERE: (21873..21904) ";; (test #f (infinite? +nan.0))"
+ ATMOSPHERE: (21904..21905) "\n"
+ ATMOSPHERE: (21905..21940) ";; (test #t (infinite? 3.0+inf.0i))"
+ ATMOSPHERE: (21940..21942) "\n\n"
+ ATMOSPHERE: (21942..21968) ";; (test #t (nan? +nan.0))"
+ ATMOSPHERE: (21968..21969) "\n"
+ ATMOSPHERE: (21969..21991) ";; (test #f (nan? 32))"
+ ATMOSPHERE: (21991..21992) "\n"
+ ATMOSPHERE: (21992..22026) ";; ;; (test #t (nan? +nan.0+5.0i))"
+ ATMOSPHERE: (22026..22027) "\n"
+ ATMOSPHERE: (22027..22051) ";; (test #f (nan? 1+2i))"
+ ATMOSPHERE: (22051..22053) "\n\n"
+ ATMOSPHERE: (22053..22084) ";; (test #t (= 1 1.0 1.0+0.0i))"
+ ATMOSPHERE: (22084..22085) "\n"
+ ATMOSPHERE: (22085..22114) ";; (test #f (= 1.0 1.0+1.0i))"
+ ATMOSPHERE: (22114..22115) "\n"
+ ATMOSPHERE: (22115..22137) ";; (test #t (< 1 2 3))"
+ ATMOSPHERE: (22137..22138) "\n"
+ ATMOSPHERE: (22138..22160) ";; (test #f (< 1 1 2))"
+ ATMOSPHERE: (22160..22161) "\n"
+ ATMOSPHERE: (22161..22189) ";; (test #t (> 3.0 2.0 1.0))"
+ ATMOSPHERE: (22189..22190) "\n"
+ ATMOSPHERE: (22190..22219) ";; (test #f (> -3.0 2.0 1.0))"
+ ATMOSPHERE: (22219..22220) "\n"
+ ATMOSPHERE: (22220..22243) ";; (test #t (<= 1 1 2))"
+ ATMOSPHERE: (22243..22244) "\n"
+ ATMOSPHERE: (22244..22267) ";; (test #f (<= 1 2 1))"
+ ATMOSPHERE: (22267..22268) "\n"
+ ATMOSPHERE: (22268..22291) ";; (test #t (>= 2 1 1))"
+ ATMOSPHERE: (22291..22292) "\n"
+ ATMOSPHERE: (22292..22315) ";; (test #f (>= 1 2 1))"
+ ATMOSPHERE: (22315..22316) "\n"
+ ATMOSPHERE: (22316..22341) ";; (test #f (< +nan.0 0))"
+ ATMOSPHERE: (22341..22342) "\n"
+ ATMOSPHERE: (22342..22367) ";; (test #f (> +nan.0 0))"
+ ATMOSPHERE: (22367..22368) "\n"
+ ATMOSPHERE: (22368..22395) ";; (test #f (< +nan.0 0.0))"
+ ATMOSPHERE: (22395..22396) "\n"
+ ATMOSPHERE: (22396..22423) ";; (test #f (> +nan.0 0.0))"
+ ATMOSPHERE: (22423..22424) "\n"
+ ATMOSPHERE: (22424..22471) ";; (test '(#t #f) (list (<= 1 1 2) (<= 2 1 3)))"
+ ATMOSPHERE: (22471..22473) "\n\n"
+ ATMOSPHERE: (22473..22516) ";; ;; From R7RS 6.2.6 Numerical operations:"
+ ATMOSPHERE: (22516..22517) "\n"
+ ATMOSPHERE: (22517..22522) ";; ;;"
+ ATMOSPHERE: (22522..22523) "\n"
+ ATMOSPHERE: (22523..22576) ";; ;; These predicates are required to be transitive."
+ ATMOSPHERE: (22576..22577) "\n"
+ ATMOSPHERE: (22577..22582) ";; ;;"
+ ATMOSPHERE: (22582..22583) "\n"
+ ATMOSPHERE: (22583..22651) ";; ;; _Note:_ The traditional implementations of these predicates in"
+ ATMOSPHERE: (22651..22652) "\n"
+ ATMOSPHERE: (22652..22728) ";; ;; Lisp-like languages, which involve converting all arguments to inexact"
+ ATMOSPHERE: (22728..22729) "\n"
+ ATMOSPHERE: (22729..22790) ";; ;; numbers if any argument is inexact, are not transitive."
+ ATMOSPHERE: (22790..22792) "\n\n"
+ ATMOSPHERE: (22792..22822) ";; ;; Example from Alan Bawden"
+ ATMOSPHERE: (22822..22823) "\n"
+ ATMOSPHERE: (22823..22855) ";; (let ((a (- (expt 2 1000) 1))"
+ ATMOSPHERE: (22855..22856) "\n"
+ ATMOSPHERE: (22856..22926) ";; (b (inexact (expt 2 1000))) ; assuming > single-float-epsilon"
+ ATMOSPHERE: (22926..22927) "\n"
+ ATMOSPHERE: (22927..22960) ";; (c (+ (expt 2 1000) 1)))"
+ ATMOSPHERE: (22960..22961) "\n"
+ ATMOSPHERE: (22961..23000) ";; (test #t (if (and (= a b) (= b c))"
+ ATMOSPHERE: (23000..23001) "\n"
+ ATMOSPHERE: (23001..23026) ";; (= a c)"
+ ATMOSPHERE: (23026..23027) "\n"
+ ATMOSPHERE: (23027..23050) ";; #t)))"
+ ATMOSPHERE: (23050..23052) "\n\n"
+ ATMOSPHERE: (23052..23097) ";; ;; From CLtL 12.3. Comparisons on Numbers:"
+ ATMOSPHERE: (23097..23098) "\n"
+ ATMOSPHERE: (23098..23103) ";; ;;"
+ ATMOSPHERE: (23103..23104) "\n"
+ ATMOSPHERE: (23104..23174) ";; ;; Let _a_ be the result of (/ 10.0 single-float-epsilon), and let"
+ ATMOSPHERE: (23174..23175) "\n"
+ ATMOSPHERE: (23175..23245) ";; ;; _j_ be the result of (floor a). ..., all of (<= a j), (< j (+ j"
+ ATMOSPHERE: (23245..23246) "\n"
+ ATMOSPHERE: (23246..23315) ";; ;; 1)), and (<= (+ j 1) a) would be true; transitivity would then"
+ ATMOSPHERE: (23315..23316) "\n"
+ ATMOSPHERE: (23316..23362) ";; ;; imply that (< a a) ought to be true ..."
+ ATMOSPHERE: (23362..23364) "\n\n"
+ ATMOSPHERE: (23364..23408) ";; ;; Transliteration from Jussi Piitulainen"
+ ATMOSPHERE: (23408..23409) "\n"
+ ATMOSPHERE: (23409..23440) ";; (define single-float-epsilon"
+ ATMOSPHERE: (23440..23441) "\n"
+ ATMOSPHERE: (23441..23473) ";; (do ((eps 1.0 (* eps 2.0)))"
+ ATMOSPHERE: (23473..23474) "\n"
+ ATMOSPHERE: (23474..23510) ";; ((= eps (+ eps 1.0)) eps)))"
+ ATMOSPHERE: (23510..23512) "\n\n"
+ ATMOSPHERE: (23512..23555) ";; (let* ((a (/ 10.0 single-float-epsilon))"
+ ATMOSPHERE: (23555..23556) "\n"
+ ATMOSPHERE: (23556..23580) ";; (j (exact a)))"
+ ATMOSPHERE: (23580..23581) "\n"
+ ATMOSPHERE: (23581..23627) ";; (test #t (if (and (<= a j) (< j (+ j 1)))"
+ ATMOSPHERE: (23627..23628) "\n"
+ ATMOSPHERE: (23628..23666) ";; (not (<= (+ j 1) a))"
+ ATMOSPHERE: (23666..23667) "\n"
+ ATMOSPHERE: (23667..23690) ";; #t)))"
+ ATMOSPHERE: (23690..23692) "\n\n"
+ ATMOSPHERE: (23692..23714) ";; (test #t (zero? 0))"
+ ATMOSPHERE: (23714..23715) "\n"
+ ATMOSPHERE: (23715..23739) ";; (test #t (zero? 0.0))"
+ ATMOSPHERE: (23739..23740) "\n"
+ ATMOSPHERE: (23740..23769) ";; (test #t (zero? 0.0+0.0i))"
+ ATMOSPHERE: (23769..23770) "\n"
+ ATMOSPHERE: (23770..23792) ";; (test #f (zero? 1))"
+ ATMOSPHERE: (23792..23793) "\n"
+ ATMOSPHERE: (23793..23816) ";; (test #f (zero? -1))"
+ ATMOSPHERE: (23816..23818) "\n\n"
+ ATMOSPHERE: (23818..23844) ";; (test #f (positive? 0))"
+ ATMOSPHERE: (23844..23845) "\n"
+ ATMOSPHERE: (23845..23873) ";; (test #f (positive? 0.0))"
+ ATMOSPHERE: (23873..23874) "\n"
+ ATMOSPHERE: (23874..23900) ";; (test #t (positive? 1))"
+ ATMOSPHERE: (23900..23901) "\n"
+ ATMOSPHERE: (23901..23929) ";; (test #t (positive? 1.0))"
+ ATMOSPHERE: (23929..23930) "\n"
+ ATMOSPHERE: (23930..23957) ";; (test #f (positive? -1))"
+ ATMOSPHERE: (23957..23958) "\n"
+ ATMOSPHERE: (23958..23987) ";; (test #f (positive? -1.0))"
+ ATMOSPHERE: (23987..23988) "\n"
+ ATMOSPHERE: (23988..24019) ";; (test #t (positive? +inf.0))"
+ ATMOSPHERE: (24019..24020) "\n"
+ ATMOSPHERE: (24020..24051) ";; (test #f (positive? -inf.0))"
+ ATMOSPHERE: (24051..24052) "\n"
+ ATMOSPHERE: (24052..24083) ";; (test #f (positive? +nan.0))"
+ ATMOSPHERE: (24083..24085) "\n\n"
+ ATMOSPHERE: (24085..24111) ";; (test #f (negative? 0))"
+ ATMOSPHERE: (24111..24112) "\n"
+ ATMOSPHERE: (24112..24140) ";; (test #f (negative? 0.0))"
+ ATMOSPHERE: (24140..24141) "\n"
+ ATMOSPHERE: (24141..24167) ";; (test #f (negative? 1))"
+ ATMOSPHERE: (24167..24168) "\n"
+ ATMOSPHERE: (24168..24196) ";; (test #f (negative? 1.0))"
+ ATMOSPHERE: (24196..24197) "\n"
+ ATMOSPHERE: (24197..24224) ";; (test #t (negative? -1))"
+ ATMOSPHERE: (24224..24225) "\n"
+ ATMOSPHERE: (24225..24254) ";; (test #t (negative? -1.0))"
+ ATMOSPHERE: (24254..24255) "\n"
+ ATMOSPHERE: (24255..24286) ";; (test #f (negative? +inf.0))"
+ ATMOSPHERE: (24286..24287) "\n"
+ ATMOSPHERE: (24287..24318) ";; (test #t (negative? -inf.0))"
+ ATMOSPHERE: (24318..24319) "\n"
+ ATMOSPHERE: (24319..24350) ";; (test #f (negative? +nan.0))"
+ ATMOSPHERE: (24350..24352) "\n\n"
+ ATMOSPHERE: (24352..24373) ";; (test #f (odd? 0))"
+ ATMOSPHERE: (24373..24374) "\n"
+ ATMOSPHERE: (24374..24395) ";; (test #t (odd? 1))"
+ ATMOSPHERE: (24395..24396) "\n"
+ ATMOSPHERE: (24396..24418) ";; (test #t (odd? -1))"
+ ATMOSPHERE: (24418..24419) "\n"
+ ATMOSPHERE: (24419..24442) ";; (test #f (odd? 102))"
+ ATMOSPHERE: (24442..24444) "\n\n"
+ ATMOSPHERE: (24444..24466) ";; (test #t (even? 0))"
+ ATMOSPHERE: (24466..24467) "\n"
+ ATMOSPHERE: (24467..24489) ";; (test #f (even? 1))"
+ ATMOSPHERE: (24489..24490) "\n"
+ ATMOSPHERE: (24490..24513) ";; (test #t (even? -2))"
+ ATMOSPHERE: (24513..24514) "\n"
+ ATMOSPHERE: (24514..24538) ";; (test #t (even? 102))"
+ ATMOSPHERE: (24538..24540) "\n\n"
+ ATMOSPHERE: (24540..24559) ";; (test 3 (max 3))"
+ ATMOSPHERE: (24559..24560) "\n"
+ ATMOSPHERE: (24560..24581) ";; (test 4 (max 3 4))"
+ ATMOSPHERE: (24581..24582) "\n"
+ ATMOSPHERE: (24582..24607) ";; (test 4.0 (max 3.9 4))"
+ ATMOSPHERE: (24607..24608) "\n"
+ ATMOSPHERE: (24608..24635) ";; (test 5.0 (max 5 3.9 4))"
+ ATMOSPHERE: (24635..24636) "\n"
+ ATMOSPHERE: (24636..24669) ";; (test +inf.0 (max 100 +inf.0))"
+ ATMOSPHERE: (24669..24670) "\n"
+ ATMOSPHERE: (24670..24689) ";; (test 3 (min 3))"
+ ATMOSPHERE: (24689..24690) "\n"
+ ATMOSPHERE: (24690..24711) ";; (test 3 (min 3 4))"
+ ATMOSPHERE: (24711..24712) "\n"
+ ATMOSPHERE: (24712..24737) ";; (test 3.0 (min 3 3.1))"
+ ATMOSPHERE: (24737..24738) "\n"
+ ATMOSPHERE: (24738..24772) ";; (test -inf.0 (min -inf.0 -100))"
+ ATMOSPHERE: (24772..24774) "\n\n"
+ ATMOSPHERE: (24774..24793) ";; (test 7 (+ 3 4))"
+ ATMOSPHERE: (24793..24794) "\n"
+ ATMOSPHERE: (24794..24811) ";; (test 3 (+ 3))"
+ ATMOSPHERE: (24811..24812) "\n"
+ ATMOSPHERE: (24812..24827) ";; (test 0 (+))"
+ ATMOSPHERE: (24827..24828) "\n"
+ ATMOSPHERE: (24828..24845) ";; (test 4 (* 4))"
+ ATMOSPHERE: (24845..24846) "\n"
+ ATMOSPHERE: (24846..24861) ";; (test 1 (*))"
+ ATMOSPHERE: (24861..24863) "\n\n"
+ ATMOSPHERE: (24863..24883) ";; (test -1 (- 3 4))"
+ ATMOSPHERE: (24883..24884) "\n"
+ ATMOSPHERE: (24884..24906) ";; (test -6 (- 3 4 5))"
+ ATMOSPHERE: (24906..24907) "\n"
+ ATMOSPHERE: (24907..24925) ";; (test -3 (- 3))"
+ ATMOSPHERE: (24925..24926) "\n"
+ ATMOSPHERE: (24926..24950) ";; (test 3/20 (/ 3 4 5))"
+ ATMOSPHERE: (24950..24951) "\n"
+ ATMOSPHERE: (24951..24970) ";; (test 1/3 (/ 3))"
+ ATMOSPHERE: (24970..24972) "\n\n"
+ ATMOSPHERE: (24972..24992) ";; (test 7 (abs -7))"
+ ATMOSPHERE: (24992..24993) "\n"
+ ATMOSPHERE: (24993..25012) ";; (test 7 (abs 7))"
+ ATMOSPHERE: (25012..25014) "\n\n"
+ ATMOSPHERE: (25014..25056) ";; (test-values (values 2 1) (floor/ 5 2))"
+ ATMOSPHERE: (25056..25057) "\n"
+ ATMOSPHERE: (25057..25101) ";; (test-values (values -3 1) (floor/ -5 2))"
+ ATMOSPHERE: (25101..25102) "\n"
+ ATMOSPHERE: (25102..25147) ";; (test-values (values -3 -1) (floor/ 5 -2))"
+ ATMOSPHERE: (25147..25148) "\n"
+ ATMOSPHERE: (25148..25193) ";; (test-values (values 2 -1) (floor/ -5 -2))"
+ ATMOSPHERE: (25193..25194) "\n"
+ ATMOSPHERE: (25194..25239) ";; (test-values (values 2 1) (truncate/ 5 2))"
+ ATMOSPHERE: (25239..25240) "\n"
+ ATMOSPHERE: (25240..25288) ";; (test-values (values -2 -1) (truncate/ -5 2))"
+ ATMOSPHERE: (25288..25289) "\n"
+ ATMOSPHERE: (25289..25336) ";; (test-values (values -2 1) (truncate/ 5 -2))"
+ ATMOSPHERE: (25336..25337) "\n"
+ ATMOSPHERE: (25337..25385) ";; (test-values (values 2 -1) (truncate/ -5 -2))"
+ ATMOSPHERE: (25385..25386) "\n"
+ ATMOSPHERE: (25386..25440) ";; (test-values (values 2.0 -1.0) (truncate/ -5.0 -2))"
+ ATMOSPHERE: (25440..25442) "\n\n"
+ ATMOSPHERE: (25442..25467) ";; (test 1 (modulo 13 4))"
+ ATMOSPHERE: (25467..25468) "\n"
+ ATMOSPHERE: (25468..25496) ";; (test 1 (remainder 13 4))"
+ ATMOSPHERE: (25496..25498) "\n\n"
+ ATMOSPHERE: (25498..25524) ";; (test 3 (modulo -13 4))"
+ ATMOSPHERE: (25524..25525) "\n"
+ ATMOSPHERE: (25525..25555) ";; (test -1 (remainder -13 4))"
+ ATMOSPHERE: (25555..25557) "\n\n"
+ ATMOSPHERE: (25557..25584) ";; (test -3 (modulo 13 -4))"
+ ATMOSPHERE: (25584..25585) "\n"
+ ATMOSPHERE: (25585..25614) ";; (test 1 (remainder 13 -4))"
+ ATMOSPHERE: (25614..25616) "\n\n"
+ ATMOSPHERE: (25616..25644) ";; (test -1 (modulo -13 -4))"
+ ATMOSPHERE: (25644..25645) "\n"
+ ATMOSPHERE: (25645..25676) ";; (test -1 (remainder -13 -4))"
+ ATMOSPHERE: (25676..25678) "\n\n"
+ ATMOSPHERE: (25678..25713) ";; (test -1.0 (remainder -13 -4.0))"
+ ATMOSPHERE: (25713..25715) "\n\n"
+ ATMOSPHERE: (25715..25739) ";; (test 4 (gcd 32 -36))"
+ ATMOSPHERE: (25739..25740) "\n"
+ ATMOSPHERE: (25740..25757) ";; (test 0 (gcd))"
+ ATMOSPHERE: (25757..25758) "\n"
+ ATMOSPHERE: (25758..25784) ";; (test 288 (lcm 32 -36))"
+ ATMOSPHERE: (25784..25785) "\n"
+ ATMOSPHERE: (25785..25815) ";; (test 288.0 (lcm 32.0 -36))"
+ ATMOSPHERE: (25815..25816) "\n"
+ ATMOSPHERE: (25816..25833) ";; (test 1 (lcm))"
+ ATMOSPHERE: (25833..25835) "\n\n"
+ ATMOSPHERE: (25835..25866) ";; (test 3 (numerator (/ 6 4)))"
+ ATMOSPHERE: (25866..25867) "\n"
+ ATMOSPHERE: (25867..25900) ";; (test 2 (denominator (/ 6 4)))"
+ ATMOSPHERE: (25900..25901) "\n"
+ ATMOSPHERE: (25901..25946) ";; (test 2.0 (denominator (inexact (/ 6 4))))"
+ ATMOSPHERE: (25946..25947) "\n"
+ ATMOSPHERE: (25947..25977) ";; (test 11.0 (numerator 5.5))"
+ ATMOSPHERE: (25977..25978) "\n"
+ ATMOSPHERE: (25978..26009) ";; (test 2.0 (denominator 5.5))"
+ ATMOSPHERE: (26009..26010) "\n"
+ ATMOSPHERE: (26010..26039) ";; (test 5.0 (numerator 5.0))"
+ ATMOSPHERE: (26039..26040) "\n"
+ ATMOSPHERE: (26040..26071) ";; (test 1.0 (denominator 5.0))"
+ ATMOSPHERE: (26071..26073) "\n\n"
+ ATMOSPHERE: (26073..26100) ";; (test -5.0 (floor -4.3))"
+ ATMOSPHERE: (26100..26101) "\n"
+ ATMOSPHERE: (26101..26130) ";; (test -4.0 (ceiling -4.3))"
+ ATMOSPHERE: (26130..26131) "\n"
+ ATMOSPHERE: (26131..26161) ";; (test -4.0 (truncate -4.3))"
+ ATMOSPHERE: (26161..26162) "\n"
+ ATMOSPHERE: (26162..26189) ";; (test -4.0 (round -4.3))"
+ ATMOSPHERE: (26189..26191) "\n\n"
+ ATMOSPHERE: (26191..26216) ";; (test 3.0 (floor 3.5))"
+ ATMOSPHERE: (26216..26217) "\n"
+ ATMOSPHERE: (26217..26244) ";; (test 4.0 (ceiling 3.5))"
+ ATMOSPHERE: (26244..26245) "\n"
+ ATMOSPHERE: (26245..26273) ";; (test 3.0 (truncate 3.5))"
+ ATMOSPHERE: (26273..26274) "\n"
+ ATMOSPHERE: (26274..26299) ";; (test 4.0 (round 3.5))"
+ ATMOSPHERE: (26299..26301) "\n\n"
+ ATMOSPHERE: (26301..26324) ";; (test 4 (round 7/2))"
+ ATMOSPHERE: (26324..26325) "\n"
+ ATMOSPHERE: (26325..26346) ";; (test 7 (round 7))"
+ ATMOSPHERE: (26346..26347) "\n"
+ ATMOSPHERE: (26347..26371) ";; (test 1 (round 7/10))"
+ ATMOSPHERE: (26371..26372) "\n"
+ ATMOSPHERE: (26372..26397) ";; (test -4 (round -7/2))"
+ ATMOSPHERE: (26397..26398) "\n"
+ ATMOSPHERE: (26398..26421) ";; (test -7 (round -7))"
+ ATMOSPHERE: (26421..26422) "\n"
+ ATMOSPHERE: (26422..26448) ";; (test -1 (round -7/10))"
+ ATMOSPHERE: (26448..26450) "\n\n"
+ ATMOSPHERE: (26450..26493) ";; (test 1/3 (rationalize (exact .3) 1/10))"
+ ATMOSPHERE: (26493..26494) "\n"
+ ATMOSPHERE: (26494..26531) ";; (test #i1/3 (rationalize .3 1/10))"
+ ATMOSPHERE: (26531..26533) "\n\n"
+ ATMOSPHERE: (26533..26591) ";; (test 1.0 (inexact (exp 0))) ;; may return exact number"
+ ATMOSPHERE: (26591..26592) "\n"
+ ATMOSPHERE: (26592..26626) ";; (test 20.0855369231877 (exp 3))"
+ ATMOSPHERE: (26626..26628) "\n\n"
+ ATMOSPHERE: (26628..26686) ";; (test 0.0 (inexact (log 1))) ;; may return exact number"
+ ATMOSPHERE: (26686..26687) "\n"
+ ATMOSPHERE: (26687..26714) ";; (test 1.0 (log (exp 1)))"
+ ATMOSPHERE: (26714..26715) "\n"
+ ATMOSPHERE: (26715..26744) ";; (test 42.0 (log (exp 42)))"
+ ATMOSPHERE: (26744..26745) "\n"
+ ATMOSPHERE: (26745..26771) ";; (test 2.0 (log 100 10))"
+ ATMOSPHERE: (26771..26772) "\n"
+ ATMOSPHERE: (26772..26799) ";; (test 12.0 (log 4096 2))"
+ ATMOSPHERE: (26799..26801) "\n\n"
+ ATMOSPHERE: (26801..26859) ";; (test 0.0 (inexact (sin 0))) ;; may return exact number"
+ ATMOSPHERE: (26859..26860) "\n"
+ ATMOSPHERE: (26860..26895) ";; (test 1.0 (sin 1.5707963267949))"
+ ATMOSPHERE: (26895..26896) "\n"
+ ATMOSPHERE: (26896..26954) ";; (test 1.0 (inexact (cos 0))) ;; may return exact number"
+ ATMOSPHERE: (26954..26955) "\n"
+ ATMOSPHERE: (26955..26992) ";; (test -1.0 (cos 3.14159265358979))"
+ ATMOSPHERE: (26992..26993) "\n"
+ ATMOSPHERE: (26993..27051) ";; (test 0.0 (inexact (tan 0))) ;; may return exact number"
+ ATMOSPHERE: (27051..27052) "\n"
+ ATMOSPHERE: (27052..27085) ";; (test 1.5574077246549 (tan 1))"
+ ATMOSPHERE: (27085..27087) "\n\n"
+ ATMOSPHERE: (27087..27146) ";; (test 0.0 (inexact (asin 0))) ;; may return exact number"
+ ATMOSPHERE: (27146..27147) "\n"
+ ATMOSPHERE: (27147..27181) ";; (test 1.5707963267949 (asin 1))"
+ ATMOSPHERE: (27181..27182) "\n"
+ ATMOSPHERE: (27182..27241) ";; (test 0.0 (inexact (acos 1))) ;; may return exact number"
+ ATMOSPHERE: (27241..27242) "\n"
+ ATMOSPHERE: (27242..27278) ";; (test 3.14159265358979 (acos -1))"
+ ATMOSPHERE: (27278..27280) "\n\n"
+ ATMOSPHERE: (27280..27315) ";; ;; (test 0.0-0.0i (asin 0+0.0i))"
+ ATMOSPHERE: (27315..27316) "\n"
+ ATMOSPHERE: (27316..27366) ";; ;; (test 1.5707963267948966+0.0i (acos 0+0.0i))"
+ ATMOSPHERE: (27366..27368) "\n\n"
+ ATMOSPHERE: (27368..27396) ";; (test 0.0 (atan 0.0 1.0))"
+ ATMOSPHERE: (27396..27397) "\n"
+ ATMOSPHERE: (27397..27427) ";; (test -0.0 (atan -0.0 1.0))"
+ ATMOSPHERE: (27427..27428) "\n"
+ ATMOSPHERE: (27428..27470) ";; (test 0.785398163397448 (atan 1.0 1.0))"
+ ATMOSPHERE: (27470..27471) "\n"
+ ATMOSPHERE: (27471..27511) ";; (test 1.5707963267949 (atan 1.0 0.0))"
+ ATMOSPHERE: (27511..27512) "\n"
+ ATMOSPHERE: (27512..27554) ";; (test 2.35619449019234 (atan 1.0 -1.0))"
+ ATMOSPHERE: (27554..27555) "\n"
+ ATMOSPHERE: (27555..27597) ";; (test 3.14159265358979 (atan 0.0 -1.0))"
+ ATMOSPHERE: (27597..27598) "\n"
+ ATMOSPHERE: (27598..27644) ";; (test -3.14159265358979 (atan -0.0 -1.0)) ;"
+ ATMOSPHERE: (27644..27645) "\n"
+ ATMOSPHERE: (27645..27689) ";; (test -2.35619449019234 (atan -1.0 -1.0))"
+ ATMOSPHERE: (27689..27690) "\n"
+ ATMOSPHERE: (27690..27732) ";; (test -1.5707963267949 (atan -1.0 0.0))"
+ ATMOSPHERE: (27732..27733) "\n"
+ ATMOSPHERE: (27733..27777) ";; (test -0.785398163397448 (atan -1.0 1.0))"
+ ATMOSPHERE: (27777..27778) "\n"
+ ATMOSPHERE: (27778..27815) ";; ;; (test undefined (atan 0.0 0.0))"
+ ATMOSPHERE: (27815..27817) "\n\n"
+ ATMOSPHERE: (27817..27843) ";; (test 1764 (square 42))"
+ ATMOSPHERE: (27843..27844) "\n"
+ ATMOSPHERE: (27844..27866) ";; (test 4 (square 2))"
+ ATMOSPHERE: (27866..27868) "\n\n"
+ ATMOSPHERE: (27868..27900) ";; (test 3.0 (inexact (sqrt 9)))"
+ ATMOSPHERE: (27900..27901) "\n"
+ ATMOSPHERE: (27901..27935) ";; (test 1.4142135623731 (sqrt 2))"
+ ATMOSPHERE: (27935..27936) "\n"
+ ATMOSPHERE: (27936..27974) ";; (test 0.0+1.0i (inexact (sqrt -1)))"
+ ATMOSPHERE: (27974..27976) "\n\n"
+ ATMOSPHERE: (27976..28051) ";; (test '(2 0) (call-with-values (lambda () (exact-integer-sqrt 4)) list))"
+ ATMOSPHERE: (28051..28052) "\n"
+ ATMOSPHERE: (28052..28127) ";; (test '(2 1) (call-with-values (lambda () (exact-integer-sqrt 5)) list))"
+ ATMOSPHERE: (28127..28129) "\n\n"
+ ATMOSPHERE: (28129..28152) ";; (test 27 (expt 3 3))"
+ ATMOSPHERE: (28152..28153) "\n"
+ ATMOSPHERE: (28153..28175) ";; (test 1 (expt 0 0))"
+ ATMOSPHERE: (28175..28176) "\n"
+ ATMOSPHERE: (28176..28198) ";; (test 0 (expt 0 1))"
+ ATMOSPHERE: (28198..28199) "\n"
+ ATMOSPHERE: (28199..28225) ";; (test 1.0 (expt 0.0 0))"
+ ATMOSPHERE: (28225..28226) "\n"
+ ATMOSPHERE: (28226..28252) ";; (test 0.0 (expt 0 1.0))"
+ ATMOSPHERE: (28252..28254) "\n\n"
+ ATMOSPHERE: (28254..28291) ";; (test 1+2i (make-rectangular 1 2))"
+ ATMOSPHERE: (28291..28293) "\n\n"
+ ATMOSPHERE: (28293..28355) ";; (test 0.54030230586814+0.841470984807897i (make-polar 1 1))"
+ ATMOSPHERE: (28355..28357) "\n\n"
+ ATMOSPHERE: (28357..28385) ";; (test 1 (real-part 1+2i))"
+ ATMOSPHERE: (28385..28387) "\n\n"
+ ATMOSPHERE: (28387..28415) ";; (test 2 (imag-part 1+2i))"
+ ATMOSPHERE: (28415..28417) "\n\n"
+ ATMOSPHERE: (28417..28460) ";; (test 2.23606797749979 (magnitude 1+2i))"
+ ATMOSPHERE: (28460..28462) "\n\n"
+ ATMOSPHERE: (28462..28501) ";; (test 1.10714871779409 (angle 1+2i))"
+ ATMOSPHERE: (28501..28503) "\n\n"
+ ATMOSPHERE: (28503..28528) ";; (test 1.0 (inexact 1))"
+ ATMOSPHERE: (28528..28529) "\n"
+ ATMOSPHERE: (28529..28564) ";; (test #t (inexact? (inexact 1)))"
+ ATMOSPHERE: (28564..28565) "\n"
+ ATMOSPHERE: (28565..28588) ";; (test 1 (exact 1.0))"
+ ATMOSPHERE: (28588..28589) "\n"
+ ATMOSPHERE: (28589..28622) ";; (test #t (exact? (exact 1.0)))"
+ ATMOSPHERE: (28622..28624) "\n\n"
+ FORM: (28624..28657)
+ OPEN_PAREN: (28624..28625) "("
+ SYMBOL: (28625..28629)
+ IDENTIFIER: (28625..28629) "test"
+ ATMOSPHERE: (28629..28630) " "
+ CONSTANT: (28630..28633)
+ NUMBER: (28630..28633) "100"
+ ATMOSPHERE: (28633..28634) " "
+ FORM: (28634..28656)
+ OPEN_PAREN: (28634..28635) "("
+ SYMBOL: (28635..28649)
+ IDENTIFIER: (28635..28649) "string->number"
+ ATMOSPHERE: (28649..28650) " "
+ CONSTANT: (28650..28655)
+ STRING: (28650..28655) "\"100\""
+ CLOSE_PAREN: (28655..28656) ")"
+ CLOSE_PAREN: (28656..28657) ")"
+ ATMOSPHERE: (28657..28658) "\n"
+ FORM: (28658..28694)
+ OPEN_PAREN: (28658..28659) "("
+ SYMBOL: (28659..28663)
+ IDENTIFIER: (28659..28663) "test"
+ ATMOSPHERE: (28663..28664) " "
+ CONSTANT: (28664..28667)
+ NUMBER: (28664..28667) "256"
+ ATMOSPHERE: (28667..28668) " "
+ FORM: (28668..28693)
+ OPEN_PAREN: (28668..28669) "("
+ SYMBOL: (28669..28683)
+ IDENTIFIER: (28669..28683) "string->number"
+ ATMOSPHERE: (28683..28684) " "
+ CONSTANT: (28684..28689)
+ STRING: (28684..28689) "\"100\""
+ ATMOSPHERE: (28689..28690) " "
+ CONSTANT: (28690..28692)
+ NUMBER: (28690..28692) "16"
+ CLOSE_PAREN: (28692..28693) ")"
+ CLOSE_PAREN: (28693..28694) ")"
+ ATMOSPHERE: (28694..28695) "\n"
+ FORM: (28695..28730)
+ OPEN_PAREN: (28695..28696) "("
+ SYMBOL: (28696..28700)
+ IDENTIFIER: (28696..28700) "test"
+ ATMOSPHERE: (28700..28701) " "
+ CONSTANT: (28701..28706)
+ NUMBER: (28701..28706) "100.0"
+ ATMOSPHERE: (28706..28707) " "
+ FORM: (28707..28729)
+ OPEN_PAREN: (28707..28708) "("
+ SYMBOL: (28708..28722)
+ IDENTIFIER: (28708..28722) "string->number"
+ ATMOSPHERE: (28722..28723) " "
+ CONSTANT: (28723..28728)
+ STRING: (28723..28728) "\"1e2\""
+ CLOSE_PAREN: (28728..28729) ")"
+ CLOSE_PAREN: (28729..28730) ")"
+ ATMOSPHERE: (28730..28732) "\n\n"
+ FORM: (28732..28742)
+ OPEN_PAREN: (28732..28733) "("
+ SYMBOL: (28733..28741)
+ IDENTIFIER: (28733..28741) "test-end"
+ CLOSE_PAREN: (28741..28742) ")"
+ ATMOSPHERE: (28742..28744) "\n\n"
+ FORM: (28744..28771)
+ OPEN_PAREN: (28744..28745) "("
+ SYMBOL: (28745..28755)
+ IDENTIFIER: (28745..28755) "test-begin"
+ ATMOSPHERE: (28755..28756) " "
+ CONSTANT: (28756..28770)
+ STRING: (28756..28770) "\"6.3 Booleans\""
+ CLOSE_PAREN: (28770..28771) ")"
+ ATMOSPHERE: (28771..28773) "\n\n"
+ FORM: (28773..28785)
+ OPEN_PAREN: (28773..28774) "("
+ SYMBOL: (28774..28778)
+ IDENTIFIER: (28774..28778) "test"
+ ATMOSPHERE: (28778..28779) " "
+ CONSTANT: (28779..28781)
+ BOOLEAN: (28779..28781) "#t"
+ ATMOSPHERE: (28781..28782) " "
+ CONSTANT: (28782..28784)
+ BOOLEAN: (28782..28784) "#t"
+ CLOSE_PAREN: (28784..28785) ")"
+ ATMOSPHERE: (28785..28786) "\n"
+ FORM: (28786..28798)
+ OPEN_PAREN: (28786..28787) "("
+ SYMBOL: (28787..28791)
+ IDENTIFIER: (28787..28791) "test"
+ ATMOSPHERE: (28791..28792) " "
+ CONSTANT: (28792..28794)
+ BOOLEAN: (28792..28794) "#f"
+ ATMOSPHERE: (28794..28795) " "
+ CONSTANT: (28795..28797)
+ BOOLEAN: (28795..28797) "#f"
+ CLOSE_PAREN: (28797..28798) ")"
+ ATMOSPHERE: (28798..28799) "\n"
+ FORM: (28799..28812)
+ OPEN_PAREN: (28799..28800) "("
+ SYMBOL: (28800..28804)
+ IDENTIFIER: (28800..28804) "test"
+ ATMOSPHERE: (28804..28805) " "
+ CONSTANT: (28805..28807)
+ BOOLEAN: (28805..28807) "#f"
+ ATMOSPHERE: (28807..28808) " "
+ QUOTED_DATUM: (28808..28811)
+ QUOTE: (28808..28809) "'"
+ CONSTANT: (28809..28811)
+ BOOLEAN: (28809..28811) "#f"
+ CLOSE_PAREN: (28811..28812) ")"
+ ATMOSPHERE: (28812..28814) "\n\n"
+ FORM: (28814..28832)
+ OPEN_PAREN: (28814..28815) "("
+ SYMBOL: (28815..28819)
+ IDENTIFIER: (28815..28819) "test"
+ ATMOSPHERE: (28819..28820) " "
+ CONSTANT: (28820..28822)
+ BOOLEAN: (28820..28822) "#f"
+ ATMOSPHERE: (28822..28823) " "
+ FORM: (28823..28831)
+ OPEN_PAREN: (28823..28824) "("
+ SYMBOL: (28824..28827)
+ IDENTIFIER: (28824..28827) "not"
+ ATMOSPHERE: (28827..28828) " "
+ CONSTANT: (28828..28830)
+ BOOLEAN: (28828..28830) "#t"
+ CLOSE_PAREN: (28830..28831) ")"
+ CLOSE_PAREN: (28831..28832) ")"
+ ATMOSPHERE: (28832..28833) "\n"
+ FORM: (28833..28850)
+ OPEN_PAREN: (28833..28834) "("
+ SYMBOL: (28834..28838)
+ IDENTIFIER: (28834..28838) "test"
+ ATMOSPHERE: (28838..28839) " "
+ CONSTANT: (28839..28841)
+ BOOLEAN: (28839..28841) "#f"
+ ATMOSPHERE: (28841..28842) " "
+ FORM: (28842..28849)
+ OPEN_PAREN: (28842..28843) "("
+ SYMBOL: (28843..28846)
+ IDENTIFIER: (28843..28846) "not"
+ ATMOSPHERE: (28846..28847) " "
+ CONSTANT: (28847..28848)
+ NUMBER: (28847..28848) "3"
+ CLOSE_PAREN: (28848..28849) ")"
+ CLOSE_PAREN: (28849..28850) ")"
+ ATMOSPHERE: (28850..28851) "\n"
+ FORM: (28851..28875)
+ OPEN_PAREN: (28851..28852) "("
+ SYMBOL: (28852..28856)
+ IDENTIFIER: (28852..28856) "test"
+ ATMOSPHERE: (28856..28857) " "
+ CONSTANT: (28857..28859)
+ BOOLEAN: (28857..28859) "#f"
+ ATMOSPHERE: (28859..28860) " "
+ FORM: (28860..28874)
+ OPEN_PAREN: (28860..28861) "("
+ SYMBOL: (28861..28864)
+ IDENTIFIER: (28861..28864) "not"
+ ATMOSPHERE: (28864..28865) " "
+ FORM: (28865..28873)
+ OPEN_PAREN: (28865..28866) "("
+ SYMBOL: (28866..28870)
+ IDENTIFIER: (28866..28870) "list"
+ ATMOSPHERE: (28870..28871) " "
+ CONSTANT: (28871..28872)
+ NUMBER: (28871..28872) "3"
+ CLOSE_PAREN: (28872..28873) ")"
+ CLOSE_PAREN: (28873..28874) ")"
+ CLOSE_PAREN: (28874..28875) ")"
+ ATMOSPHERE: (28875..28876) "\n"
+ FORM: (28876..28894)
+ OPEN_PAREN: (28876..28877) "("
+ SYMBOL: (28877..28881)
+ IDENTIFIER: (28877..28881) "test"
+ ATMOSPHERE: (28881..28882) " "
+ CONSTANT: (28882..28884)
+ BOOLEAN: (28882..28884) "#t"
+ ATMOSPHERE: (28884..28885) " "
+ FORM: (28885..28893)
+ OPEN_PAREN: (28885..28886) "("
+ SYMBOL: (28886..28889)
+ IDENTIFIER: (28886..28889) "not"
+ ATMOSPHERE: (28889..28890) " "
+ CONSTANT: (28890..28892)
+ BOOLEAN: (28890..28892) "#f"
+ CLOSE_PAREN: (28892..28893) ")"
+ CLOSE_PAREN: (28893..28894) ")"
+ ATMOSPHERE: (28894..28895) "\n"
+ FORM: (28895..28914)
+ OPEN_PAREN: (28895..28896) "("
+ SYMBOL: (28896..28900)
+ IDENTIFIER: (28896..28900) "test"
+ ATMOSPHERE: (28900..28901) " "
+ CONSTANT: (28901..28903)
+ BOOLEAN: (28901..28903) "#f"
+ ATMOSPHERE: (28903..28904) " "
+ FORM: (28904..28913)
+ OPEN_PAREN: (28904..28905) "("
+ SYMBOL: (28905..28908)
+ IDENTIFIER: (28905..28908) "not"
+ ATMOSPHERE: (28908..28909) " "
+ QUOTED_DATUM: (28909..28912)
+ QUOTE: (28909..28910) "'"
+ FORM: (28910..28912)
+ OPEN_PAREN: (28910..28911) "("
+ CLOSE_PAREN: (28911..28912) ")"
+ CLOSE_PAREN: (28912..28913) ")"
+ CLOSE_PAREN: (28913..28914) ")"
+ ATMOSPHERE: (28914..28915) "\n"
+ FORM: (28915..28937)
+ OPEN_PAREN: (28915..28916) "("
+ SYMBOL: (28916..28920)
+ IDENTIFIER: (28916..28920) "test"
+ ATMOSPHERE: (28920..28921) " "
+ CONSTANT: (28921..28923)
+ BOOLEAN: (28921..28923) "#f"
+ ATMOSPHERE: (28923..28924) " "
+ FORM: (28924..28936)
+ OPEN_PAREN: (28924..28925) "("
+ SYMBOL: (28925..28928)
+ IDENTIFIER: (28925..28928) "not"
+ ATMOSPHERE: (28928..28929) " "
+ FORM: (28929..28935)
+ OPEN_PAREN: (28929..28930) "("
+ SYMBOL: (28930..28934)
+ IDENTIFIER: (28930..28934) "list"
+ CLOSE_PAREN: (28934..28935) ")"
+ CLOSE_PAREN: (28935..28936) ")"
+ CLOSE_PAREN: (28936..28937) ")"
+ ATMOSPHERE: (28937..28938) "\n"
+ FORM: (28938..28958)
+ OPEN_PAREN: (28938..28939) "("
+ SYMBOL: (28939..28943)
+ IDENTIFIER: (28939..28943) "test"
+ ATMOSPHERE: (28943..28944) " "
+ CONSTANT: (28944..28946)
+ BOOLEAN: (28944..28946) "#f"
+ ATMOSPHERE: (28946..28947) " "
+ FORM: (28947..28957)
+ OPEN_PAREN: (28947..28948) "("
+ SYMBOL: (28948..28951)
+ IDENTIFIER: (28948..28951) "not"
+ ATMOSPHERE: (28951..28952) " "
+ QUOTED_DATUM: (28952..28956)
+ QUOTE: (28952..28953) "'"
+ SYMBOL: (28953..28956)
+ IDENTIFIER: (28953..28956) "nil"
+ CLOSE_PAREN: (28956..28957) ")"
+ CLOSE_PAREN: (28957..28958) ")"
+ ATMOSPHERE: (28958..28960) "\n\n"
+ FORM: (28960..28983)
+ OPEN_PAREN: (28960..28961) "("
+ SYMBOL: (28961..28965)
+ IDENTIFIER: (28961..28965) "test"
+ ATMOSPHERE: (28965..28966) " "
+ CONSTANT: (28966..28968)
+ BOOLEAN: (28966..28968) "#t"
+ ATMOSPHERE: (28968..28969) " "
+ FORM: (28969..28982)
+ OPEN_PAREN: (28969..28970) "("
+ SYMBOL: (28970..28978)
+ IDENTIFIER: (28970..28978) "boolean?"
+ ATMOSPHERE: (28978..28979) " "
+ CONSTANT: (28979..28981)
+ BOOLEAN: (28979..28981) "#f"
+ CLOSE_PAREN: (28981..28982) ")"
+ CLOSE_PAREN: (28982..28983) ")"
+ ATMOSPHERE: (28983..28984) "\n"
+ FORM: (28984..29006)
+ OPEN_PAREN: (28984..28985) "("
+ SYMBOL: (28985..28989)
+ IDENTIFIER: (28985..28989) "test"
+ ATMOSPHERE: (28989..28990) " "
+ CONSTANT: (28990..28992)
+ BOOLEAN: (28990..28992) "#f"
+ ATMOSPHERE: (28992..28993) " "
+ FORM: (28993..29005)
+ OPEN_PAREN: (28993..28994) "("
+ SYMBOL: (28994..29002)
+ IDENTIFIER: (28994..29002) "boolean?"
+ ATMOSPHERE: (29002..29003) " "
+ CONSTANT: (29003..29004)
+ NUMBER: (29003..29004) "0"
+ CLOSE_PAREN: (29004..29005) ")"
+ CLOSE_PAREN: (29005..29006) ")"
+ ATMOSPHERE: (29006..29007) "\n"
+ FORM: (29007..29031)
+ OPEN_PAREN: (29007..29008) "("
+ SYMBOL: (29008..29012)
+ IDENTIFIER: (29008..29012) "test"
+ ATMOSPHERE: (29012..29013) " "
+ CONSTANT: (29013..29015)
+ BOOLEAN: (29013..29015) "#f"
+ ATMOSPHERE: (29015..29016) " "
+ FORM: (29016..29030)
+ OPEN_PAREN: (29016..29017) "("
+ SYMBOL: (29017..29025)
+ IDENTIFIER: (29017..29025) "boolean?"
+ ATMOSPHERE: (29025..29026) " "
+ QUOTED_DATUM: (29026..29029)
+ QUOTE: (29026..29027) "'"
+ FORM: (29027..29029)
+ OPEN_PAREN: (29027..29028) "("
+ CLOSE_PAREN: (29028..29029) ")"
+ CLOSE_PAREN: (29029..29030) ")"
+ CLOSE_PAREN: (29030..29031) ")"
+ ATMOSPHERE: (29031..29033) "\n\n"
+ FORM: (29033..29060)
+ OPEN_PAREN: (29033..29034) "("
+ SYMBOL: (29034..29038)
+ IDENTIFIER: (29034..29038) "test"
+ ATMOSPHERE: (29038..29039) " "
+ CONSTANT: (29039..29041)
+ BOOLEAN: (29039..29041) "#t"
+ ATMOSPHERE: (29041..29042) " "
+ FORM: (29042..29059)
+ OPEN_PAREN: (29042..29043) "("
+ SYMBOL: (29043..29052)
+ IDENTIFIER: (29043..29052) "boolean=?"
+ ATMOSPHERE: (29052..29053) " "
+ CONSTANT: (29053..29055)
+ BOOLEAN: (29053..29055) "#t"
+ ATMOSPHERE: (29055..29056) " "
+ CONSTANT: (29056..29058)
+ BOOLEAN: (29056..29058) "#t"
+ CLOSE_PAREN: (29058..29059) ")"
+ CLOSE_PAREN: (29059..29060) ")"
+ ATMOSPHERE: (29060..29061) "\n"
+ FORM: (29061..29088)
+ OPEN_PAREN: (29061..29062) "("
+ SYMBOL: (29062..29066)
+ IDENTIFIER: (29062..29066) "test"
+ ATMOSPHERE: (29066..29067) " "
+ CONSTANT: (29067..29069)
+ BOOLEAN: (29067..29069) "#t"
+ ATMOSPHERE: (29069..29070) " "
+ FORM: (29070..29087)
+ OPEN_PAREN: (29070..29071) "("
+ SYMBOL: (29071..29080)
+ IDENTIFIER: (29071..29080) "boolean=?"
+ ATMOSPHERE: (29080..29081) " "
+ CONSTANT: (29081..29083)
+ BOOLEAN: (29081..29083) "#f"
+ ATMOSPHERE: (29083..29084) " "
+ CONSTANT: (29084..29086)
+ BOOLEAN: (29084..29086) "#f"
+ CLOSE_PAREN: (29086..29087) ")"
+ CLOSE_PAREN: (29087..29088) ")"
+ ATMOSPHERE: (29088..29089) "\n"
+ FORM: (29089..29116)
+ OPEN_PAREN: (29089..29090) "("
+ SYMBOL: (29090..29094)
+ IDENTIFIER: (29090..29094) "test"
+ ATMOSPHERE: (29094..29095) " "
+ CONSTANT: (29095..29097)
+ BOOLEAN: (29095..29097) "#f"
+ ATMOSPHERE: (29097..29098) " "
+ FORM: (29098..29115)
+ OPEN_PAREN: (29098..29099) "("
+ SYMBOL: (29099..29108)
+ IDENTIFIER: (29099..29108) "boolean=?"
+ ATMOSPHERE: (29108..29109) " "
+ CONSTANT: (29109..29111)
+ BOOLEAN: (29109..29111) "#t"
+ ATMOSPHERE: (29111..29112) " "
+ CONSTANT: (29112..29114)
+ BOOLEAN: (29112..29114) "#f"
+ CLOSE_PAREN: (29114..29115) ")"
+ CLOSE_PAREN: (29115..29116) ")"
+ ATMOSPHERE: (29116..29117) "\n"
+ FORM: (29117..29147)
+ OPEN_PAREN: (29117..29118) "("
+ SYMBOL: (29118..29122)
+ IDENTIFIER: (29118..29122) "test"
+ ATMOSPHERE: (29122..29123) " "
+ CONSTANT: (29123..29125)
+ BOOLEAN: (29123..29125) "#t"
+ ATMOSPHERE: (29125..29126) " "
+ FORM: (29126..29146)
+ OPEN_PAREN: (29126..29127) "("
+ SYMBOL: (29127..29136)
+ IDENTIFIER: (29127..29136) "boolean=?"
+ ATMOSPHERE: (29136..29137) " "
+ CONSTANT: (29137..29139)
+ BOOLEAN: (29137..29139) "#f"
+ ATMOSPHERE: (29139..29140) " "
+ CONSTANT: (29140..29142)
+ BOOLEAN: (29140..29142) "#f"
+ ATMOSPHERE: (29142..29143) " "
+ CONSTANT: (29143..29145)
+ BOOLEAN: (29143..29145) "#f"
+ CLOSE_PAREN: (29145..29146) ")"
+ CLOSE_PAREN: (29146..29147) ")"
+ ATMOSPHERE: (29147..29148) "\n"
+ FORM: (29148..29178)
+ OPEN_PAREN: (29148..29149) "("
+ SYMBOL: (29149..29153)
+ IDENTIFIER: (29149..29153) "test"
+ ATMOSPHERE: (29153..29154) " "
+ CONSTANT: (29154..29156)
+ BOOLEAN: (29154..29156) "#f"
+ ATMOSPHERE: (29156..29157) " "
+ FORM: (29157..29177)
+ OPEN_PAREN: (29157..29158) "("
+ SYMBOL: (29158..29167)
+ IDENTIFIER: (29158..29167) "boolean=?"
+ ATMOSPHERE: (29167..29168) " "
+ CONSTANT: (29168..29170)
+ BOOLEAN: (29168..29170) "#t"
+ ATMOSPHERE: (29170..29171) " "
+ CONSTANT: (29171..29173)
+ BOOLEAN: (29171..29173) "#t"
+ ATMOSPHERE: (29173..29174) " "
+ CONSTANT: (29174..29176)
+ BOOLEAN: (29174..29176) "#f"
+ CLOSE_PAREN: (29176..29177) ")"
+ CLOSE_PAREN: (29177..29178) ")"
+ ATMOSPHERE: (29178..29180) "\n\n"
+ FORM: (29180..29190)
+ OPEN_PAREN: (29180..29181) "("
+ SYMBOL: (29181..29189)
+ IDENTIFIER: (29181..29189) "test-end"
+ CLOSE_PAREN: (29189..29190) ")"
+ ATMOSPHERE: (29190..29192) "\n\n"
+ FORM: (29192..29216)
+ OPEN_PAREN: (29192..29193) "("
+ SYMBOL: (29193..29203)
+ IDENTIFIER: (29193..29203) "test-begin"
+ ATMOSPHERE: (29203..29204) " "
+ CONSTANT: (29204..29215)
+ STRING: (29204..29215) "\"6.4 Lists\""
+ CLOSE_PAREN: (29215..29216) ")"
+ ATMOSPHERE: (29216..29218) "\n\n"
+ ATMOSPHERE: (29218..29247) ";; (let* ((x (list 'a 'b 'c))"
+ ATMOSPHERE: (29247..29248) "\n"
+ ATMOSPHERE: (29248..29264) ";; (y x))"
+ ATMOSPHERE: (29264..29265) "\n"
+ ATMOSPHERE: (29265..29296) ";; (test '(a b c) (values y))"
+ ATMOSPHERE: (29296..29297) "\n"
+ ATMOSPHERE: (29297..29321) ";; (test #t (list? y))"
+ ATMOSPHERE: (29321..29322) "\n"
+ ATMOSPHERE: (29322..29341) ";; (set-cdr! x 4)"
+ ATMOSPHERE: (29341..29342) "\n"
+ ATMOSPHERE: (29342..29373) ";; (test '(a . 4) (values x))"
+ ATMOSPHERE: (29373..29374) "\n"
+ ATMOSPHERE: (29374..29399) ";; (test #t (eqv? x y))"
+ ATMOSPHERE: (29399..29400) "\n"
+ ATMOSPHERE: (29400..29424) ";; (test #f (list? y))"
+ ATMOSPHERE: (29424..29425) "\n"
+ ATMOSPHERE: (29425..29444) ";; (set-cdr! x x)"
+ ATMOSPHERE: (29444..29445) "\n"
+ ATMOSPHERE: (29445..29470) ";; (test #f (list? x)))"
+ ATMOSPHERE: (29470..29472) "\n\n"
+ FORM: (29472..29498)
+ OPEN_PAREN: (29472..29473) "("
+ SYMBOL: (29473..29477)
+ IDENTIFIER: (29473..29477) "test"
+ ATMOSPHERE: (29477..29478) " "
+ CONSTANT: (29478..29480)
+ BOOLEAN: (29478..29480) "#t"
+ ATMOSPHERE: (29480..29481) " "
+ FORM: (29481..29497)
+ OPEN_PAREN: (29481..29482) "("
+ SYMBOL: (29482..29487)
+ IDENTIFIER: (29482..29487) "pair?"
+ ATMOSPHERE: (29487..29488) " "
+ QUOTED_DATUM: (29488..29496)
+ QUOTE: (29488..29489) "'"
+ FORM: (29489..29496)
+ OPEN_PAREN: (29489..29490) "("
+ SYMBOL: (29490..29491)
+ IDENTIFIER: (29490..29491) "a"
+ ATMOSPHERE: (29491..29492) " "
+ DOTTED_TAIL: (29492..29495)
+ DOT: (29492..29493) "."
+ ATMOSPHERE: (29493..29494) " "
+ SYMBOL: (29494..29495)
+ IDENTIFIER: (29494..29495) "b"
+ CLOSE_PAREN: (29495..29496) ")"
+ CLOSE_PAREN: (29496..29497) ")"
+ CLOSE_PAREN: (29497..29498) ")"
+ ATMOSPHERE: (29498..29499) "\n"
+ FORM: (29499..29525)
+ OPEN_PAREN: (29499..29500) "("
+ SYMBOL: (29500..29504)
+ IDENTIFIER: (29500..29504) "test"
+ ATMOSPHERE: (29504..29505) " "
+ CONSTANT: (29505..29507)
+ BOOLEAN: (29505..29507) "#t"
+ ATMOSPHERE: (29507..29508) " "
+ FORM: (29508..29524)
+ OPEN_PAREN: (29508..29509) "("
+ SYMBOL: (29509..29514)
+ IDENTIFIER: (29509..29514) "pair?"
+ ATMOSPHERE: (29514..29515) " "
+ QUOTED_DATUM: (29515..29523)
+ QUOTE: (29515..29516) "'"
+ FORM: (29516..29523)
+ OPEN_PAREN: (29516..29517) "("
+ SYMBOL: (29517..29518)
+ IDENTIFIER: (29517..29518) "a"
+ ATMOSPHERE: (29518..29519) " "
+ SYMBOL: (29519..29520)
+ IDENTIFIER: (29519..29520) "b"
+ ATMOSPHERE: (29520..29521) " "
+ SYMBOL: (29521..29522)
+ IDENTIFIER: (29521..29522) "c"
+ CLOSE_PAREN: (29522..29523) ")"
+ CLOSE_PAREN: (29523..29524) ")"
+ CLOSE_PAREN: (29524..29525) ")"
+ ATMOSPHERE: (29525..29526) "\n"
+ FORM: (29526..29547)
+ OPEN_PAREN: (29526..29527) "("
+ SYMBOL: (29527..29531)
+ IDENTIFIER: (29527..29531) "test"
+ ATMOSPHERE: (29531..29532) " "
+ CONSTANT: (29532..29534)
+ BOOLEAN: (29532..29534) "#f"
+ ATMOSPHERE: (29534..29535) " "
+ FORM: (29535..29546)
+ OPEN_PAREN: (29535..29536) "("
+ SYMBOL: (29536..29541)
+ IDENTIFIER: (29536..29541) "pair?"
+ ATMOSPHERE: (29541..29542) " "
+ QUOTED_DATUM: (29542..29545)
+ QUOTE: (29542..29543) "'"
+ FORM: (29543..29545)
+ OPEN_PAREN: (29543..29544) "("
+ CLOSE_PAREN: (29544..29545) ")"
+ CLOSE_PAREN: (29545..29546) ")"
+ CLOSE_PAREN: (29546..29547) ")"
+ ATMOSPHERE: (29547..29548) "\n"
+ FORM: (29548..29573)
+ OPEN_PAREN: (29548..29549) "("
+ SYMBOL: (29549..29553)
+ IDENTIFIER: (29549..29553) "test"
+ ATMOSPHERE: (29553..29554) " "
+ CONSTANT: (29554..29556)
+ BOOLEAN: (29554..29556) "#f"
+ ATMOSPHERE: (29556..29557) " "
+ FORM: (29557..29572)
+ OPEN_PAREN: (29557..29558) "("
+ SYMBOL: (29558..29563)
+ IDENTIFIER: (29558..29563) "pair?"
+ ATMOSPHERE: (29563..29564) " "
+ QUOTED_DATUM: (29564..29571)
+ QUOTE: (29564..29565) "'"
+ VEC: (29565..29571)
+ OPEN_PAREN: (29565..29567) "#("
+ SYMBOL: (29567..29568)
+ IDENTIFIER: (29567..29568) "a"
+ ATMOSPHERE: (29568..29569) " "
+ SYMBOL: (29569..29570)
+ IDENTIFIER: (29569..29570) "b"
+ CLOSE_PAREN: (29570..29571) ")"
+ CLOSE_PAREN: (29571..29572) ")"
+ CLOSE_PAREN: (29572..29573) ")"
+ ATMOSPHERE: (29573..29575) "\n\n"
+ FORM: (29575..29600)
+ OPEN_PAREN: (29575..29576) "("
+ SYMBOL: (29576..29580)
+ IDENTIFIER: (29576..29580) "test"
+ ATMOSPHERE: (29580..29581) " "
+ QUOTED_DATUM: (29581..29586)
+ QUOTE: (29581..29582) "'"
+ FORM: (29582..29585)
+ OPEN_PAREN: (29582..29583) "("
+ SYMBOL: (29583..29584)
+ IDENTIFIER: (29583..29584) "a"
+ CLOSE_PAREN: (29584..29585) ")"
+ ATMOSPHERE: (29585..29586) " "
+ FORM: (29586..29599)
+ OPEN_PAREN: (29586..29587) "("
+ SYMBOL: (29587..29591)
+ IDENTIFIER: (29587..29591) "cons"
+ ATMOSPHERE: (29591..29592) " "
+ QUOTED_DATUM: (29592..29595)
+ QUOTE: (29592..29593) "'"
+ SYMBOL: (29593..29594)
+ IDENTIFIER: (29593..29594) "a"
+ ATMOSPHERE: (29594..29595) " "
+ QUOTED_DATUM: (29595..29598)
+ QUOTE: (29595..29596) "'"
+ FORM: (29596..29598)
+ OPEN_PAREN: (29596..29597) "("
+ CLOSE_PAREN: (29597..29598) ")"
+ CLOSE_PAREN: (29598..29599) ")"
+ CLOSE_PAREN: (29599..29600) ")"
+ ATMOSPHERE: (29600..29601) "\n"
+ FORM: (29601..29641)
+ OPEN_PAREN: (29601..29602) "("
+ SYMBOL: (29602..29606)
+ IDENTIFIER: (29602..29606) "test"
+ ATMOSPHERE: (29606..29607) " "
+ QUOTED_DATUM: (29607..29620)
+ QUOTE: (29607..29608) "'"
+ FORM: (29608..29619)
+ OPEN_PAREN: (29608..29609) "("
+ FORM: (29609..29612)
+ OPEN_PAREN: (29609..29610) "("
+ SYMBOL: (29610..29611)
+ IDENTIFIER: (29610..29611) "a"
+ CLOSE_PAREN: (29611..29612) ")"
+ ATMOSPHERE: (29612..29613) " "
+ SYMBOL: (29613..29614)
+ IDENTIFIER: (29613..29614) "b"
+ ATMOSPHERE: (29614..29615) " "
+ SYMBOL: (29615..29616)
+ IDENTIFIER: (29615..29616) "c"
+ ATMOSPHERE: (29616..29617) " "
+ SYMBOL: (29617..29618)
+ IDENTIFIER: (29617..29618) "d"
+ CLOSE_PAREN: (29618..29619) ")"
+ ATMOSPHERE: (29619..29620) " "
+ FORM: (29620..29640)
+ OPEN_PAREN: (29620..29621) "("
+ SYMBOL: (29621..29625)
+ IDENTIFIER: (29621..29625) "cons"
+ ATMOSPHERE: (29625..29626) " "
+ QUOTED_DATUM: (29626..29631)
+ QUOTE: (29626..29627) "'"
+ FORM: (29627..29630)
+ OPEN_PAREN: (29627..29628) "("
+ SYMBOL: (29628..29629)
+ IDENTIFIER: (29628..29629) "a"
+ CLOSE_PAREN: (29629..29630) ")"
+ ATMOSPHERE: (29630..29631) " "
+ QUOTED_DATUM: (29631..29639)
+ QUOTE: (29631..29632) "'"
+ FORM: (29632..29639)
+ OPEN_PAREN: (29632..29633) "("
+ SYMBOL: (29633..29634)
+ IDENTIFIER: (29633..29634) "b"
+ ATMOSPHERE: (29634..29635) " "
+ SYMBOL: (29635..29636)
+ IDENTIFIER: (29635..29636) "c"
+ ATMOSPHERE: (29636..29637) " "
+ SYMBOL: (29637..29638)
+ IDENTIFIER: (29637..29638) "d"
+ CLOSE_PAREN: (29638..29639) ")"
+ CLOSE_PAREN: (29639..29640) ")"
+ CLOSE_PAREN: (29640..29641) ")"
+ ATMOSPHERE: (29641..29642) "\n"
+ FORM: (29642..29677)
+ OPEN_PAREN: (29642..29643) "("
+ SYMBOL: (29643..29647)
+ IDENTIFIER: (29643..29647) "test"
+ ATMOSPHERE: (29647..29648) " "
+ QUOTED_DATUM: (29648..29659)
+ QUOTE: (29648..29649) "'"
+ FORM: (29649..29658)
+ OPEN_PAREN: (29649..29650) "("
+ CONSTANT: (29650..29653)
+ STRING: (29650..29653) "\"a\""
+ ATMOSPHERE: (29653..29654) " "
+ SYMBOL: (29654..29655)
+ IDENTIFIER: (29654..29655) "b"
+ ATMOSPHERE: (29655..29656) " "
+ SYMBOL: (29656..29657)
+ IDENTIFIER: (29656..29657) "c"
+ CLOSE_PAREN: (29657..29658) ")"
+ ATMOSPHERE: (29658..29659) " "
+ FORM: (29659..29676)
+ OPEN_PAREN: (29659..29660) "("
+ SYMBOL: (29660..29664)
+ IDENTIFIER: (29660..29664) "cons"
+ ATMOSPHERE: (29664..29665) " "
+ CONSTANT: (29665..29668)
+ STRING: (29665..29668) "\"a\""
+ ATMOSPHERE: (29668..29669) " "
+ QUOTED_DATUM: (29669..29675)
+ QUOTE: (29669..29670) "'"
+ FORM: (29670..29675)
+ OPEN_PAREN: (29670..29671) "("
+ SYMBOL: (29671..29672)
+ IDENTIFIER: (29671..29672) "b"
+ ATMOSPHERE: (29672..29673) " "
+ SYMBOL: (29673..29674)
+ IDENTIFIER: (29673..29674) "c"
+ CLOSE_PAREN: (29674..29675) ")"
+ CLOSE_PAREN: (29675..29676) ")"
+ CLOSE_PAREN: (29676..29677) ")"
+ ATMOSPHERE: (29677..29678) "\n"
+ ATMOSPHERE: (29678..29712) ";;; FIXME: Quoting of dotted forms"
+ ATMOSPHERE: (29712..29713) "\n"
+ ATMOSPHERE: (29713..29743) ";; (test '(a . 3) (cons 'a 3))"
+ ATMOSPHERE: (29743..29744) "\n"
+ ATMOSPHERE: (29744..29783) ";; (test '((a b) . c) (cons '(a b) 'c))"
+ ATMOSPHERE: (29783..29785) "\n\n"
+ FORM: (29785..29809)
+ OPEN_PAREN: (29785..29786) "("
+ SYMBOL: (29786..29790)
+ IDENTIFIER: (29786..29790) "test"
+ ATMOSPHERE: (29790..29791) " "
+ QUOTED_DATUM: (29791..29794)
+ QUOTE: (29791..29792) "'"
+ SYMBOL: (29792..29793)
+ IDENTIFIER: (29792..29793) "a"
+ ATMOSPHERE: (29793..29794) " "
+ FORM: (29794..29808)
+ OPEN_PAREN: (29794..29795) "("
+ SYMBOL: (29795..29798)
+ IDENTIFIER: (29795..29798) "car"
+ ATMOSPHERE: (29798..29799) " "
+ QUOTED_DATUM: (29799..29807)
+ QUOTE: (29799..29800) "'"
+ FORM: (29800..29807)
+ OPEN_PAREN: (29800..29801) "("
+ SYMBOL: (29801..29802)
+ IDENTIFIER: (29801..29802) "a"
+ ATMOSPHERE: (29802..29803) " "
+ SYMBOL: (29803..29804)
+ IDENTIFIER: (29803..29804) "b"
+ ATMOSPHERE: (29804..29805) " "
+ SYMBOL: (29805..29806)
+ IDENTIFIER: (29805..29806) "c"
+ CLOSE_PAREN: (29806..29807) ")"
+ CLOSE_PAREN: (29807..29808) ")"
+ CLOSE_PAREN: (29808..29809) ")"
+ ATMOSPHERE: (29809..29810) "\n"
+ FORM: (29810..29840)
+ OPEN_PAREN: (29810..29811) "("
+ SYMBOL: (29811..29815)
+ IDENTIFIER: (29811..29815) "test"
+ ATMOSPHERE: (29815..29816) " "
+ QUOTED_DATUM: (29816..29821)
+ QUOTE: (29816..29817) "'"
+ FORM: (29817..29820)
+ OPEN_PAREN: (29817..29818) "("
+ SYMBOL: (29818..29819)
+ IDENTIFIER: (29818..29819) "a"
+ CLOSE_PAREN: (29819..29820) ")"
+ ATMOSPHERE: (29820..29821) " "
+ FORM: (29821..29839)
+ OPEN_PAREN: (29821..29822) "("
+ SYMBOL: (29822..29825)
+ IDENTIFIER: (29822..29825) "car"
+ ATMOSPHERE: (29825..29826) " "
+ QUOTED_DATUM: (29826..29838)
+ QUOTE: (29826..29827) "'"
+ FORM: (29827..29838)
+ OPEN_PAREN: (29827..29828) "("
+ FORM: (29828..29831)
+ OPEN_PAREN: (29828..29829) "("
+ SYMBOL: (29829..29830)
+ IDENTIFIER: (29829..29830) "a"
+ CLOSE_PAREN: (29830..29831) ")"
+ ATMOSPHERE: (29831..29832) " "
+ SYMBOL: (29832..29833)
+ IDENTIFIER: (29832..29833) "b"
+ ATMOSPHERE: (29833..29834) " "
+ SYMBOL: (29834..29835)
+ IDENTIFIER: (29834..29835) "c"
+ ATMOSPHERE: (29835..29836) " "
+ SYMBOL: (29836..29837)
+ IDENTIFIER: (29836..29837) "d"
+ CLOSE_PAREN: (29837..29838) ")"
+ CLOSE_PAREN: (29838..29839) ")"
+ CLOSE_PAREN: (29839..29840) ")"
+ ATMOSPHERE: (29840..29841) "\n"
+ FORM: (29841..29864)
+ OPEN_PAREN: (29841..29842) "("
+ SYMBOL: (29842..29846)
+ IDENTIFIER: (29842..29846) "test"
+ ATMOSPHERE: (29846..29847) " "
+ CONSTANT: (29847..29848)
+ NUMBER: (29847..29848) "1"
+ ATMOSPHERE: (29848..29849) " "
+ FORM: (29849..29863)
+ OPEN_PAREN: (29849..29850) "("
+ SYMBOL: (29850..29853)
+ IDENTIFIER: (29850..29853) "car"
+ ATMOSPHERE: (29853..29854) " "
+ QUOTED_DATUM: (29854..29862)
+ QUOTE: (29854..29855) "'"
+ FORM: (29855..29862)
+ OPEN_PAREN: (29855..29856) "("
+ CONSTANT: (29856..29857)
+ NUMBER: (29856..29857) "1"
+ ATMOSPHERE: (29857..29858) " "
+ DOTTED_TAIL: (29858..29861)
+ DOT: (29858..29859) "."
+ ATMOSPHERE: (29859..29860) " "
+ CONSTANT: (29860..29861)
+ NUMBER: (29860..29861) "2"
+ CLOSE_PAREN: (29861..29862) ")"
+ CLOSE_PAREN: (29862..29863) ")"
+ CLOSE_PAREN: (29863..29864) ")"
+ ATMOSPHERE: (29864..29866) "\n\n"
+ FORM: (29866..29900)
+ OPEN_PAREN: (29866..29867) "("
+ SYMBOL: (29867..29871)
+ IDENTIFIER: (29867..29871) "test"
+ ATMOSPHERE: (29871..29872) " "
+ QUOTED_DATUM: (29872..29881)
+ QUOTE: (29872..29873) "'"
+ FORM: (29873..29880)
+ OPEN_PAREN: (29873..29874) "("
+ SYMBOL: (29874..29875)
+ IDENTIFIER: (29874..29875) "b"
+ ATMOSPHERE: (29875..29876) " "
+ SYMBOL: (29876..29877)
+ IDENTIFIER: (29876..29877) "c"
+ ATMOSPHERE: (29877..29878) " "
+ SYMBOL: (29878..29879)
+ IDENTIFIER: (29878..29879) "d"
+ CLOSE_PAREN: (29879..29880) ")"
+ ATMOSPHERE: (29880..29881) " "
+ FORM: (29881..29899)
+ OPEN_PAREN: (29881..29882) "("
+ SYMBOL: (29882..29885)
+ IDENTIFIER: (29882..29885) "cdr"
+ ATMOSPHERE: (29885..29886) " "
+ QUOTED_DATUM: (29886..29898)
+ QUOTE: (29886..29887) "'"
+ FORM: (29887..29898)
+ OPEN_PAREN: (29887..29888) "("
+ FORM: (29888..29891)
+ OPEN_PAREN: (29888..29889) "("
+ SYMBOL: (29889..29890)
+ IDENTIFIER: (29889..29890) "a"
+ CLOSE_PAREN: (29890..29891) ")"
+ ATMOSPHERE: (29891..29892) " "
+ SYMBOL: (29892..29893)
+ IDENTIFIER: (29892..29893) "b"
+ ATMOSPHERE: (29893..29894) " "
+ SYMBOL: (29894..29895)
+ IDENTIFIER: (29894..29895) "c"
+ ATMOSPHERE: (29895..29896) " "
+ SYMBOL: (29896..29897)
+ IDENTIFIER: (29896..29897) "d"
+ CLOSE_PAREN: (29897..29898) ")"
+ CLOSE_PAREN: (29898..29899) ")"
+ CLOSE_PAREN: (29899..29900) ")"
+ ATMOSPHERE: (29900..29901) "\n"
+ ATMOSPHERE: (29901..29961) ";; (test 2 (cdr '(1 . 2))) ; FIXME: Quoting of dotted forms"
+ ATMOSPHERE: (29961..29962) "\n"
+ FORM: (29962..29991)
+ OPEN_PAREN: (29962..29963) "("
+ SYMBOL: (29963..29969)
+ IDENTIFIER: (29963..29969) "define"
+ ATMOSPHERE: (29969..29970) " "
+ FORM: (29970..29973)
+ OPEN_PAREN: (29970..29971) "("
+ SYMBOL: (29971..29972)
+ IDENTIFIER: (29971..29972) "g"
+ CLOSE_PAREN: (29972..29973) ")"
+ ATMOSPHERE: (29973..29974) " "
+ QUOTED_DATUM: (29974..29990)
+ QUOTE: (29974..29975) "'"
+ FORM: (29975..29990)
+ OPEN_PAREN: (29975..29976) "("
+ SYMBOL: (29976..29989)
+ IDENTIFIER: (29976..29989) "constant-list"
+ CLOSE_PAREN: (29989..29990) ")"
+ CLOSE_PAREN: (29990..29991) ")"
+ ATMOSPHERE: (29991..29993) "\n\n"
+ FORM: (29993..30019)
+ OPEN_PAREN: (29993..29994) "("
+ SYMBOL: (29994..29998)
+ IDENTIFIER: (29994..29998) "test"
+ ATMOSPHERE: (29998..29999) " "
+ CONSTANT: (29999..30001)
+ BOOLEAN: (29999..30001) "#t"
+ ATMOSPHERE: (30001..30002) " "
+ FORM: (30002..30018)
+ OPEN_PAREN: (30002..30003) "("
+ SYMBOL: (30003..30008)
+ IDENTIFIER: (30003..30008) "list?"
+ ATMOSPHERE: (30008..30009) " "
+ QUOTED_DATUM: (30009..30017)
+ QUOTE: (30009..30010) "'"
+ FORM: (30010..30017)
+ OPEN_PAREN: (30010..30011) "("
+ SYMBOL: (30011..30012)
+ IDENTIFIER: (30011..30012) "a"
+ ATMOSPHERE: (30012..30013) " "
+ SYMBOL: (30013..30014)
+ IDENTIFIER: (30013..30014) "b"
+ ATMOSPHERE: (30014..30015) " "
+ SYMBOL: (30015..30016)
+ IDENTIFIER: (30015..30016) "c"
+ CLOSE_PAREN: (30016..30017) ")"
+ CLOSE_PAREN: (30017..30018) ")"
+ CLOSE_PAREN: (30018..30019) ")"
+ ATMOSPHERE: (30019..30020) "\n"
+ FORM: (30020..30041)
+ OPEN_PAREN: (30020..30021) "("
+ SYMBOL: (30021..30025)
+ IDENTIFIER: (30021..30025) "test"
+ ATMOSPHERE: (30025..30026) " "
+ CONSTANT: (30026..30028)
+ BOOLEAN: (30026..30028) "#t"
+ ATMOSPHERE: (30028..30029) " "
+ FORM: (30029..30040)
+ OPEN_PAREN: (30029..30030) "("
+ SYMBOL: (30030..30035)
+ IDENTIFIER: (30030..30035) "list?"
+ ATMOSPHERE: (30035..30036) " "
+ QUOTED_DATUM: (30036..30039)
+ QUOTE: (30036..30037) "'"
+ FORM: (30037..30039)
+ OPEN_PAREN: (30037..30038) "("
+ CLOSE_PAREN: (30038..30039) ")"
+ CLOSE_PAREN: (30039..30040) ")"
+ CLOSE_PAREN: (30040..30041) ")"
+ ATMOSPHERE: (30041..30042) "\n"
+ ATMOSPHERE: (30042..30105) ";; (test #f (list? '(a . b))) ; FIXME: Quoting of dotted forms"
+ ATMOSPHERE: (30105..30106) "\n"
+ ATMOSPHERE: (30106..30192) "; FIXME: recurse in `list?` ; (test #f (let ((x (list 'a))) (set-cdr! x x) (list? x)))"
+ ATMOSPHERE: (30192..30194) "\n\n"
+ FORM: (30194..30223)
+ OPEN_PAREN: (30194..30195) "("
+ SYMBOL: (30195..30199)
+ IDENTIFIER: (30195..30199) "test"
+ ATMOSPHERE: (30199..30200) " "
+ QUOTED_DATUM: (30200..30207)
+ QUOTE: (30200..30201) "'"
+ FORM: (30201..30206)
+ OPEN_PAREN: (30201..30202) "("
+ CONSTANT: (30202..30203)
+ NUMBER: (30202..30203) "3"
+ ATMOSPHERE: (30203..30204) " "
+ CONSTANT: (30204..30205)
+ NUMBER: (30204..30205) "3"
+ CLOSE_PAREN: (30205..30206) ")"
+ ATMOSPHERE: (30206..30207) " "
+ FORM: (30207..30222)
+ OPEN_PAREN: (30207..30208) "("
+ SYMBOL: (30208..30217)
+ IDENTIFIER: (30208..30217) "make-list"
+ ATMOSPHERE: (30217..30218) " "
+ CONSTANT: (30218..30219)
+ NUMBER: (30218..30219) "2"
+ ATMOSPHERE: (30219..30220) " "
+ CONSTANT: (30220..30221)
+ NUMBER: (30220..30221) "3"
+ CLOSE_PAREN: (30221..30222) ")"
+ CLOSE_PAREN: (30222..30223) ")"
+ ATMOSPHERE: (30223..30225) "\n\n"
+ FORM: (30225..30261)
+ OPEN_PAREN: (30225..30226) "("
+ SYMBOL: (30226..30230)
+ IDENTIFIER: (30226..30230) "test"
+ ATMOSPHERE: (30230..30231) " "
+ QUOTED_DATUM: (30231..30240)
+ QUOTE: (30231..30232) "'"
+ FORM: (30232..30239)
+ OPEN_PAREN: (30232..30233) "("
+ SYMBOL: (30233..30234)
+ IDENTIFIER: (30233..30234) "a"
+ ATMOSPHERE: (30234..30235) " "
+ CONSTANT: (30235..30236)
+ NUMBER: (30235..30236) "7"
+ ATMOSPHERE: (30236..30237) " "
+ SYMBOL: (30237..30238)
+ IDENTIFIER: (30237..30238) "c"
+ CLOSE_PAREN: (30238..30239) ")"
+ ATMOSPHERE: (30239..30240) " "
+ FORM: (30240..30260)
+ OPEN_PAREN: (30240..30241) "("
+ SYMBOL: (30241..30245)
+ IDENTIFIER: (30241..30245) "list"
+ ATMOSPHERE: (30245..30246) " "
+ QUOTED_DATUM: (30246..30249)
+ QUOTE: (30246..30247) "'"
+ SYMBOL: (30247..30248)
+ IDENTIFIER: (30247..30248) "a"
+ ATMOSPHERE: (30248..30249) " "
+ FORM: (30249..30256)
+ OPEN_PAREN: (30249..30250) "("
+ SYMBOL: (30250..30251)
+ IDENTIFIER: (30250..30251) "+"
+ ATMOSPHERE: (30251..30252) " "
+ CONSTANT: (30252..30253)
+ NUMBER: (30252..30253) "3"
+ ATMOSPHERE: (30253..30254) " "
+ CONSTANT: (30254..30255)
+ NUMBER: (30254..30255) "4"
+ CLOSE_PAREN: (30255..30256) ")"
+ ATMOSPHERE: (30256..30257) " "
+ QUOTED_DATUM: (30257..30259)
+ QUOTE: (30257..30258) "'"
+ SYMBOL: (30258..30259)
+ IDENTIFIER: (30258..30259) "c"
+ CLOSE_PAREN: (30259..30260) ")"
+ CLOSE_PAREN: (30260..30261) ")"
+ ATMOSPHERE: (30261..30262) "\n"
+ FORM: (30262..30279)
+ OPEN_PAREN: (30262..30263) "("
+ SYMBOL: (30263..30267)
+ IDENTIFIER: (30263..30267) "test"
+ ATMOSPHERE: (30267..30268) " "
+ QUOTED_DATUM: (30268..30272)
+ QUOTE: (30268..30269) "'"
+ FORM: (30269..30271)
+ OPEN_PAREN: (30269..30270) "("
+ CLOSE_PAREN: (30270..30271) ")"
+ ATMOSPHERE: (30271..30272) " "
+ FORM: (30272..30278)
+ OPEN_PAREN: (30272..30273) "("
+ SYMBOL: (30273..30277)
+ IDENTIFIER: (30273..30277) "list"
+ CLOSE_PAREN: (30277..30278) ")"
+ CLOSE_PAREN: (30278..30279) ")"
+ ATMOSPHERE: (30279..30281) "\n\n"
+ FORM: (30281..30307)
+ OPEN_PAREN: (30281..30282) "("
+ SYMBOL: (30282..30286)
+ IDENTIFIER: (30282..30286) "test"
+ ATMOSPHERE: (30286..30287) " "
+ CONSTANT: (30287..30288)
+ NUMBER: (30287..30288) "3"
+ ATMOSPHERE: (30288..30289) " "
+ FORM: (30289..30306)
+ OPEN_PAREN: (30289..30290) "("
+ SYMBOL: (30290..30296)
+ IDENTIFIER: (30290..30296) "length"
+ ATMOSPHERE: (30296..30297) " "
+ QUOTED_DATUM: (30297..30305)
+ QUOTE: (30297..30298) "'"
+ FORM: (30298..30305)
+ OPEN_PAREN: (30298..30299) "("
+ SYMBOL: (30299..30300)
+ IDENTIFIER: (30299..30300) "a"
+ ATMOSPHERE: (30300..30301) " "
+ SYMBOL: (30301..30302)
+ IDENTIFIER: (30301..30302) "b"
+ ATMOSPHERE: (30302..30303) " "
+ SYMBOL: (30303..30304)
+ IDENTIFIER: (30303..30304) "c"
+ CLOSE_PAREN: (30304..30305) ")"
+ CLOSE_PAREN: (30305..30306) ")"
+ CLOSE_PAREN: (30306..30307) ")"
+ ATMOSPHERE: (30307..30308) "\n"
+ FORM: (30308..30342)
+ OPEN_PAREN: (30308..30309) "("
+ SYMBOL: (30309..30313)
+ IDENTIFIER: (30309..30313) "test"
+ ATMOSPHERE: (30313..30314) " "
+ CONSTANT: (30314..30315)
+ NUMBER: (30314..30315) "3"
+ ATMOSPHERE: (30315..30316) " "
+ FORM: (30316..30341)
+ OPEN_PAREN: (30316..30317) "("
+ SYMBOL: (30317..30323)
+ IDENTIFIER: (30317..30323) "length"
+ ATMOSPHERE: (30323..30324) " "
+ QUOTED_DATUM: (30324..30340)
+ QUOTE: (30324..30325) "'"
+ FORM: (30325..30340)
+ OPEN_PAREN: (30325..30326) "("
+ SYMBOL: (30326..30327)
+ IDENTIFIER: (30326..30327) "a"
+ ATMOSPHERE: (30327..30328) " "
+ FORM: (30328..30331)
+ OPEN_PAREN: (30328..30329) "("
+ SYMBOL: (30329..30330)
+ IDENTIFIER: (30329..30330) "b"
+ CLOSE_PAREN: (30330..30331) ")"
+ ATMOSPHERE: (30331..30332) " "
+ FORM: (30332..30339)
+ OPEN_PAREN: (30332..30333) "("
+ SYMBOL: (30333..30334)
+ IDENTIFIER: (30333..30334) "c"
+ ATMOSPHERE: (30334..30335) " "
+ SYMBOL: (30335..30336)
+ IDENTIFIER: (30335..30336) "d"
+ ATMOSPHERE: (30336..30337) " "
+ SYMBOL: (30337..30338)
+ IDENTIFIER: (30337..30338) "e"
+ CLOSE_PAREN: (30338..30339) ")"
+ CLOSE_PAREN: (30339..30340) ")"
+ CLOSE_PAREN: (30340..30341) ")"
+ CLOSE_PAREN: (30341..30342) ")"
+ ATMOSPHERE: (30342..30343) "\n"
+ FORM: (30343..30364)
+ OPEN_PAREN: (30343..30344) "("
+ SYMBOL: (30344..30348)
+ IDENTIFIER: (30344..30348) "test"
+ ATMOSPHERE: (30348..30349) " "
+ CONSTANT: (30349..30350)
+ NUMBER: (30349..30350) "0"
+ ATMOSPHERE: (30350..30351) " "
+ FORM: (30351..30363)
+ OPEN_PAREN: (30351..30352) "("
+ SYMBOL: (30352..30358)
+ IDENTIFIER: (30352..30358) "length"
+ ATMOSPHERE: (30358..30359) " "
+ QUOTED_DATUM: (30359..30362)
+ QUOTE: (30359..30360) "'"
+ FORM: (30360..30362)
+ OPEN_PAREN: (30360..30361) "("
+ CLOSE_PAREN: (30361..30362) ")"
+ CLOSE_PAREN: (30362..30363) ")"
+ CLOSE_PAREN: (30363..30364) ")"
+ ATMOSPHERE: (30364..30366) "\n\n"
+ FORM: (30366..30398)
+ OPEN_PAREN: (30366..30367) "("
+ SYMBOL: (30367..30371)
+ IDENTIFIER: (30367..30371) "test"
+ ATMOSPHERE: (30371..30372) " "
+ QUOTED_DATUM: (30372..30379)
+ QUOTE: (30372..30373) "'"
+ FORM: (30373..30378)
+ OPEN_PAREN: (30373..30374) "("
+ SYMBOL: (30374..30375)
+ IDENTIFIER: (30374..30375) "x"
+ ATMOSPHERE: (30375..30376) " "
+ SYMBOL: (30376..30377)
+ IDENTIFIER: (30376..30377) "y"
+ CLOSE_PAREN: (30377..30378) ")"
+ ATMOSPHERE: (30378..30379) " "
+ FORM: (30379..30397)
+ OPEN_PAREN: (30379..30380) "("
+ SYMBOL: (30380..30386)
+ IDENTIFIER: (30380..30386) "append"
+ ATMOSPHERE: (30386..30387) " "
+ QUOTED_DATUM: (30387..30392)
+ QUOTE: (30387..30388) "'"
+ FORM: (30388..30391)
+ OPEN_PAREN: (30388..30389) "("
+ SYMBOL: (30389..30390)
+ IDENTIFIER: (30389..30390) "x"
+ CLOSE_PAREN: (30390..30391) ")"
+ ATMOSPHERE: (30391..30392) " "
+ QUOTED_DATUM: (30392..30396)
+ QUOTE: (30392..30393) "'"
+ FORM: (30393..30396)
+ OPEN_PAREN: (30393..30394) "("
+ SYMBOL: (30394..30395)
+ IDENTIFIER: (30394..30395) "y"
+ CLOSE_PAREN: (30395..30396) ")"
+ CLOSE_PAREN: (30396..30397) ")"
+ CLOSE_PAREN: (30397..30398) ")"
+ ATMOSPHERE: (30398..30399) "\n"
+ FORM: (30399..30439)
+ OPEN_PAREN: (30399..30400) "("
+ SYMBOL: (30400..30404)
+ IDENTIFIER: (30400..30404) "test"
+ ATMOSPHERE: (30404..30405) " "
+ QUOTED_DATUM: (30405..30416)
+ QUOTE: (30405..30406) "'"
+ FORM: (30406..30415)
+ OPEN_PAREN: (30406..30407) "("
+ SYMBOL: (30407..30408)
+ IDENTIFIER: (30407..30408) "a"
+ ATMOSPHERE: (30408..30409) " "
+ SYMBOL: (30409..30410)
+ IDENTIFIER: (30409..30410) "b"
+ ATMOSPHERE: (30410..30411) " "
+ SYMBOL: (30411..30412)
+ IDENTIFIER: (30411..30412) "c"
+ ATMOSPHERE: (30412..30413) " "
+ SYMBOL: (30413..30414)
+ IDENTIFIER: (30413..30414) "d"
+ CLOSE_PAREN: (30414..30415) ")"
+ ATMOSPHERE: (30415..30416) " "
+ FORM: (30416..30438)
+ OPEN_PAREN: (30416..30417) "("
+ SYMBOL: (30417..30423)
+ IDENTIFIER: (30417..30423) "append"
+ ATMOSPHERE: (30423..30424) " "
+ QUOTED_DATUM: (30424..30429)
+ QUOTE: (30424..30425) "'"
+ FORM: (30425..30428)
+ OPEN_PAREN: (30425..30426) "("
+ SYMBOL: (30426..30427)
+ IDENTIFIER: (30426..30427) "a"
+ CLOSE_PAREN: (30427..30428) ")"
+ ATMOSPHERE: (30428..30429) " "
+ QUOTED_DATUM: (30429..30437)
+ QUOTE: (30429..30430) "'"
+ FORM: (30430..30437)
+ OPEN_PAREN: (30430..30431) "("
+ SYMBOL: (30431..30432)
+ IDENTIFIER: (30431..30432) "b"
+ ATMOSPHERE: (30432..30433) " "
+ SYMBOL: (30433..30434)
+ IDENTIFIER: (30433..30434) "c"
+ ATMOSPHERE: (30434..30435) " "
+ SYMBOL: (30435..30436)
+ IDENTIFIER: (30435..30436) "d"
+ CLOSE_PAREN: (30436..30437) ")"
+ CLOSE_PAREN: (30437..30438) ")"
+ CLOSE_PAREN: (30438..30439) ")"
+ ATMOSPHERE: (30439..30440) "\n"
+ FORM: (30440..30484)
+ OPEN_PAREN: (30440..30441) "("
+ SYMBOL: (30441..30445)
+ IDENTIFIER: (30441..30445) "test"
+ ATMOSPHERE: (30445..30446) " "
+ QUOTED_DATUM: (30446..30459)
+ QUOTE: (30446..30447) "'"
+ FORM: (30447..30458)
+ OPEN_PAREN: (30447..30448) "("
+ SYMBOL: (30448..30449)
+ IDENTIFIER: (30448..30449) "a"
+ ATMOSPHERE: (30449..30450) " "
+ FORM: (30450..30453)
+ OPEN_PAREN: (30450..30451) "("
+ SYMBOL: (30451..30452)
+ IDENTIFIER: (30451..30452) "b"
+ CLOSE_PAREN: (30452..30453) ")"
+ ATMOSPHERE: (30453..30454) " "
+ FORM: (30454..30457)
+ OPEN_PAREN: (30454..30455) "("
+ SYMBOL: (30455..30456)
+ IDENTIFIER: (30455..30456) "c"
+ CLOSE_PAREN: (30456..30457) ")"
+ CLOSE_PAREN: (30457..30458) ")"
+ ATMOSPHERE: (30458..30459) " "
+ FORM: (30459..30483)
+ OPEN_PAREN: (30459..30460) "("
+ SYMBOL: (30460..30466)
+ IDENTIFIER: (30460..30466) "append"
+ ATMOSPHERE: (30466..30467) " "
+ QUOTED_DATUM: (30467..30476)
+ QUOTE: (30467..30468) "'"
+ FORM: (30468..30475)
+ OPEN_PAREN: (30468..30469) "("
+ SYMBOL: (30469..30470)
+ IDENTIFIER: (30469..30470) "a"
+ ATMOSPHERE: (30470..30471) " "
+ FORM: (30471..30474)
+ OPEN_PAREN: (30471..30472) "("
+ SYMBOL: (30472..30473)
+ IDENTIFIER: (30472..30473) "b"
+ CLOSE_PAREN: (30473..30474) ")"
+ CLOSE_PAREN: (30474..30475) ")"
+ ATMOSPHERE: (30475..30476) " "
+ QUOTED_DATUM: (30476..30482)
+ QUOTE: (30476..30477) "'"
+ FORM: (30477..30482)
+ OPEN_PAREN: (30477..30478) "("
+ FORM: (30478..30481)
+ OPEN_PAREN: (30478..30479) "("
+ SYMBOL: (30479..30480)
+ IDENTIFIER: (30479..30480) "c"
+ CLOSE_PAREN: (30480..30481) ")"
+ CLOSE_PAREN: (30481..30482) ")"
+ CLOSE_PAREN: (30482..30483) ")"
+ CLOSE_PAREN: (30483..30484) ")"
+ ATMOSPHERE: (30484..30486) "\n\n"
+ FORM: (30486..30530)
+ OPEN_PAREN: (30486..30487) "("
+ SYMBOL: (30487..30491)
+ IDENTIFIER: (30487..30491) "test"
+ ATMOSPHERE: (30491..30492) " "
+ QUOTED_DATUM: (30492..30505)
+ QUOTE: (30492..30493) "'"
+ FORM: (30493..30504)
+ OPEN_PAREN: (30493..30494) "("
+ SYMBOL: (30494..30495)
+ IDENTIFIER: (30494..30495) "a"
+ ATMOSPHERE: (30495..30496) " "
+ SYMBOL: (30496..30497)
+ IDENTIFIER: (30496..30497) "b"
+ ATMOSPHERE: (30497..30498) " "
+ SYMBOL: (30498..30499)
+ IDENTIFIER: (30498..30499) "c"
+ ATMOSPHERE: (30499..30500) " "
+ DOTTED_TAIL: (30500..30503)
+ DOT: (30500..30501) "."
+ ATMOSPHERE: (30501..30502) " "
+ SYMBOL: (30502..30503)
+ IDENTIFIER: (30502..30503) "d"
+ CLOSE_PAREN: (30503..30504) ")"
+ ATMOSPHERE: (30504..30505) " "
+ FORM: (30505..30529)
+ OPEN_PAREN: (30505..30506) "("
+ SYMBOL: (30506..30512)
+ IDENTIFIER: (30506..30512) "append"
+ ATMOSPHERE: (30512..30513) " "
+ QUOTED_DATUM: (30513..30520)
+ QUOTE: (30513..30514) "'"
+ FORM: (30514..30519)
+ OPEN_PAREN: (30514..30515) "("
+ SYMBOL: (30515..30516)
+ IDENTIFIER: (30515..30516) "a"
+ ATMOSPHERE: (30516..30517) " "
+ SYMBOL: (30517..30518)
+ IDENTIFIER: (30517..30518) "b"
+ CLOSE_PAREN: (30518..30519) ")"
+ ATMOSPHERE: (30519..30520) " "
+ QUOTED_DATUM: (30520..30528)
+ QUOTE: (30520..30521) "'"
+ FORM: (30521..30528)
+ OPEN_PAREN: (30521..30522) "("
+ SYMBOL: (30522..30523)
+ IDENTIFIER: (30522..30523) "c"
+ ATMOSPHERE: (30523..30524) " "
+ DOTTED_TAIL: (30524..30527)
+ DOT: (30524..30525) "."
+ ATMOSPHERE: (30525..30526) " "
+ SYMBOL: (30526..30527)
+ IDENTIFIER: (30526..30527) "d"
+ CLOSE_PAREN: (30527..30528) ")"
+ CLOSE_PAREN: (30528..30529) ")"
+ CLOSE_PAREN: (30529..30530) ")"
+ ATMOSPHERE: (30530..30531) "\n"
+ FORM: (30531..30556)
+ OPEN_PAREN: (30531..30532) "("
+ SYMBOL: (30532..30536)
+ IDENTIFIER: (30532..30536) "test"
+ ATMOSPHERE: (30536..30537) " "
+ QUOTED_DATUM: (30537..30540)
+ QUOTE: (30537..30538) "'"
+ SYMBOL: (30538..30539)
+ IDENTIFIER: (30538..30539) "a"
+ ATMOSPHERE: (30539..30540) " "
+ FORM: (30540..30555)
+ OPEN_PAREN: (30540..30541) "("
+ SYMBOL: (30541..30547)
+ IDENTIFIER: (30541..30547) "append"
+ ATMOSPHERE: (30547..30548) " "
+ QUOTED_DATUM: (30548..30552)
+ QUOTE: (30548..30549) "'"
+ FORM: (30549..30551)
+ OPEN_PAREN: (30549..30550) "("
+ CLOSE_PAREN: (30550..30551) ")"
+ ATMOSPHERE: (30551..30552) " "
+ QUOTED_DATUM: (30552..30554)
+ QUOTE: (30552..30553) "'"
+ SYMBOL: (30553..30554)
+ IDENTIFIER: (30553..30554) "a"
+ CLOSE_PAREN: (30554..30555) ")"
+ CLOSE_PAREN: (30555..30556) ")"
+ ATMOSPHERE: (30556..30558) "\n\n"
+ FORM: (30558..30592)
+ OPEN_PAREN: (30558..30559) "("
+ SYMBOL: (30559..30563)
+ IDENTIFIER: (30559..30563) "test"
+ ATMOSPHERE: (30563..30564) " "
+ QUOTED_DATUM: (30564..30573)
+ QUOTE: (30564..30565) "'"
+ FORM: (30565..30572)
+ OPEN_PAREN: (30565..30566) "("
+ SYMBOL: (30566..30567)
+ IDENTIFIER: (30566..30567) "c"
+ ATMOSPHERE: (30567..30568) " "
+ SYMBOL: (30568..30569)
+ IDENTIFIER: (30568..30569) "b"
+ ATMOSPHERE: (30569..30570) " "
+ SYMBOL: (30570..30571)
+ IDENTIFIER: (30570..30571) "a"
+ CLOSE_PAREN: (30571..30572) ")"
+ ATMOSPHERE: (30572..30573) " "
+ FORM: (30573..30591)
+ OPEN_PAREN: (30573..30574) "("
+ SYMBOL: (30574..30581)
+ IDENTIFIER: (30574..30581) "reverse"
+ ATMOSPHERE: (30581..30582) " "
+ QUOTED_DATUM: (30582..30590)
+ QUOTE: (30582..30583) "'"
+ FORM: (30583..30590)
+ OPEN_PAREN: (30583..30584) "("
+ SYMBOL: (30584..30585)
+ IDENTIFIER: (30584..30585) "a"
+ ATMOSPHERE: (30585..30586) " "
+ SYMBOL: (30586..30587)
+ IDENTIFIER: (30586..30587) "b"
+ ATMOSPHERE: (30587..30588) " "
+ SYMBOL: (30588..30589)
+ IDENTIFIER: (30588..30589) "c"
+ CLOSE_PAREN: (30589..30590) ")"
+ CLOSE_PAREN: (30590..30591) ")"
+ CLOSE_PAREN: (30591..30592) ")"
+ ATMOSPHERE: (30592..30593) "\n"
+ FORM: (30593..30651)
+ OPEN_PAREN: (30593..30594) "("
+ SYMBOL: (30594..30598)
+ IDENTIFIER: (30594..30598) "test"
+ ATMOSPHERE: (30598..30599) " "
+ QUOTED_DATUM: (30599..30620)
+ QUOTE: (30599..30600) "'"
+ FORM: (30600..30619)
+ OPEN_PAREN: (30600..30601) "("
+ FORM: (30601..30608)
+ OPEN_PAREN: (30601..30602) "("
+ SYMBOL: (30602..30603)
+ IDENTIFIER: (30602..30603) "e"
+ ATMOSPHERE: (30603..30604) " "
+ FORM: (30604..30607)
+ OPEN_PAREN: (30604..30605) "("
+ SYMBOL: (30605..30606)
+ IDENTIFIER: (30605..30606) "f"
+ CLOSE_PAREN: (30606..30607) ")"
+ CLOSE_PAREN: (30607..30608) ")"
+ ATMOSPHERE: (30608..30609) " "
+ SYMBOL: (30609..30610)
+ IDENTIFIER: (30609..30610) "d"
+ ATMOSPHERE: (30610..30611) " "
+ FORM: (30611..30616)
+ OPEN_PAREN: (30611..30612) "("
+ SYMBOL: (30612..30613)
+ IDENTIFIER: (30612..30613) "b"
+ ATMOSPHERE: (30613..30614) " "
+ SYMBOL: (30614..30615)
+ IDENTIFIER: (30614..30615) "c"
+ CLOSE_PAREN: (30615..30616) ")"
+ ATMOSPHERE: (30616..30617) " "
+ SYMBOL: (30617..30618)
+ IDENTIFIER: (30617..30618) "a"
+ CLOSE_PAREN: (30618..30619) ")"
+ ATMOSPHERE: (30619..30620) " "
+ FORM: (30620..30650)
+ OPEN_PAREN: (30620..30621) "("
+ SYMBOL: (30621..30628)
+ IDENTIFIER: (30621..30628) "reverse"
+ ATMOSPHERE: (30628..30629) " "
+ QUOTED_DATUM: (30629..30649)
+ QUOTE: (30629..30630) "'"
+ FORM: (30630..30649)
+ OPEN_PAREN: (30630..30631) "("
+ SYMBOL: (30631..30632)
+ IDENTIFIER: (30631..30632) "a"
+ ATMOSPHERE: (30632..30633) " "
+ FORM: (30633..30638)
+ OPEN_PAREN: (30633..30634) "("
+ SYMBOL: (30634..30635)
+ IDENTIFIER: (30634..30635) "b"
+ ATMOSPHERE: (30635..30636) " "
+ SYMBOL: (30636..30637)
+ IDENTIFIER: (30636..30637) "c"
+ CLOSE_PAREN: (30637..30638) ")"
+ ATMOSPHERE: (30638..30639) " "
+ SYMBOL: (30639..30640)
+ IDENTIFIER: (30639..30640) "d"
+ ATMOSPHERE: (30640..30641) " "
+ FORM: (30641..30648)
+ OPEN_PAREN: (30641..30642) "("
+ SYMBOL: (30642..30643)
+ IDENTIFIER: (30642..30643) "e"
+ ATMOSPHERE: (30643..30644) " "
+ FORM: (30644..30647)
+ OPEN_PAREN: (30644..30645) "("
+ SYMBOL: (30645..30646)
+ IDENTIFIER: (30645..30646) "f"
+ CLOSE_PAREN: (30646..30647) ")"
+ CLOSE_PAREN: (30647..30648) ")"
+ CLOSE_PAREN: (30648..30649) ")"
+ CLOSE_PAREN: (30649..30650) ")"
+ CLOSE_PAREN: (30650..30651) ")"
+ ATMOSPHERE: (30651..30653) "\n\n"
+ FORM: (30653..30693)
+ OPEN_PAREN: (30653..30654) "("
+ SYMBOL: (30654..30658)
+ IDENTIFIER: (30654..30658) "test"
+ ATMOSPHERE: (30658..30659) " "
+ QUOTED_DATUM: (30659..30666)
+ QUOTE: (30659..30660) "'"
+ FORM: (30660..30665)
+ OPEN_PAREN: (30660..30661) "("
+ SYMBOL: (30661..30662)
+ IDENTIFIER: (30661..30662) "d"
+ ATMOSPHERE: (30662..30663) " "
+ SYMBOL: (30663..30664)
+ IDENTIFIER: (30663..30664) "e"
+ CLOSE_PAREN: (30664..30665) ")"
+ ATMOSPHERE: (30665..30666) " "
+ FORM: (30666..30692)
+ OPEN_PAREN: (30666..30667) "("
+ SYMBOL: (30667..30676)
+ IDENTIFIER: (30667..30676) "list-tail"
+ ATMOSPHERE: (30676..30677) " "
+ QUOTED_DATUM: (30677..30690)
+ QUOTE: (30677..30678) "'"
+ FORM: (30678..30689)
+ OPEN_PAREN: (30678..30679) "("
+ SYMBOL: (30679..30680)
+ IDENTIFIER: (30679..30680) "a"
+ ATMOSPHERE: (30680..30681) " "
+ SYMBOL: (30681..30682)
+ IDENTIFIER: (30681..30682) "b"
+ ATMOSPHERE: (30682..30683) " "
+ SYMBOL: (30683..30684)
+ IDENTIFIER: (30683..30684) "c"
+ ATMOSPHERE: (30684..30685) " "
+ SYMBOL: (30685..30686)
+ IDENTIFIER: (30685..30686) "d"
+ ATMOSPHERE: (30686..30687) " "
+ SYMBOL: (30687..30688)
+ IDENTIFIER: (30687..30688) "e"
+ CLOSE_PAREN: (30688..30689) ")"
+ ATMOSPHERE: (30689..30690) " "
+ CONSTANT: (30690..30691)
+ NUMBER: (30690..30691) "3"
+ CLOSE_PAREN: (30691..30692) ")"
+ CLOSE_PAREN: (30692..30693) ")"
+ ATMOSPHERE: (30693..30695) "\n\n"
+ FORM: (30695..30728)
+ OPEN_PAREN: (30695..30696) "("
+ SYMBOL: (30696..30700)
+ IDENTIFIER: (30696..30700) "test"
+ ATMOSPHERE: (30700..30701) " "
+ QUOTED_DATUM: (30701..30704)
+ QUOTE: (30701..30702) "'"
+ SYMBOL: (30702..30703)
+ IDENTIFIER: (30702..30703) "c"
+ ATMOSPHERE: (30703..30704) " "
+ FORM: (30704..30727)
+ OPEN_PAREN: (30704..30705) "("
+ SYMBOL: (30705..30713)
+ IDENTIFIER: (30705..30713) "list-ref"
+ ATMOSPHERE: (30713..30714) " "
+ QUOTED_DATUM: (30714..30725)
+ QUOTE: (30714..30715) "'"
+ FORM: (30715..30724)
+ OPEN_PAREN: (30715..30716) "("
+ SYMBOL: (30716..30717)
+ IDENTIFIER: (30716..30717) "a"
+ ATMOSPHERE: (30717..30718) " "
+ SYMBOL: (30718..30719)
+ IDENTIFIER: (30718..30719) "b"
+ ATMOSPHERE: (30719..30720) " "
+ SYMBOL: (30720..30721)
+ IDENTIFIER: (30720..30721) "c"
+ ATMOSPHERE: (30721..30722) " "
+ SYMBOL: (30722..30723)
+ IDENTIFIER: (30722..30723) "d"
+ CLOSE_PAREN: (30723..30724) ")"
+ ATMOSPHERE: (30724..30725) " "
+ CONSTANT: (30725..30726)
+ NUMBER: (30725..30726) "2"
+ CLOSE_PAREN: (30726..30727) ")"
+ CLOSE_PAREN: (30727..30728) ")"
+ ATMOSPHERE: (30728..30729) "\n"
+ ATMOSPHERE: (30729..30761) ";; (test 'c (list-ref '(a b c d)"
+ ATMOSPHERE: (30761..30762) "\n"
+ ATMOSPHERE: (30762..30831) ";; (exact (round 1.8)))) FIXME: support `round` and `exact`"
+ ATMOSPHERE: (30831..30833) "\n\n"
+ FORM: (30833..30959)
+ OPEN_PAREN: (30833..30834) "("
+ SYMBOL: (30834..30838)
+ IDENTIFIER: (30834..30838) "test"
+ ATMOSPHERE: (30838..30839) " "
+ QUOTED_DATUM: (30839..30869)
+ QUOTE: (30839..30840) "'"
+ FORM: (30840..30864)
+ OPEN_PAREN: (30840..30841) "("
+ CONSTANT: (30841..30842)
+ NUMBER: (30841..30842) "0"
+ ATMOSPHERE: (30842..30843) " "
+ FORM: (30843..30856)
+ OPEN_PAREN: (30843..30844) "("
+ CONSTANT: (30844..30849)
+ STRING: (30844..30849) "\"Sue\""
+ ATMOSPHERE: (30849..30850) " "
+ CONSTANT: (30850..30855)
+ STRING: (30850..30855) "\"Sue\""
+ CLOSE_PAREN: (30855..30856) ")"
+ ATMOSPHERE: (30856..30857) " "
+ CONSTANT: (30857..30863)
+ STRING: (30857..30863) "\"Anna\""
+ CLOSE_PAREN: (30863..30864) ")"
+ ATMOSPHERE: (30864..30869) "\n "
+ FORM: (30869..30958)
+ OPEN_PAREN: (30869..30870) "("
+ SYMBOL: (30870..30873)
+ IDENTIFIER: (30870..30873) "let"
+ ATMOSPHERE: (30873..30874) " "
+ FORM: (30874..30908)
+ OPEN_PAREN: (30874..30875) "("
+ FORM: (30875..30907)
+ OPEN_PAREN: (30875..30876) "("
+ SYMBOL: (30876..30879)
+ IDENTIFIER: (30876..30879) "lst"
+ ATMOSPHERE: (30879..30880) " "
+ FORM: (30880..30906)
+ OPEN_PAREN: (30880..30881) "("
+ SYMBOL: (30881..30885)
+ IDENTIFIER: (30881..30885) "list"
+ ATMOSPHERE: (30885..30886) " "
+ CONSTANT: (30886..30887)
+ NUMBER: (30886..30887) "0"
+ ATMOSPHERE: (30887..30888) " "
+ QUOTED_DATUM: (30888..30899)
+ QUOTE: (30888..30889) "'"
+ FORM: (30889..30898)
+ OPEN_PAREN: (30889..30890) "("
+ CONSTANT: (30890..30891)
+ NUMBER: (30890..30891) "2"
+ ATMOSPHERE: (30891..30892) " "
+ CONSTANT: (30892..30893)
+ NUMBER: (30892..30893) "2"
+ ATMOSPHERE: (30893..30894) " "
+ CONSTANT: (30894..30895)
+ NUMBER: (30894..30895) "2"
+ ATMOSPHERE: (30895..30896) " "
+ CONSTANT: (30896..30897)
+ NUMBER: (30896..30897) "2"
+ CLOSE_PAREN: (30897..30898) ")"
+ ATMOSPHERE: (30898..30899) " "
+ CONSTANT: (30899..30905)
+ STRING: (30899..30905) "\"Anna\""
+ CLOSE_PAREN: (30905..30906) ")"
+ CLOSE_PAREN: (30906..30907) ")"
+ CLOSE_PAREN: (30907..30908) ")"
+ ATMOSPHERE: (30908..30915) "\n "
+ FORM: (30915..30947)
+ OPEN_PAREN: (30915..30916) "("
+ SYMBOL: (30916..30925)
+ IDENTIFIER: (30916..30925) "list-set!"
+ ATMOSPHERE: (30925..30926) " "
+ SYMBOL: (30926..30929)
+ IDENTIFIER: (30926..30929) "lst"
+ ATMOSPHERE: (30929..30930) " "
+ CONSTANT: (30930..30931)
+ NUMBER: (30930..30931) "1"
+ ATMOSPHERE: (30931..30932) " "
+ QUOTED_DATUM: (30932..30946)
+ QUOTE: (30932..30933) "'"
+ FORM: (30933..30946)
+ OPEN_PAREN: (30933..30934) "("
+ CONSTANT: (30934..30939)
+ STRING: (30934..30939) "\"Sue\""
+ ATMOSPHERE: (30939..30940) " "
+ CONSTANT: (30940..30945)
+ STRING: (30940..30945) "\"Sue\""
+ CLOSE_PAREN: (30945..30946) ")"
+ CLOSE_PAREN: (30946..30947) ")"
+ ATMOSPHERE: (30947..30954) "\n "
+ SYMBOL: (30954..30957)
+ IDENTIFIER: (30954..30957) "lst"
+ CLOSE_PAREN: (30957..30958) ")"
+ CLOSE_PAREN: (30958..30959) ")"
+ ATMOSPHERE: (30959..30961) "\n\n"
+ FORM: (30961..30995)
+ OPEN_PAREN: (30961..30962) "("
+ SYMBOL: (30962..30966)
+ IDENTIFIER: (30962..30966) "test"
+ ATMOSPHERE: (30966..30967) " "
+ QUOTED_DATUM: (30967..30976)
+ QUOTE: (30967..30968) "'"
+ FORM: (30968..30975)
+ OPEN_PAREN: (30968..30969) "("
+ SYMBOL: (30969..30970)
+ IDENTIFIER: (30969..30970) "a"
+ ATMOSPHERE: (30970..30971) " "
+ SYMBOL: (30971..30972)
+ IDENTIFIER: (30971..30972) "b"
+ ATMOSPHERE: (30972..30973) " "
+ SYMBOL: (30973..30974)
+ IDENTIFIER: (30973..30974) "c"
+ CLOSE_PAREN: (30974..30975) ")"
+ ATMOSPHERE: (30975..30976) " "
+ FORM: (30976..30994)
+ OPEN_PAREN: (30976..30977) "("
+ SYMBOL: (30977..30981)
+ IDENTIFIER: (30977..30981) "memq"
+ ATMOSPHERE: (30981..30982) " "
+ QUOTED_DATUM: (30982..30985)
+ QUOTE: (30982..30983) "'"
+ SYMBOL: (30983..30984)
+ IDENTIFIER: (30983..30984) "a"
+ ATMOSPHERE: (30984..30985) " "
+ QUOTED_DATUM: (30985..30993)
+ QUOTE: (30985..30986) "'"
+ FORM: (30986..30993)
+ OPEN_PAREN: (30986..30987) "("
+ SYMBOL: (30987..30988)
+ IDENTIFIER: (30987..30988) "a"
+ ATMOSPHERE: (30988..30989) " "
+ SYMBOL: (30989..30990)
+ IDENTIFIER: (30989..30990) "b"
+ ATMOSPHERE: (30990..30991) " "
+ SYMBOL: (30991..30992)
+ IDENTIFIER: (30991..30992) "c"
+ CLOSE_PAREN: (30992..30993) ")"
+ CLOSE_PAREN: (30993..30994) ")"
+ CLOSE_PAREN: (30994..30995) ")"
+ ATMOSPHERE: (30995..30996) "\n"
+ FORM: (30996..31028)
+ OPEN_PAREN: (30996..30997) "("
+ SYMBOL: (30997..31001)
+ IDENTIFIER: (30997..31001) "test"
+ ATMOSPHERE: (31001..31002) " "
+ QUOTED_DATUM: (31002..31009)
+ QUOTE: (31002..31003) "'"
+ FORM: (31003..31008)
+ OPEN_PAREN: (31003..31004) "("
+ SYMBOL: (31004..31005)
+ IDENTIFIER: (31004..31005) "b"
+ ATMOSPHERE: (31005..31006) " "
+ SYMBOL: (31006..31007)
+ IDENTIFIER: (31006..31007) "c"
+ CLOSE_PAREN: (31007..31008) ")"
+ ATMOSPHERE: (31008..31009) " "
+ FORM: (31009..31027)
+ OPEN_PAREN: (31009..31010) "("
+ SYMBOL: (31010..31014)
+ IDENTIFIER: (31010..31014) "memq"
+ ATMOSPHERE: (31014..31015) " "
+ QUOTED_DATUM: (31015..31018)
+ QUOTE: (31015..31016) "'"
+ SYMBOL: (31016..31017)
+ IDENTIFIER: (31016..31017) "b"
+ ATMOSPHERE: (31017..31018) " "
+ QUOTED_DATUM: (31018..31026)
+ QUOTE: (31018..31019) "'"
+ FORM: (31019..31026)
+ OPEN_PAREN: (31019..31020) "("
+ SYMBOL: (31020..31021)
+ IDENTIFIER: (31020..31021) "a"
+ ATMOSPHERE: (31021..31022) " "
+ SYMBOL: (31022..31023)
+ IDENTIFIER: (31022..31023) "b"
+ ATMOSPHERE: (31023..31024) " "
+ SYMBOL: (31024..31025)
+ IDENTIFIER: (31024..31025) "c"
+ CLOSE_PAREN: (31025..31026) ")"
+ CLOSE_PAREN: (31026..31027) ")"
+ CLOSE_PAREN: (31027..31028) ")"
+ ATMOSPHERE: (31028..31029) "\n"
+ FORM: (31029..31057)
+ OPEN_PAREN: (31029..31030) "("
+ SYMBOL: (31030..31034)
+ IDENTIFIER: (31030..31034) "test"
+ ATMOSPHERE: (31034..31035) " "
+ CONSTANT: (31035..31037)
+ BOOLEAN: (31035..31037) "#f"
+ ATMOSPHERE: (31037..31038) " "
+ FORM: (31038..31056)
+ OPEN_PAREN: (31038..31039) "("
+ SYMBOL: (31039..31043)
+ IDENTIFIER: (31039..31043) "memq"
+ ATMOSPHERE: (31043..31044) " "
+ QUOTED_DATUM: (31044..31047)
+ QUOTE: (31044..31045) "'"
+ SYMBOL: (31045..31046)
+ IDENTIFIER: (31045..31046) "a"
+ ATMOSPHERE: (31046..31047) " "
+ QUOTED_DATUM: (31047..31055)
+ QUOTE: (31047..31048) "'"
+ FORM: (31048..31055)
+ OPEN_PAREN: (31048..31049) "("
+ SYMBOL: (31049..31050)
+ IDENTIFIER: (31049..31050) "b"
+ ATMOSPHERE: (31050..31051) " "
+ SYMBOL: (31051..31052)
+ IDENTIFIER: (31051..31052) "c"
+ ATMOSPHERE: (31052..31053) " "
+ SYMBOL: (31053..31054)
+ IDENTIFIER: (31053..31054) "d"
+ CLOSE_PAREN: (31054..31055) ")"
+ CLOSE_PAREN: (31055..31056) ")"
+ CLOSE_PAREN: (31056..31057) ")"
+ ATMOSPHERE: (31057..31058) "\n"
+ FORM: (31058..31095)
+ OPEN_PAREN: (31058..31059) "("
+ SYMBOL: (31059..31063)
+ IDENTIFIER: (31059..31063) "test"
+ ATMOSPHERE: (31063..31064) " "
+ CONSTANT: (31064..31066)
+ BOOLEAN: (31064..31066) "#f"
+ ATMOSPHERE: (31066..31067) " "
+ FORM: (31067..31094)
+ OPEN_PAREN: (31067..31068) "("
+ SYMBOL: (31068..31072)
+ IDENTIFIER: (31068..31072) "memq"
+ ATMOSPHERE: (31072..31073) " "
+ FORM: (31073..31082)
+ OPEN_PAREN: (31073..31074) "("
+ SYMBOL: (31074..31078)
+ IDENTIFIER: (31074..31078) "list"
+ ATMOSPHERE: (31078..31079) " "
+ QUOTED_DATUM: (31079..31081)
+ QUOTE: (31079..31080) "'"
+ SYMBOL: (31080..31081)
+ IDENTIFIER: (31080..31081) "a"
+ CLOSE_PAREN: (31081..31082) ")"
+ ATMOSPHERE: (31082..31083) " "
+ QUOTED_DATUM: (31083..31093)
+ QUOTE: (31083..31084) "'"
+ FORM: (31084..31093)
+ OPEN_PAREN: (31084..31085) "("
+ SYMBOL: (31085..31086)
+ IDENTIFIER: (31085..31086) "b"
+ ATMOSPHERE: (31086..31087) " "
+ FORM: (31087..31090)
+ OPEN_PAREN: (31087..31088) "("
+ SYMBOL: (31088..31089)
+ IDENTIFIER: (31088..31089) "a"
+ CLOSE_PAREN: (31089..31090) ")"
+ ATMOSPHERE: (31090..31091) " "
+ SYMBOL: (31091..31092)
+ IDENTIFIER: (31091..31092) "c"
+ CLOSE_PAREN: (31092..31093) ")"
+ CLOSE_PAREN: (31093..31094) ")"
+ CLOSE_PAREN: (31094..31095) ")"
+ ATMOSPHERE: (31095..31096) "\n"
+ FORM: (31096..31141)
+ OPEN_PAREN: (31096..31097) "("
+ SYMBOL: (31097..31101)
+ IDENTIFIER: (31097..31101) "test"
+ ATMOSPHERE: (31101..31102) " "
+ QUOTED_DATUM: (31102..31111)
+ QUOTE: (31102..31103) "'"
+ FORM: (31103..31110)
+ OPEN_PAREN: (31103..31104) "("
+ FORM: (31104..31107)
+ OPEN_PAREN: (31104..31105) "("
+ SYMBOL: (31105..31106)
+ IDENTIFIER: (31105..31106) "a"
+ CLOSE_PAREN: (31106..31107) ")"
+ ATMOSPHERE: (31107..31108) " "
+ SYMBOL: (31108..31109)
+ IDENTIFIER: (31108..31109) "c"
+ CLOSE_PAREN: (31109..31110) ")"
+ ATMOSPHERE: (31110..31111) " "
+ FORM: (31111..31140)
+ OPEN_PAREN: (31111..31112) "("
+ SYMBOL: (31112..31118)
+ IDENTIFIER: (31112..31118) "member"
+ ATMOSPHERE: (31118..31119) " "
+ FORM: (31119..31128)
+ OPEN_PAREN: (31119..31120) "("
+ SYMBOL: (31120..31124)
+ IDENTIFIER: (31120..31124) "list"
+ ATMOSPHERE: (31124..31125) " "
+ QUOTED_DATUM: (31125..31127)
+ QUOTE: (31125..31126) "'"
+ SYMBOL: (31126..31127)
+ IDENTIFIER: (31126..31127) "a"
+ CLOSE_PAREN: (31127..31128) ")"
+ ATMOSPHERE: (31128..31129) " "
+ QUOTED_DATUM: (31129..31139)
+ QUOTE: (31129..31130) "'"
+ FORM: (31130..31139)
+ OPEN_PAREN: (31130..31131) "("
+ SYMBOL: (31131..31132)
+ IDENTIFIER: (31131..31132) "b"
+ ATMOSPHERE: (31132..31133) " "
+ FORM: (31133..31136)
+ OPEN_PAREN: (31133..31134) "("
+ SYMBOL: (31134..31135)
+ IDENTIFIER: (31134..31135) "a"
+ CLOSE_PAREN: (31135..31136) ")"
+ ATMOSPHERE: (31136..31137) " "
+ SYMBOL: (31137..31138)
+ IDENTIFIER: (31137..31138) "c"
+ CLOSE_PAREN: (31138..31139) ")"
+ CLOSE_PAREN: (31139..31140) ")"
+ CLOSE_PAREN: (31140..31141) ")"
+ ATMOSPHERE: (31141..31142) "\n"
+ ATMOSPHERE: (31142..31201) "; (test '(\"b\" \"c\") (member \"B\" '(\"a\" \"b\" \"c\") string-ci=?))"
+ ATMOSPHERE: (31201..31202) "\n"
+ FORM: (31202..31257)
+ OPEN_PAREN: (31202..31203) "("
+ SYMBOL: (31203..31207)
+ IDENTIFIER: (31203..31207) "test"
+ ATMOSPHERE: (31207..31208) " "
+ QUOTED_DATUM: (31208..31219)
+ QUOTE: (31208..31209) "'"
+ FORM: (31209..31218)
+ OPEN_PAREN: (31209..31210) "("
+ CONSTANT: (31210..31213)
+ CHARACTER: (31210..31213) "#\\b"
+ ATMOSPHERE: (31213..31214) " "
+ CONSTANT: (31214..31217)
+ CHARACTER: (31214..31217) "#\\c"
+ CLOSE_PAREN: (31217..31218) ")"
+ ATMOSPHERE: (31218..31219) " "
+ FORM: (31219..31256)
+ OPEN_PAREN: (31219..31220) "("
+ SYMBOL: (31220..31226)
+ IDENTIFIER: (31220..31226) "member"
+ ATMOSPHERE: (31226..31227) " "
+ CONSTANT: (31227..31230)
+ CHARACTER: (31227..31230) "#\\B"
+ ATMOSPHERE: (31230..31231) " "
+ QUOTED_DATUM: (31231..31246)
+ QUOTE: (31231..31232) "'"
+ FORM: (31232..31245)
+ OPEN_PAREN: (31232..31233) "("
+ CONSTANT: (31233..31236)
+ CHARACTER: (31233..31236) "#\\a"
+ ATMOSPHERE: (31236..31237) " "
+ CONSTANT: (31237..31240)
+ CHARACTER: (31237..31240) "#\\b"
+ ATMOSPHERE: (31240..31241) " "
+ CONSTANT: (31241..31244)
+ CHARACTER: (31241..31244) "#\\c"
+ CLOSE_PAREN: (31244..31245) ")"
+ ATMOSPHERE: (31245..31246) " "
+ SYMBOL: (31246..31255)
+ IDENTIFIER: (31246..31255) "char-ci=?"
+ CLOSE_PAREN: (31255..31256) ")"
+ CLOSE_PAREN: (31256..31257) ")"
+ ATMOSPHERE: (31257..31258) "\n"
+ FORM: (31258..31301)
+ OPEN_PAREN: (31258..31259) "("
+ SYMBOL: (31259..31263)
+ IDENTIFIER: (31259..31263) "test"
+ ATMOSPHERE: (31263..31264) " "
+ QUOTED_DATUM: (31264..31275)
+ QUOTE: (31264..31265) "'"
+ FORM: (31265..31274)
+ OPEN_PAREN: (31265..31266) "("
+ CONSTANT: (31266..31269)
+ NUMBER: (31266..31269) "101"
+ ATMOSPHERE: (31269..31270) " "
+ CONSTANT: (31270..31273)
+ NUMBER: (31270..31273) "102"
+ CLOSE_PAREN: (31273..31274) ")"
+ ATMOSPHERE: (31274..31275) " "
+ FORM: (31275..31300)
+ OPEN_PAREN: (31275..31276) "("
+ SYMBOL: (31276..31280)
+ IDENTIFIER: (31276..31280) "memv"
+ ATMOSPHERE: (31280..31281) " "
+ CONSTANT: (31281..31284)
+ NUMBER: (31281..31284) "101"
+ ATMOSPHERE: (31284..31285) " "
+ QUOTED_DATUM: (31285..31299)
+ QUOTE: (31285..31286) "'"
+ FORM: (31286..31299)
+ OPEN_PAREN: (31286..31287) "("
+ CONSTANT: (31287..31290)
+ NUMBER: (31287..31290) "100"
+ ATMOSPHERE: (31290..31291) " "
+ CONSTANT: (31291..31294)
+ NUMBER: (31291..31294) "101"
+ ATMOSPHERE: (31294..31295) " "
+ CONSTANT: (31295..31298)
+ NUMBER: (31295..31298) "102"
+ CLOSE_PAREN: (31298..31299) ")"
+ CLOSE_PAREN: (31299..31300) ")"
+ CLOSE_PAREN: (31300..31301) ")"
+ ATMOSPHERE: (31301..31303) "\n\n"
+ FORM: (31303..31425)
+ OPEN_PAREN: (31303..31304) "("
+ SYMBOL: (31304..31307)
+ IDENTIFIER: (31304..31307) "let"
+ ATMOSPHERE: (31307..31308) " "
+ FORM: (31308..31310)
+ OPEN_PAREN: (31308..31309) "("
+ CLOSE_PAREN: (31309..31310) ")"
+ ATMOSPHERE: (31310..31313) "\n "
+ FORM: (31313..31344)
+ OPEN_PAREN: (31313..31314) "("
+ SYMBOL: (31314..31320)
+ IDENTIFIER: (31314..31320) "define"
+ ATMOSPHERE: (31320..31321) " "
+ SYMBOL: (31321..31322)
+ IDENTIFIER: (31321..31322) "e"
+ ATMOSPHERE: (31322..31323) " "
+ QUOTED_DATUM: (31323..31343)
+ QUOTE: (31323..31324) "'"
+ FORM: (31324..31343)
+ OPEN_PAREN: (31324..31325) "("
+ FORM: (31325..31330)
+ OPEN_PAREN: (31325..31326) "("
+ SYMBOL: (31326..31327)
+ IDENTIFIER: (31326..31327) "a"
+ ATMOSPHERE: (31327..31328) " "
+ CONSTANT: (31328..31329)
+ NUMBER: (31328..31329) "1"
+ CLOSE_PAREN: (31329..31330) ")"
+ ATMOSPHERE: (31330..31331) " "
+ FORM: (31331..31336)
+ OPEN_PAREN: (31331..31332) "("
+ SYMBOL: (31332..31333)
+ IDENTIFIER: (31332..31333) "b"
+ ATMOSPHERE: (31333..31334) " "
+ CONSTANT: (31334..31335)
+ NUMBER: (31334..31335) "2"
+ CLOSE_PAREN: (31335..31336) ")"
+ ATMOSPHERE: (31336..31337) " "
+ FORM: (31337..31342)
+ OPEN_PAREN: (31337..31338) "("
+ SYMBOL: (31338..31339)
+ IDENTIFIER: (31338..31339) "c"
+ ATMOSPHERE: (31339..31340) " "
+ CONSTANT: (31340..31341)
+ NUMBER: (31340..31341) "3"
+ CLOSE_PAREN: (31341..31342) ")"
+ CLOSE_PAREN: (31342..31343) ")"
+ CLOSE_PAREN: (31343..31344) ")"
+ ATMOSPHERE: (31344..31347) "\n "
+ FORM: (31347..31372)
+ OPEN_PAREN: (31347..31348) "("
+ SYMBOL: (31348..31352)
+ IDENTIFIER: (31348..31352) "test"
+ ATMOSPHERE: (31352..31353) " "
+ QUOTED_DATUM: (31353..31360)
+ QUOTE: (31353..31354) "'"
+ FORM: (31354..31359)
+ OPEN_PAREN: (31354..31355) "("
+ SYMBOL: (31355..31356)
+ IDENTIFIER: (31355..31356) "a"
+ ATMOSPHERE: (31356..31357) " "
+ CONSTANT: (31357..31358)
+ NUMBER: (31357..31358) "1"
+ CLOSE_PAREN: (31358..31359) ")"
+ ATMOSPHERE: (31359..31360) " "
+ FORM: (31360..31371)
+ OPEN_PAREN: (31360..31361) "("
+ SYMBOL: (31361..31365)
+ IDENTIFIER: (31361..31365) "assq"
+ ATMOSPHERE: (31365..31366) " "
+ QUOTED_DATUM: (31366..31369)
+ QUOTE: (31366..31367) "'"
+ SYMBOL: (31367..31368)
+ IDENTIFIER: (31367..31368) "a"
+ ATMOSPHERE: (31368..31369) " "
+ SYMBOL: (31369..31370)
+ IDENTIFIER: (31369..31370) "e"
+ CLOSE_PAREN: (31370..31371) ")"
+ CLOSE_PAREN: (31371..31372) ")"
+ ATMOSPHERE: (31372..31375) "\n "
+ FORM: (31375..31400)
+ OPEN_PAREN: (31375..31376) "("
+ SYMBOL: (31376..31380)
+ IDENTIFIER: (31376..31380) "test"
+ ATMOSPHERE: (31380..31381) " "
+ QUOTED_DATUM: (31381..31388)
+ QUOTE: (31381..31382) "'"
+ FORM: (31382..31387)
+ OPEN_PAREN: (31382..31383) "("
+ SYMBOL: (31383..31384)
+ IDENTIFIER: (31383..31384) "b"
+ ATMOSPHERE: (31384..31385) " "
+ CONSTANT: (31385..31386)
+ NUMBER: (31385..31386) "2"
+ CLOSE_PAREN: (31386..31387) ")"
+ ATMOSPHERE: (31387..31388) " "
+ FORM: (31388..31399)
+ OPEN_PAREN: (31388..31389) "("
+ SYMBOL: (31389..31393)
+ IDENTIFIER: (31389..31393) "assq"
+ ATMOSPHERE: (31393..31394) " "
+ QUOTED_DATUM: (31394..31397)
+ QUOTE: (31394..31395) "'"
+ SYMBOL: (31395..31396)
+ IDENTIFIER: (31395..31396) "b"
+ ATMOSPHERE: (31396..31397) " "
+ SYMBOL: (31397..31398)
+ IDENTIFIER: (31397..31398) "e"
+ CLOSE_PAREN: (31398..31399) ")"
+ CLOSE_PAREN: (31399..31400) ")"
+ ATMOSPHERE: (31400..31403) "\n "
+ FORM: (31403..31424)
+ OPEN_PAREN: (31403..31404) "("
+ SYMBOL: (31404..31408)
+ IDENTIFIER: (31404..31408) "test"
+ ATMOSPHERE: (31408..31409) " "
+ CONSTANT: (31409..31411)
+ BOOLEAN: (31409..31411) "#f"
+ ATMOSPHERE: (31411..31412) " "
+ FORM: (31412..31423)
+ OPEN_PAREN: (31412..31413) "("
+ SYMBOL: (31413..31417)
+ IDENTIFIER: (31413..31417) "assq"
+ ATMOSPHERE: (31417..31418) " "
+ QUOTED_DATUM: (31418..31421)
+ QUOTE: (31418..31419) "'"
+ SYMBOL: (31419..31420)
+ IDENTIFIER: (31419..31420) "d"
+ ATMOSPHERE: (31420..31421) " "
+ SYMBOL: (31421..31422)
+ IDENTIFIER: (31421..31422) "e"
+ CLOSE_PAREN: (31422..31423) ")"
+ CLOSE_PAREN: (31423..31424) ")"
+ CLOSE_PAREN: (31424..31425) ")"
+ ATMOSPHERE: (31425..31427) "\n\n"
+ FORM: (31427..31474)
+ OPEN_PAREN: (31427..31428) "("
+ SYMBOL: (31428..31432)
+ IDENTIFIER: (31428..31432) "test"
+ ATMOSPHERE: (31432..31433) " "
+ CONSTANT: (31433..31435)
+ BOOLEAN: (31433..31435) "#f"
+ ATMOSPHERE: (31435..31436) " "
+ FORM: (31436..31473)
+ OPEN_PAREN: (31436..31437) "("
+ SYMBOL: (31437..31441)
+ IDENTIFIER: (31437..31441) "assq"
+ ATMOSPHERE: (31441..31442) " "
+ FORM: (31442..31451)
+ OPEN_PAREN: (31442..31443) "("
+ SYMBOL: (31443..31447)
+ IDENTIFIER: (31443..31447) "list"
+ ATMOSPHERE: (31447..31448) " "
+ QUOTED_DATUM: (31448..31450)
+ QUOTE: (31448..31449) "'"
+ SYMBOL: (31449..31450)
+ IDENTIFIER: (31449..31450) "a"
+ CLOSE_PAREN: (31450..31451) ")"
+ ATMOSPHERE: (31451..31452) " "
+ QUOTED_DATUM: (31452..31472)
+ QUOTE: (31452..31453) "'"
+ FORM: (31453..31472)
+ OPEN_PAREN: (31453..31454) "("
+ FORM: (31454..31459)
+ OPEN_PAREN: (31454..31455) "("
+ FORM: (31455..31458)
+ OPEN_PAREN: (31455..31456) "("
+ SYMBOL: (31456..31457)
+ IDENTIFIER: (31456..31457) "a"
+ CLOSE_PAREN: (31457..31458) ")"
+ CLOSE_PAREN: (31458..31459) ")"
+ ATMOSPHERE: (31459..31460) " "
+ FORM: (31460..31465)
+ OPEN_PAREN: (31460..31461) "("
+ FORM: (31461..31464)
+ OPEN_PAREN: (31461..31462) "("
+ SYMBOL: (31462..31463)
+ IDENTIFIER: (31462..31463) "b"
+ CLOSE_PAREN: (31463..31464) ")"
+ CLOSE_PAREN: (31464..31465) ")"
+ ATMOSPHERE: (31465..31466) " "
+ FORM: (31466..31471)
+ OPEN_PAREN: (31466..31467) "("
+ FORM: (31467..31470)
+ OPEN_PAREN: (31467..31468) "("
+ SYMBOL: (31468..31469)
+ IDENTIFIER: (31468..31469) "c"
+ CLOSE_PAREN: (31469..31470) ")"
+ CLOSE_PAREN: (31470..31471) ")"
+ CLOSE_PAREN: (31471..31472) ")"
+ CLOSE_PAREN: (31472..31473) ")"
+ CLOSE_PAREN: (31473..31474) ")"
+ ATMOSPHERE: (31474..31475) "\n"
+ FORM: (31475..31527)
+ OPEN_PAREN: (31475..31476) "("
+ SYMBOL: (31476..31480)
+ IDENTIFIER: (31476..31480) "test"
+ ATMOSPHERE: (31480..31481) " "
+ QUOTED_DATUM: (31481..31488)
+ QUOTE: (31481..31482) "'"
+ FORM: (31482..31487)
+ OPEN_PAREN: (31482..31483) "("
+ FORM: (31483..31486)
+ OPEN_PAREN: (31483..31484) "("
+ SYMBOL: (31484..31485)
+ IDENTIFIER: (31484..31485) "a"
+ CLOSE_PAREN: (31485..31486) ")"
+ CLOSE_PAREN: (31486..31487) ")"
+ ATMOSPHERE: (31487..31488) " "
+ FORM: (31488..31526)
+ OPEN_PAREN: (31488..31489) "("
+ SYMBOL: (31489..31494)
+ IDENTIFIER: (31489..31494) "assoc"
+ ATMOSPHERE: (31494..31495) " "
+ FORM: (31495..31504)
+ OPEN_PAREN: (31495..31496) "("
+ SYMBOL: (31496..31500)
+ IDENTIFIER: (31496..31500) "list"
+ ATMOSPHERE: (31500..31501) " "
+ QUOTED_DATUM: (31501..31503)
+ QUOTE: (31501..31502) "'"
+ SYMBOL: (31502..31503)
+ IDENTIFIER: (31502..31503) "a"
+ CLOSE_PAREN: (31503..31504) ")"
+ ATMOSPHERE: (31504..31505) " "
+ QUOTED_DATUM: (31505..31525)
+ QUOTE: (31505..31506) "'"
+ FORM: (31506..31525)
+ OPEN_PAREN: (31506..31507) "("
+ FORM: (31507..31512)
+ OPEN_PAREN: (31507..31508) "("
+ FORM: (31508..31511)
+ OPEN_PAREN: (31508..31509) "("
+ SYMBOL: (31509..31510)
+ IDENTIFIER: (31509..31510) "a"
+ CLOSE_PAREN: (31510..31511) ")"
+ CLOSE_PAREN: (31511..31512) ")"
+ ATMOSPHERE: (31512..31513) " "
+ FORM: (31513..31518)
+ OPEN_PAREN: (31513..31514) "("
+ FORM: (31514..31517)
+ OPEN_PAREN: (31514..31515) "("
+ SYMBOL: (31515..31516)
+ IDENTIFIER: (31515..31516) "b"
+ CLOSE_PAREN: (31516..31517) ")"
+ CLOSE_PAREN: (31517..31518) ")"
+ ATMOSPHERE: (31518..31519) " "
+ FORM: (31519..31524)
+ OPEN_PAREN: (31519..31520) "("
+ FORM: (31520..31523)
+ OPEN_PAREN: (31520..31521) "("
+ SYMBOL: (31521..31522)
+ IDENTIFIER: (31521..31522) "c"
+ CLOSE_PAREN: (31522..31523) ")"
+ CLOSE_PAREN: (31523..31524) ")"
+ CLOSE_PAREN: (31524..31525) ")"
+ CLOSE_PAREN: (31525..31526) ")"
+ CLOSE_PAREN: (31526..31527) ")"
+ ATMOSPHERE: (31527..31528) "\n"
+ FORM: (31528..31576)
+ OPEN_PAREN: (31528..31529) "("
+ SYMBOL: (31529..31533)
+ IDENTIFIER: (31529..31533) "test"
+ ATMOSPHERE: (31533..31534) " "
+ QUOTED_DATUM: (31534..31541)
+ QUOTE: (31534..31535) "'"
+ FORM: (31535..31540)
+ OPEN_PAREN: (31535..31536) "("
+ CONSTANT: (31536..31537)
+ NUMBER: (31536..31537) "2"
+ ATMOSPHERE: (31537..31538) " "
+ CONSTANT: (31538..31539)
+ NUMBER: (31538..31539) "4"
+ CLOSE_PAREN: (31539..31540) ")"
+ ATMOSPHERE: (31540..31541) " "
+ FORM: (31541..31575)
+ OPEN_PAREN: (31541..31542) "("
+ SYMBOL: (31542..31547)
+ IDENTIFIER: (31542..31547) "assoc"
+ ATMOSPHERE: (31547..31548) " "
+ CONSTANT: (31548..31551)
+ NUMBER: (31548..31551) "2.0"
+ ATMOSPHERE: (31551..31552) " "
+ QUOTED_DATUM: (31552..31573)
+ QUOTE: (31552..31553) "'"
+ FORM: (31553..31572)
+ OPEN_PAREN: (31553..31554) "("
+ FORM: (31554..31559)
+ OPEN_PAREN: (31554..31555) "("
+ CONSTANT: (31555..31556)
+ NUMBER: (31555..31556) "1"
+ ATMOSPHERE: (31556..31557) " "
+ CONSTANT: (31557..31558)
+ NUMBER: (31557..31558) "1"
+ CLOSE_PAREN: (31558..31559) ")"
+ ATMOSPHERE: (31559..31560) " "
+ FORM: (31560..31565)
+ OPEN_PAREN: (31560..31561) "("
+ CONSTANT: (31561..31562)
+ NUMBER: (31561..31562) "2"
+ ATMOSPHERE: (31562..31563) " "
+ CONSTANT: (31563..31564)
+ NUMBER: (31563..31564) "4"
+ CLOSE_PAREN: (31564..31565) ")"
+ ATMOSPHERE: (31565..31566) " "
+ FORM: (31566..31571)
+ OPEN_PAREN: (31566..31567) "("
+ CONSTANT: (31567..31568)
+ NUMBER: (31567..31568) "3"
+ ATMOSPHERE: (31568..31569) " "
+ CONSTANT: (31569..31570)
+ NUMBER: (31569..31570) "9"
+ CLOSE_PAREN: (31570..31571) ")"
+ CLOSE_PAREN: (31571..31572) ")"
+ ATMOSPHERE: (31572..31573) " "
+ SYMBOL: (31573..31574)
+ IDENTIFIER: (31573..31574) "="
+ CLOSE_PAREN: (31574..31575) ")"
+ CLOSE_PAREN: (31575..31576) ")"
+ ATMOSPHERE: (31576..31577) "\n"
+ FORM: (31577..31622)
+ OPEN_PAREN: (31577..31578) "("
+ SYMBOL: (31578..31582)
+ IDENTIFIER: (31578..31582) "test"
+ ATMOSPHERE: (31582..31583) " "
+ QUOTED_DATUM: (31583..31590)
+ QUOTE: (31583..31584) "'"
+ FORM: (31584..31589)
+ OPEN_PAREN: (31584..31585) "("
+ CONSTANT: (31585..31586)
+ NUMBER: (31585..31586) "5"
+ ATMOSPHERE: (31586..31587) " "
+ CONSTANT: (31587..31588)
+ NUMBER: (31587..31588) "7"
+ CLOSE_PAREN: (31588..31589) ")"
+ ATMOSPHERE: (31589..31590) " "
+ FORM: (31590..31621)
+ OPEN_PAREN: (31590..31591) "("
+ SYMBOL: (31591..31595)
+ IDENTIFIER: (31591..31595) "assv"
+ ATMOSPHERE: (31595..31596) " "
+ CONSTANT: (31596..31597)
+ NUMBER: (31596..31597) "5"
+ ATMOSPHERE: (31597..31598) " "
+ QUOTED_DATUM: (31598..31620)
+ QUOTE: (31598..31599) "'"
+ FORM: (31599..31620)
+ OPEN_PAREN: (31599..31600) "("
+ FORM: (31600..31605)
+ OPEN_PAREN: (31600..31601) "("
+ CONSTANT: (31601..31602)
+ NUMBER: (31601..31602) "2"
+ ATMOSPHERE: (31602..31603) " "
+ CONSTANT: (31603..31604)
+ NUMBER: (31603..31604) "3"
+ CLOSE_PAREN: (31604..31605) ")"
+ ATMOSPHERE: (31605..31606) " "
+ FORM: (31606..31611)
+ OPEN_PAREN: (31606..31607) "("
+ CONSTANT: (31607..31608)
+ NUMBER: (31607..31608) "5"
+ ATMOSPHERE: (31608..31609) " "
+ CONSTANT: (31609..31610)
+ NUMBER: (31609..31610) "7"
+ CLOSE_PAREN: (31610..31611) ")"
+ ATMOSPHERE: (31611..31612) " "
+ FORM: (31612..31619)
+ OPEN_PAREN: (31612..31613) "("
+ CONSTANT: (31613..31615)
+ NUMBER: (31613..31615) "11"
+ ATMOSPHERE: (31615..31616) " "
+ CONSTANT: (31616..31618)
+ NUMBER: (31616..31618) "13"
+ CLOSE_PAREN: (31618..31619) ")"
+ CLOSE_PAREN: (31619..31620) ")"
+ CLOSE_PAREN: (31620..31621) ")"
+ CLOSE_PAREN: (31621..31622) ")"
+ ATMOSPHERE: (31622..31624) "\n\n"
+ FORM: (31624..31660)
+ OPEN_PAREN: (31624..31625) "("
+ SYMBOL: (31625..31629)
+ IDENTIFIER: (31625..31629) "test"
+ ATMOSPHERE: (31629..31630) " "
+ QUOTED_DATUM: (31630..31639)
+ QUOTE: (31630..31631) "'"
+ FORM: (31631..31638)
+ OPEN_PAREN: (31631..31632) "("
+ CONSTANT: (31632..31633)
+ NUMBER: (31632..31633) "1"
+ ATMOSPHERE: (31633..31634) " "
+ CONSTANT: (31634..31635)
+ NUMBER: (31634..31635) "2"
+ ATMOSPHERE: (31635..31636) " "
+ CONSTANT: (31636..31637)
+ NUMBER: (31636..31637) "3"
+ CLOSE_PAREN: (31637..31638) ")"
+ ATMOSPHERE: (31638..31639) " "
+ FORM: (31639..31659)
+ OPEN_PAREN: (31639..31640) "("
+ SYMBOL: (31640..31649)
+ IDENTIFIER: (31640..31649) "list-copy"
+ ATMOSPHERE: (31649..31650) " "
+ QUOTED_DATUM: (31650..31658)
+ QUOTE: (31650..31651) "'"
+ FORM: (31651..31658)
+ OPEN_PAREN: (31651..31652) "("
+ CONSTANT: (31652..31653)
+ NUMBER: (31652..31653) "1"
+ ATMOSPHERE: (31653..31654) " "
+ CONSTANT: (31654..31655)
+ NUMBER: (31654..31655) "2"
+ ATMOSPHERE: (31655..31656) " "
+ CONSTANT: (31656..31657)
+ NUMBER: (31656..31657) "3"
+ CLOSE_PAREN: (31657..31658) ")"
+ CLOSE_PAREN: (31658..31659) ")"
+ CLOSE_PAREN: (31659..31660) ")"
+ ATMOSPHERE: (31660..31661) "\n"
+ FORM: (31661..31691)
+ OPEN_PAREN: (31661..31662) "("
+ SYMBOL: (31662..31666)
+ IDENTIFIER: (31662..31666) "test"
+ ATMOSPHERE: (31666..31667) " "
+ CONSTANT: (31667..31672)
+ STRING: (31667..31672) "\"foo\""
+ ATMOSPHERE: (31672..31673) " "
+ FORM: (31673..31690)
+ OPEN_PAREN: (31673..31674) "("
+ SYMBOL: (31674..31683)
+ IDENTIFIER: (31674..31683) "list-copy"
+ ATMOSPHERE: (31683..31684) " "
+ CONSTANT: (31684..31689)
+ STRING: (31684..31689) "\"foo\""
+ CLOSE_PAREN: (31689..31690) ")"
+ CLOSE_PAREN: (31690..31691) ")"
+ ATMOSPHERE: (31691..31692) "\n"
+ FORM: (31692..31718)
+ OPEN_PAREN: (31692..31693) "("
+ SYMBOL: (31693..31697)
+ IDENTIFIER: (31693..31697) "test"
+ ATMOSPHERE: (31697..31698) " "
+ QUOTED_DATUM: (31698..31702)
+ QUOTE: (31698..31699) "'"
+ FORM: (31699..31701)
+ OPEN_PAREN: (31699..31700) "("
+ CLOSE_PAREN: (31700..31701) ")"
+ ATMOSPHERE: (31701..31702) " "
+ FORM: (31702..31717)
+ OPEN_PAREN: (31702..31703) "("
+ SYMBOL: (31703..31712)
+ IDENTIFIER: (31703..31712) "list-copy"
+ ATMOSPHERE: (31712..31713) " "
+ QUOTED_DATUM: (31713..31716)
+ QUOTE: (31713..31714) "'"
+ FORM: (31714..31716)
+ OPEN_PAREN: (31714..31715) "("
+ CLOSE_PAREN: (31715..31716) ")"
+ CLOSE_PAREN: (31716..31717) ")"
+ CLOSE_PAREN: (31717..31718) ")"
+ ATMOSPHERE: (31718..31719) "\n"
+ FORM: (31719..31755)
+ OPEN_PAREN: (31719..31720) "("
+ SYMBOL: (31720..31724)
+ IDENTIFIER: (31720..31724) "test"
+ ATMOSPHERE: (31724..31725) " "
+ QUOTED_DATUM: (31725..31734)
+ QUOTE: (31725..31726) "'"
+ FORM: (31726..31733)
+ OPEN_PAREN: (31726..31727) "("
+ CONSTANT: (31727..31728)
+ NUMBER: (31727..31728) "3"
+ ATMOSPHERE: (31728..31729) " "
+ DOTTED_TAIL: (31729..31732)
+ DOT: (31729..31730) "."
+ ATMOSPHERE: (31730..31731) " "
+ CONSTANT: (31731..31732)
+ NUMBER: (31731..31732) "4"
+ CLOSE_PAREN: (31732..31733) ")"
+ ATMOSPHERE: (31733..31734) " "
+ FORM: (31734..31754)
+ OPEN_PAREN: (31734..31735) "("
+ SYMBOL: (31735..31744)
+ IDENTIFIER: (31735..31744) "list-copy"
+ ATMOSPHERE: (31744..31745) " "
+ QUOTED_DATUM: (31745..31753)
+ QUOTE: (31745..31746) "'"
+ FORM: (31746..31753)
+ OPEN_PAREN: (31746..31747) "("
+ CONSTANT: (31747..31748)
+ NUMBER: (31747..31748) "3"
+ ATMOSPHERE: (31748..31749) " "
+ DOTTED_TAIL: (31749..31752)
+ DOT: (31749..31750) "."
+ ATMOSPHERE: (31750..31751) " "
+ CONSTANT: (31751..31752)
+ NUMBER: (31751..31752) "4"
+ CLOSE_PAREN: (31752..31753) ")"
+ CLOSE_PAREN: (31753..31754) ")"
+ CLOSE_PAREN: (31754..31755) ")"
+ ATMOSPHERE: (31755..31756) "\n"
+ FORM: (31756..31800)
+ OPEN_PAREN: (31756..31757) "("
+ SYMBOL: (31757..31761)
+ IDENTIFIER: (31757..31761) "test"
+ ATMOSPHERE: (31761..31762) " "
+ QUOTED_DATUM: (31762..31775)
+ QUOTE: (31762..31763) "'"
+ FORM: (31763..31774)
+ OPEN_PAREN: (31763..31764) "("
+ CONSTANT: (31764..31765)
+ NUMBER: (31764..31765) "6"
+ ATMOSPHERE: (31765..31766) " "
+ CONSTANT: (31766..31767)
+ NUMBER: (31766..31767) "7"
+ ATMOSPHERE: (31767..31768) " "
+ CONSTANT: (31768..31769)
+ NUMBER: (31768..31769) "8"
+ ATMOSPHERE: (31769..31770) " "
+ DOTTED_TAIL: (31770..31773)
+ DOT: (31770..31771) "."
+ ATMOSPHERE: (31771..31772) " "
+ CONSTANT: (31772..31773)
+ NUMBER: (31772..31773) "9"
+ CLOSE_PAREN: (31773..31774) ")"
+ ATMOSPHERE: (31774..31775) " "
+ FORM: (31775..31799)
+ OPEN_PAREN: (31775..31776) "("
+ SYMBOL: (31776..31785)
+ IDENTIFIER: (31776..31785) "list-copy"
+ ATMOSPHERE: (31785..31786) " "
+ QUOTED_DATUM: (31786..31798)
+ QUOTE: (31786..31787) "'"
+ FORM: (31787..31798)
+ OPEN_PAREN: (31787..31788) "("
+ CONSTANT: (31788..31789)
+ NUMBER: (31788..31789) "6"
+ ATMOSPHERE: (31789..31790) " "
+ CONSTANT: (31790..31791)
+ NUMBER: (31790..31791) "7"
+ ATMOSPHERE: (31791..31792) " "
+ CONSTANT: (31792..31793)
+ NUMBER: (31792..31793) "8"
+ ATMOSPHERE: (31793..31794) " "
+ DOTTED_TAIL: (31794..31797)
+ DOT: (31794..31795) "."
+ ATMOSPHERE: (31795..31796) " "
+ CONSTANT: (31796..31797)
+ NUMBER: (31796..31797) "9"
+ CLOSE_PAREN: (31797..31798) ")"
+ CLOSE_PAREN: (31798..31799) ")"
+ CLOSE_PAREN: (31799..31800) ")"
+ ATMOSPHERE: (31800..31801) "\n"
+ FORM: (31801..32035)
+ OPEN_PAREN: (31801..31802) "("
+ SYMBOL: (31802..31806)
+ IDENTIFIER: (31802..31806) "let*"
+ ATMOSPHERE: (31806..31807) " "
+ FORM: (31807..31857)
+ OPEN_PAREN: (31807..31808) "("
+ FORM: (31808..31829)
+ OPEN_PAREN: (31808..31809) "("
+ SYMBOL: (31809..31811)
+ IDENTIFIER: (31809..31811) "l1"
+ ATMOSPHERE: (31811..31812) " "
+ QUOTED_DATUM: (31812..31828)
+ QUOTE: (31812..31813) "'"
+ FORM: (31813..31828)
+ OPEN_PAREN: (31813..31814) "("
+ FORM: (31814..31819)
+ OPEN_PAREN: (31814..31815) "("
+ SYMBOL: (31815..31816)
+ IDENTIFIER: (31815..31816) "a"
+ ATMOSPHERE: (31816..31817) " "
+ SYMBOL: (31817..31818)
+ IDENTIFIER: (31817..31818) "b"
+ CLOSE_PAREN: (31818..31819) ")"
+ ATMOSPHERE: (31819..31820) " "
+ FORM: (31820..31825)
+ OPEN_PAREN: (31820..31821) "("
+ SYMBOL: (31821..31822)
+ IDENTIFIER: (31821..31822) "c"
+ ATMOSPHERE: (31822..31823) " "
+ SYMBOL: (31823..31824)
+ IDENTIFIER: (31823..31824) "d"
+ CLOSE_PAREN: (31824..31825) ")"
+ ATMOSPHERE: (31825..31826) " "
+ SYMBOL: (31826..31827)
+ IDENTIFIER: (31826..31827) "e"
+ CLOSE_PAREN: (31827..31828) ")"
+ CLOSE_PAREN: (31828..31829) ")"
+ ATMOSPHERE: (31829..31837) "\n "
+ FORM: (31837..31856)
+ OPEN_PAREN: (31837..31838) "("
+ SYMBOL: (31838..31840)
+ IDENTIFIER: (31838..31840) "l2"
+ ATMOSPHERE: (31840..31841) " "
+ FORM: (31841..31855)
+ OPEN_PAREN: (31841..31842) "("
+ SYMBOL: (31842..31851)
+ IDENTIFIER: (31842..31851) "list-copy"
+ ATMOSPHERE: (31851..31852) " "
+ SYMBOL: (31852..31854)
+ IDENTIFIER: (31852..31854) "l1"
+ CLOSE_PAREN: (31854..31855) ")"
+ CLOSE_PAREN: (31855..31856) ")"
+ CLOSE_PAREN: (31856..31857) ")"
+ ATMOSPHERE: (31857..31860) "\n "
+ FORM: (31860..31886)
+ OPEN_PAREN: (31860..31861) "("
+ SYMBOL: (31861..31865)
+ IDENTIFIER: (31861..31865) "test"
+ ATMOSPHERE: (31865..31866) " "
+ SYMBOL: (31866..31868)
+ IDENTIFIER: (31866..31868) "l2"
+ ATMOSPHERE: (31868..31869) " "
+ QUOTED_DATUM: (31869..31885)
+ QUOTE: (31869..31870) "'"
+ FORM: (31870..31885)
+ OPEN_PAREN: (31870..31871) "("
+ FORM: (31871..31876)
+ OPEN_PAREN: (31871..31872) "("
+ SYMBOL: (31872..31873)
+ IDENTIFIER: (31872..31873) "a"
+ ATMOSPHERE: (31873..31874) " "
+ SYMBOL: (31874..31875)
+ IDENTIFIER: (31874..31875) "b"
+ CLOSE_PAREN: (31875..31876) ")"
+ ATMOSPHERE: (31876..31877) " "
+ FORM: (31877..31882)
+ OPEN_PAREN: (31877..31878) "("
+ SYMBOL: (31878..31879)
+ IDENTIFIER: (31878..31879) "c"
+ ATMOSPHERE: (31879..31880) " "
+ SYMBOL: (31880..31881)
+ IDENTIFIER: (31880..31881) "d"
+ CLOSE_PAREN: (31881..31882) ")"
+ ATMOSPHERE: (31882..31883) " "
+ SYMBOL: (31883..31884)
+ IDENTIFIER: (31883..31884) "e"
+ CLOSE_PAREN: (31884..31885) ")"
+ CLOSE_PAREN: (31885..31886) ")"
+ ATMOSPHERE: (31886..31889) "\n "
+ FORM: (31889..31922)
+ OPEN_PAREN: (31889..31890) "("
+ SYMBOL: (31890..31894)
+ IDENTIFIER: (31890..31894) "test"
+ ATMOSPHERE: (31894..31895) " "
+ CONSTANT: (31895..31897)
+ BOOLEAN: (31895..31897) "#t"
+ ATMOSPHERE: (31897..31898) " "
+ FORM: (31898..31921)
+ OPEN_PAREN: (31898..31899) "("
+ SYMBOL: (31899..31902)
+ IDENTIFIER: (31899..31902) "eq?"
+ ATMOSPHERE: (31902..31903) " "
+ FORM: (31903..31911)
+ OPEN_PAREN: (31903..31904) "("
+ SYMBOL: (31904..31907)
+ IDENTIFIER: (31904..31907) "car"
+ ATMOSPHERE: (31907..31908) " "
+ SYMBOL: (31908..31910)
+ IDENTIFIER: (31908..31910) "l1"
+ CLOSE_PAREN: (31910..31911) ")"
+ ATMOSPHERE: (31911..31912) " "
+ FORM: (31912..31920)
+ OPEN_PAREN: (31912..31913) "("
+ SYMBOL: (31913..31916)
+ IDENTIFIER: (31913..31916) "car"
+ ATMOSPHERE: (31916..31917) " "
+ SYMBOL: (31917..31919)
+ IDENTIFIER: (31917..31919) "l2"
+ CLOSE_PAREN: (31919..31920) ")"
+ CLOSE_PAREN: (31920..31921) ")"
+ CLOSE_PAREN: (31921..31922) ")"
+ ATMOSPHERE: (31922..31925) "\n "
+ FORM: (31925..31960)
+ OPEN_PAREN: (31925..31926) "("
+ SYMBOL: (31926..31930)
+ IDENTIFIER: (31926..31930) "test"
+ ATMOSPHERE: (31930..31931) " "
+ CONSTANT: (31931..31933)
+ BOOLEAN: (31931..31933) "#t"
+ ATMOSPHERE: (31933..31934) " "
+ FORM: (31934..31959)
+ OPEN_PAREN: (31934..31935) "("
+ SYMBOL: (31935..31938)
+ IDENTIFIER: (31935..31938) "eq?"
+ ATMOSPHERE: (31938..31939) " "
+ FORM: (31939..31948)
+ OPEN_PAREN: (31939..31940) "("
+ SYMBOL: (31940..31944)
+ IDENTIFIER: (31940..31944) "cadr"
+ ATMOSPHERE: (31944..31945) " "
+ SYMBOL: (31945..31947)
+ IDENTIFIER: (31945..31947) "l1"
+ CLOSE_PAREN: (31947..31948) ")"
+ ATMOSPHERE: (31948..31949) " "
+ FORM: (31949..31958)
+ OPEN_PAREN: (31949..31950) "("
+ SYMBOL: (31950..31954)
+ IDENTIFIER: (31950..31954) "cadr"
+ ATMOSPHERE: (31954..31955) " "
+ SYMBOL: (31955..31957)
+ IDENTIFIER: (31955..31957) "l2"
+ CLOSE_PAREN: (31957..31958) ")"
+ CLOSE_PAREN: (31958..31959) ")"
+ CLOSE_PAREN: (31959..31960) ")"
+ ATMOSPHERE: (31960..31963) "\n "
+ FORM: (31963..31996)
+ OPEN_PAREN: (31963..31964) "("
+ SYMBOL: (31964..31968)
+ IDENTIFIER: (31964..31968) "test"
+ ATMOSPHERE: (31968..31969) " "
+ CONSTANT: (31969..31971)
+ BOOLEAN: (31969..31971) "#f"
+ ATMOSPHERE: (31971..31972) " "
+ FORM: (31972..31995)
+ OPEN_PAREN: (31972..31973) "("
+ SYMBOL: (31973..31976)
+ IDENTIFIER: (31973..31976) "eq?"
+ ATMOSPHERE: (31976..31977) " "
+ FORM: (31977..31985)
+ OPEN_PAREN: (31977..31978) "("
+ SYMBOL: (31978..31981)
+ IDENTIFIER: (31978..31981) "cdr"
+ ATMOSPHERE: (31981..31982) " "
+ SYMBOL: (31982..31984)
+ IDENTIFIER: (31982..31984) "l1"
+ CLOSE_PAREN: (31984..31985) ")"
+ ATMOSPHERE: (31985..31986) " "
+ FORM: (31986..31994)
+ OPEN_PAREN: (31986..31987) "("
+ SYMBOL: (31987..31990)
+ IDENTIFIER: (31987..31990) "cdr"
+ ATMOSPHERE: (31990..31991) " "
+ SYMBOL: (31991..31993)
+ IDENTIFIER: (31991..31993) "l2"
+ CLOSE_PAREN: (31993..31994) ")"
+ CLOSE_PAREN: (31994..31995) ")"
+ CLOSE_PAREN: (31995..31996) ")"
+ ATMOSPHERE: (31996..31999) "\n "
+ FORM: (31999..32034)
+ OPEN_PAREN: (31999..32000) "("
+ SYMBOL: (32000..32004)
+ IDENTIFIER: (32000..32004) "test"
+ ATMOSPHERE: (32004..32005) " "
+ CONSTANT: (32005..32007)
+ BOOLEAN: (32005..32007) "#f"
+ ATMOSPHERE: (32007..32008) " "
+ FORM: (32008..32033)
+ OPEN_PAREN: (32008..32009) "("
+ SYMBOL: (32009..32012)
+ IDENTIFIER: (32009..32012) "eq?"
+ ATMOSPHERE: (32012..32013) " "
+ FORM: (32013..32022)
+ OPEN_PAREN: (32013..32014) "("
+ SYMBOL: (32014..32018)
+ IDENTIFIER: (32014..32018) "cddr"
+ ATMOSPHERE: (32018..32019) " "
+ SYMBOL: (32019..32021)
+ IDENTIFIER: (32019..32021) "l1"
+ CLOSE_PAREN: (32021..32022) ")"
+ ATMOSPHERE: (32022..32023) " "
+ FORM: (32023..32032)
+ OPEN_PAREN: (32023..32024) "("
+ SYMBOL: (32024..32028)
+ IDENTIFIER: (32024..32028) "cddr"
+ ATMOSPHERE: (32028..32029) " "
+ SYMBOL: (32029..32031)
+ IDENTIFIER: (32029..32031) "l2"
+ CLOSE_PAREN: (32031..32032) ")"
+ CLOSE_PAREN: (32032..32033) ")"
+ CLOSE_PAREN: (32033..32034) ")"
+ CLOSE_PAREN: (32034..32035) ")"
+ ATMOSPHERE: (32035..32037) "\n\n"
+ FORM: (32037..32047)
+ OPEN_PAREN: (32037..32038) "("
+ SYMBOL: (32038..32046)
+ IDENTIFIER: (32038..32046) "test-end"
+ CLOSE_PAREN: (32046..32047) ")"
+ ATMOSPHERE: (32047..32049) "\n\n"
+ FORM: (32049..32075)
+ OPEN_PAREN: (32049..32050) "("
+ SYMBOL: (32050..32060)
+ IDENTIFIER: (32050..32060) "test-begin"
+ ATMOSPHERE: (32060..32061) " "
+ CONSTANT: (32061..32074)
+ STRING: (32061..32074) "\"6.5 Symbols\""
+ CLOSE_PAREN: (32074..32075) ")"
+ ATMOSPHERE: (32075..32077) "\n\n"
+ FORM: (32077..32101)
+ OPEN_PAREN: (32077..32078) "("
+ SYMBOL: (32078..32082)
+ IDENTIFIER: (32078..32082) "test"
+ ATMOSPHERE: (32082..32083) " "
+ CONSTANT: (32083..32085)
+ BOOLEAN: (32083..32085) "#t"
+ ATMOSPHERE: (32085..32086) " "
+ FORM: (32086..32100)
+ OPEN_PAREN: (32086..32087) "("
+ SYMBOL: (32087..32094)
+ IDENTIFIER: (32087..32094) "symbol?"
+ ATMOSPHERE: (32094..32095) " "
+ QUOTED_DATUM: (32095..32099)
+ QUOTE: (32095..32096) "'"
+ SYMBOL: (32096..32099)
+ IDENTIFIER: (32096..32099) "foo"
+ CLOSE_PAREN: (32099..32100) ")"
+ CLOSE_PAREN: (32100..32101) ")"
+ ATMOSPHERE: (32101..32102) "\n"
+ FORM: (32102..32134)
+ OPEN_PAREN: (32102..32103) "("
+ SYMBOL: (32103..32107)
+ IDENTIFIER: (32103..32107) "test"
+ ATMOSPHERE: (32107..32108) " "
+ CONSTANT: (32108..32110)
+ BOOLEAN: (32108..32110) "#t"
+ ATMOSPHERE: (32110..32111) " "
+ FORM: (32111..32133)
+ OPEN_PAREN: (32111..32112) "("
+ SYMBOL: (32112..32119)
+ IDENTIFIER: (32112..32119) "symbol?"
+ ATMOSPHERE: (32119..32120) " "
+ FORM: (32120..32132)
+ OPEN_PAREN: (32120..32121) "("
+ SYMBOL: (32121..32124)
+ IDENTIFIER: (32121..32124) "car"
+ ATMOSPHERE: (32124..32125) " "
+ QUOTED_DATUM: (32125..32131)
+ QUOTE: (32125..32126) "'"
+ FORM: (32126..32131)
+ OPEN_PAREN: (32126..32127) "("
+ SYMBOL: (32127..32128)
+ IDENTIFIER: (32127..32128) "a"
+ ATMOSPHERE: (32128..32129) " "
+ SYMBOL: (32129..32130)
+ IDENTIFIER: (32129..32130) "b"
+ CLOSE_PAREN: (32130..32131) ")"
+ CLOSE_PAREN: (32131..32132) ")"
+ CLOSE_PAREN: (32132..32133) ")"
+ CLOSE_PAREN: (32133..32134) ")"
+ ATMOSPHERE: (32134..32135) "\n"
+ FORM: (32135..32160)
+ OPEN_PAREN: (32135..32136) "("
+ SYMBOL: (32136..32140)
+ IDENTIFIER: (32136..32140) "test"
+ ATMOSPHERE: (32140..32141) " "
+ CONSTANT: (32141..32143)
+ BOOLEAN: (32141..32143) "#f"
+ ATMOSPHERE: (32143..32144) " "
+ FORM: (32144..32159)
+ OPEN_PAREN: (32144..32145) "("
+ SYMBOL: (32145..32152)
+ IDENTIFIER: (32145..32152) "symbol?"
+ ATMOSPHERE: (32152..32153) " "
+ CONSTANT: (32153..32158)
+ STRING: (32153..32158) "\"bar\""
+ CLOSE_PAREN: (32158..32159) ")"
+ CLOSE_PAREN: (32159..32160) ")"
+ ATMOSPHERE: (32160..32161) "\n"
+ FORM: (32161..32185)
+ OPEN_PAREN: (32161..32162) "("
+ SYMBOL: (32162..32166)
+ IDENTIFIER: (32162..32166) "test"
+ ATMOSPHERE: (32166..32167) " "
+ CONSTANT: (32167..32169)
+ BOOLEAN: (32167..32169) "#t"
+ ATMOSPHERE: (32169..32170) " "
+ FORM: (32170..32184)
+ OPEN_PAREN: (32170..32171) "("
+ SYMBOL: (32171..32178)
+ IDENTIFIER: (32171..32178) "symbol?"
+ ATMOSPHERE: (32178..32179) " "
+ QUOTED_DATUM: (32179..32183)
+ QUOTE: (32179..32180) "'"
+ SYMBOL: (32180..32183)
+ IDENTIFIER: (32180..32183) "nil"
+ CLOSE_PAREN: (32183..32184) ")"
+ CLOSE_PAREN: (32184..32185) ")"
+ ATMOSPHERE: (32185..32186) "\n"
+ FORM: (32186..32209)
+ OPEN_PAREN: (32186..32187) "("
+ SYMBOL: (32187..32191)
+ IDENTIFIER: (32187..32191) "test"
+ ATMOSPHERE: (32191..32192) " "
+ CONSTANT: (32192..32194)
+ BOOLEAN: (32192..32194) "#f"
+ ATMOSPHERE: (32194..32195) " "
+ FORM: (32195..32208)
+ OPEN_PAREN: (32195..32196) "("
+ SYMBOL: (32196..32203)
+ IDENTIFIER: (32196..32203) "symbol?"
+ ATMOSPHERE: (32203..32204) " "
+ QUOTED_DATUM: (32204..32207)
+ QUOTE: (32204..32205) "'"
+ FORM: (32205..32207)
+ OPEN_PAREN: (32205..32206) "("
+ CLOSE_PAREN: (32206..32207) ")"
+ CLOSE_PAREN: (32207..32208) ")"
+ CLOSE_PAREN: (32208..32209) ")"
+ ATMOSPHERE: (32209..32210) "\n"
+ FORM: (32210..32232)
+ OPEN_PAREN: (32210..32211) "("
+ SYMBOL: (32211..32215)
+ IDENTIFIER: (32211..32215) "test"
+ ATMOSPHERE: (32215..32216) " "
+ CONSTANT: (32216..32218)
+ BOOLEAN: (32216..32218) "#f"
+ ATMOSPHERE: (32218..32219) " "
+ FORM: (32219..32231)
+ OPEN_PAREN: (32219..32220) "("
+ SYMBOL: (32220..32227)
+ IDENTIFIER: (32220..32227) "symbol?"
+ ATMOSPHERE: (32227..32228) " "
+ CONSTANT: (32228..32230)
+ BOOLEAN: (32228..32230) "#f"
+ CLOSE_PAREN: (32230..32231) ")"
+ CLOSE_PAREN: (32231..32232) ")"
+ ATMOSPHERE: (32232..32234) "\n\n"
+ FORM: (32234..32260)
+ OPEN_PAREN: (32234..32235) "("
+ SYMBOL: (32235..32239)
+ IDENTIFIER: (32235..32239) "test"
+ ATMOSPHERE: (32239..32240) " "
+ CONSTANT: (32240..32242)
+ BOOLEAN: (32240..32242) "#t"
+ ATMOSPHERE: (32242..32243) " "
+ FORM: (32243..32259)
+ OPEN_PAREN: (32243..32244) "("
+ SYMBOL: (32244..32252)
+ IDENTIFIER: (32244..32252) "symbol=?"
+ ATMOSPHERE: (32252..32253) " "
+ QUOTED_DATUM: (32253..32256)
+ QUOTE: (32253..32254) "'"
+ SYMBOL: (32254..32255)
+ IDENTIFIER: (32254..32255) "a"
+ ATMOSPHERE: (32255..32256) " "
+ QUOTED_DATUM: (32256..32258)
+ QUOTE: (32256..32257) "'"
+ SYMBOL: (32257..32258)
+ IDENTIFIER: (32257..32258) "a"
+ CLOSE_PAREN: (32258..32259) ")"
+ CLOSE_PAREN: (32259..32260) ")"
+ ATMOSPHERE: (32260..32261) "\n"
+ FORM: (32261..32287)
+ OPEN_PAREN: (32261..32262) "("
+ SYMBOL: (32262..32266)
+ IDENTIFIER: (32262..32266) "test"
+ ATMOSPHERE: (32266..32267) " "
+ CONSTANT: (32267..32269)
+ BOOLEAN: (32267..32269) "#f"
+ ATMOSPHERE: (32269..32270) " "
+ FORM: (32270..32286)
+ OPEN_PAREN: (32270..32271) "("
+ SYMBOL: (32271..32279)
+ IDENTIFIER: (32271..32279) "symbol=?"
+ ATMOSPHERE: (32279..32280) " "
+ QUOTED_DATUM: (32280..32283)
+ QUOTE: (32280..32281) "'"
+ SYMBOL: (32281..32282)
+ IDENTIFIER: (32281..32282) "a"
+ ATMOSPHERE: (32282..32283) " "
+ QUOTED_DATUM: (32283..32285)
+ QUOTE: (32283..32284) "'"
+ SYMBOL: (32284..32285)
+ IDENTIFIER: (32284..32285) "A"
+ CLOSE_PAREN: (32285..32286) ")"
+ CLOSE_PAREN: (32286..32287) ")"
+ ATMOSPHERE: (32287..32288) "\n"
+ FORM: (32288..32317)
+ OPEN_PAREN: (32288..32289) "("
+ SYMBOL: (32289..32293)
+ IDENTIFIER: (32289..32293) "test"
+ ATMOSPHERE: (32293..32294) " "
+ CONSTANT: (32294..32296)
+ BOOLEAN: (32294..32296) "#t"
+ ATMOSPHERE: (32296..32297) " "
+ FORM: (32297..32316)
+ OPEN_PAREN: (32297..32298) "("
+ SYMBOL: (32298..32306)
+ IDENTIFIER: (32298..32306) "symbol=?"
+ ATMOSPHERE: (32306..32307) " "
+ QUOTED_DATUM: (32307..32310)
+ QUOTE: (32307..32308) "'"
+ SYMBOL: (32308..32309)
+ IDENTIFIER: (32308..32309) "a"
+ ATMOSPHERE: (32309..32310) " "
+ QUOTED_DATUM: (32310..32313)
+ QUOTE: (32310..32311) "'"
+ SYMBOL: (32311..32312)
+ IDENTIFIER: (32311..32312) "a"
+ ATMOSPHERE: (32312..32313) " "
+ QUOTED_DATUM: (32313..32315)
+ QUOTE: (32313..32314) "'"
+ SYMBOL: (32314..32315)
+ IDENTIFIER: (32314..32315) "a"
+ CLOSE_PAREN: (32315..32316) ")"
+ CLOSE_PAREN: (32316..32317) ")"
+ ATMOSPHERE: (32317..32318) "\n"
+ FORM: (32318..32347)
+ OPEN_PAREN: (32318..32319) "("
+ SYMBOL: (32319..32323)
+ IDENTIFIER: (32319..32323) "test"
+ ATMOSPHERE: (32323..32324) " "
+ CONSTANT: (32324..32326)
+ BOOLEAN: (32324..32326) "#f"
+ ATMOSPHERE: (32326..32327) " "
+ FORM: (32327..32346)
+ OPEN_PAREN: (32327..32328) "("
+ SYMBOL: (32328..32336)
+ IDENTIFIER: (32328..32336) "symbol=?"
+ ATMOSPHERE: (32336..32337) " "
+ QUOTED_DATUM: (32337..32340)
+ QUOTE: (32337..32338) "'"
+ SYMBOL: (32338..32339)
+ IDENTIFIER: (32338..32339) "a"
+ ATMOSPHERE: (32339..32340) " "
+ QUOTED_DATUM: (32340..32343)
+ QUOTE: (32340..32341) "'"
+ SYMBOL: (32341..32342)
+ IDENTIFIER: (32341..32342) "a"
+ ATMOSPHERE: (32342..32343) " "
+ QUOTED_DATUM: (32343..32345)
+ QUOTE: (32343..32344) "'"
+ SYMBOL: (32344..32345)
+ IDENTIFIER: (32344..32345) "A"
+ CLOSE_PAREN: (32345..32346) ")"
+ CLOSE_PAREN: (32346..32347) ")"
+ ATMOSPHERE: (32347..32349) "\n\n"
+ FORM: (32349..32404)
+ OPEN_PAREN: (32349..32350) "("
+ SYMBOL: (32350..32354)
+ IDENTIFIER: (32350..32354) "test"
+ ATMOSPHERE: (32354..32355) " "
+ CONSTANT: (32355..32368)
+ STRING: (32355..32368) "\"flying-fish\""
+ ATMOSPHERE: (32368..32374) " \n"
+ FORM: (32374..32403)
+ OPEN_PAREN: (32374..32375) "("
+ SYMBOL: (32375..32389)
+ IDENTIFIER: (32375..32389) "symbol->string"
+ ATMOSPHERE: (32389..32390) " "
+ QUOTED_DATUM: (32390..32402)
+ QUOTE: (32390..32391) "'"
+ SYMBOL: (32391..32402)
+ IDENTIFIER: (32391..32402) "flying-fish"
+ CLOSE_PAREN: (32402..32403) ")"
+ CLOSE_PAREN: (32403..32404) ")"
+ ATMOSPHERE: (32404..32405) "\n"
+ FORM: (32405..32445)
+ OPEN_PAREN: (32405..32406) "("
+ SYMBOL: (32406..32410)
+ IDENTIFIER: (32406..32410) "test"
+ ATMOSPHERE: (32410..32411) " "
+ CONSTANT: (32411..32419)
+ STRING: (32411..32419) "\"Martin\""
+ ATMOSPHERE: (32419..32420) " "
+ FORM: (32420..32444)
+ OPEN_PAREN: (32420..32421) "("
+ SYMBOL: (32421..32435)
+ IDENTIFIER: (32421..32435) "symbol->string"
+ ATMOSPHERE: (32435..32436) " "
+ QUOTED_DATUM: (32436..32443)
+ QUOTE: (32436..32437) "'"
+ SYMBOL: (32437..32443)
+ IDENTIFIER: (32437..32443) "Martin"
+ CLOSE_PAREN: (32443..32444) ")"
+ CLOSE_PAREN: (32444..32445) ")"
+ ATMOSPHERE: (32445..32446) "\n"
+ FORM: (32446..32506)
+ OPEN_PAREN: (32446..32447) "("
+ SYMBOL: (32447..32451)
+ IDENTIFIER: (32447..32451) "test"
+ ATMOSPHERE: (32451..32452) " "
+ CONSTANT: (32452..32461)
+ STRING: (32452..32461) "\"Malvina\""
+ ATMOSPHERE: (32461..32462) " "
+ FORM: (32462..32505)
+ OPEN_PAREN: (32462..32463) "("
+ SYMBOL: (32463..32477)
+ IDENTIFIER: (32463..32477) "symbol->string"
+ ATMOSPHERE: (32477..32478) " "
+ FORM: (32478..32504)
+ OPEN_PAREN: (32478..32479) "("
+ SYMBOL: (32479..32493)
+ IDENTIFIER: (32479..32493) "string->symbol"
+ ATMOSPHERE: (32493..32494) " "
+ CONSTANT: (32494..32503)
+ STRING: (32494..32503) "\"Malvina\""
+ CLOSE_PAREN: (32503..32504) ")"
+ CLOSE_PAREN: (32504..32505) ")"
+ CLOSE_PAREN: (32505..32506) ")"
+ ATMOSPHERE: (32506..32508) "\n\n"
+ FORM: (32508..32558)
+ OPEN_PAREN: (32508..32509) "("
+ SYMBOL: (32509..32513)
+ IDENTIFIER: (32509..32513) "test"
+ ATMOSPHERE: (32513..32514) " "
+ QUOTED_DATUM: (32514..32527)
+ QUOTE: (32514..32515) "'"
+ SYMBOL: (32515..32526)
+ IDENTIFIER: (32515..32526) "mISSISSIppi"
+ ATMOSPHERE: (32526..32527) " "
+ FORM: (32527..32557)
+ OPEN_PAREN: (32527..32528) "("
+ SYMBOL: (32528..32542)
+ IDENTIFIER: (32528..32542) "string->symbol"
+ ATMOSPHERE: (32542..32543) " "
+ CONSTANT: (32543..32556)
+ STRING: (32543..32556) "\"mISSISSIppi\""
+ CLOSE_PAREN: (32556..32557) ")"
+ CLOSE_PAREN: (32557..32558) ")"
+ ATMOSPHERE: (32558..32559) "\n"
+ FORM: (32559..32608)
+ OPEN_PAREN: (32559..32560) "("
+ SYMBOL: (32560..32564)
+ IDENTIFIER: (32560..32564) "test"
+ ATMOSPHERE: (32564..32565) " "
+ CONSTANT: (32565..32567)
+ BOOLEAN: (32565..32567) "#t"
+ ATMOSPHERE: (32567..32568) " "
+ FORM: (32568..32607)
+ OPEN_PAREN: (32568..32569) "("
+ SYMBOL: (32569..32572)
+ IDENTIFIER: (32569..32572) "eq?"
+ ATMOSPHERE: (32572..32573) " "
+ QUOTED_DATUM: (32573..32581)
+ QUOTE: (32573..32574) "'"
+ SYMBOL: (32574..32580)
+ IDENTIFIER: (32574..32580) "bitBlt"
+ ATMOSPHERE: (32580..32581) " "
+ FORM: (32581..32606)
+ OPEN_PAREN: (32581..32582) "("
+ SYMBOL: (32582..32596)
+ IDENTIFIER: (32582..32596) "string->symbol"
+ ATMOSPHERE: (32596..32597) " "
+ CONSTANT: (32597..32605)
+ STRING: (32597..32605) "\"bitBlt\""
+ CLOSE_PAREN: (32605..32606) ")"
+ CLOSE_PAREN: (32606..32607) ")"
+ CLOSE_PAREN: (32607..32608) ")"
+ ATMOSPHERE: (32608..32609) "\n"
+ FORM: (32609..32678)
+ OPEN_PAREN: (32609..32610) "("
+ SYMBOL: (32610..32614)
+ IDENTIFIER: (32610..32614) "test"
+ ATMOSPHERE: (32614..32615) " "
+ CONSTANT: (32615..32617)
+ BOOLEAN: (32615..32617) "#t"
+ ATMOSPHERE: (32617..32618) " "
+ FORM: (32618..32677)
+ OPEN_PAREN: (32618..32619) "("
+ SYMBOL: (32619..32622)
+ IDENTIFIER: (32619..32622) "eq?"
+ ATMOSPHERE: (32622..32623) " "
+ QUOTED_DATUM: (32623..32633)
+ QUOTE: (32623..32624) "'"
+ SYMBOL: (32624..32632)
+ IDENTIFIER: (32624..32632) "LollyPop"
+ ATMOSPHERE: (32632..32633) " "
+ FORM: (32633..32676)
+ OPEN_PAREN: (32633..32634) "("
+ SYMBOL: (32634..32648)
+ IDENTIFIER: (32634..32648) "string->symbol"
+ ATMOSPHERE: (32648..32649) " "
+ FORM: (32649..32675)
+ OPEN_PAREN: (32649..32650) "("
+ SYMBOL: (32650..32664)
+ IDENTIFIER: (32650..32664) "symbol->string"
+ ATMOSPHERE: (32664..32665) " "
+ QUOTED_DATUM: (32665..32674)
+ QUOTE: (32665..32666) "'"
+ SYMBOL: (32666..32674)
+ IDENTIFIER: (32666..32674) "LollyPop"
+ CLOSE_PAREN: (32674..32675) ")"
+ CLOSE_PAREN: (32675..32676) ")"
+ CLOSE_PAREN: (32676..32677) ")"
+ CLOSE_PAREN: (32677..32678) ")"
+ ATMOSPHERE: (32678..32679) "\n"
+ FORM: (32679..32788)
+ OPEN_PAREN: (32679..32680) "("
+ SYMBOL: (32680..32684)
+ IDENTIFIER: (32680..32684) "test"
+ ATMOSPHERE: (32684..32685) " "
+ CONSTANT: (32685..32687)
+ BOOLEAN: (32685..32687) "#t"
+ ATMOSPHERE: (32687..32688) " "
+ FORM: (32688..32787)
+ OPEN_PAREN: (32688..32689) "("
+ SYMBOL: (32689..32697)
+ IDENTIFIER: (32689..32697) "string=?"
+ ATMOSPHERE: (32697..32698) " "
+ CONSTANT: (32698..32715)
+ STRING: (32698..32715) "\"K. Harper, M.D.\""
+ ATMOSPHERE: (32715..32735) "\n "
+ FORM: (32735..32786)
+ OPEN_PAREN: (32735..32736) "("
+ SYMBOL: (32736..32750)
+ IDENTIFIER: (32736..32750) "symbol->string"
+ ATMOSPHERE: (32750..32751) " "
+ FORM: (32751..32785)
+ OPEN_PAREN: (32751..32752) "("
+ SYMBOL: (32752..32766)
+ IDENTIFIER: (32752..32766) "string->symbol"
+ ATMOSPHERE: (32766..32767) " "
+ CONSTANT: (32767..32784)
+ STRING: (32767..32784) "\"K. Harper, M.D.\""
+ CLOSE_PAREN: (32784..32785) ")"
+ CLOSE_PAREN: (32785..32786) ")"
+ CLOSE_PAREN: (32786..32787) ")"
+ CLOSE_PAREN: (32787..32788) ")"
+ ATMOSPHERE: (32788..32790) "\n\n"
+ FORM: (32790..32800)
+ OPEN_PAREN: (32790..32791) "("
+ SYMBOL: (32791..32799)
+ IDENTIFIER: (32791..32799) "test-end"
+ CLOSE_PAREN: (32799..32800) ")"
+ ATMOSPHERE: (32800..32802) "\n\n"
+ FORM: (32802..32831)
+ OPEN_PAREN: (32802..32803) "("
+ SYMBOL: (32803..32813)
+ IDENTIFIER: (32803..32813) "test-begin"
+ ATMOSPHERE: (32813..32814) " "
+ CONSTANT: (32814..32830)
+ STRING: (32814..32830) "\"6.6 Characters\""
+ CLOSE_PAREN: (32830..32831) ")"
+ ATMOSPHERE: (32831..32833) "\n\n"
+ FORM: (32833..32854)
+ OPEN_PAREN: (32833..32834) "("
+ SYMBOL: (32834..32838)
+ IDENTIFIER: (32834..32838) "test"
+ ATMOSPHERE: (32838..32839) " "
+ CONSTANT: (32839..32841)
+ BOOLEAN: (32839..32841) "#t"
+ ATMOSPHERE: (32841..32842) " "
+ FORM: (32842..32853)
+ OPEN_PAREN: (32842..32843) "("
+ SYMBOL: (32843..32848)
+ IDENTIFIER: (32843..32848) "char?"
+ ATMOSPHERE: (32848..32849) " "
+ CONSTANT: (32849..32852)
+ CHARACTER: (32849..32852) "#\\a"
+ CLOSE_PAREN: (32852..32853) ")"
+ CLOSE_PAREN: (32853..32854) ")"
+ ATMOSPHERE: (32854..32855) "\n"
+ FORM: (32855..32876)
+ OPEN_PAREN: (32855..32856) "("
+ SYMBOL: (32856..32860)
+ IDENTIFIER: (32856..32860) "test"
+ ATMOSPHERE: (32860..32861) " "
+ CONSTANT: (32861..32863)
+ BOOLEAN: (32861..32863) "#f"
+ ATMOSPHERE: (32863..32864) " "
+ FORM: (32864..32875)
+ OPEN_PAREN: (32864..32865) "("
+ SYMBOL: (32865..32870)
+ IDENTIFIER: (32865..32870) "char?"
+ ATMOSPHERE: (32870..32871) " "
+ CONSTANT: (32871..32874)
+ STRING: (32871..32874) "\"a\""
+ CLOSE_PAREN: (32874..32875) ")"
+ CLOSE_PAREN: (32875..32876) ")"
+ ATMOSPHERE: (32876..32877) "\n"
+ FORM: (32877..32897)
+ OPEN_PAREN: (32877..32878) "("
+ SYMBOL: (32878..32882)
+ IDENTIFIER: (32878..32882) "test"
+ ATMOSPHERE: (32882..32883) " "
+ CONSTANT: (32883..32885)
+ BOOLEAN: (32883..32885) "#f"
+ ATMOSPHERE: (32885..32886) " "
+ FORM: (32886..32896)
+ OPEN_PAREN: (32886..32887) "("
+ SYMBOL: (32887..32892)
+ IDENTIFIER: (32887..32892) "char?"
+ ATMOSPHERE: (32892..32893) " "
+ QUOTED_DATUM: (32893..32895)
+ QUOTE: (32893..32894) "'"
+ SYMBOL: (32894..32895)
+ IDENTIFIER: (32894..32895) "a"
+ CLOSE_PAREN: (32895..32896) ")"
+ CLOSE_PAREN: (32896..32897) ")"
+ ATMOSPHERE: (32897..32898) "\n"
+ FORM: (32898..32917)
+ OPEN_PAREN: (32898..32899) "("
+ SYMBOL: (32899..32903)
+ IDENTIFIER: (32899..32903) "test"
+ ATMOSPHERE: (32903..32904) " "
+ CONSTANT: (32904..32906)
+ BOOLEAN: (32904..32906) "#f"
+ ATMOSPHERE: (32906..32907) " "
+ FORM: (32907..32916)
+ OPEN_PAREN: (32907..32908) "("
+ SYMBOL: (32908..32913)
+ IDENTIFIER: (32908..32913) "char?"
+ ATMOSPHERE: (32913..32914) " "
+ CONSTANT: (32914..32915)
+ NUMBER: (32914..32915) "0"
+ CLOSE_PAREN: (32915..32916) ")"
+ CLOSE_PAREN: (32916..32917) ")"
+ ATMOSPHERE: (32917..32919) "\n\n"
+ FORM: (32919..32949)
+ OPEN_PAREN: (32919..32920) "("
+ SYMBOL: (32920..32924)
+ IDENTIFIER: (32920..32924) "test"
+ ATMOSPHERE: (32924..32925) " "
+ CONSTANT: (32925..32927)
+ BOOLEAN: (32925..32927) "#t"
+ ATMOSPHERE: (32927..32928) " "
+ FORM: (32928..32948)
+ OPEN_PAREN: (32928..32929) "("
+ SYMBOL: (32929..32935)
+ IDENTIFIER: (32929..32935) "char=?"
+ ATMOSPHERE: (32935..32936) " "
+ CONSTANT: (32936..32939)
+ CHARACTER: (32936..32939) "#\\a"
+ ATMOSPHERE: (32939..32940) " "
+ CONSTANT: (32940..32943)
+ CHARACTER: (32940..32943) "#\\a"
+ ATMOSPHERE: (32943..32944) " "
+ CONSTANT: (32944..32947)
+ CHARACTER: (32944..32947) "#\\a"
+ CLOSE_PAREN: (32947..32948) ")"
+ CLOSE_PAREN: (32948..32949) ")"
+ ATMOSPHERE: (32949..32950) "\n"
+ FORM: (32950..32976)
+ OPEN_PAREN: (32950..32951) "("
+ SYMBOL: (32951..32955)
+ IDENTIFIER: (32951..32955) "test"
+ ATMOSPHERE: (32955..32956) " "
+ CONSTANT: (32956..32958)
+ BOOLEAN: (32956..32958) "#f"
+ ATMOSPHERE: (32958..32959) " "
+ FORM: (32959..32975)
+ OPEN_PAREN: (32959..32960) "("
+ SYMBOL: (32960..32966)
+ IDENTIFIER: (32960..32966) "char=?"
+ ATMOSPHERE: (32966..32967) " "
+ CONSTANT: (32967..32970)
+ CHARACTER: (32967..32970) "#\\a"
+ ATMOSPHERE: (32970..32971) " "
+ CONSTANT: (32971..32974)
+ CHARACTER: (32971..32974) "#\\A"
+ CLOSE_PAREN: (32974..32975) ")"
+ CLOSE_PAREN: (32975..32976) ")"
+ ATMOSPHERE: (32976..32977) "\n"
+ FORM: (32977..33007)
+ OPEN_PAREN: (32977..32978) "("
+ SYMBOL: (32978..32982)
+ IDENTIFIER: (32978..32982) "test"
+ ATMOSPHERE: (32982..32983) " "
+ CONSTANT: (32983..32985)
+ BOOLEAN: (32983..32985) "#t"
+ ATMOSPHERE: (32985..32986) " "
+ FORM: (32986..33006)
+ OPEN_PAREN: (32986..32987) "("
+ SYMBOL: (32987..32993)
+ IDENTIFIER: (32987..32993) "char"
+ ATMOSPHERE: (32993..32994) " "
+ CONSTANT: (32994..32997)
+ CHARACTER: (32994..32997) "#\\a"
+ ATMOSPHERE: (32997..32998) " "
+ CONSTANT: (32998..33001)
+ CHARACTER: (32998..33001) "#\\b"
+ ATMOSPHERE: (33001..33002) " "
+ CONSTANT: (33002..33005)
+ CHARACTER: (33002..33005) "#\\c"
+ CLOSE_PAREN: (33005..33006) ")"
+ CLOSE_PAREN: (33006..33007) ")"
+ ATMOSPHERE: (33007..33008) "\n"
+ FORM: (33008..33034)
+ OPEN_PAREN: (33008..33009) "("
+ SYMBOL: (33009..33013)
+ IDENTIFIER: (33009..33013) "test"
+ ATMOSPHERE: (33013..33014) " "
+ CONSTANT: (33014..33016)
+ BOOLEAN: (33014..33016) "#f"
+ ATMOSPHERE: (33016..33017) " "
+ FORM: (33017..33033)
+ OPEN_PAREN: (33017..33018) "("
+ SYMBOL: (33018..33024)
+ IDENTIFIER: (33018..33024) "char"
+ ATMOSPHERE: (33024..33025) " "
+ CONSTANT: (33025..33028)
+ CHARACTER: (33025..33028) "#\\a"
+ ATMOSPHERE: (33028..33029) " "
+ CONSTANT: (33029..33032)
+ CHARACTER: (33029..33032) "#\\a"
+ CLOSE_PAREN: (33032..33033) ")"
+ CLOSE_PAREN: (33033..33034) ")"
+ ATMOSPHERE: (33034..33035) "\n"
+ FORM: (33035..33061)
+ OPEN_PAREN: (33035..33036) "("
+ SYMBOL: (33036..33040)
+ IDENTIFIER: (33036..33040) "test"
+ ATMOSPHERE: (33040..33041) " "
+ CONSTANT: (33041..33043)
+ BOOLEAN: (33041..33043) "#f"
+ ATMOSPHERE: (33043..33044) " "
+ FORM: (33044..33060)
+ OPEN_PAREN: (33044..33045) "("
+ SYMBOL: (33045..33051)
+ IDENTIFIER: (33045..33051) "char"
+ ATMOSPHERE: (33051..33052) " "
+ CONSTANT: (33052..33055)
+ CHARACTER: (33052..33055) "#\\b"
+ ATMOSPHERE: (33055..33056) " "
+ CONSTANT: (33056..33059)
+ CHARACTER: (33056..33059) "#\\a"
+ CLOSE_PAREN: (33059..33060) ")"
+ CLOSE_PAREN: (33060..33061) ")"
+ ATMOSPHERE: (33061..33062) "\n"
+ FORM: (33062..33088)
+ OPEN_PAREN: (33062..33063) "("
+ SYMBOL: (33063..33067)
+ IDENTIFIER: (33063..33067) "test"
+ ATMOSPHERE: (33067..33068) " "
+ CONSTANT: (33068..33070)
+ BOOLEAN: (33068..33070) "#f"
+ ATMOSPHERE: (33070..33071) " "
+ FORM: (33071..33087)
+ OPEN_PAREN: (33071..33072) "("
+ SYMBOL: (33072..33078)
+ IDENTIFIER: (33072..33078) "char>?"
+ ATMOSPHERE: (33078..33079) " "
+ CONSTANT: (33079..33082)
+ CHARACTER: (33079..33082) "#\\a"
+ ATMOSPHERE: (33082..33083) " "
+ CONSTANT: (33083..33086)
+ CHARACTER: (33083..33086) "#\\b"
+ CLOSE_PAREN: (33086..33087) ")"
+ CLOSE_PAREN: (33087..33088) ")"
+ ATMOSPHERE: (33088..33089) "\n"
+ FORM: (33089..33115)
+ OPEN_PAREN: (33089..33090) "("
+ SYMBOL: (33090..33094)
+ IDENTIFIER: (33090..33094) "test"
+ ATMOSPHERE: (33094..33095) " "
+ CONSTANT: (33095..33097)
+ BOOLEAN: (33095..33097) "#f"
+ ATMOSPHERE: (33097..33098) " "
+ FORM: (33098..33114)
+ OPEN_PAREN: (33098..33099) "("
+ SYMBOL: (33099..33105)
+ IDENTIFIER: (33099..33105) "char>?"
+ ATMOSPHERE: (33105..33106) " "
+ CONSTANT: (33106..33109)
+ CHARACTER: (33106..33109) "#\\a"
+ ATMOSPHERE: (33109..33110) " "
+ CONSTANT: (33110..33113)
+ CHARACTER: (33110..33113) "#\\a"
+ CLOSE_PAREN: (33113..33114) ")"
+ CLOSE_PAREN: (33114..33115) ")"
+ ATMOSPHERE: (33115..33116) "\n"
+ FORM: (33116..33146)
+ OPEN_PAREN: (33116..33117) "("
+ SYMBOL: (33117..33121)
+ IDENTIFIER: (33117..33121) "test"
+ ATMOSPHERE: (33121..33122) " "
+ CONSTANT: (33122..33124)
+ BOOLEAN: (33122..33124) "#t"
+ ATMOSPHERE: (33124..33125) " "
+ FORM: (33125..33145)
+ OPEN_PAREN: (33125..33126) "("
+ SYMBOL: (33126..33132)
+ IDENTIFIER: (33126..33132) "char>?"
+ ATMOSPHERE: (33132..33133) " "
+ CONSTANT: (33133..33136)
+ CHARACTER: (33133..33136) "#\\c"
+ ATMOSPHERE: (33136..33137) " "
+ CONSTANT: (33137..33140)
+ CHARACTER: (33137..33140) "#\\b"
+ ATMOSPHERE: (33140..33141) " "
+ CONSTANT: (33141..33144)
+ CHARACTER: (33141..33144) "#\\a"
+ CLOSE_PAREN: (33144..33145) ")"
+ CLOSE_PAREN: (33145..33146) ")"
+ ATMOSPHERE: (33146..33147) "\n"
+ FORM: (33147..33178)
+ OPEN_PAREN: (33147..33148) "("
+ SYMBOL: (33148..33152)
+ IDENTIFIER: (33148..33152) "test"
+ ATMOSPHERE: (33152..33153) " "
+ CONSTANT: (33153..33155)
+ BOOLEAN: (33153..33155) "#t"
+ ATMOSPHERE: (33155..33156) " "
+ FORM: (33156..33177)
+ OPEN_PAREN: (33156..33157) "("
+ SYMBOL: (33157..33164)
+ IDENTIFIER: (33157..33164) "char<=?"
+ ATMOSPHERE: (33164..33165) " "
+ CONSTANT: (33165..33168)
+ CHARACTER: (33165..33168) "#\\a"
+ ATMOSPHERE: (33168..33169) " "
+ CONSTANT: (33169..33172)
+ CHARACTER: (33169..33172) "#\\b"
+ ATMOSPHERE: (33172..33173) " "
+ CONSTANT: (33173..33176)
+ CHARACTER: (33173..33176) "#\\b"
+ CLOSE_PAREN: (33176..33177) ")"
+ CLOSE_PAREN: (33177..33178) ")"
+ ATMOSPHERE: (33178..33179) "\n"
+ FORM: (33179..33206)
+ OPEN_PAREN: (33179..33180) "("
+ SYMBOL: (33180..33184)
+ IDENTIFIER: (33180..33184) "test"
+ ATMOSPHERE: (33184..33185) " "
+ CONSTANT: (33185..33187)
+ BOOLEAN: (33185..33187) "#t"
+ ATMOSPHERE: (33187..33188) " "
+ FORM: (33188..33205)
+ OPEN_PAREN: (33188..33189) "("
+ SYMBOL: (33189..33196)
+ IDENTIFIER: (33189..33196) "char<=?"
+ ATMOSPHERE: (33196..33197) " "
+ CONSTANT: (33197..33200)
+ CHARACTER: (33197..33200) "#\\a"
+ ATMOSPHERE: (33200..33201) " "
+ CONSTANT: (33201..33204)
+ CHARACTER: (33201..33204) "#\\a"
+ CLOSE_PAREN: (33204..33205) ")"
+ CLOSE_PAREN: (33205..33206) ")"
+ ATMOSPHERE: (33206..33207) "\n"
+ FORM: (33207..33234)
+ OPEN_PAREN: (33207..33208) "("
+ SYMBOL: (33208..33212)
+ IDENTIFIER: (33208..33212) "test"
+ ATMOSPHERE: (33212..33213) " "
+ CONSTANT: (33213..33215)
+ BOOLEAN: (33213..33215) "#f"
+ ATMOSPHERE: (33215..33216) " "
+ FORM: (33216..33233)
+ OPEN_PAREN: (33216..33217) "("
+ SYMBOL: (33217..33224)
+ IDENTIFIER: (33217..33224) "char<=?"
+ ATMOSPHERE: (33224..33225) " "
+ CONSTANT: (33225..33228)
+ CHARACTER: (33225..33228) "#\\b"
+ ATMOSPHERE: (33228..33229) " "
+ CONSTANT: (33229..33232)
+ CHARACTER: (33229..33232) "#\\a"
+ CLOSE_PAREN: (33232..33233) ")"
+ CLOSE_PAREN: (33233..33234) ")"
+ ATMOSPHERE: (33234..33235) "\n"
+ FORM: (33235..33262)
+ OPEN_PAREN: (33235..33236) "("
+ SYMBOL: (33236..33240)
+ IDENTIFIER: (33236..33240) "test"
+ ATMOSPHERE: (33240..33241) " "
+ CONSTANT: (33241..33243)
+ BOOLEAN: (33241..33243) "#f"
+ ATMOSPHERE: (33243..33244) " "
+ FORM: (33244..33261)
+ OPEN_PAREN: (33244..33245) "("
+ SYMBOL: (33245..33252)
+ IDENTIFIER: (33245..33252) "char>=?"
+ ATMOSPHERE: (33252..33253) " "
+ CONSTANT: (33253..33256)
+ CHARACTER: (33253..33256) "#\\a"
+ ATMOSPHERE: (33256..33257) " "
+ CONSTANT: (33257..33260)
+ CHARACTER: (33257..33260) "#\\b"
+ CLOSE_PAREN: (33260..33261) ")"
+ CLOSE_PAREN: (33261..33262) ")"
+ ATMOSPHERE: (33262..33263) "\n"
+ FORM: (33263..33290)
+ OPEN_PAREN: (33263..33264) "("
+ SYMBOL: (33264..33268)
+ IDENTIFIER: (33264..33268) "test"
+ ATMOSPHERE: (33268..33269) " "
+ CONSTANT: (33269..33271)
+ BOOLEAN: (33269..33271) "#t"
+ ATMOSPHERE: (33271..33272) " "
+ FORM: (33272..33289)
+ OPEN_PAREN: (33272..33273) "("
+ SYMBOL: (33273..33280)
+ IDENTIFIER: (33273..33280) "char>=?"
+ ATMOSPHERE: (33280..33281) " "
+ CONSTANT: (33281..33284)
+ CHARACTER: (33281..33284) "#\\a"
+ ATMOSPHERE: (33284..33285) " "
+ CONSTANT: (33285..33288)
+ CHARACTER: (33285..33288) "#\\a"
+ CLOSE_PAREN: (33288..33289) ")"
+ CLOSE_PAREN: (33289..33290) ")"
+ ATMOSPHERE: (33290..33291) "\n"
+ FORM: (33291..33322)
+ OPEN_PAREN: (33291..33292) "("
+ SYMBOL: (33292..33296)
+ IDENTIFIER: (33292..33296) "test"
+ ATMOSPHERE: (33296..33297) " "
+ CONSTANT: (33297..33299)
+ BOOLEAN: (33297..33299) "#t"
+ ATMOSPHERE: (33299..33300) " "
+ FORM: (33300..33321)
+ OPEN_PAREN: (33300..33301) "("
+ SYMBOL: (33301..33308)
+ IDENTIFIER: (33301..33308) "char>=?"
+ ATMOSPHERE: (33308..33309) " "
+ CONSTANT: (33309..33312)
+ CHARACTER: (33309..33312) "#\\b"
+ ATMOSPHERE: (33312..33313) " "
+ CONSTANT: (33313..33316)
+ CHARACTER: (33313..33316) "#\\b"
+ ATMOSPHERE: (33316..33317) " "
+ CONSTANT: (33317..33320)
+ CHARACTER: (33317..33320) "#\\a"
+ CLOSE_PAREN: (33320..33321) ")"
+ CLOSE_PAREN: (33321..33322) ")"
+ ATMOSPHERE: (33322..33324) "\n\n"
+ FORM: (33324..33353)
+ OPEN_PAREN: (33324..33325) "("
+ SYMBOL: (33325..33329)
+ IDENTIFIER: (33325..33329) "test"
+ ATMOSPHERE: (33329..33330) " "
+ CONSTANT: (33330..33332)
+ BOOLEAN: (33330..33332) "#t"
+ ATMOSPHERE: (33332..33333) " "
+ FORM: (33333..33352)
+ OPEN_PAREN: (33333..33334) "("
+ SYMBOL: (33334..33343)
+ IDENTIFIER: (33334..33343) "char-ci=?"
+ ATMOSPHERE: (33343..33344) " "
+ CONSTANT: (33344..33347)
+ CHARACTER: (33344..33347) "#\\a"
+ ATMOSPHERE: (33347..33348) " "
+ CONSTANT: (33348..33351)
+ CHARACTER: (33348..33351) "#\\a"
+ CLOSE_PAREN: (33351..33352) ")"
+ CLOSE_PAREN: (33352..33353) ")"
+ ATMOSPHERE: (33353..33354) "\n"
+ FORM: (33354..33387)
+ OPEN_PAREN: (33354..33355) "("
+ SYMBOL: (33355..33359)
+ IDENTIFIER: (33355..33359) "test"
+ ATMOSPHERE: (33359..33360) " "
+ CONSTANT: (33360..33362)
+ BOOLEAN: (33360..33362) "#t"
+ ATMOSPHERE: (33362..33363) " "
+ FORM: (33363..33386)
+ OPEN_PAREN: (33363..33364) "("
+ SYMBOL: (33364..33373)
+ IDENTIFIER: (33364..33373) "char-ci=?"
+ ATMOSPHERE: (33373..33374) " "
+ CONSTANT: (33374..33377)
+ CHARACTER: (33374..33377) "#\\a"
+ ATMOSPHERE: (33377..33378) " "
+ CONSTANT: (33378..33381)
+ CHARACTER: (33378..33381) "#\\A"
+ ATMOSPHERE: (33381..33382) " "
+ CONSTANT: (33382..33385)
+ CHARACTER: (33382..33385) "#\\a"
+ CLOSE_PAREN: (33385..33386) ")"
+ CLOSE_PAREN: (33386..33387) ")"
+ ATMOSPHERE: (33387..33388) "\n"
+ FORM: (33388..33417)
+ OPEN_PAREN: (33388..33389) "("
+ SYMBOL: (33389..33393)
+ IDENTIFIER: (33389..33393) "test"
+ ATMOSPHERE: (33393..33394) " "
+ CONSTANT: (33394..33396)
+ BOOLEAN: (33394..33396) "#f"
+ ATMOSPHERE: (33396..33397) " "
+ FORM: (33397..33416)
+ OPEN_PAREN: (33397..33398) "("
+ SYMBOL: (33398..33407)
+ IDENTIFIER: (33398..33407) "char-ci=?"
+ ATMOSPHERE: (33407..33408) " "
+ CONSTANT: (33408..33411)
+ CHARACTER: (33408..33411) "#\\a"
+ ATMOSPHERE: (33411..33412) " "
+ CONSTANT: (33412..33415)
+ CHARACTER: (33412..33415) "#\\b"
+ CLOSE_PAREN: (33415..33416) ")"
+ CLOSE_PAREN: (33416..33417) ")"
+ ATMOSPHERE: (33417..33418) "\n"
+ FORM: (33418..33451)
+ OPEN_PAREN: (33418..33419) "("
+ SYMBOL: (33419..33423)
+ IDENTIFIER: (33419..33423) "test"
+ ATMOSPHERE: (33423..33424) " "
+ CONSTANT: (33424..33426)
+ BOOLEAN: (33424..33426) "#t"
+ ATMOSPHERE: (33426..33427) " "
+ FORM: (33427..33450)
+ OPEN_PAREN: (33427..33428) "("
+ SYMBOL: (33428..33437)
+ IDENTIFIER: (33428..33437) "char-ci"
+ ATMOSPHERE: (33437..33438) " "
+ CONSTANT: (33438..33441)
+ CHARACTER: (33438..33441) "#\\a"
+ ATMOSPHERE: (33441..33442) " "
+ CONSTANT: (33442..33445)
+ CHARACTER: (33442..33445) "#\\B"
+ ATMOSPHERE: (33445..33446) " "
+ CONSTANT: (33446..33449)
+ CHARACTER: (33446..33449) "#\\c"
+ CLOSE_PAREN: (33449..33450) ")"
+ CLOSE_PAREN: (33450..33451) ")"
+ ATMOSPHERE: (33451..33452) "\n"
+ FORM: (33452..33481)
+ OPEN_PAREN: (33452..33453) "("
+ SYMBOL: (33453..33457)
+ IDENTIFIER: (33453..33457) "test"
+ ATMOSPHERE: (33457..33458) " "
+ CONSTANT: (33458..33460)
+ BOOLEAN: (33458..33460) "#f"
+ ATMOSPHERE: (33460..33461) " "
+ FORM: (33461..33480)
+ OPEN_PAREN: (33461..33462) "("
+ SYMBOL: (33462..33471)
+ IDENTIFIER: (33462..33471) "char-ci"
+ ATMOSPHERE: (33471..33472) " "
+ CONSTANT: (33472..33475)
+ CHARACTER: (33472..33475) "#\\A"
+ ATMOSPHERE: (33475..33476) " "
+ CONSTANT: (33476..33479)
+ CHARACTER: (33476..33479) "#\\a"
+ CLOSE_PAREN: (33479..33480) ")"
+ CLOSE_PAREN: (33480..33481) ")"
+ ATMOSPHERE: (33481..33482) "\n"
+ FORM: (33482..33511)
+ OPEN_PAREN: (33482..33483) "("
+ SYMBOL: (33483..33487)
+ IDENTIFIER: (33483..33487) "test"
+ ATMOSPHERE: (33487..33488) " "
+ CONSTANT: (33488..33490)
+ BOOLEAN: (33488..33490) "#f"
+ ATMOSPHERE: (33490..33491) " "
+ FORM: (33491..33510)
+ OPEN_PAREN: (33491..33492) "("
+ SYMBOL: (33492..33501)
+ IDENTIFIER: (33492..33501) "char-ci"
+ ATMOSPHERE: (33501..33502) " "
+ CONSTANT: (33502..33505)
+ CHARACTER: (33502..33505) "#\\b"
+ ATMOSPHERE: (33505..33506) " "
+ CONSTANT: (33506..33509)
+ CHARACTER: (33506..33509) "#\\A"
+ CLOSE_PAREN: (33509..33510) ")"
+ CLOSE_PAREN: (33510..33511) ")"
+ ATMOSPHERE: (33511..33512) "\n"
+ FORM: (33512..33541)
+ OPEN_PAREN: (33512..33513) "("
+ SYMBOL: (33513..33517)
+ IDENTIFIER: (33513..33517) "test"
+ ATMOSPHERE: (33517..33518) " "
+ CONSTANT: (33518..33520)
+ BOOLEAN: (33518..33520) "#f"
+ ATMOSPHERE: (33520..33521) " "
+ FORM: (33521..33540)
+ OPEN_PAREN: (33521..33522) "("
+ SYMBOL: (33522..33531)
+ IDENTIFIER: (33522..33531) "char-ci>?"
+ ATMOSPHERE: (33531..33532) " "
+ CONSTANT: (33532..33535)
+ CHARACTER: (33532..33535) "#\\A"
+ ATMOSPHERE: (33535..33536) " "
+ CONSTANT: (33536..33539)
+ CHARACTER: (33536..33539) "#\\b"
+ CLOSE_PAREN: (33539..33540) ")"
+ CLOSE_PAREN: (33540..33541) ")"
+ ATMOSPHERE: (33541..33542) "\n"
+ FORM: (33542..33571)
+ OPEN_PAREN: (33542..33543) "("
+ SYMBOL: (33543..33547)
+ IDENTIFIER: (33543..33547) "test"
+ ATMOSPHERE: (33547..33548) " "
+ CONSTANT: (33548..33550)
+ BOOLEAN: (33548..33550) "#f"
+ ATMOSPHERE: (33550..33551) " "
+ FORM: (33551..33570)
+ OPEN_PAREN: (33551..33552) "("
+ SYMBOL: (33552..33561)
+ IDENTIFIER: (33552..33561) "char-ci>?"
+ ATMOSPHERE: (33561..33562) " "
+ CONSTANT: (33562..33565)
+ CHARACTER: (33562..33565) "#\\a"
+ ATMOSPHERE: (33565..33566) " "
+ CONSTANT: (33566..33569)
+ CHARACTER: (33566..33569) "#\\A"
+ CLOSE_PAREN: (33569..33570) ")"
+ CLOSE_PAREN: (33570..33571) ")"
+ ATMOSPHERE: (33571..33572) "\n"
+ FORM: (33572..33605)
+ OPEN_PAREN: (33572..33573) "("
+ SYMBOL: (33573..33577)
+ IDENTIFIER: (33573..33577) "test"
+ ATMOSPHERE: (33577..33578) " "
+ CONSTANT: (33578..33580)
+ BOOLEAN: (33578..33580) "#t"
+ ATMOSPHERE: (33580..33581) " "
+ FORM: (33581..33604)
+ OPEN_PAREN: (33581..33582) "("
+ SYMBOL: (33582..33591)
+ IDENTIFIER: (33582..33591) "char-ci>?"
+ ATMOSPHERE: (33591..33592) " "
+ CONSTANT: (33592..33595)
+ CHARACTER: (33592..33595) "#\\c"
+ ATMOSPHERE: (33595..33596) " "
+ CONSTANT: (33596..33599)
+ CHARACTER: (33596..33599) "#\\B"
+ ATMOSPHERE: (33599..33600) " "
+ CONSTANT: (33600..33603)
+ CHARACTER: (33600..33603) "#\\a"
+ CLOSE_PAREN: (33603..33604) ")"
+ CLOSE_PAREN: (33604..33605) ")"
+ ATMOSPHERE: (33605..33606) "\n"
+ FORM: (33606..33640)
+ OPEN_PAREN: (33606..33607) "("
+ SYMBOL: (33607..33611)
+ IDENTIFIER: (33607..33611) "test"
+ ATMOSPHERE: (33611..33612) " "
+ CONSTANT: (33612..33614)
+ BOOLEAN: (33612..33614) "#t"
+ ATMOSPHERE: (33614..33615) " "
+ FORM: (33615..33639)
+ OPEN_PAREN: (33615..33616) "("
+ SYMBOL: (33616..33626)
+ IDENTIFIER: (33616..33626) "char-ci<=?"
+ ATMOSPHERE: (33626..33627) " "
+ CONSTANT: (33627..33630)
+ CHARACTER: (33627..33630) "#\\a"
+ ATMOSPHERE: (33630..33631) " "
+ CONSTANT: (33631..33634)
+ CHARACTER: (33631..33634) "#\\B"
+ ATMOSPHERE: (33634..33635) " "
+ CONSTANT: (33635..33638)
+ CHARACTER: (33635..33638) "#\\b"
+ CLOSE_PAREN: (33638..33639) ")"
+ CLOSE_PAREN: (33639..33640) ")"
+ ATMOSPHERE: (33640..33641) "\n"
+ FORM: (33641..33671)
+ OPEN_PAREN: (33641..33642) "("
+ SYMBOL: (33642..33646)
+ IDENTIFIER: (33642..33646) "test"
+ ATMOSPHERE: (33646..33647) " "
+ CONSTANT: (33647..33649)
+ BOOLEAN: (33647..33649) "#t"
+ ATMOSPHERE: (33649..33650) " "
+ FORM: (33650..33670)
+ OPEN_PAREN: (33650..33651) "("
+ SYMBOL: (33651..33661)
+ IDENTIFIER: (33651..33661) "char-ci<=?"
+ ATMOSPHERE: (33661..33662) " "
+ CONSTANT: (33662..33665)
+ CHARACTER: (33662..33665) "#\\A"
+ ATMOSPHERE: (33665..33666) " "
+ CONSTANT: (33666..33669)
+ CHARACTER: (33666..33669) "#\\a"
+ CLOSE_PAREN: (33669..33670) ")"
+ CLOSE_PAREN: (33670..33671) ")"
+ ATMOSPHERE: (33671..33672) "\n"
+ FORM: (33672..33702)
+ OPEN_PAREN: (33672..33673) "("
+ SYMBOL: (33673..33677)
+ IDENTIFIER: (33673..33677) "test"
+ ATMOSPHERE: (33677..33678) " "
+ CONSTANT: (33678..33680)
+ BOOLEAN: (33678..33680) "#f"
+ ATMOSPHERE: (33680..33681) " "
+ FORM: (33681..33701)
+ OPEN_PAREN: (33681..33682) "("
+ SYMBOL: (33682..33692)
+ IDENTIFIER: (33682..33692) "char-ci<=?"
+ ATMOSPHERE: (33692..33693) " "
+ CONSTANT: (33693..33696)
+ CHARACTER: (33693..33696) "#\\b"
+ ATMOSPHERE: (33696..33697) " "
+ CONSTANT: (33697..33700)
+ CHARACTER: (33697..33700) "#\\A"
+ CLOSE_PAREN: (33700..33701) ")"
+ CLOSE_PAREN: (33701..33702) ")"
+ ATMOSPHERE: (33702..33703) "\n"
+ FORM: (33703..33733)
+ OPEN_PAREN: (33703..33704) "("
+ SYMBOL: (33704..33708)
+ IDENTIFIER: (33704..33708) "test"
+ ATMOSPHERE: (33708..33709) " "
+ CONSTANT: (33709..33711)
+ BOOLEAN: (33709..33711) "#f"
+ ATMOSPHERE: (33711..33712) " "
+ FORM: (33712..33732)
+ OPEN_PAREN: (33712..33713) "("
+ SYMBOL: (33713..33723)
+ IDENTIFIER: (33713..33723) "char-ci>=?"
+ ATMOSPHERE: (33723..33724) " "
+ CONSTANT: (33724..33727)
+ CHARACTER: (33724..33727) "#\\A"
+ ATMOSPHERE: (33727..33728) " "
+ CONSTANT: (33728..33731)
+ CHARACTER: (33728..33731) "#\\b"
+ CLOSE_PAREN: (33731..33732) ")"
+ CLOSE_PAREN: (33732..33733) ")"
+ ATMOSPHERE: (33733..33734) "\n"
+ FORM: (33734..33764)
+ OPEN_PAREN: (33734..33735) "("
+ SYMBOL: (33735..33739)
+ IDENTIFIER: (33735..33739) "test"
+ ATMOSPHERE: (33739..33740) " "
+ CONSTANT: (33740..33742)
+ BOOLEAN: (33740..33742) "#t"
+ ATMOSPHERE: (33742..33743) " "
+ FORM: (33743..33763)
+ OPEN_PAREN: (33743..33744) "("
+ SYMBOL: (33744..33754)
+ IDENTIFIER: (33744..33754) "char-ci>=?"
+ ATMOSPHERE: (33754..33755) " "
+ CONSTANT: (33755..33758)
+ CHARACTER: (33755..33758) "#\\a"
+ ATMOSPHERE: (33758..33759) " "
+ CONSTANT: (33759..33762)
+ CHARACTER: (33759..33762) "#\\A"
+ CLOSE_PAREN: (33762..33763) ")"
+ CLOSE_PAREN: (33763..33764) ")"
+ ATMOSPHERE: (33764..33765) "\n"
+ FORM: (33765..33799)
+ OPEN_PAREN: (33765..33766) "("
+ SYMBOL: (33766..33770)
+ IDENTIFIER: (33766..33770) "test"
+ ATMOSPHERE: (33770..33771) " "
+ CONSTANT: (33771..33773)
+ BOOLEAN: (33771..33773) "#t"
+ ATMOSPHERE: (33773..33774) " "
+ FORM: (33774..33798)
+ OPEN_PAREN: (33774..33775) "("
+ SYMBOL: (33775..33785)
+ IDENTIFIER: (33775..33785) "char-ci>=?"
+ ATMOSPHERE: (33785..33786) " "
+ CONSTANT: (33786..33789)
+ CHARACTER: (33786..33789) "#\\b"
+ ATMOSPHERE: (33789..33790) " "
+ CONSTANT: (33790..33793)
+ CHARACTER: (33790..33793) "#\\B"
+ ATMOSPHERE: (33793..33794) " "
+ CONSTANT: (33794..33797)
+ CHARACTER: (33794..33797) "#\\a"
+ CLOSE_PAREN: (33797..33798) ")"
+ CLOSE_PAREN: (33798..33799) ")"
+ ATMOSPHERE: (33799..33801) "\n\n"
+ FORM: (33801..33833)
+ OPEN_PAREN: (33801..33802) "("
+ SYMBOL: (33802..33806)
+ IDENTIFIER: (33802..33806) "test"
+ ATMOSPHERE: (33806..33807) " "
+ CONSTANT: (33807..33809)
+ BOOLEAN: (33807..33809) "#t"
+ ATMOSPHERE: (33809..33810) " "
+ FORM: (33810..33832)
+ OPEN_PAREN: (33810..33811) "("
+ SYMBOL: (33811..33827)
+ IDENTIFIER: (33811..33827) "char-alphabetic?"
+ ATMOSPHERE: (33827..33828) " "
+ CONSTANT: (33828..33831)
+ CHARACTER: (33828..33831) "#\\a"
+ CLOSE_PAREN: (33831..33832) ")"
+ CLOSE_PAREN: (33832..33833) ")"
+ ATMOSPHERE: (33833..33834) "\n"
+ FORM: (33834..33870)
+ OPEN_PAREN: (33834..33835) "("
+ SYMBOL: (33835..33839)
+ IDENTIFIER: (33835..33839) "test"
+ ATMOSPHERE: (33839..33840) " "
+ CONSTANT: (33840..33842)
+ BOOLEAN: (33840..33842) "#f"
+ ATMOSPHERE: (33842..33843) " "
+ FORM: (33843..33869)
+ OPEN_PAREN: (33843..33844) "("
+ SYMBOL: (33844..33860)
+ IDENTIFIER: (33844..33860) "char-alphabetic?"
+ ATMOSPHERE: (33860..33861) " "
+ CONSTANT: (33861..33868)
+ CHARACTER: (33861..33868) "#\\space"
+ CLOSE_PAREN: (33868..33869) ")"
+ CLOSE_PAREN: (33869..33870) ")"
+ ATMOSPHERE: (33870..33871) "\n"
+ FORM: (33871..33900)
+ OPEN_PAREN: (33871..33872) "("
+ SYMBOL: (33872..33876)
+ IDENTIFIER: (33872..33876) "test"
+ ATMOSPHERE: (33876..33877) " "
+ CONSTANT: (33877..33879)
+ BOOLEAN: (33877..33879) "#t"
+ ATMOSPHERE: (33879..33880) " "
+ FORM: (33880..33899)
+ OPEN_PAREN: (33880..33881) "("
+ SYMBOL: (33881..33894)
+ IDENTIFIER: (33881..33894) "char-numeric?"
+ ATMOSPHERE: (33894..33895) " "
+ CONSTANT: (33895..33898)
+ CHARACTER: (33895..33898) "#\\0"
+ CLOSE_PAREN: (33898..33899) ")"
+ CLOSE_PAREN: (33899..33900) ")"
+ ATMOSPHERE: (33900..33901) "\n"
+ FORM: (33901..33930)
+ OPEN_PAREN: (33901..33902) "("
+ SYMBOL: (33902..33906)
+ IDENTIFIER: (33902..33906) "test"
+ ATMOSPHERE: (33906..33907) " "
+ CONSTANT: (33907..33909)
+ BOOLEAN: (33907..33909) "#f"
+ ATMOSPHERE: (33909..33910) " "
+ FORM: (33910..33929)
+ OPEN_PAREN: (33910..33911) "("
+ SYMBOL: (33911..33924)
+ IDENTIFIER: (33911..33924) "char-numeric?"
+ ATMOSPHERE: (33924..33925) " "
+ CONSTANT: (33925..33928)
+ CHARACTER: (33925..33928) "#\\."
+ CLOSE_PAREN: (33928..33929) ")"
+ CLOSE_PAREN: (33929..33930) ")"
+ ATMOSPHERE: (33930..33931) "\n"
+ FORM: (33931..33960)
+ OPEN_PAREN: (33931..33932) "("
+ SYMBOL: (33932..33936)
+ IDENTIFIER: (33932..33936) "test"
+ ATMOSPHERE: (33936..33937) " "
+ CONSTANT: (33937..33939)
+ BOOLEAN: (33937..33939) "#f"
+ ATMOSPHERE: (33939..33940) " "
+ FORM: (33940..33959)
+ OPEN_PAREN: (33940..33941) "("
+ SYMBOL: (33941..33954)
+ IDENTIFIER: (33941..33954) "char-numeric?"
+ ATMOSPHERE: (33954..33955) " "
+ CONSTANT: (33955..33958)
+ CHARACTER: (33955..33958) "#\\a"
+ CLOSE_PAREN: (33958..33959) ")"
+ CLOSE_PAREN: (33959..33960) ")"
+ ATMOSPHERE: (33960..33961) "\n"
+ FORM: (33961..33997)
+ OPEN_PAREN: (33961..33962) "("
+ SYMBOL: (33962..33966)
+ IDENTIFIER: (33962..33966) "test"
+ ATMOSPHERE: (33966..33967) " "
+ CONSTANT: (33967..33969)
+ BOOLEAN: (33967..33969) "#t"
+ ATMOSPHERE: (33969..33970) " "
+ FORM: (33970..33996)
+ OPEN_PAREN: (33970..33971) "("
+ SYMBOL: (33971..33987)
+ IDENTIFIER: (33971..33987) "char-whitespace?"
+ ATMOSPHERE: (33987..33988) " "
+ CONSTANT: (33988..33995)
+ CHARACTER: (33988..33995) "#\\space"
+ CLOSE_PAREN: (33995..33996) ")"
+ CLOSE_PAREN: (33996..33997) ")"
+ ATMOSPHERE: (33997..33998) "\n"
+ FORM: (33998..34032)
+ OPEN_PAREN: (33998..33999) "("
+ SYMBOL: (33999..34003)
+ IDENTIFIER: (33999..34003) "test"
+ ATMOSPHERE: (34003..34004) " "
+ CONSTANT: (34004..34006)
+ BOOLEAN: (34004..34006) "#t"
+ ATMOSPHERE: (34006..34007) " "
+ FORM: (34007..34031)
+ OPEN_PAREN: (34007..34008) "("
+ SYMBOL: (34008..34024)
+ IDENTIFIER: (34008..34024) "char-whitespace?"
+ ATMOSPHERE: (34024..34025) " "
+ CONSTANT: (34025..34030)
+ CHARACTER: (34025..34030) "#\\tab"
+ CLOSE_PAREN: (34030..34031) ")"
+ CLOSE_PAREN: (34031..34032) ")"
+ ATMOSPHERE: (34032..34033) "\n"
+ FORM: (34033..34071)
+ OPEN_PAREN: (34033..34034) "("
+ SYMBOL: (34034..34038)
+ IDENTIFIER: (34034..34038) "test"
+ ATMOSPHERE: (34038..34039) " "
+ CONSTANT: (34039..34041)
+ BOOLEAN: (34039..34041) "#t"
+ ATMOSPHERE: (34041..34042) " "
+ FORM: (34042..34070)
+ OPEN_PAREN: (34042..34043) "("
+ SYMBOL: (34043..34059)
+ IDENTIFIER: (34043..34059) "char-whitespace?"
+ ATMOSPHERE: (34059..34060) " "
+ CONSTANT: (34060..34069)
+ CHARACTER: (34060..34069) "#\\newline"
+ CLOSE_PAREN: (34069..34070) ")"
+ CLOSE_PAREN: (34070..34071) ")"
+ ATMOSPHERE: (34071..34072) "\n"
+ FORM: (34072..34104)
+ OPEN_PAREN: (34072..34073) "("
+ SYMBOL: (34073..34077)
+ IDENTIFIER: (34073..34077) "test"
+ ATMOSPHERE: (34077..34078) " "
+ CONSTANT: (34078..34080)
+ BOOLEAN: (34078..34080) "#f"
+ ATMOSPHERE: (34080..34081) " "
+ FORM: (34081..34103)
+ OPEN_PAREN: (34081..34082) "("
+ SYMBOL: (34082..34098)
+ IDENTIFIER: (34082..34098) "char-whitespace?"
+ ATMOSPHERE: (34098..34099) " "
+ CONSTANT: (34099..34102)
+ CHARACTER: (34099..34102) "#\\_"
+ CLOSE_PAREN: (34102..34103) ")"
+ CLOSE_PAREN: (34103..34104) ")"
+ ATMOSPHERE: (34104..34105) "\n"
+ FORM: (34105..34137)
+ OPEN_PAREN: (34105..34106) "("
+ SYMBOL: (34106..34110)
+ IDENTIFIER: (34106..34110) "test"
+ ATMOSPHERE: (34110..34111) " "
+ CONSTANT: (34111..34113)
+ BOOLEAN: (34111..34113) "#f"
+ ATMOSPHERE: (34113..34114) " "
+ FORM: (34114..34136)
+ OPEN_PAREN: (34114..34115) "("
+ SYMBOL: (34115..34131)
+ IDENTIFIER: (34115..34131) "char-whitespace?"
+ ATMOSPHERE: (34131..34132) " "
+ CONSTANT: (34132..34135)
+ CHARACTER: (34132..34135) "#\\a"
+ CLOSE_PAREN: (34135..34136) ")"
+ CLOSE_PAREN: (34136..34137) ")"
+ ATMOSPHERE: (34137..34138) "\n"
+ FORM: (34138..34170)
+ OPEN_PAREN: (34138..34139) "("
+ SYMBOL: (34139..34143)
+ IDENTIFIER: (34139..34143) "test"
+ ATMOSPHERE: (34143..34144) " "
+ CONSTANT: (34144..34146)
+ BOOLEAN: (34144..34146) "#t"
+ ATMOSPHERE: (34146..34147) " "
+ FORM: (34147..34169)
+ OPEN_PAREN: (34147..34148) "("
+ SYMBOL: (34148..34164)
+ IDENTIFIER: (34148..34164) "char-upper-case?"
+ ATMOSPHERE: (34164..34165) " "
+ CONSTANT: (34165..34168)
+ CHARACTER: (34165..34168) "#\\A"
+ CLOSE_PAREN: (34168..34169) ")"
+ CLOSE_PAREN: (34169..34170) ")"
+ ATMOSPHERE: (34170..34171) "\n"
+ FORM: (34171..34203)
+ OPEN_PAREN: (34171..34172) "("
+ SYMBOL: (34172..34176)
+ IDENTIFIER: (34172..34176) "test"
+ ATMOSPHERE: (34176..34177) " "
+ CONSTANT: (34177..34179)
+ BOOLEAN: (34177..34179) "#f"
+ ATMOSPHERE: (34179..34180) " "
+ FORM: (34180..34202)
+ OPEN_PAREN: (34180..34181) "("
+ SYMBOL: (34181..34197)
+ IDENTIFIER: (34181..34197) "char-upper-case?"
+ ATMOSPHERE: (34197..34198) " "
+ CONSTANT: (34198..34201)
+ CHARACTER: (34198..34201) "#\\a"
+ CLOSE_PAREN: (34201..34202) ")"
+ CLOSE_PAREN: (34202..34203) ")"
+ ATMOSPHERE: (34203..34204) "\n"
+ FORM: (34204..34236)
+ OPEN_PAREN: (34204..34205) "("
+ SYMBOL: (34205..34209)
+ IDENTIFIER: (34205..34209) "test"
+ ATMOSPHERE: (34209..34210) " "
+ CONSTANT: (34210..34212)
+ BOOLEAN: (34210..34212) "#f"
+ ATMOSPHERE: (34212..34213) " "
+ FORM: (34213..34235)
+ OPEN_PAREN: (34213..34214) "("
+ SYMBOL: (34214..34230)
+ IDENTIFIER: (34214..34230) "char-upper-case?"
+ ATMOSPHERE: (34230..34231) " "
+ CONSTANT: (34231..34234)
+ CHARACTER: (34231..34234) "#\\3"
+ CLOSE_PAREN: (34234..34235) ")"
+ CLOSE_PAREN: (34235..34236) ")"
+ ATMOSPHERE: (34236..34237) "\n"
+ FORM: (34237..34269)
+ OPEN_PAREN: (34237..34238) "("
+ SYMBOL: (34238..34242)
+ IDENTIFIER: (34238..34242) "test"
+ ATMOSPHERE: (34242..34243) " "
+ CONSTANT: (34243..34245)
+ BOOLEAN: (34243..34245) "#t"
+ ATMOSPHERE: (34245..34246) " "
+ FORM: (34246..34268)
+ OPEN_PAREN: (34246..34247) "("
+ SYMBOL: (34247..34263)
+ IDENTIFIER: (34247..34263) "char-lower-case?"
+ ATMOSPHERE: (34263..34264) " "
+ CONSTANT: (34264..34267)
+ CHARACTER: (34264..34267) "#\\a"
+ CLOSE_PAREN: (34267..34268) ")"
+ CLOSE_PAREN: (34268..34269) ")"
+ ATMOSPHERE: (34269..34270) "\n"
+ FORM: (34270..34302)
+ OPEN_PAREN: (34270..34271) "("
+ SYMBOL: (34271..34275)
+ IDENTIFIER: (34271..34275) "test"
+ ATMOSPHERE: (34275..34276) " "
+ CONSTANT: (34276..34278)
+ BOOLEAN: (34276..34278) "#f"
+ ATMOSPHERE: (34278..34279) " "
+ FORM: (34279..34301)
+ OPEN_PAREN: (34279..34280) "("
+ SYMBOL: (34280..34296)
+ IDENTIFIER: (34280..34296) "char-lower-case?"
+ ATMOSPHERE: (34296..34297) " "
+ CONSTANT: (34297..34300)
+ CHARACTER: (34297..34300) "#\\A"
+ CLOSE_PAREN: (34300..34301) ")"
+ CLOSE_PAREN: (34301..34302) ")"
+ ATMOSPHERE: (34302..34303) "\n"
+ FORM: (34303..34335)
+ OPEN_PAREN: (34303..34304) "("
+ SYMBOL: (34304..34308)
+ IDENTIFIER: (34304..34308) "test"
+ ATMOSPHERE: (34308..34309) " "
+ CONSTANT: (34309..34311)
+ BOOLEAN: (34309..34311) "#f"
+ ATMOSPHERE: (34311..34312) " "
+ FORM: (34312..34334)
+ OPEN_PAREN: (34312..34313) "("
+ SYMBOL: (34313..34329)
+ IDENTIFIER: (34313..34329) "char-lower-case?"
+ ATMOSPHERE: (34329..34330) " "
+ CONSTANT: (34330..34333)
+ CHARACTER: (34330..34333) "#\\3"
+ CLOSE_PAREN: (34333..34334) ")"
+ CLOSE_PAREN: (34334..34335) ")"
+ ATMOSPHERE: (34335..34337) "\n\n"
+ FORM: (34337..34369)
+ OPEN_PAREN: (34337..34338) "("
+ SYMBOL: (34338..34342)
+ IDENTIFIER: (34338..34342) "test"
+ ATMOSPHERE: (34342..34343) " "
+ CONSTANT: (34343..34345)
+ BOOLEAN: (34343..34345) "#t"
+ ATMOSPHERE: (34345..34346) " "
+ FORM: (34346..34368)
+ OPEN_PAREN: (34346..34347) "("
+ SYMBOL: (34347..34363)
+ IDENTIFIER: (34347..34363) "char-alphabetic?"
+ ATMOSPHERE: (34363..34364) " "
+ CONSTANT: (34364..34367)
+ CHARACTER: (34364..34367) "#\\Λ"
+ CLOSE_PAREN: (34367..34368) ")"
+ CLOSE_PAREN: (34368..34369) ")"
+ ATMOSPHERE: (34369..34370) "\n"
+ FORM: (34370..34406)
+ OPEN_PAREN: (34370..34371) "("
+ SYMBOL: (34371..34375)
+ IDENTIFIER: (34371..34375) "test"
+ ATMOSPHERE: (34375..34376) " "
+ CONSTANT: (34376..34378)
+ BOOLEAN: (34376..34378) "#f"
+ ATMOSPHERE: (34378..34379) " "
+ FORM: (34379..34405)
+ OPEN_PAREN: (34379..34380) "("
+ SYMBOL: (34380..34396)
+ IDENTIFIER: (34380..34396) "char-alphabetic?"
+ ATMOSPHERE: (34396..34397) " "
+ CONSTANT: (34397..34404)
+ CHARACTER: (34397..34404) "#\\x0E50"
+ CLOSE_PAREN: (34404..34405) ")"
+ CLOSE_PAREN: (34405..34406) ")"
+ ATMOSPHERE: (34406..34407) "\n"
+ FORM: (34407..34439)
+ OPEN_PAREN: (34407..34408) "("
+ SYMBOL: (34408..34412)
+ IDENTIFIER: (34408..34412) "test"
+ ATMOSPHERE: (34412..34413) " "
+ CONSTANT: (34413..34415)
+ BOOLEAN: (34413..34415) "#t"
+ ATMOSPHERE: (34415..34416) " "
+ FORM: (34416..34438)
+ OPEN_PAREN: (34416..34417) "("
+ SYMBOL: (34417..34433)
+ IDENTIFIER: (34417..34433) "char-upper-case?"
+ ATMOSPHERE: (34433..34434) " "
+ CONSTANT: (34434..34437)
+ CHARACTER: (34434..34437) "#\\Λ"
+ CLOSE_PAREN: (34437..34438) ")"
+ CLOSE_PAREN: (34438..34439) ")"
+ ATMOSPHERE: (34439..34440) "\n"
+ FORM: (34440..34472)
+ OPEN_PAREN: (34440..34441) "("
+ SYMBOL: (34441..34445)
+ IDENTIFIER: (34441..34445) "test"
+ ATMOSPHERE: (34445..34446) " "
+ CONSTANT: (34446..34448)
+ BOOLEAN: (34446..34448) "#f"
+ ATMOSPHERE: (34448..34449) " "
+ FORM: (34449..34471)
+ OPEN_PAREN: (34449..34450) "("
+ SYMBOL: (34450..34466)
+ IDENTIFIER: (34450..34466) "char-upper-case?"
+ ATMOSPHERE: (34466..34467) " "
+ CONSTANT: (34467..34470)
+ CHARACTER: (34467..34470) "#\\λ"
+ CLOSE_PAREN: (34470..34471) ")"
+ CLOSE_PAREN: (34471..34472) ")"
+ ATMOSPHERE: (34472..34473) "\n"
+ FORM: (34473..34505)
+ OPEN_PAREN: (34473..34474) "("
+ SYMBOL: (34474..34478)
+ IDENTIFIER: (34474..34478) "test"
+ ATMOSPHERE: (34478..34479) " "
+ CONSTANT: (34479..34481)
+ BOOLEAN: (34479..34481) "#f"
+ ATMOSPHERE: (34481..34482) " "
+ FORM: (34482..34504)
+ OPEN_PAREN: (34482..34483) "("
+ SYMBOL: (34483..34499)
+ IDENTIFIER: (34483..34499) "char-lower-case?"
+ ATMOSPHERE: (34499..34500) " "
+ CONSTANT: (34500..34503)
+ CHARACTER: (34500..34503) "#\\Λ"
+ CLOSE_PAREN: (34503..34504) ")"
+ CLOSE_PAREN: (34504..34505) ")"
+ ATMOSPHERE: (34505..34506) "\n"
+ FORM: (34506..34538)
+ OPEN_PAREN: (34506..34507) "("
+ SYMBOL: (34507..34511)
+ IDENTIFIER: (34507..34511) "test"
+ ATMOSPHERE: (34511..34512) " "
+ CONSTANT: (34512..34514)
+ BOOLEAN: (34512..34514) "#t"
+ ATMOSPHERE: (34514..34515) " "
+ FORM: (34515..34537)
+ OPEN_PAREN: (34515..34516) "("
+ SYMBOL: (34516..34532)
+ IDENTIFIER: (34516..34532) "char-lower-case?"
+ ATMOSPHERE: (34532..34533) " "
+ CONSTANT: (34533..34536)
+ CHARACTER: (34533..34536) "#\\λ"
+ CLOSE_PAREN: (34536..34537) ")"
+ CLOSE_PAREN: (34537..34538) ")"
+ ATMOSPHERE: (34538..34539) "\n"
+ FORM: (34539..34568)
+ OPEN_PAREN: (34539..34540) "("
+ SYMBOL: (34540..34544)
+ IDENTIFIER: (34540..34544) "test"
+ ATMOSPHERE: (34544..34545) " "
+ CONSTANT: (34545..34547)
+ BOOLEAN: (34545..34547) "#f"
+ ATMOSPHERE: (34547..34548) " "
+ FORM: (34548..34567)
+ OPEN_PAREN: (34548..34549) "("
+ SYMBOL: (34549..34562)
+ IDENTIFIER: (34549..34562) "char-numeric?"
+ ATMOSPHERE: (34562..34563) " "
+ CONSTANT: (34563..34566)
+ CHARACTER: (34563..34566) "#\\Λ"
+ CLOSE_PAREN: (34566..34567) ")"
+ CLOSE_PAREN: (34567..34568) ")"
+ ATMOSPHERE: (34568..34569) "\n"
+ FORM: (34569..34602)
+ OPEN_PAREN: (34569..34570) "("
+ SYMBOL: (34570..34574)
+ IDENTIFIER: (34570..34574) "test"
+ ATMOSPHERE: (34574..34575) " "
+ CONSTANT: (34575..34577)
+ BOOLEAN: (34575..34577) "#t"
+ ATMOSPHERE: (34577..34578) " "
+ FORM: (34578..34601)
+ OPEN_PAREN: (34578..34579) "("
+ SYMBOL: (34579..34592)
+ IDENTIFIER: (34579..34592) "char-numeric?"
+ ATMOSPHERE: (34592..34593) " "
+ CONSTANT: (34593..34600)
+ CHARACTER: (34593..34600) "#\\x0E50"
+ CLOSE_PAREN: (34600..34601) ")"
+ CLOSE_PAREN: (34601..34602) ")"
+ ATMOSPHERE: (34602..34603) "\n"
+ FORM: (34603..34639)
+ OPEN_PAREN: (34603..34604) "("
+ SYMBOL: (34604..34608)
+ IDENTIFIER: (34604..34608) "test"
+ ATMOSPHERE: (34608..34609) " "
+ CONSTANT: (34609..34611)
+ BOOLEAN: (34609..34611) "#t"
+ ATMOSPHERE: (34611..34612) " "
+ FORM: (34612..34638)
+ OPEN_PAREN: (34612..34613) "("
+ SYMBOL: (34613..34629)
+ IDENTIFIER: (34613..34629) "char-whitespace?"
+ ATMOSPHERE: (34629..34630) " "
+ CONSTANT: (34630..34637)
+ CHARACTER: (34630..34637) "#\\x1680"
+ CLOSE_PAREN: (34637..34638) ")"
+ CLOSE_PAREN: (34638..34639) ")"
+ ATMOSPHERE: (34639..34641) "\n\n"
+ FORM: (34641..34667)
+ OPEN_PAREN: (34641..34642) "("
+ SYMBOL: (34642..34646)
+ IDENTIFIER: (34642..34646) "test"
+ ATMOSPHERE: (34646..34647) " "
+ CONSTANT: (34647..34648)
+ NUMBER: (34647..34648) "0"
+ ATMOSPHERE: (34648..34649) " "
+ FORM: (34649..34666)
+ OPEN_PAREN: (34649..34650) "("
+ SYMBOL: (34650..34661)
+ IDENTIFIER: (34650..34661) "digit-value"
+ ATMOSPHERE: (34661..34662) " "
+ CONSTANT: (34662..34665)
+ CHARACTER: (34662..34665) "#\\0"
+ CLOSE_PAREN: (34665..34666) ")"
+ CLOSE_PAREN: (34666..34667) ")"
+ ATMOSPHERE: (34667..34668) "\n"
+ FORM: (34668..34694)
+ OPEN_PAREN: (34668..34669) "("
+ SYMBOL: (34669..34673)
+ IDENTIFIER: (34669..34673) "test"
+ ATMOSPHERE: (34673..34674) " "
+ CONSTANT: (34674..34675)
+ NUMBER: (34674..34675) "3"
+ ATMOSPHERE: (34675..34676) " "
+ FORM: (34676..34693)
+ OPEN_PAREN: (34676..34677) "("
+ SYMBOL: (34677..34688)
+ IDENTIFIER: (34677..34688) "digit-value"
+ ATMOSPHERE: (34688..34689) " "
+ CONSTANT: (34689..34692)
+ CHARACTER: (34689..34692) "#\\3"
+ CLOSE_PAREN: (34692..34693) ")"
+ CLOSE_PAREN: (34693..34694) ")"
+ ATMOSPHERE: (34694..34695) "\n"
+ FORM: (34695..34721)
+ OPEN_PAREN: (34695..34696) "("
+ SYMBOL: (34696..34700)
+ IDENTIFIER: (34696..34700) "test"
+ ATMOSPHERE: (34700..34701) " "
+ CONSTANT: (34701..34702)
+ NUMBER: (34701..34702) "9"
+ ATMOSPHERE: (34702..34703) " "
+ FORM: (34703..34720)
+ OPEN_PAREN: (34703..34704) "("
+ SYMBOL: (34704..34715)
+ IDENTIFIER: (34704..34715) "digit-value"
+ ATMOSPHERE: (34715..34716) " "
+ CONSTANT: (34716..34719)
+ CHARACTER: (34716..34719) "#\\9"
+ CLOSE_PAREN: (34719..34720) ")"
+ CLOSE_PAREN: (34720..34721) ")"
+ ATMOSPHERE: (34721..34722) "\n"
+ FORM: (34722..34752)
+ OPEN_PAREN: (34722..34723) "("
+ SYMBOL: (34723..34727)
+ IDENTIFIER: (34723..34727) "test"
+ ATMOSPHERE: (34727..34728) " "
+ CONSTANT: (34728..34729)
+ NUMBER: (34728..34729) "4"
+ ATMOSPHERE: (34729..34730) " "
+ FORM: (34730..34751)
+ OPEN_PAREN: (34730..34731) "("
+ SYMBOL: (34731..34742)
+ IDENTIFIER: (34731..34742) "digit-value"
+ ATMOSPHERE: (34742..34743) " "
+ CONSTANT: (34743..34750)
+ CHARACTER: (34743..34750) "#\\x0664"
+ CLOSE_PAREN: (34750..34751) ")"
+ CLOSE_PAREN: (34751..34752) ")"
+ ATMOSPHERE: (34752..34753) "\n"
+ FORM: (34753..34783)
+ OPEN_PAREN: (34753..34754) "("
+ SYMBOL: (34754..34758)
+ IDENTIFIER: (34754..34758) "test"
+ ATMOSPHERE: (34758..34759) " "
+ CONSTANT: (34759..34760)
+ NUMBER: (34759..34760) "0"
+ ATMOSPHERE: (34760..34761) " "
+ FORM: (34761..34782)
+ OPEN_PAREN: (34761..34762) "("
+ SYMBOL: (34762..34773)
+ IDENTIFIER: (34762..34773) "digit-value"
+ ATMOSPHERE: (34773..34774) " "
+ CONSTANT: (34774..34781)
+ CHARACTER: (34774..34781) "#\\x0AE6"
+ CLOSE_PAREN: (34781..34782) ")"
+ CLOSE_PAREN: (34782..34783) ")"
+ ATMOSPHERE: (34783..34784) "\n"
+ FORM: (34784..34811)
+ OPEN_PAREN: (34784..34785) "("
+ SYMBOL: (34785..34789)
+ IDENTIFIER: (34785..34789) "test"
+ ATMOSPHERE: (34789..34790) " "
+ CONSTANT: (34790..34792)
+ BOOLEAN: (34790..34792) "#f"
+ ATMOSPHERE: (34792..34793) " "
+ FORM: (34793..34810)
+ OPEN_PAREN: (34793..34794) "("
+ SYMBOL: (34794..34805)
+ IDENTIFIER: (34794..34805) "digit-value"
+ ATMOSPHERE: (34805..34806) " "
+ CONSTANT: (34806..34809)
+ CHARACTER: (34806..34809) "#\\."
+ CLOSE_PAREN: (34809..34810) ")"
+ CLOSE_PAREN: (34810..34811) ")"
+ ATMOSPHERE: (34811..34812) "\n"
+ FORM: (34812..34839)
+ OPEN_PAREN: (34812..34813) "("
+ SYMBOL: (34813..34817)
+ IDENTIFIER: (34813..34817) "test"
+ ATMOSPHERE: (34817..34818) " "
+ CONSTANT: (34818..34820)
+ BOOLEAN: (34818..34820) "#f"
+ ATMOSPHERE: (34820..34821) " "
+ FORM: (34821..34838)
+ OPEN_PAREN: (34821..34822) "("
+ SYMBOL: (34822..34833)
+ IDENTIFIER: (34822..34833) "digit-value"
+ ATMOSPHERE: (34833..34834) " "
+ CONSTANT: (34834..34837)
+ CHARACTER: (34834..34837) "#\\-"
+ CLOSE_PAREN: (34837..34838) ")"
+ CLOSE_PAREN: (34838..34839) ")"
+ ATMOSPHERE: (34839..34841) "\n\n"
+ FORM: (34841..34870)
+ OPEN_PAREN: (34841..34842) "("
+ SYMBOL: (34842..34846)
+ IDENTIFIER: (34842..34846) "test"
+ ATMOSPHERE: (34846..34847) " "
+ CONSTANT: (34847..34849)
+ NUMBER: (34847..34849) "97"
+ ATMOSPHERE: (34849..34850) " "
+ FORM: (34850..34869)
+ OPEN_PAREN: (34850..34851) "("
+ SYMBOL: (34851..34864)
+ IDENTIFIER: (34851..34864) "char->integer"
+ ATMOSPHERE: (34864..34865) " "
+ CONSTANT: (34865..34868)
+ CHARACTER: (34865..34868) "#\\a"
+ CLOSE_PAREN: (34868..34869) ")"
+ CLOSE_PAREN: (34869..34870) ")"
+ ATMOSPHERE: (34870..34871) "\n"
+ FORM: (34871..34900)
+ OPEN_PAREN: (34871..34872) "("
+ SYMBOL: (34872..34876)
+ IDENTIFIER: (34872..34876) "test"
+ ATMOSPHERE: (34876..34877) " "
+ CONSTANT: (34877..34880)
+ CHARACTER: (34877..34880) "#\\a"
+ ATMOSPHERE: (34880..34881) " "
+ FORM: (34881..34899)
+ OPEN_PAREN: (34881..34882) "("
+ SYMBOL: (34882..34895)
+ IDENTIFIER: (34882..34895) "integer->char"
+ ATMOSPHERE: (34895..34896) " "
+ CONSTANT: (34896..34898)
+ NUMBER: (34896..34898) "97"
+ CLOSE_PAREN: (34898..34899) ")"
+ CLOSE_PAREN: (34899..34900) ")"
+ ATMOSPHERE: (34900..34902) "\n\n"
+ FORM: (34902..34930)
+ OPEN_PAREN: (34902..34903) "("
+ SYMBOL: (34903..34907)
+ IDENTIFIER: (34903..34907) "test"
+ ATMOSPHERE: (34907..34908) " "
+ CONSTANT: (34908..34911)
+ CHARACTER: (34908..34911) "#\\A"
+ ATMOSPHERE: (34911..34912) " "
+ FORM: (34912..34929)
+ OPEN_PAREN: (34912..34913) "("
+ SYMBOL: (34913..34924)
+ IDENTIFIER: (34913..34924) "char-upcase"
+ ATMOSPHERE: (34924..34925) " "
+ CONSTANT: (34925..34928)
+ CHARACTER: (34925..34928) "#\\a"
+ CLOSE_PAREN: (34928..34929) ")"
+ CLOSE_PAREN: (34929..34930) ")"
+ ATMOSPHERE: (34930..34931) "\n"
+ FORM: (34931..34959)
+ OPEN_PAREN: (34931..34932) "("
+ SYMBOL: (34932..34936)
+ IDENTIFIER: (34932..34936) "test"
+ ATMOSPHERE: (34936..34937) " "
+ CONSTANT: (34937..34940)
+ CHARACTER: (34937..34940) "#\\A"
+ ATMOSPHERE: (34940..34941) " "
+ FORM: (34941..34958)
+ OPEN_PAREN: (34941..34942) "("
+ SYMBOL: (34942..34953)
+ IDENTIFIER: (34942..34953) "char-upcase"
+ ATMOSPHERE: (34953..34954) " "
+ CONSTANT: (34954..34957)
+ CHARACTER: (34954..34957) "#\\A"
+ CLOSE_PAREN: (34957..34958) ")"
+ CLOSE_PAREN: (34958..34959) ")"
+ ATMOSPHERE: (34959..34960) "\n"
+ FORM: (34960..34990)
+ OPEN_PAREN: (34960..34961) "("
+ SYMBOL: (34961..34965)
+ IDENTIFIER: (34961..34965) "test"
+ ATMOSPHERE: (34965..34966) " "
+ CONSTANT: (34966..34969)
+ CHARACTER: (34966..34969) "#\\a"
+ ATMOSPHERE: (34969..34970) " "
+ FORM: (34970..34989)
+ OPEN_PAREN: (34970..34971) "("
+ SYMBOL: (34971..34984)
+ IDENTIFIER: (34971..34984) "char-downcase"
+ ATMOSPHERE: (34984..34985) " "
+ CONSTANT: (34985..34988)
+ CHARACTER: (34985..34988) "#\\a"
+ CLOSE_PAREN: (34988..34989) ")"
+ CLOSE_PAREN: (34989..34990) ")"
+ ATMOSPHERE: (34990..34991) "\n"
+ FORM: (34991..35021)
+ OPEN_PAREN: (34991..34992) "("
+ SYMBOL: (34992..34996)
+ IDENTIFIER: (34992..34996) "test"
+ ATMOSPHERE: (34996..34997) " "
+ CONSTANT: (34997..35000)
+ CHARACTER: (34997..35000) "#\\a"
+ ATMOSPHERE: (35000..35001) " "
+ FORM: (35001..35020)
+ OPEN_PAREN: (35001..35002) "("
+ SYMBOL: (35002..35015)
+ IDENTIFIER: (35002..35015) "char-downcase"
+ ATMOSPHERE: (35015..35016) " "
+ CONSTANT: (35016..35019)
+ CHARACTER: (35016..35019) "#\\A"
+ CLOSE_PAREN: (35019..35020) ")"
+ CLOSE_PAREN: (35020..35021) ")"
+ ATMOSPHERE: (35021..35022) "\n"
+ FORM: (35022..35052)
+ OPEN_PAREN: (35022..35023) "("
+ SYMBOL: (35023..35027)
+ IDENTIFIER: (35023..35027) "test"
+ ATMOSPHERE: (35027..35028) " "
+ CONSTANT: (35028..35031)
+ CHARACTER: (35028..35031) "#\\a"
+ ATMOSPHERE: (35031..35032) " "
+ FORM: (35032..35051)
+ OPEN_PAREN: (35032..35033) "("
+ SYMBOL: (35033..35046)
+ IDENTIFIER: (35033..35046) "char-foldcase"
+ ATMOSPHERE: (35046..35047) " "
+ CONSTANT: (35047..35050)
+ CHARACTER: (35047..35050) "#\\a"
+ CLOSE_PAREN: (35050..35051) ")"
+ CLOSE_PAREN: (35051..35052) ")"
+ ATMOSPHERE: (35052..35053) "\n"
+ FORM: (35053..35083)
+ OPEN_PAREN: (35053..35054) "("
+ SYMBOL: (35054..35058)
+ IDENTIFIER: (35054..35058) "test"
+ ATMOSPHERE: (35058..35059) " "
+ CONSTANT: (35059..35062)
+ CHARACTER: (35059..35062) "#\\a"
+ ATMOSPHERE: (35062..35063) " "
+ FORM: (35063..35082)
+ OPEN_PAREN: (35063..35064) "("
+ SYMBOL: (35064..35077)
+ IDENTIFIER: (35064..35077) "char-foldcase"
+ ATMOSPHERE: (35077..35078) " "
+ CONSTANT: (35078..35081)
+ CHARACTER: (35078..35081) "#\\A"
+ CLOSE_PAREN: (35081..35082) ")"
+ CLOSE_PAREN: (35082..35083) ")"
+ ATMOSPHERE: (35083..35085) "\n\n"
+ FORM: (35085..35113)
+ OPEN_PAREN: (35085..35086) "("
+ SYMBOL: (35086..35090)
+ IDENTIFIER: (35086..35090) "test"
+ ATMOSPHERE: (35090..35091) " "
+ CONSTANT: (35091..35094)
+ CHARACTER: (35091..35094) "#\\Λ"
+ ATMOSPHERE: (35094..35095) " "
+ FORM: (35095..35112)
+ OPEN_PAREN: (35095..35096) "("
+ SYMBOL: (35096..35107)
+ IDENTIFIER: (35096..35107) "char-upcase"
+ ATMOSPHERE: (35107..35108) " "
+ CONSTANT: (35108..35111)
+ CHARACTER: (35108..35111) "#\\λ"
+ CLOSE_PAREN: (35111..35112) ")"
+ CLOSE_PAREN: (35112..35113) ")"
+ ATMOSPHERE: (35113..35114) "\n"
+ FORM: (35114..35142)
+ OPEN_PAREN: (35114..35115) "("
+ SYMBOL: (35115..35119)
+ IDENTIFIER: (35115..35119) "test"
+ ATMOSPHERE: (35119..35120) " "
+ CONSTANT: (35120..35123)
+ CHARACTER: (35120..35123) "#\\Λ"
+ ATMOSPHERE: (35123..35124) " "
+ FORM: (35124..35141)
+ OPEN_PAREN: (35124..35125) "("
+ SYMBOL: (35125..35136)
+ IDENTIFIER: (35125..35136) "char-upcase"
+ ATMOSPHERE: (35136..35137) " "
+ CONSTANT: (35137..35140)
+ CHARACTER: (35137..35140) "#\\Λ"
+ CLOSE_PAREN: (35140..35141) ")"
+ CLOSE_PAREN: (35141..35142) ")"
+ ATMOSPHERE: (35142..35143) "\n"
+ FORM: (35143..35173)
+ OPEN_PAREN: (35143..35144) "("
+ SYMBOL: (35144..35148)
+ IDENTIFIER: (35144..35148) "test"
+ ATMOSPHERE: (35148..35149) " "
+ CONSTANT: (35149..35152)
+ CHARACTER: (35149..35152) "#\\λ"
+ ATMOSPHERE: (35152..35153) " "
+ FORM: (35153..35172)
+ OPEN_PAREN: (35153..35154) "("
+ SYMBOL: (35154..35167)
+ IDENTIFIER: (35154..35167) "char-downcase"
+ ATMOSPHERE: (35167..35168) " "
+ CONSTANT: (35168..35171)
+ CHARACTER: (35168..35171) "#\\λ"
+ CLOSE_PAREN: (35171..35172) ")"
+ CLOSE_PAREN: (35172..35173) ")"
+ ATMOSPHERE: (35173..35174) "\n"
+ FORM: (35174..35204)
+ OPEN_PAREN: (35174..35175) "("
+ SYMBOL: (35175..35179)
+ IDENTIFIER: (35175..35179) "test"
+ ATMOSPHERE: (35179..35180) " "
+ CONSTANT: (35180..35183)
+ CHARACTER: (35180..35183) "#\\λ"
+ ATMOSPHERE: (35183..35184) " "
+ FORM: (35184..35203)
+ OPEN_PAREN: (35184..35185) "("
+ SYMBOL: (35185..35198)
+ IDENTIFIER: (35185..35198) "char-downcase"
+ ATMOSPHERE: (35198..35199) " "
+ CONSTANT: (35199..35202)
+ CHARACTER: (35199..35202) "#\\Λ"
+ CLOSE_PAREN: (35202..35203) ")"
+ CLOSE_PAREN: (35203..35204) ")"
+ ATMOSPHERE: (35204..35205) "\n"
+ FORM: (35205..35235)
+ OPEN_PAREN: (35205..35206) "("
+ SYMBOL: (35206..35210)
+ IDENTIFIER: (35206..35210) "test"
+ ATMOSPHERE: (35210..35211) " "
+ CONSTANT: (35211..35214)
+ CHARACTER: (35211..35214) "#\\λ"
+ ATMOSPHERE: (35214..35215) " "
+ FORM: (35215..35234)
+ OPEN_PAREN: (35215..35216) "("
+ SYMBOL: (35216..35229)
+ IDENTIFIER: (35216..35229) "char-foldcase"
+ ATMOSPHERE: (35229..35230) " "
+ CONSTANT: (35230..35233)
+ CHARACTER: (35230..35233) "#\\λ"
+ CLOSE_PAREN: (35233..35234) ")"
+ CLOSE_PAREN: (35234..35235) ")"
+ ATMOSPHERE: (35235..35236) "\n"
+ FORM: (35236..35266)
+ OPEN_PAREN: (35236..35237) "("
+ SYMBOL: (35237..35241)
+ IDENTIFIER: (35237..35241) "test"
+ ATMOSPHERE: (35241..35242) " "
+ CONSTANT: (35242..35245)
+ CHARACTER: (35242..35245) "#\\λ"
+ ATMOSPHERE: (35245..35246) " "
+ FORM: (35246..35265)
+ OPEN_PAREN: (35246..35247) "("
+ SYMBOL: (35247..35260)
+ IDENTIFIER: (35247..35260) "char-foldcase"
+ ATMOSPHERE: (35260..35261) " "
+ CONSTANT: (35261..35264)
+ CHARACTER: (35261..35264) "#\\Λ"
+ CLOSE_PAREN: (35264..35265) ")"
+ CLOSE_PAREN: (35265..35266) ")"
+ ATMOSPHERE: (35266..35268) "\n\n"
+ FORM: (35268..35278)
+ OPEN_PAREN: (35268..35269) "("
+ SYMBOL: (35269..35277)
+ IDENTIFIER: (35269..35277) "test-end"
+ CLOSE_PAREN: (35277..35278) ")"
+ ATMOSPHERE: (35278..35280) "\n\n"
+ FORM: (35280..35306)
+ OPEN_PAREN: (35280..35281) "("
+ SYMBOL: (35281..35291)
+ IDENTIFIER: (35281..35291) "test-begin"
+ ATMOSPHERE: (35291..35292) " "
+ CONSTANT: (35292..35305)
+ STRING: (35292..35305) "\"6.7 Strings\""
+ CLOSE_PAREN: (35305..35306) ")"
+ ATMOSPHERE: (35306..35308) "\n\n"
+ ATMOSPHERE: (35308..35333) ";; (test #t (string? \"\"))"
+ ATMOSPHERE: (35333..35334) "\n"
+ ATMOSPHERE: (35334..35360) ";; (test #t (string? \" \"))"
+ ATMOSPHERE: (35360..35361) "\n"
+ ATMOSPHERE: (35361..35386) ";; (test #f (string? 'a))"
+ ATMOSPHERE: (35386..35387) "\n"
+ ATMOSPHERE: (35387..35413) ";; (test #f (string? #\\a))"
+ ATMOSPHERE: (35413..35415) "\n\n"
+ ATMOSPHERE: (35415..35458) ";; (test 3 (string-length (make-string 3)))"
+ ATMOSPHERE: (35458..35459) "\n"
+ ATMOSPHERE: (35459..35494) ";; (test \"---\" (make-string 3 #\\-))"
+ ATMOSPHERE: (35494..35496) "\n\n"
+ ATMOSPHERE: (35496..35517) ";; (test \"\" (string))"
+ ATMOSPHERE: (35517..35518) "\n"
+ ATMOSPHERE: (35518..35554) ";; (test \"---\" (string #\\- #\\- #\\-))"
+ ATMOSPHERE: (35554..35555) "\n"
+ ATMOSPHERE: (35555..35606) ";; (test \"kitten\" (string #\\k #\\i #\\t #\\t #\\e #\\n))"
+ ATMOSPHERE: (35606..35608) "\n\n"
+ ATMOSPHERE: (35608..35638) ";; (test 0 (string-length \"\"))"
+ ATMOSPHERE: (35638..35639) "\n"
+ ATMOSPHERE: (35639..35670) ";; (test 1 (string-length \"a\"))"
+ ATMOSPHERE: (35670..35671) "\n"
+ ATMOSPHERE: (35671..35704) ";; (test 3 (string-length \"abc\"))"
+ ATMOSPHERE: (35704..35706) "\n\n"
+ ATMOSPHERE: (35706..35740) ";; (test #\\a (string-ref \"abc\" 0))"
+ ATMOSPHERE: (35740..35741) "\n"
+ ATMOSPHERE: (35741..35775) ";; (test #\\b (string-ref \"abc\" 1))"
+ ATMOSPHERE: (35775..35776) "\n"
+ ATMOSPHERE: (35776..35810) ";; (test #\\c (string-ref \"abc\" 2))"
+ ATMOSPHERE: (35810..35812) "\n\n"
+ ATMOSPHERE: (35812..35890) ";; (test \"a-c\" (let ((str (string #\\a #\\b #\\c))) (string-set! str 1 #\\-) str))"
+ ATMOSPHERE: (35890..35892) "\n\n"
+ ATMOSPHERE: (35892..35926) ";; (test (string #\\a #\\x1F700 #\\c)"
+ ATMOSPHERE: (35926..35927) "\n"
+ ATMOSPHERE: (35927..35965) ";; (let ((s (string #\\a #\\b #\\c)))"
+ ATMOSPHERE: (35965..35966) "\n"
+ ATMOSPHERE: (35966..36001) ";; (string-set! s 1 #\\x1F700)"
+ ATMOSPHERE: (36001..36002) "\n"
+ ATMOSPHERE: (36002..36014) ";; s))"
+ ATMOSPHERE: (36014..36016) "\n\n"
+ ATMOSPHERE: (36016..36045) ";; (test #t (string=? \"\" \"\"))"
+ ATMOSPHERE: (36045..36046) "\n"
+ ATMOSPHERE: (36046..36087) ";; (test #t (string=? \"abc\" \"abc\" \"abc\"))"
+ ATMOSPHERE: (36087..36088) "\n"
+ ATMOSPHERE: (36088..36120) ";; (test #f (string=? \"\" \"abc\"))"
+ ATMOSPHERE: (36120..36121) "\n"
+ ATMOSPHERE: (36121..36156) ";; (test #f (string=? \"abc\" \"aBc\"))"
+ ATMOSPHERE: (36156..36158) "\n\n"
+ ATMOSPHERE: (36158..36187) ";; (test #f (string \"\" \"\"))"
+ ATMOSPHERE: (36187..36188) "\n"
+ ATMOSPHERE: (36188..36223) ";; (test #f (string \"abc\" \"abc\"))"
+ ATMOSPHERE: (36223..36224) "\n"
+ ATMOSPHERE: (36224..36266) ";; (test #t (string \"abc\" \"abcd\" \"acd\"))"
+ ATMOSPHERE: (36266..36267) "\n"
+ ATMOSPHERE: (36267..36303) ";; (test #f (string \"abcd\" \"abc\"))"
+ ATMOSPHERE: (36303..36304) "\n"
+ ATMOSPHERE: (36304..36339) ";; (test #t (string \"abc\" \"bbc\"))"
+ ATMOSPHERE: (36339..36341) "\n\n"
+ ATMOSPHERE: (36341..36370) ";; (test #f (string>? \"\" \"\"))"
+ ATMOSPHERE: (36370..36371) "\n"
+ ATMOSPHERE: (36371..36406) ";; (test #f (string>? \"abc\" \"abc\"))"
+ ATMOSPHERE: (36406..36407) "\n"
+ ATMOSPHERE: (36407..36443) ";; (test #f (string>? \"abc\" \"abcd\"))"
+ ATMOSPHERE: (36443..36444) "\n"
+ ATMOSPHERE: (36444..36486) ";; (test #t (string>? \"acd\" \"abcd\" \"abc\"))"
+ ATMOSPHERE: (36486..36487) "\n"
+ ATMOSPHERE: (36487..36522) ";; (test #f (string>? \"abc\" \"bbc\"))"
+ ATMOSPHERE: (36522..36524) "\n\n"
+ ATMOSPHERE: (36524..36554) ";; (test #t (string<=? \"\" \"\"))"
+ ATMOSPHERE: (36554..36555) "\n"
+ ATMOSPHERE: (36555..36591) ";; (test #t (string<=? \"abc\" \"abc\"))"
+ ATMOSPHERE: (36591..36592) "\n"
+ ATMOSPHERE: (36592..36636) ";; (test #t (string<=? \"abc\" \"abcd\" \"abcd\"))"
+ ATMOSPHERE: (36636..36637) "\n"
+ ATMOSPHERE: (36637..36674) ";; (test #f (string<=? \"abcd\" \"abc\"))"
+ ATMOSPHERE: (36674..36675) "\n"
+ ATMOSPHERE: (36675..36711) ";; (test #t (string<=? \"abc\" \"bbc\"))"
+ ATMOSPHERE: (36711..36713) "\n\n"
+ ATMOSPHERE: (36713..36743) ";; (test #t (string>=? \"\" \"\"))"
+ ATMOSPHERE: (36743..36744) "\n"
+ ATMOSPHERE: (36744..36780) ";; (test #t (string>=? \"abc\" \"abc\"))"
+ ATMOSPHERE: (36780..36781) "\n"
+ ATMOSPHERE: (36781..36818) ";; (test #f (string>=? \"abc\" \"abcd\"))"
+ ATMOSPHERE: (36818..36819) "\n"
+ ATMOSPHERE: (36819..36863) ";; (test #t (string>=? \"abcd\" \"abcd\" \"abc\"))"
+ ATMOSPHERE: (36863..36864) "\n"
+ ATMOSPHERE: (36864..36900) ";; (test #f (string>=? \"abc\" \"bbc\"))"
+ ATMOSPHERE: (36900..36902) "\n\n"
+ ATMOSPHERE: (36902..36934) ";; (test #t (string-ci=? \"\" \"\"))"
+ ATMOSPHERE: (36934..36935) "\n"
+ ATMOSPHERE: (36935..36973) ";; (test #t (string-ci=? \"abc\" \"abc\"))"
+ ATMOSPHERE: (36973..36974) "\n"
+ ATMOSPHERE: (36974..37009) ";; (test #f (string-ci=? \"\" \"abc\"))"
+ ATMOSPHERE: (37009..37010) "\n"
+ ATMOSPHERE: (37010..37048) ";; (test #t (string-ci=? \"abc\" \"aBc\"))"
+ ATMOSPHERE: (37048..37049) "\n"
+ ATMOSPHERE: (37049..37088) ";; (test #f (string-ci=? \"abc\" \"aBcD\"))"
+ ATMOSPHERE: (37088..37090) "\n\n"
+ ATMOSPHERE: (37090..37128) ";; (test #f (string-ci \"abc\" \"aBc\"))"
+ ATMOSPHERE: (37128..37129) "\n"
+ ATMOSPHERE: (37129..37168) ";; (test #t (string-ci \"abc\" \"aBcD\"))"
+ ATMOSPHERE: (37168..37169) "\n"
+ ATMOSPHERE: (37169..37208) ";; (test #f (string-ci \"ABCd\" \"aBc\"))"
+ ATMOSPHERE: (37208..37210) "\n\n"
+ ATMOSPHERE: (37210..37248) ";; (test #f (string-ci>? \"abc\" \"aBc\"))"
+ ATMOSPHERE: (37248..37249) "\n"
+ ATMOSPHERE: (37249..37288) ";; (test #f (string-ci>? \"abc\" \"aBcD\"))"
+ ATMOSPHERE: (37288..37289) "\n"
+ ATMOSPHERE: (37289..37328) ";; (test #t (string-ci>? \"ABCd\" \"aBc\"))"
+ ATMOSPHERE: (37328..37330) "\n\n"
+ ATMOSPHERE: (37330..37369) ";; (test #t (string-ci<=? \"abc\" \"aBc\"))"
+ ATMOSPHERE: (37369..37370) "\n"
+ ATMOSPHERE: (37370..37410) ";; (test #t (string-ci<=? \"abc\" \"aBcD\"))"
+ ATMOSPHERE: (37410..37411) "\n"
+ ATMOSPHERE: (37411..37451) ";; (test #f (string-ci<=? \"ABCd\" \"aBc\"))"
+ ATMOSPHERE: (37451..37453) "\n\n"
+ ATMOSPHERE: (37453..37492) ";; (test #t (string-ci>=? \"abc\" \"aBc\"))"
+ ATMOSPHERE: (37492..37493) "\n"
+ ATMOSPHERE: (37493..37533) ";; (test #f (string-ci>=? \"abc\" \"aBcD\"))"
+ ATMOSPHERE: (37533..37534) "\n"
+ ATMOSPHERE: (37534..37574) ";; (test #t (string-ci>=? \"ABCd\" \"aBc\"))"
+ ATMOSPHERE: (37574..37576) "\n\n"
+ ATMOSPHERE: (37576..37620) ";; (test #t (string-ci=? \"ΑΒΓ\" \"αβγ\" \"αβγ\"))"
+ ATMOSPHERE: (37620..37621) "\n"
+ ATMOSPHERE: (37621..37659) ";; (test #f (string-ci \"ΑΒΓ\" \"αβγ\"))"
+ ATMOSPHERE: (37659..37660) "\n"
+ ATMOSPHERE: (37660..37698) ";; (test #f (string-ci>? \"ΑΒΓ\" \"αβγ\"))"
+ ATMOSPHERE: (37698..37699) "\n"
+ ATMOSPHERE: (37699..37738) ";; (test #t (string-ci<=? \"ΑΒΓ\" \"αβγ\"))"
+ ATMOSPHERE: (37738..37739) "\n"
+ ATMOSPHERE: (37739..37778) ";; (test #t (string-ci>=? \"ΑΒΓ\" \"αβγ\"))"
+ ATMOSPHERE: (37778..37780) "\n\n"
+ ATMOSPHERE: (37780..37791) ";; ;; latin"
+ ATMOSPHERE: (37791..37792) "\n"
+ ATMOSPHERE: (37792..37829) ";; (test \"ABC\" (string-upcase \"abc\"))"
+ ATMOSPHERE: (37829..37830) "\n"
+ ATMOSPHERE: (37830..37867) ";; (test \"ABC\" (string-upcase \"ABC\"))"
+ ATMOSPHERE: (37867..37868) "\n"
+ ATMOSPHERE: (37868..37907) ";; (test \"abc\" (string-downcase \"abc\"))"
+ ATMOSPHERE: (37907..37908) "\n"
+ ATMOSPHERE: (37908..37947) ";; (test \"abc\" (string-downcase \"ABC\"))"
+ ATMOSPHERE: (37947..37948) "\n"
+ ATMOSPHERE: (37948..37987) ";; (test \"abc\" (string-foldcase \"abc\"))"
+ ATMOSPHERE: (37987..37988) "\n"
+ ATMOSPHERE: (37988..38027) ";; (test \"abc\" (string-foldcase \"ABC\"))"
+ ATMOSPHERE: (38027..38029) "\n\n"
+ ATMOSPHERE: (38029..38043) ";; ;; cyrillic"
+ ATMOSPHERE: (38043..38044) "\n"
+ ATMOSPHERE: (38044..38081) ";; (test \"ΑΒΓ\" (string-upcase \"αβγ\"))"
+ ATMOSPHERE: (38081..38082) "\n"
+ ATMOSPHERE: (38082..38119) ";; (test \"ΑΒΓ\" (string-upcase \"ΑΒΓ\"))"
+ ATMOSPHERE: (38119..38120) "\n"
+ ATMOSPHERE: (38120..38159) ";; (test \"αβγ\" (string-downcase \"αβγ\"))"
+ ATMOSPHERE: (38159..38160) "\n"
+ ATMOSPHERE: (38160..38199) ";; (test \"αβγ\" (string-downcase \"ΑΒΓ\"))"
+ ATMOSPHERE: (38199..38200) "\n"
+ ATMOSPHERE: (38200..38239) ";; (test \"αβγ\" (string-foldcase \"αβγ\"))"
+ ATMOSPHERE: (38239..38240) "\n"
+ ATMOSPHERE: (38240..38279) ";; (test \"αβγ\" (string-foldcase \"ΑΒΓ\"))"
+ ATMOSPHERE: (38279..38281) "\n\n"
+ ATMOSPHERE: (38281..38300) ";; ;; special cases"
+ ATMOSPHERE: (38300..38301) "\n"
+ ATMOSPHERE: (38301..38337) ";; (test \"SSA\" (string-upcase \"ßa\"))"
+ ATMOSPHERE: (38337..38338) "\n"
+ ATMOSPHERE: (38338..38375) ";; (test \"ßa\" (string-downcase \"ßa\"))"
+ ATMOSPHERE: (38375..38376) "\n"
+ ATMOSPHERE: (38376..38415) ";; (test \"ssa\" (string-downcase \"SSA\"))"
+ ATMOSPHERE: (38415..38416) "\n"
+ ATMOSPHERE: (38416..38455) ";; (test \"maß\" (string-downcase \"Maß\"))"
+ ATMOSPHERE: (38455..38456) "\n"
+ ATMOSPHERE: (38456..38496) ";; (test \"mass\" (string-foldcase \"Maß\"))"
+ ATMOSPHERE: (38496..38497) "\n"
+ ATMOSPHERE: (38497..38530) ";; (test \"İ\" (string-upcase \"İ\"))"
+ ATMOSPHERE: (38530..38531) "\n"
+ ATMOSPHERE: (38531..38573) ";; (test \"i\\x0307;\" (string-downcase \"İ\"))"
+ ATMOSPHERE: (38573..38574) "\n"
+ ATMOSPHERE: (38574..38616) ";; (test \"i\\x0307;\" (string-foldcase \"İ\"))"
+ ATMOSPHERE: (38616..38617) "\n"
+ ATMOSPHERE: (38617..38651) ";; (test \"J̌\" (string-upcase \"ǰ\"))"
+ ATMOSPHERE: (38651..38652) "\n"
+ ATMOSPHERE: (38652..38687) ";; (test \"ſ\" (string-downcase \"ſ\"))"
+ ATMOSPHERE: (38687..38688) "\n"
+ ATMOSPHERE: (38688..38723) ";; (test \"s\" (string-foldcase \"ſ\"))"
+ ATMOSPHERE: (38723..38725) "\n\n"
+ ATMOSPHERE: (38725..38762) ";; ;; context-sensitive (final sigma)"
+ ATMOSPHERE: (38762..38763) "\n"
+ ATMOSPHERE: (38763..38806) ";; (test \"ΓΛΏΣΣΑ\" (string-upcase \"γλώσσα\"))"
+ ATMOSPHERE: (38806..38807) "\n"
+ ATMOSPHERE: (38807..38852) ";; (test \"γλώσσα\" (string-downcase \"ΓΛΏΣΣΑ\"))"
+ ATMOSPHERE: (38852..38853) "\n"
+ ATMOSPHERE: (38853..38898) ";; (test \"γλώσσα\" (string-foldcase \"ΓΛΏΣΣΑ\"))"
+ ATMOSPHERE: (38898..38899) "\n"
+ ATMOSPHERE: (38899..38940) ";; (test \"ΜΈΛΟΣ\" (string-upcase \"μέλος\"))"
+ ATMOSPHERE: (38940..38941) "\n"
+ ATMOSPHERE: (38941..39016) ";; (test #t (and (member (string-downcase \"ΜΈΛΟΣ\") '(\"μέλος\" \"μέλοσ\")) #t))"
+ ATMOSPHERE: (39016..39017) "\n"
+ ATMOSPHERE: (39017..39060) ";; (test \"μέλοσ\" (string-foldcase \"ΜΈΛΟΣ\"))"
+ ATMOSPHERE: (39060..39061) "\n"
+ ATMOSPHERE: (39061..39116) ";; (test #t (and (member (string-downcase \"ΜΈΛΟΣ ΕΝΌΣ\")"
+ ATMOSPHERE: (39116..39117) "\n"
+ ATMOSPHERE: (39117..39171) ";; '(\"μέλος ενός\" \"μέλοσ ενόσ\"))"
+ ATMOSPHERE: (39171..39172) "\n"
+ ATMOSPHERE: (39172..39193) ";; #t))"
+ ATMOSPHERE: (39193..39195) "\n\n"
+ ATMOSPHERE: (39195..39226) ";; (test \"\" (substring \"\" 0 0))"
+ ATMOSPHERE: (39226..39227) "\n"
+ ATMOSPHERE: (39227..39259) ";; (test \"\" (substring \"a\" 0 0))"
+ ATMOSPHERE: (39259..39260) "\n"
+ ATMOSPHERE: (39260..39294) ";; (test \"\" (substring \"abc\" 1 1))"
+ ATMOSPHERE: (39294..39295) "\n"
+ ATMOSPHERE: (39295..39331) ";; (test \"ab\" (substring \"abc\" 0 2))"
+ ATMOSPHERE: (39331..39332) "\n"
+ ATMOSPHERE: (39332..39368) ";; (test \"bc\" (substring \"abc\" 1 3))"
+ ATMOSPHERE: (39368..39370) "\n\n"
+ FORM: (39370..39398)
+ OPEN_PAREN: (39370..39371) "("
+ SYMBOL: (39371..39375)
+ IDENTIFIER: (39371..39375) "test"
+ ATMOSPHERE: (39375..39376) " "
+ CONSTANT: (39376..39378)
+ STRING: (39376..39378) "\"\""
+ ATMOSPHERE: (39378..39379) " "
+ FORM: (39379..39397)
+ OPEN_PAREN: (39379..39380) "("
+ SYMBOL: (39380..39393)
+ IDENTIFIER: (39380..39393) "string-append"
+ ATMOSPHERE: (39393..39394) " "
+ CONSTANT: (39394..39396)
+ STRING: (39394..39396) "\"\""
+ CLOSE_PAREN: (39396..39397) ")"
+ CLOSE_PAREN: (39397..39398) ")"
+ ATMOSPHERE: (39398..39399) "\n"
+ FORM: (39399..39430)
+ OPEN_PAREN: (39399..39400) "("
+ SYMBOL: (39400..39404)
+ IDENTIFIER: (39400..39404) "test"
+ ATMOSPHERE: (39404..39405) " "
+ CONSTANT: (39405..39407)
+ STRING: (39405..39407) "\"\""
+ ATMOSPHERE: (39407..39408) " "
+ FORM: (39408..39429)
+ OPEN_PAREN: (39408..39409) "("
+ SYMBOL: (39409..39422)
+ IDENTIFIER: (39409..39422) "string-append"
+ ATMOSPHERE: (39422..39423) " "
+ CONSTANT: (39423..39425)
+ STRING: (39423..39425) "\"\""
+ ATMOSPHERE: (39425..39426) " "
+ CONSTANT: (39426..39428)
+ STRING: (39426..39428) "\"\""
+ CLOSE_PAREN: (39428..39429) ")"
+ CLOSE_PAREN: (39429..39430) ")"
+ ATMOSPHERE: (39430..39431) "\n"
+ FORM: (39431..39468)
+ OPEN_PAREN: (39431..39432) "("
+ SYMBOL: (39432..39436)
+ IDENTIFIER: (39432..39436) "test"
+ ATMOSPHERE: (39436..39437) " "
+ CONSTANT: (39437..39442)
+ STRING: (39437..39442) "\"abc\""
+ ATMOSPHERE: (39442..39443) " "
+ FORM: (39443..39467)
+ OPEN_PAREN: (39443..39444) "("
+ SYMBOL: (39444..39457)
+ IDENTIFIER: (39444..39457) "string-append"
+ ATMOSPHERE: (39457..39458) " "
+ CONSTANT: (39458..39460)
+ STRING: (39458..39460) "\"\""
+ ATMOSPHERE: (39460..39461) " "
+ CONSTANT: (39461..39466)
+ STRING: (39461..39466) "\"abc\""
+ CLOSE_PAREN: (39466..39467) ")"
+ CLOSE_PAREN: (39467..39468) ")"
+ ATMOSPHERE: (39468..39469) "\n"
+ FORM: (39469..39506)
+ OPEN_PAREN: (39469..39470) "("
+ SYMBOL: (39470..39474)
+ IDENTIFIER: (39470..39474) "test"
+ ATMOSPHERE: (39474..39475) " "
+ CONSTANT: (39475..39480)
+ STRING: (39475..39480) "\"abc\""
+ ATMOSPHERE: (39480..39481) " "
+ FORM: (39481..39505)
+ OPEN_PAREN: (39481..39482) "("
+ SYMBOL: (39482..39495)
+ IDENTIFIER: (39482..39495) "string-append"
+ ATMOSPHERE: (39495..39496) " "
+ CONSTANT: (39496..39501)
+ STRING: (39496..39501) "\"abc\""
+ ATMOSPHERE: (39501..39502) " "
+ CONSTANT: (39502..39504)
+ STRING: (39502..39504) "\"\""
+ CLOSE_PAREN: (39504..39505) ")"
+ CLOSE_PAREN: (39505..39506) ")"
+ ATMOSPHERE: (39506..39507) "\n"
+ FORM: (39507..39548)
+ OPEN_PAREN: (39507..39508) "("
+ SYMBOL: (39508..39512)
+ IDENTIFIER: (39508..39512) "test"
+ ATMOSPHERE: (39512..39513) " "
+ CONSTANT: (39513..39520)
+ STRING: (39513..39520) "\"abcde\""
+ ATMOSPHERE: (39520..39521) " "
+ FORM: (39521..39547)
+ OPEN_PAREN: (39521..39522) "("
+ SYMBOL: (39522..39535)
+ IDENTIFIER: (39522..39535) "string-append"
+ ATMOSPHERE: (39535..39536) " "
+ CONSTANT: (39536..39541)
+ STRING: (39536..39541) "\"abc\""
+ ATMOSPHERE: (39541..39542) " "
+ CONSTANT: (39542..39546)
+ STRING: (39542..39546) "\"de\""
+ CLOSE_PAREN: (39546..39547) ")"
+ CLOSE_PAREN: (39547..39548) ")"
+ ATMOSPHERE: (39548..39549) "\n"
+ FORM: (39549..39595)
+ OPEN_PAREN: (39549..39550) "("
+ SYMBOL: (39550..39554)
+ IDENTIFIER: (39550..39554) "test"
+ ATMOSPHERE: (39554..39555) " "
+ CONSTANT: (39555..39563)
+ STRING: (39555..39563) "\"abcdef\""
+ ATMOSPHERE: (39563..39564) " "
+ FORM: (39564..39594)
+ OPEN_PAREN: (39564..39565) "("
+ SYMBOL: (39565..39578)
+ IDENTIFIER: (39565..39578) "string-append"
+ ATMOSPHERE: (39578..39579) " "
+ CONSTANT: (39579..39584)
+ STRING: (39579..39584) "\"abc\""
+ ATMOSPHERE: (39584..39585) " "
+ CONSTANT: (39585..39589)
+ STRING: (39585..39589) "\"de\""
+ ATMOSPHERE: (39589..39590) " "
+ CONSTANT: (39590..39593)
+ STRING: (39590..39593) "\"f\""
+ CLOSE_PAREN: (39593..39594) ")"
+ CLOSE_PAREN: (39594..39595) ")"
+ ATMOSPHERE: (39595..39597) "\n\n"
+ ATMOSPHERE: (39597..39628) ";; (test '() (string->list \"\"))"
+ ATMOSPHERE: (39628..39629) "\n"
+ ATMOSPHERE: (39629..39664) ";; (test '(#\\a) (string->list \"a\"))"
+ ATMOSPHERE: (39664..39665) "\n"
+ ATMOSPHERE: (39665..39710) ";; (test '(#\\a #\\b #\\c) (string->list \"abc\"))"
+ ATMOSPHERE: (39710..39711) "\n"
+ ATMOSPHERE: (39711..39758) ";; (test '(#\\a #\\b #\\c) (string->list \"abc\" 0))"
+ ATMOSPHERE: (39758..39759) "\n"
+ ATMOSPHERE: (39759..39802) ";; (test '(#\\b #\\c) (string->list \"abc\" 1))"
+ ATMOSPHERE: (39802..39803) "\n"
+ ATMOSPHERE: (39803..39848) ";; (test '(#\\b #\\c) (string->list \"abc\" 1 3))"
+ ATMOSPHERE: (39848..39850) "\n\n"
+ ATMOSPHERE: (39850..39881) ";; (test \"\" (list->string '()))"
+ ATMOSPHERE: (39881..39882) "\n"
+ ATMOSPHERE: (39882..39927) ";; (test \"abc\" (list->string '(#\\a #\\b #\\c)))"
+ ATMOSPHERE: (39927..39929) "\n\n"
+ ATMOSPHERE: (39929..39958) ";; (test \"\" (string-copy \"\"))"
+ ATMOSPHERE: (39958..39959) "\n"
+ ATMOSPHERE: (39959..39990) ";; (test \"\" (string-copy \"\" 0))"
+ ATMOSPHERE: (39990..39991) "\n"
+ ATMOSPHERE: (39991..40024) ";; (test \"\" (string-copy \"\" 0 0))"
+ ATMOSPHERE: (40024..40025) "\n"
+ ATMOSPHERE: (40025..40060) ";; (test \"abc\" (string-copy \"abc\"))"
+ ATMOSPHERE: (40060..40061) "\n"
+ ATMOSPHERE: (40061..40098) ";; (test \"abc\" (string-copy \"abc\" 0))"
+ ATMOSPHERE: (40098..40099) "\n"
+ ATMOSPHERE: (40099..40135) ";; (test \"bc\" (string-copy \"abc\" 1))"
+ ATMOSPHERE: (40135..40136) "\n"
+ ATMOSPHERE: (40136..40173) ";; (test \"b\" (string-copy \"abc\" 1 2))"
+ ATMOSPHERE: (40173..40174) "\n"
+ ATMOSPHERE: (40174..40212) ";; (test \"bc\" (string-copy \"abc\" 1 3))"
+ ATMOSPHERE: (40212..40214) "\n\n"
+ ATMOSPHERE: (40214..40230) ";; (test \"-----\""
+ ATMOSPHERE: (40230..40231) "\n"
+ ATMOSPHERE: (40231..40299) ";; (let ((str (make-string 5 #\\x))) (string-fill! str #\\-) str))"
+ ATMOSPHERE: (40299..40300) "\n"
+ ATMOSPHERE: (40300..40316) ";; (test \"xx---\""
+ ATMOSPHERE: (40316..40317) "\n"
+ ATMOSPHERE: (40317..40387) ";; (let ((str (make-string 5 #\\x))) (string-fill! str #\\- 2) str))"
+ ATMOSPHERE: (40387..40388) "\n"
+ ATMOSPHERE: (40388..40404) ";; (test \"xx-xx\""
+ ATMOSPHERE: (40404..40405) "\n"
+ ATMOSPHERE: (40405..40477) ";; (let ((str (make-string 5 #\\x))) (string-fill! str #\\- 2 3) str))"
+ ATMOSPHERE: (40477..40479) "\n\n"
+ ATMOSPHERE: (40479..40495) ";; (test \"a12de\""
+ ATMOSPHERE: (40495..40496) "\n"
+ ATMOSPHERE: (40496..40576) ";; (let ((str (string-copy \"abcde\"))) (string-copy! str 1 \"12345\" 0 2) str))"
+ ATMOSPHERE: (40576..40577) "\n"
+ ATMOSPHERE: (40577..40593) ";; (test \"-----\""
+ ATMOSPHERE: (40593..40594) "\n"
+ ATMOSPHERE: (40594..40668) ";; (let ((str (make-string 5 #\\x))) (string-copy! str 0 \"-----\") str))"
+ ATMOSPHERE: (40668..40669) "\n"
+ ATMOSPHERE: (40669..40685) ";; (test \"---xx\""
+ ATMOSPHERE: (40685..40686) "\n"
+ ATMOSPHERE: (40686..40762) ";; (let ((str (make-string 5 #\\x))) (string-copy! str 0 \"-----\" 2) str))"
+ ATMOSPHERE: (40762..40763) "\n"
+ ATMOSPHERE: (40763..40779) ";; (test \"xx---\""
+ ATMOSPHERE: (40779..40780) "\n"
+ ATMOSPHERE: (40780..40858) ";; (let ((str (make-string 5 #\\x))) (string-copy! str 2 \"-----\" 0 3) str))"
+ ATMOSPHERE: (40858..40859) "\n"
+ ATMOSPHERE: (40859..40875) ";; (test \"xx-xx\""
+ ATMOSPHERE: (40875..40876) "\n"
+ ATMOSPHERE: (40876..40954) ";; (let ((str (make-string 5 #\\x))) (string-copy! str 2 \"-----\" 2 3) str))"
+ ATMOSPHERE: (40954..40956) "\n\n"
+ ATMOSPHERE: (40956..40982) ";; ;; same source and dest"
+ ATMOSPHERE: (40982..40983) "\n"
+ ATMOSPHERE: (40983..40999) ";; (test \"aabde\""
+ ATMOSPHERE: (40999..41000) "\n"
+ ATMOSPHERE: (41000..41076) ";; (let ((str (string-copy \"abcde\"))) (string-copy! str 1 str 0 2) str))"
+ ATMOSPHERE: (41076..41077) "\n"
+ ATMOSPHERE: (41077..41093) ";; (test \"abcab\""
+ ATMOSPHERE: (41093..41094) "\n"
+ ATMOSPHERE: (41094..41170) ";; (let ((str (string-copy \"abcde\"))) (string-copy! str 3 str 0 2) str))"
+ ATMOSPHERE: (41170..41172) "\n\n"
+ FORM: (41172..41182)
+ OPEN_PAREN: (41172..41173) "("
+ SYMBOL: (41173..41181)
+ IDENTIFIER: (41173..41181) "test-end"
+ CLOSE_PAREN: (41181..41182) ")"
+ ATMOSPHERE: (41182..41184) "\n\n"
+ FORM: (41184..41210)
+ OPEN_PAREN: (41184..41185) "("
+ SYMBOL: (41185..41195)
+ IDENTIFIER: (41185..41195) "test-begin"
+ ATMOSPHERE: (41195..41196) " "
+ CONSTANT: (41196..41209)
+ STRING: (41196..41209) "\"6.8 Vectors\""
+ CLOSE_PAREN: (41209..41210) ")"
+ ATMOSPHERE: (41210..41212) "\n\n"
+ FORM: (41212..41235)
+ OPEN_PAREN: (41212..41213) "("
+ SYMBOL: (41213..41217)
+ IDENTIFIER: (41213..41217) "test"
+ ATMOSPHERE: (41217..41218) " "
+ CONSTANT: (41218..41220)
+ BOOLEAN: (41218..41220) "#t"
+ ATMOSPHERE: (41220..41221) " "
+ FORM: (41221..41234)
+ OPEN_PAREN: (41221..41222) "("
+ SYMBOL: (41222..41229)
+ IDENTIFIER: (41222..41229) "vector?"
+ ATMOSPHERE: (41229..41230) " "
+ VEC: (41230..41233)
+ OPEN_PAREN: (41230..41232) "#("
+ CLOSE_PAREN: (41232..41233) ")"
+ CLOSE_PAREN: (41233..41234) ")"
+ CLOSE_PAREN: (41234..41235) ")"
+ ATMOSPHERE: (41235..41236) "\n"
+ FORM: (41236..41264)
+ OPEN_PAREN: (41236..41237) "("
+ SYMBOL: (41237..41241)
+ IDENTIFIER: (41237..41241) "test"
+ ATMOSPHERE: (41241..41242) " "
+ CONSTANT: (41242..41244)
+ BOOLEAN: (41242..41244) "#t"
+ ATMOSPHERE: (41244..41245) " "
+ FORM: (41245..41263)
+ OPEN_PAREN: (41245..41246) "("
+ SYMBOL: (41246..41253)
+ IDENTIFIER: (41246..41253) "vector?"
+ ATMOSPHERE: (41253..41254) " "
+ VEC: (41254..41262)
+ OPEN_PAREN: (41254..41256) "#("
+ CONSTANT: (41256..41257)
+ NUMBER: (41256..41257) "1"
+ ATMOSPHERE: (41257..41258) " "
+ CONSTANT: (41258..41259)
+ NUMBER: (41258..41259) "2"
+ ATMOSPHERE: (41259..41260) " "
+ CONSTANT: (41260..41261)
+ NUMBER: (41260..41261) "3"
+ CLOSE_PAREN: (41261..41262) ")"
+ CLOSE_PAREN: (41262..41263) ")"
+ CLOSE_PAREN: (41263..41264) ")"
+ ATMOSPHERE: (41264..41265) "\n"
+ FORM: (41265..41294)
+ OPEN_PAREN: (41265..41266) "("
+ SYMBOL: (41266..41270)
+ IDENTIFIER: (41266..41270) "test"
+ ATMOSPHERE: (41270..41271) " "
+ CONSTANT: (41271..41273)
+ BOOLEAN: (41271..41273) "#t"
+ ATMOSPHERE: (41273..41274) " "
+ FORM: (41274..41293)
+ OPEN_PAREN: (41274..41275) "("
+ SYMBOL: (41275..41282)
+ IDENTIFIER: (41275..41282) "vector?"
+ ATMOSPHERE: (41282..41283) " "
+ QUOTED_DATUM: (41283..41292)
+ QUOTE: (41283..41284) "'"
+ VEC: (41284..41292)
+ OPEN_PAREN: (41284..41286) "#("
+ CONSTANT: (41286..41287)
+ NUMBER: (41286..41287) "1"
+ ATMOSPHERE: (41287..41288) " "
+ CONSTANT: (41288..41289)
+ NUMBER: (41288..41289) "2"
+ ATMOSPHERE: (41289..41290) " "
+ CONSTANT: (41290..41291)
+ NUMBER: (41290..41291) "3"
+ CLOSE_PAREN: (41291..41292) ")"
+ CLOSE_PAREN: (41292..41293) ")"
+ CLOSE_PAREN: (41293..41294) ")"
+ ATMOSPHERE: (41294..41296) "\n\n"
+ FORM: (41296..41336)
+ OPEN_PAREN: (41296..41297) "("
+ SYMBOL: (41297..41301)
+ IDENTIFIER: (41297..41301) "test"
+ ATMOSPHERE: (41301..41302) " "
+ CONSTANT: (41302..41303)
+ NUMBER: (41302..41303) "0"
+ ATMOSPHERE: (41303..41304) " "
+ FORM: (41304..41335)
+ OPEN_PAREN: (41304..41305) "("
+ SYMBOL: (41305..41318)
+ IDENTIFIER: (41305..41318) "vector-length"
+ ATMOSPHERE: (41318..41319) " "
+ FORM: (41319..41334)
+ OPEN_PAREN: (41319..41320) "("
+ SYMBOL: (41320..41331)
+ IDENTIFIER: (41320..41331) "make-vector"
+ ATMOSPHERE: (41331..41332) " "
+ CONSTANT: (41332..41333)
+ NUMBER: (41332..41333) "0"
+ CLOSE_PAREN: (41333..41334) ")"
+ CLOSE_PAREN: (41334..41335) ")"
+ CLOSE_PAREN: (41335..41336) ")"
+ ATMOSPHERE: (41336..41337) "\n"
+ FORM: (41337..41383)
+ OPEN_PAREN: (41337..41338) "("
+ SYMBOL: (41338..41342)
+ IDENTIFIER: (41338..41342) "test"
+ ATMOSPHERE: (41342..41343) " "
+ CONSTANT: (41343..41347)
+ NUMBER: (41343..41347) "1000"
+ ATMOSPHERE: (41347..41348) " "
+ FORM: (41348..41382)
+ OPEN_PAREN: (41348..41349) "("
+ SYMBOL: (41349..41362)
+ IDENTIFIER: (41349..41362) "vector-length"
+ ATMOSPHERE: (41362..41363) " "
+ FORM: (41363..41381)
+ OPEN_PAREN: (41363..41364) "("
+ SYMBOL: (41364..41375)
+ IDENTIFIER: (41364..41375) "make-vector"
+ ATMOSPHERE: (41375..41376) " "
+ CONSTANT: (41376..41380)
+ NUMBER: (41376..41380) "1000"
+ CLOSE_PAREN: (41380..41381) ")"
+ CLOSE_PAREN: (41381..41382) ")"
+ CLOSE_PAREN: (41382..41383) ")"
+ ATMOSPHERE: (41383..41385) "\n\n"
+ FORM: (41385..41436)
+ OPEN_PAREN: (41385..41386) "("
+ SYMBOL: (41386..41390)
+ IDENTIFIER: (41386..41390) "test"
+ ATMOSPHERE: (41390..41391) " "
+ VEC: (41391..41412)
+ OPEN_PAREN: (41391..41393) "#("
+ CONSTANT: (41393..41394)
+ NUMBER: (41393..41394) "0"
+ ATMOSPHERE: (41394..41395) " "
+ FORM: (41395..41404)
+ OPEN_PAREN: (41395..41396) "("
+ CONSTANT: (41396..41397)
+ NUMBER: (41396..41397) "2"
+ ATMOSPHERE: (41397..41398) " "
+ CONSTANT: (41398..41399)
+ NUMBER: (41398..41399) "2"
+ ATMOSPHERE: (41399..41400) " "
+ CONSTANT: (41400..41401)
+ NUMBER: (41400..41401) "2"
+ ATMOSPHERE: (41401..41402) " "
+ CONSTANT: (41402..41403)
+ NUMBER: (41402..41403) "2"
+ CLOSE_PAREN: (41403..41404) ")"
+ ATMOSPHERE: (41404..41405) " "
+ CONSTANT: (41405..41411)
+ STRING: (41405..41411) "\"Anna\""
+ CLOSE_PAREN: (41411..41412) ")"
+ ATMOSPHERE: (41412..41413) " "
+ QUOTED_DATUM: (41413..41435)
+ QUOTE: (41413..41414) "'"
+ VEC: (41414..41435)
+ OPEN_PAREN: (41414..41416) "#("
+ CONSTANT: (41416..41417)
+ NUMBER: (41416..41417) "0"
+ ATMOSPHERE: (41417..41418) " "
+ FORM: (41418..41427)
+ OPEN_PAREN: (41418..41419) "("
+ CONSTANT: (41419..41420)
+ NUMBER: (41419..41420) "2"
+ ATMOSPHERE: (41420..41421) " "
+ CONSTANT: (41421..41422)
+ NUMBER: (41421..41422) "2"
+ ATMOSPHERE: (41422..41423) " "
+ CONSTANT: (41423..41424)
+ NUMBER: (41423..41424) "2"
+ ATMOSPHERE: (41424..41425) " "
+ CONSTANT: (41425..41426)
+ NUMBER: (41425..41426) "2"
+ CLOSE_PAREN: (41426..41427) ")"
+ ATMOSPHERE: (41427..41428) " "
+ CONSTANT: (41428..41434)
+ STRING: (41428..41434) "\"Anna\""
+ CLOSE_PAREN: (41434..41435) ")"
+ CLOSE_PAREN: (41435..41436) ")"
+ ATMOSPHERE: (41436..41438) "\n\n"
+ FORM: (41438..41471)
+ OPEN_PAREN: (41438..41439) "("
+ SYMBOL: (41439..41443)
+ IDENTIFIER: (41439..41443) "test"
+ ATMOSPHERE: (41443..41444) " "
+ VEC: (41444..41452)
+ OPEN_PAREN: (41444..41446) "#("
+ SYMBOL: (41446..41447)
+ IDENTIFIER: (41446..41447) "a"
+ ATMOSPHERE: (41447..41448) " "
+ SYMBOL: (41448..41449)
+ IDENTIFIER: (41448..41449) "b"
+ ATMOSPHERE: (41449..41450) " "
+ SYMBOL: (41450..41451)
+ IDENTIFIER: (41450..41451) "c"
+ CLOSE_PAREN: (41451..41452) ")"
+ ATMOSPHERE: (41452..41453) " "
+ FORM: (41453..41470)
+ OPEN_PAREN: (41453..41454) "("
+ SYMBOL: (41454..41460)
+ IDENTIFIER: (41454..41460) "vector"
+ ATMOSPHERE: (41460..41461) " "
+ QUOTED_DATUM: (41461..41464)
+ QUOTE: (41461..41462) "'"
+ SYMBOL: (41462..41463)
+ IDENTIFIER: (41462..41463) "a"
+ ATMOSPHERE: (41463..41464) " "
+ QUOTED_DATUM: (41464..41467)
+ QUOTE: (41464..41465) "'"
+ SYMBOL: (41465..41466)
+ IDENTIFIER: (41465..41466) "b"
+ ATMOSPHERE: (41466..41467) " "
+ QUOTED_DATUM: (41467..41469)
+ QUOTE: (41467..41468) "'"
+ SYMBOL: (41468..41469)
+ IDENTIFIER: (41468..41469) "c"
+ CLOSE_PAREN: (41469..41470) ")"
+ CLOSE_PAREN: (41470..41471) ")"
+ ATMOSPHERE: (41471..41473) "\n\n"
+ FORM: (41473..41518)
+ OPEN_PAREN: (41473..41474) "("
+ SYMBOL: (41474..41478)
+ IDENTIFIER: (41474..41478) "test"
+ ATMOSPHERE: (41478..41479) " "
+ CONSTANT: (41479..41480)
+ NUMBER: (41479..41480) "8"
+ ATMOSPHERE: (41480..41481) " "
+ FORM: (41481..41517)
+ OPEN_PAREN: (41481..41482) "("
+ SYMBOL: (41482..41492)
+ IDENTIFIER: (41482..41492) "vector-ref"
+ ATMOSPHERE: (41492..41493) " "
+ QUOTED_DATUM: (41493..41515)
+ QUOTE: (41493..41494) "'"
+ VEC: (41494..41514)
+ OPEN_PAREN: (41494..41496) "#("
+ CONSTANT: (41496..41497)
+ NUMBER: (41496..41497) "1"
+ ATMOSPHERE: (41497..41498) " "
+ CONSTANT: (41498..41499)
+ NUMBER: (41498..41499) "1"
+ ATMOSPHERE: (41499..41500) " "
+ CONSTANT: (41500..41501)
+ NUMBER: (41500..41501) "2"
+ ATMOSPHERE: (41501..41502) " "
+ CONSTANT: (41502..41503)
+ NUMBER: (41502..41503) "3"
+ ATMOSPHERE: (41503..41504) " "
+ CONSTANT: (41504..41505)
+ NUMBER: (41504..41505) "5"
+ ATMOSPHERE: (41505..41506) " "
+ CONSTANT: (41506..41507)
+ NUMBER: (41506..41507) "8"
+ ATMOSPHERE: (41507..41508) " "
+ CONSTANT: (41508..41510)
+ NUMBER: (41508..41510) "13"
+ ATMOSPHERE: (41510..41511) " "
+ CONSTANT: (41511..41513)
+ NUMBER: (41511..41513) "21"
+ CLOSE_PAREN: (41513..41514) ")"
+ ATMOSPHERE: (41514..41515) " "
+ CONSTANT: (41515..41516)
+ NUMBER: (41515..41516) "5"
+ CLOSE_PAREN: (41516..41517) ")"
+ CLOSE_PAREN: (41517..41518) ")"
+ ATMOSPHERE: (41518..41519) "\n"
+ ATMOSPHERE: (41519..41564) ";; (test 13 (vector-ref '#(1 1 2 3 5 8 13 21)"
+ ATMOSPHERE: (41564..41565) "\n"
+ ATMOSPHERE: (41565..41614) ";; (let ((i (round (* 2 (acos -1)))))"
+ ATMOSPHERE: (41614..41615) "\n"
+ ATMOSPHERE: (41615..41648) ";; (if (inexact? i)"
+ ATMOSPHERE: (41648..41649) "\n"
+ ATMOSPHERE: (41649..41679) ";; (exact i)"
+ ATMOSPHERE: (41679..41680) "\n"
+ ATMOSPHERE: (41680..41706) ";; i))))"
+ ATMOSPHERE: (41706..41708) "\n\n"
+ ATMOSPHERE: (41708..41784) ";; (test #(0 (\"Sue\" \"Sue\") \"Anna\") (let ((vec (vector 0 '(2 2 2 2) \"Anna\")))"
+ ATMOSPHERE: (41784..41785) "\n"
+ ATMOSPHERE: (41785..41824) ";; (vector-set! vec 1 '(\"Sue\" \"Sue\"))"
+ ATMOSPHERE: (41824..41825) "\n"
+ ATMOSPHERE: (41825..41835) ";; vec))"
+ ATMOSPHERE: (41835..41837) "\n\n"
+ ATMOSPHERE: (41837..41896) ";; (test '(dah dah didah) (vector->list '#(dah dah didah)))"
+ ATMOSPHERE: (41896..41897) "\n"
+ ATMOSPHERE: (41897..41954) ";; (test '(dah didah) (vector->list '#(dah dah didah) 1))"
+ ATMOSPHERE: (41954..41955) "\n"
+ ATMOSPHERE: (41955..42008) ";; (test '(dah) (vector->list '#(dah dah didah) 1 2))"
+ ATMOSPHERE: (42008..42009) "\n"
+ ATMOSPHERE: (42009..42063) ";; (test #(dididit dah) (list->vector '(dididit dah)))"
+ ATMOSPHERE: (42063..42065) "\n\n"
+ ATMOSPHERE: (42065..42098) ";; (test #() (string->vector \"\"))"
+ ATMOSPHERE: (42098..42099) "\n"
+ ATMOSPHERE: (42099..42146) ";; (test #(#\\A #\\B #\\C) (string->vector \"ABC\"))"
+ ATMOSPHERE: (42146..42147) "\n"
+ ATMOSPHERE: (42147..42192) ";; (test #(#\\B #\\C) (string->vector \"ABC\" 1))"
+ ATMOSPHERE: (42192..42193) "\n"
+ ATMOSPHERE: (42193..42236) ";; (test #(#\\B) (string->vector \"ABC\" 1 2))"
+ ATMOSPHERE: (42236..42238) "\n\n"
+ ATMOSPHERE: (42238..42271) ";; (test \"\" (vector->string #()))"
+ ATMOSPHERE: (42271..42272) "\n"
+ ATMOSPHERE: (42272..42319) ";; (test \"123\" (vector->string #(#\\1 #\\2 #\\3)))"
+ ATMOSPHERE: (42319..42320) "\n"
+ ATMOSPHERE: (42320..42368) ";; (test \"23\" (vector->string #(#\\1 #\\2 #\\3) 1))"
+ ATMOSPHERE: (42368..42369) "\n"
+ ATMOSPHERE: (42369..42418) ";; (test \"2\" (vector->string #(#\\1 #\\2 #\\3) 1 2))"
+ ATMOSPHERE: (42418..42420) "\n\n"
+ ATMOSPHERE: (42420..42451) ";; (test #() (vector-copy #()))"
+ ATMOSPHERE: (42451..42452) "\n"
+ ATMOSPHERE: (42452..42493) ";; (test #(a b c) (vector-copy #(a b c)))"
+ ATMOSPHERE: (42493..42494) "\n"
+ ATMOSPHERE: (42494..42535) ";; (test #(b c) (vector-copy #(a b c) 1))"
+ ATMOSPHERE: (42535..42536) "\n"
+ ATMOSPHERE: (42536..42577) ";; (test #(b) (vector-copy #(a b c) 1 2))"
+ ATMOSPHERE: (42577..42579) "\n\n"
+ ATMOSPHERE: (42579..42612) ";; (test #() (vector-append #()))"
+ ATMOSPHERE: (42612..42613) "\n"
+ ATMOSPHERE: (42613..42650) ";; (test #() (vector-append #() #()))"
+ ATMOSPHERE: (42650..42651) "\n"
+ ATMOSPHERE: (42651..42698) ";; (test #(a b c) (vector-append #() #(a b c)))"
+ ATMOSPHERE: (42698..42699) "\n"
+ ATMOSPHERE: (42699..42746) ";; (test #(a b c) (vector-append #(a b c) #()))"
+ ATMOSPHERE: (42746..42747) "\n"
+ ATMOSPHERE: (42747..42801) ";; (test #(a b c d e) (vector-append #(a b c) #(d e)))"
+ ATMOSPHERE: (42801..42802) "\n"
+ ATMOSPHERE: (42802..42863) ";; (test #(a b c d e f) (vector-append #(a b c) #(d e) #(f)))"
+ ATMOSPHERE: (42863..42865) "\n\n"
+ ATMOSPHERE: (42865..42894) ";; (test #(1 2 smash smash 5)"
+ ATMOSPHERE: (42894..42895) "\n"
+ ATMOSPHERE: (42895..42969) ";; (let ((vec (vector 1 2 3 4 5))) (vector-fill! vec 'smash 2 4) vec))"
+ ATMOSPHERE: (42969..42970) "\n"
+ ATMOSPHERE: (42970..42991) ";; (test #(x x x x x)"
+ ATMOSPHERE: (42991..42992) "\n"
+ ATMOSPHERE: (42992..43058) ";; (let ((vec (vector 1 2 3 4 5))) (vector-fill! vec 'x) vec))"
+ ATMOSPHERE: (43058..43059) "\n"
+ ATMOSPHERE: (43059..43080) ";; (test #(1 2 x x x)"
+ ATMOSPHERE: (43080..43081) "\n"
+ ATMOSPHERE: (43081..43149) ";; (let ((vec (vector 1 2 3 4 5))) (vector-fill! vec 'x 2) vec))"
+ ATMOSPHERE: (43149..43150) "\n"
+ ATMOSPHERE: (43150..43171) ";; (test #(1 2 x 4 5)"
+ ATMOSPHERE: (43171..43172) "\n"
+ ATMOSPHERE: (43172..43242) ";; (let ((vec (vector 1 2 3 4 5))) (vector-fill! vec 'x 2 3) vec))"
+ ATMOSPHERE: (43242..43244) "\n\n"
+ ATMOSPHERE: (43244..43265) ";; (test #(1 a b 4 5)"
+ ATMOSPHERE: (43265..43266) "\n"
+ ATMOSPHERE: (43266..43348) ";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 1 #(a b c d e) 0 2) vec))"
+ ATMOSPHERE: (43348..43349) "\n"
+ ATMOSPHERE: (43349..43370) ";; (test #(a b c d e)"
+ ATMOSPHERE: (43370..43371) "\n"
+ ATMOSPHERE: (43371..43449) ";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 0 #(a b c d e)) vec))"
+ ATMOSPHERE: (43449..43450) "\n"
+ ATMOSPHERE: (43450..43471) ";; (test #(c d e 4 5)"
+ ATMOSPHERE: (43471..43472) "\n"
+ ATMOSPHERE: (43472..43552) ";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 0 #(a b c d e) 2) vec))"
+ ATMOSPHERE: (43552..43553) "\n"
+ ATMOSPHERE: (43553..43574) ";; (test #(1 2 a b c)"
+ ATMOSPHERE: (43574..43575) "\n"
+ ATMOSPHERE: (43575..43657) ";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 2 #(a b c d e) 0 3) vec))"
+ ATMOSPHERE: (43657..43658) "\n"
+ ATMOSPHERE: (43658..43679) ";; (test #(1 2 c 4 5)"
+ ATMOSPHERE: (43679..43680) "\n"
+ ATMOSPHERE: (43680..43762) ";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 2 #(a b c d e) 2 3) vec))"
+ ATMOSPHERE: (43762..43764) "\n\n"
+ ATMOSPHERE: (43764..43790) ";; ;; same source and dest"
+ ATMOSPHERE: (43790..43791) "\n"
+ ATMOSPHERE: (43791..43812) ";; (test #(1 1 2 4 5)"
+ ATMOSPHERE: (43812..43813) "\n"
+ ATMOSPHERE: (43813..43886) ";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 1 vec 0 2) vec))"
+ ATMOSPHERE: (43886..43887) "\n"
+ ATMOSPHERE: (43887..43908) ";; (test #(1 2 3 1 2)"
+ ATMOSPHERE: (43908..43909) "\n"
+ ATMOSPHERE: (43909..43982) ";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 3 vec 0 2) vec))"
+ ATMOSPHERE: (43982..43984) "\n\n"
+ FORM: (43984..43994)
+ OPEN_PAREN: (43984..43985) "("
+ SYMBOL: (43985..43993)
+ IDENTIFIER: (43985..43993) "test-end"
+ CLOSE_PAREN: (43993..43994) ")"
+ ATMOSPHERE: (43994..43996) "\n\n"
+ FORM: (43996..44026)
+ OPEN_PAREN: (43996..43997) "("
+ SYMBOL: (43997..44007)
+ IDENTIFIER: (43997..44007) "test-begin"
+ ATMOSPHERE: (44007..44008) " "
+ CONSTANT: (44008..44025)
+ STRING: (44008..44025) "\"6.9 Bytevectors\""
+ CLOSE_PAREN: (44025..44026) ")"
+ ATMOSPHERE: (44026..44028) "\n\n"
+ FORM: (44028..44057)
+ OPEN_PAREN: (44028..44029) "("
+ SYMBOL: (44029..44033)
+ IDENTIFIER: (44029..44033) "test"
+ ATMOSPHERE: (44033..44034) " "
+ CONSTANT: (44034..44036)
+ BOOLEAN: (44034..44036) "#t"
+ ATMOSPHERE: (44036..44037) " "
+ FORM: (44037..44056)
+ OPEN_PAREN: (44037..44038) "("
+ SYMBOL: (44038..44049)
+ IDENTIFIER: (44038..44049) "bytevector?"
+ ATMOSPHERE: (44049..44050) " "
+ BYTEVEC: (44050..44055)
+ OPEN_PAREN: (44050..44054) "#u8("
+ CLOSE_PAREN: (44054..44055) ")"
+ CLOSE_PAREN: (44055..44056) ")"
+ CLOSE_PAREN: (44056..44057) ")"
+ ATMOSPHERE: (44057..44058) "\n"
+ FORM: (44058..44092)
+ OPEN_PAREN: (44058..44059) "("
+ SYMBOL: (44059..44063)
+ IDENTIFIER: (44059..44063) "test"
+ ATMOSPHERE: (44063..44064) " "
+ CONSTANT: (44064..44066)
+ BOOLEAN: (44064..44066) "#t"
+ ATMOSPHERE: (44066..44067) " "
+ FORM: (44067..44091)
+ OPEN_PAREN: (44067..44068) "("
+ SYMBOL: (44068..44079)
+ IDENTIFIER: (44068..44079) "bytevector?"
+ ATMOSPHERE: (44079..44080) " "
+ BYTEVEC: (44080..44090)
+ OPEN_PAREN: (44080..44084) "#u8("
+ CONSTANT: (44084..44085)
+ NUMBER: (44084..44085) "0"
+ ATMOSPHERE: (44085..44086) " "
+ CONSTANT: (44086..44087)
+ NUMBER: (44086..44087) "1"
+ ATMOSPHERE: (44087..44088) " "
+ CONSTANT: (44088..44089)
+ NUMBER: (44088..44089) "2"
+ CLOSE_PAREN: (44089..44090) ")"
+ CLOSE_PAREN: (44090..44091) ")"
+ CLOSE_PAREN: (44091..44092) ")"
+ ATMOSPHERE: (44092..44093) "\n"
+ FORM: (44093..44120)
+ OPEN_PAREN: (44093..44094) "("
+ SYMBOL: (44094..44098)
+ IDENTIFIER: (44094..44098) "test"
+ ATMOSPHERE: (44098..44099) " "
+ CONSTANT: (44099..44101)
+ BOOLEAN: (44099..44101) "#f"
+ ATMOSPHERE: (44101..44102) " "
+ FORM: (44102..44119)
+ OPEN_PAREN: (44102..44103) "("
+ SYMBOL: (44103..44114)
+ IDENTIFIER: (44103..44114) "bytevector?"
+ ATMOSPHERE: (44114..44115) " "
+ VEC: (44115..44118)
+ OPEN_PAREN: (44115..44117) "#("
+ CLOSE_PAREN: (44117..44118) ")"
+ CLOSE_PAREN: (44118..44119) ")"
+ CLOSE_PAREN: (44119..44120) ")"
+ ATMOSPHERE: (44120..44121) "\n"
+ FORM: (44121..44153)
+ OPEN_PAREN: (44121..44122) "("
+ SYMBOL: (44122..44126)
+ IDENTIFIER: (44122..44126) "test"
+ ATMOSPHERE: (44126..44127) " "
+ CONSTANT: (44127..44129)
+ BOOLEAN: (44127..44129) "#f"
+ ATMOSPHERE: (44129..44130) " "
+ FORM: (44130..44152)
+ OPEN_PAREN: (44130..44131) "("
+ SYMBOL: (44131..44142)
+ IDENTIFIER: (44131..44142) "bytevector?"
+ ATMOSPHERE: (44142..44143) " "
+ VEC: (44143..44151)
+ OPEN_PAREN: (44143..44145) "#("
+ CONSTANT: (44145..44146)
+ NUMBER: (44145..44146) "0"
+ ATMOSPHERE: (44146..44147) " "
+ CONSTANT: (44147..44148)
+ NUMBER: (44147..44148) "1"
+ ATMOSPHERE: (44148..44149) " "
+ CONSTANT: (44149..44150)
+ NUMBER: (44149..44150) "2"
+ CLOSE_PAREN: (44150..44151) ")"
+ CLOSE_PAREN: (44151..44152) ")"
+ CLOSE_PAREN: (44152..44153) ")"
+ ATMOSPHERE: (44153..44154) "\n"
+ FORM: (44154..44181)
+ OPEN_PAREN: (44154..44155) "("
+ SYMBOL: (44155..44159)
+ IDENTIFIER: (44155..44159) "test"
+ ATMOSPHERE: (44159..44160) " "
+ CONSTANT: (44160..44162)
+ BOOLEAN: (44160..44162) "#f"
+ ATMOSPHERE: (44162..44163) " "
+ FORM: (44163..44180)
+ OPEN_PAREN: (44163..44164) "("
+ SYMBOL: (44164..44175)
+ IDENTIFIER: (44164..44175) "bytevector?"
+ ATMOSPHERE: (44175..44176) " "
+ QUOTED_DATUM: (44176..44179)
+ QUOTE: (44176..44177) "'"
+ FORM: (44177..44179)
+ OPEN_PAREN: (44177..44178) "("
+ CLOSE_PAREN: (44178..44179) ")"
+ CLOSE_PAREN: (44179..44180) ")"
+ CLOSE_PAREN: (44180..44181) ")"
+ ATMOSPHERE: (44181..44182) "\n"
+ FORM: (44182..44225)
+ OPEN_PAREN: (44182..44183) "("
+ SYMBOL: (44183..44187)
+ IDENTIFIER: (44183..44187) "test"
+ ATMOSPHERE: (44187..44188) " "
+ CONSTANT: (44188..44190)
+ BOOLEAN: (44188..44190) "#t"
+ ATMOSPHERE: (44190..44191) " "
+ FORM: (44191..44224)
+ OPEN_PAREN: (44191..44192) "("
+ SYMBOL: (44192..44203)
+ IDENTIFIER: (44192..44203) "bytevector?"
+ ATMOSPHERE: (44203..44204) " "
+ FORM: (44204..44223)
+ OPEN_PAREN: (44204..44205) "("
+ SYMBOL: (44205..44220)
+ IDENTIFIER: (44205..44220) "make-bytevector"
+ ATMOSPHERE: (44220..44221) " "
+ CONSTANT: (44221..44222)
+ NUMBER: (44221..44222) "0"
+ CLOSE_PAREN: (44222..44223) ")"
+ CLOSE_PAREN: (44223..44224) ")"
+ CLOSE_PAREN: (44224..44225) ")"
+ ATMOSPHERE: (44225..44227) "\n\n"
+ FORM: (44227..44275)
+ OPEN_PAREN: (44227..44228) "("
+ SYMBOL: (44228..44232)
+ IDENTIFIER: (44228..44232) "test"
+ ATMOSPHERE: (44232..44233) " "
+ CONSTANT: (44233..44234)
+ NUMBER: (44233..44234) "0"
+ ATMOSPHERE: (44234..44235) " "
+ FORM: (44235..44274)
+ OPEN_PAREN: (44235..44236) "("
+ SYMBOL: (44236..44253)
+ IDENTIFIER: (44236..44253) "bytevector-length"
+ ATMOSPHERE: (44253..44254) " "
+ FORM: (44254..44273)
+ OPEN_PAREN: (44254..44255) "("
+ SYMBOL: (44255..44270)
+ IDENTIFIER: (44255..44270) "make-bytevector"
+ ATMOSPHERE: (44270..44271) " "
+ CONSTANT: (44271..44272)
+ NUMBER: (44271..44272) "0"
+ CLOSE_PAREN: (44272..44273) ")"
+ CLOSE_PAREN: (44273..44274) ")"
+ CLOSE_PAREN: (44274..44275) ")"
+ ATMOSPHERE: (44275..44276) "\n"
+ FORM: (44276..44330)
+ OPEN_PAREN: (44276..44277) "("
+ SYMBOL: (44277..44281)
+ IDENTIFIER: (44277..44281) "test"
+ ATMOSPHERE: (44281..44282) " "
+ CONSTANT: (44282..44286)
+ NUMBER: (44282..44286) "1024"
+ ATMOSPHERE: (44286..44287) " "
+ FORM: (44287..44329)
+ OPEN_PAREN: (44287..44288) "("
+ SYMBOL: (44288..44305)
+ IDENTIFIER: (44288..44305) "bytevector-length"
+ ATMOSPHERE: (44305..44306) " "
+ FORM: (44306..44328)
+ OPEN_PAREN: (44306..44307) "("
+ SYMBOL: (44307..44322)
+ IDENTIFIER: (44307..44322) "make-bytevector"
+ ATMOSPHERE: (44322..44323) " "
+ CONSTANT: (44323..44327)
+ NUMBER: (44323..44327) "1024"
+ CLOSE_PAREN: (44327..44328) ")"
+ CLOSE_PAREN: (44328..44329) ")"
+ CLOSE_PAREN: (44329..44330) ")"
+ ATMOSPHERE: (44330..44331) "\n"
+ FORM: (44331..44389)
+ OPEN_PAREN: (44331..44332) "("
+ SYMBOL: (44332..44336)
+ IDENTIFIER: (44332..44336) "test"
+ ATMOSPHERE: (44336..44337) " "
+ CONSTANT: (44337..44341)
+ NUMBER: (44337..44341) "1024"
+ ATMOSPHERE: (44341..44342) " "
+ FORM: (44342..44388)
+ OPEN_PAREN: (44342..44343) "("
+ SYMBOL: (44343..44360)
+ IDENTIFIER: (44343..44360) "bytevector-length"
+ ATMOSPHERE: (44360..44361) " "
+ FORM: (44361..44387)
+ OPEN_PAREN: (44361..44362) "("
+ SYMBOL: (44362..44377)
+ IDENTIFIER: (44362..44377) "make-bytevector"
+ ATMOSPHERE: (44377..44378) " "
+ CONSTANT: (44378..44382)
+ NUMBER: (44378..44382) "1024"
+ ATMOSPHERE: (44382..44383) " "
+ CONSTANT: (44383..44386)
+ NUMBER: (44383..44386) "255"
+ CLOSE_PAREN: (44386..44387) ")"
+ CLOSE_PAREN: (44387..44388) ")"
+ CLOSE_PAREN: (44388..44389) ")"
+ ATMOSPHERE: (44389..44391) "\n\n"
+ FORM: (44391..44438)
+ OPEN_PAREN: (44391..44392) "("
+ SYMBOL: (44392..44396)
+ IDENTIFIER: (44392..44396) "test"
+ ATMOSPHERE: (44396..44397) " "
+ CONSTANT: (44397..44398)
+ NUMBER: (44397..44398) "3"
+ ATMOSPHERE: (44398..44399) " "
+ FORM: (44399..44437)
+ OPEN_PAREN: (44399..44400) "("
+ SYMBOL: (44400..44417)
+ IDENTIFIER: (44400..44417) "bytevector-length"
+ ATMOSPHERE: (44417..44418) " "
+ FORM: (44418..44436)
+ OPEN_PAREN: (44418..44419) "("
+ SYMBOL: (44419..44429)
+ IDENTIFIER: (44419..44429) "bytevector"
+ ATMOSPHERE: (44429..44430) " "
+ CONSTANT: (44430..44431)
+ NUMBER: (44430..44431) "0"
+ ATMOSPHERE: (44431..44432) " "
+ CONSTANT: (44432..44433)
+ NUMBER: (44432..44433) "1"
+ ATMOSPHERE: (44433..44434) " "
+ CONSTANT: (44434..44435)
+ NUMBER: (44434..44435) "2"
+ CLOSE_PAREN: (44435..44436) ")"
+ CLOSE_PAREN: (44436..44437) ")"
+ CLOSE_PAREN: (44437..44438) ")"
+ ATMOSPHERE: (44438..44440) "\n\n"
+ ATMOSPHERE: (44440..44492) ";; (test 0 (bytevector-u8-ref (bytevector 0 1 2) 0))"
+ ATMOSPHERE: (44492..44493) "\n"
+ ATMOSPHERE: (44493..44545) ";; (test 1 (bytevector-u8-ref (bytevector 0 1 2) 1))"
+ ATMOSPHERE: (44545..44546) "\n"
+ ATMOSPHERE: (44546..44598) ";; (test 2 (bytevector-u8-ref (bytevector 0 1 2) 2))"
+ ATMOSPHERE: (44598..44600) "\n\n"
+ ATMOSPHERE: (44600..44621) ";; (test #u8(0 255 2)"
+ ATMOSPHERE: (44621..44622) "\n"
+ ATMOSPHERE: (44622..44694) ";; (let ((bv (bytevector 0 1 2))) (bytevector-u8-set! bv 1 255) bv))"
+ ATMOSPHERE: (44694..44696) "\n\n"
+ ATMOSPHERE: (44696..44735) ";; (test #u8() (bytevector-copy #u8()))"
+ ATMOSPHERE: (44735..44736) "\n"
+ ATMOSPHERE: (44736..44785) ";; (test #u8(0 1 2) (bytevector-copy #u8(0 1 2)))"
+ ATMOSPHERE: (44785..44786) "\n"
+ ATMOSPHERE: (44786..44835) ";; (test #u8(1 2) (bytevector-copy #u8(0 1 2) 1))"
+ ATMOSPHERE: (44835..44836) "\n"
+ ATMOSPHERE: (44836..44885) ";; (test #u8(1) (bytevector-copy #u8(0 1 2) 1 2))"
+ ATMOSPHERE: (44885..44887) "\n\n"
+ ATMOSPHERE: (44887..44910) ";; (test #u8(1 6 7 4 5)"
+ ATMOSPHERE: (44910..44911) "\n"
+ ATMOSPHERE: (44911..44952) ";; (let ((bv (bytevector 1 2 3 4 5)))"
+ ATMOSPHERE: (44952..44953) "\n"
+ ATMOSPHERE: (44953..45005) ";; (bytevector-copy! bv 1 #u8(6 7 8 9 10) 0 2)"
+ ATMOSPHERE: (45005..45006) "\n"
+ ATMOSPHERE: (45006..45019) ";; bv))"
+ ATMOSPHERE: (45019..45020) "\n"
+ ATMOSPHERE: (45020..45044) ";; (test #u8(6 7 8 9 10)"
+ ATMOSPHERE: (45044..45045) "\n"
+ ATMOSPHERE: (45045..45086) ";; (let ((bv (bytevector 1 2 3 4 5)))"
+ ATMOSPHERE: (45086..45087) "\n"
+ ATMOSPHERE: (45087..45135) ";; (bytevector-copy! bv 0 #u8(6 7 8 9 10))"
+ ATMOSPHERE: (45135..45136) "\n"
+ ATMOSPHERE: (45136..45149) ";; bv))"
+ ATMOSPHERE: (45149..45150) "\n"
+ ATMOSPHERE: (45150..45174) ";; (test #u8(8 9 10 4 5)"
+ ATMOSPHERE: (45174..45175) "\n"
+ ATMOSPHERE: (45175..45216) ";; (let ((bv (bytevector 1 2 3 4 5)))"
+ ATMOSPHERE: (45216..45217) "\n"
+ ATMOSPHERE: (45217..45267) ";; (bytevector-copy! bv 0 #u8(6 7 8 9 10) 2)"
+ ATMOSPHERE: (45267..45268) "\n"
+ ATMOSPHERE: (45268..45281) ";; bv))"
+ ATMOSPHERE: (45281..45282) "\n"
+ ATMOSPHERE: (45282..45305) ";; (test #u8(1 2 6 7 8)"
+ ATMOSPHERE: (45305..45306) "\n"
+ ATMOSPHERE: (45306..45347) ";; (let ((bv (bytevector 1 2 3 4 5)))"
+ ATMOSPHERE: (45347..45348) "\n"
+ ATMOSPHERE: (45348..45400) ";; (bytevector-copy! bv 2 #u8(6 7 8 9 10) 0 3)"
+ ATMOSPHERE: (45400..45401) "\n"
+ ATMOSPHERE: (45401..45414) ";; bv))"
+ ATMOSPHERE: (45414..45415) "\n"
+ ATMOSPHERE: (45415..45438) ";; (test #u8(1 2 8 4 5)"
+ ATMOSPHERE: (45438..45439) "\n"
+ ATMOSPHERE: (45439..45480) ";; (let ((bv (bytevector 1 2 3 4 5)))"
+ ATMOSPHERE: (45480..45481) "\n"
+ ATMOSPHERE: (45481..45533) ";; (bytevector-copy! bv 2 #u8(6 7 8 9 10) 2 3)"
+ ATMOSPHERE: (45533..45534) "\n"
+ ATMOSPHERE: (45534..45547) ";; bv))"
+ ATMOSPHERE: (45547..45549) "\n\n"
+ ATMOSPHERE: (45549..45575) ";; ;; same source and dest"
+ ATMOSPHERE: (45575..45576) "\n"
+ ATMOSPHERE: (45576..45599) ";; (test #u8(1 1 2 4 5)"
+ ATMOSPHERE: (45599..45600) "\n"
+ ATMOSPHERE: (45600..45641) ";; (let ((bv (bytevector 1 2 3 4 5)))"
+ ATMOSPHERE: (45641..45642) "\n"
+ ATMOSPHERE: (45642..45681) ";; (bytevector-copy! bv 1 bv 0 2)"
+ ATMOSPHERE: (45681..45682) "\n"
+ ATMOSPHERE: (45682..45695) ";; bv))"
+ ATMOSPHERE: (45695..45696) "\n"
+ ATMOSPHERE: (45696..45719) ";; (test #u8(1 2 3 1 2)"
+ ATMOSPHERE: (45719..45720) "\n"
+ ATMOSPHERE: (45720..45761) ";; (let ((bv (bytevector 1 2 3 4 5)))"
+ ATMOSPHERE: (45761..45762) "\n"
+ ATMOSPHERE: (45762..45801) ";; (bytevector-copy! bv 3 bv 0 2)"
+ ATMOSPHERE: (45801..45802) "\n"
+ ATMOSPHERE: (45802..45815) ";; bv))"
+ ATMOSPHERE: (45815..45817) "\n\n"
+ ATMOSPHERE: (45817..45858) ";; (test #u8() (bytevector-append #u8()))"
+ ATMOSPHERE: (45858..45859) "\n"
+ ATMOSPHERE: (45859..45906) ";; (test #u8() (bytevector-append #u8() #u8()))"
+ ATMOSPHERE: (45906..45907) "\n"
+ ATMOSPHERE: (45907..45964) ";; (test #u8(0 1 2) (bytevector-append #u8() #u8(0 1 2)))"
+ ATMOSPHERE: (45964..45965) "\n"
+ ATMOSPHERE: (45965..46022) ";; (test #u8(0 1 2) (bytevector-append #u8(0 1 2) #u8()))"
+ ATMOSPHERE: (46022..46023) "\n"
+ ATMOSPHERE: (46023..46087) ";; (test #u8(0 1 2 3 4) (bytevector-append #u8(0 1 2) #u8(3 4)))"
+ ATMOSPHERE: (46087..46088) "\n"
+ ATMOSPHERE: (46088..46161) ";; (test #u8(0 1 2 3 4 5) (bytevector-append #u8(0 1 2) #u8(3 4) #u8(5)))"
+ ATMOSPHERE: (46161..46163) "\n\n"
+ ATMOSPHERE: (46163..46213) ";; (test \"ABC\" (utf8->string #u8(#x41 #x42 #x43)))"
+ ATMOSPHERE: (46213..46214) "\n"
+ ATMOSPHERE: (46214..46268) ";; (test \"ABC\" (utf8->string #u8(0 #x41 #x42 #x43) 1))"
+ ATMOSPHERE: (46268..46269) "\n"
+ ATMOSPHERE: (46269..46328) ";; (test \"ABC\" (utf8->string #u8(0 #x41 #x42 #x43 0) 1 4))"
+ ATMOSPHERE: (46328..46329) "\n"
+ ATMOSPHERE: (46329..46380) ";; (test \"λ\" (utf8->string #u8(0 #xCE #xBB 0) 1 3))"
+ ATMOSPHERE: (46380..46381) "\n"
+ ATMOSPHERE: (46381..46431) ";; (test #u8(#x41 #x42 #x43) (string->utf8 \"ABC\"))"
+ ATMOSPHERE: (46431..46432) "\n"
+ ATMOSPHERE: (46432..46479) ";; (test #u8(#x42 #x43) (string->utf8 \"ABC\" 1))"
+ ATMOSPHERE: (46479..46480) "\n"
+ ATMOSPHERE: (46480..46524) ";; (test #u8(#x42) (string->utf8 \"ABC\" 1 2))"
+ ATMOSPHERE: (46524..46525) "\n"
+ ATMOSPHERE: (46525..46568) ";; (test #u8(#xCE #xBB) (string->utf8 \"λ\"))"
+ ATMOSPHERE: (46568..46570) "\n\n"
+ FORM: (46570..46580)
+ OPEN_PAREN: (46570..46571) "("
+ SYMBOL: (46571..46579)
+ IDENTIFIER: (46571..46579) "test-end"
+ CLOSE_PAREN: (46579..46580) ")"
+ ATMOSPHERE: (46580..46582) "\n\n"
+ FORM: (46582..46618)
+ OPEN_PAREN: (46582..46583) "("
+ SYMBOL: (46583..46593)
+ IDENTIFIER: (46583..46593) "test-begin"
+ ATMOSPHERE: (46593..46594) " "
+ CONSTANT: (46594..46617)
+ STRING: (46594..46617) "\"6.10 Control Features\""
+ CLOSE_PAREN: (46617..46618) ")"
+ ATMOSPHERE: (46618..46620) "\n\n"
+ FORM: (46620..46646)
+ OPEN_PAREN: (46620..46621) "("
+ SYMBOL: (46621..46625)
+ IDENTIFIER: (46621..46625) "test"
+ ATMOSPHERE: (46625..46626) " "
+ CONSTANT: (46626..46628)
+ BOOLEAN: (46626..46628) "#t"
+ ATMOSPHERE: (46628..46629) " "
+ FORM: (46629..46645)
+ OPEN_PAREN: (46629..46630) "("
+ SYMBOL: (46630..46640)
+ IDENTIFIER: (46630..46640) "procedure?"
+ ATMOSPHERE: (46640..46641) " "
+ SYMBOL: (46641..46644)
+ IDENTIFIER: (46641..46644) "car"
+ CLOSE_PAREN: (46644..46645) ")"
+ CLOSE_PAREN: (46645..46646) ")"
+ ATMOSPHERE: (46646..46647) "\n"
+ FORM: (46647..46674)
+ OPEN_PAREN: (46647..46648) "("
+ SYMBOL: (46648..46652)
+ IDENTIFIER: (46648..46652) "test"
+ ATMOSPHERE: (46652..46653) " "
+ CONSTANT: (46653..46655)
+ BOOLEAN: (46653..46655) "#f"
+ ATMOSPHERE: (46655..46656) " "
+ FORM: (46656..46673)
+ OPEN_PAREN: (46656..46657) "("
+ SYMBOL: (46657..46667)
+ IDENTIFIER: (46657..46667) "procedure?"
+ ATMOSPHERE: (46667..46668) " "
+ QUOTED_DATUM: (46668..46672)
+ QUOTE: (46668..46669) "'"
+ SYMBOL: (46669..46672)
+ IDENTIFIER: (46669..46672) "car"
+ CLOSE_PAREN: (46672..46673) ")"
+ CLOSE_PAREN: (46673..46674) ")"
+ ATMOSPHERE: (46674..46675) "\n"
+ FORM: (46675..46718)
+ OPEN_PAREN: (46675..46676) "("
+ SYMBOL: (46676..46680)
+ IDENTIFIER: (46676..46680) "test"
+ ATMOSPHERE: (46680..46681) " "
+ CONSTANT: (46681..46683)
+ BOOLEAN: (46681..46683) "#t"
+ ATMOSPHERE: (46683..46684) " "
+ FORM: (46684..46717)
+ OPEN_PAREN: (46684..46685) "("
+ SYMBOL: (46685..46695)
+ IDENTIFIER: (46685..46695) "procedure?"
+ ATMOSPHERE: (46695..46696) " "
+ FORM: (46696..46716)
+ OPEN_PAREN: (46696..46697) "("
+ SYMBOL: (46697..46703)
+ IDENTIFIER: (46697..46703) "lambda"
+ ATMOSPHERE: (46703..46704) " "
+ FORM: (46704..46707)
+ OPEN_PAREN: (46704..46705) "("
+ SYMBOL: (46705..46706)
+ IDENTIFIER: (46705..46706) "x"
+ CLOSE_PAREN: (46706..46707) ")"
+ ATMOSPHERE: (46707..46708) " "
+ FORM: (46708..46715)
+ OPEN_PAREN: (46708..46709) "("
+ SYMBOL: (46709..46710)
+ IDENTIFIER: (46709..46710) "*"
+ ATMOSPHERE: (46710..46711) " "
+ SYMBOL: (46711..46712)
+ IDENTIFIER: (46711..46712) "x"
+ ATMOSPHERE: (46712..46713) " "
+ SYMBOL: (46713..46714)
+ IDENTIFIER: (46713..46714) "x"
+ CLOSE_PAREN: (46714..46715) ")"
+ CLOSE_PAREN: (46715..46716) ")"
+ CLOSE_PAREN: (46716..46717) ")"
+ CLOSE_PAREN: (46717..46718) ")"
+ ATMOSPHERE: (46718..46719) "\n"
+ FORM: (46719..46763)
+ OPEN_PAREN: (46719..46720) "("
+ SYMBOL: (46720..46724)
+ IDENTIFIER: (46720..46724) "test"
+ ATMOSPHERE: (46724..46725) " "
+ CONSTANT: (46725..46727)
+ BOOLEAN: (46725..46727) "#f"
+ ATMOSPHERE: (46727..46728) " "
+ FORM: (46728..46762)
+ OPEN_PAREN: (46728..46729) "("
+ SYMBOL: (46729..46739)
+ IDENTIFIER: (46729..46739) "procedure?"
+ ATMOSPHERE: (46739..46740) " "
+ QUOTED_DATUM: (46740..46761)
+ QUOTE: (46740..46741) "'"
+ FORM: (46741..46761)
+ OPEN_PAREN: (46741..46742) "("
+ SYMBOL: (46742..46748)
+ IDENTIFIER: (46742..46748) "lambda"
+ ATMOSPHERE: (46748..46749) " "
+ FORM: (46749..46752)
+ OPEN_PAREN: (46749..46750) "("
+ SYMBOL: (46750..46751)
+ IDENTIFIER: (46750..46751) "x"
+ CLOSE_PAREN: (46751..46752) ")"
+ ATMOSPHERE: (46752..46753) " "
+ FORM: (46753..46760)
+ OPEN_PAREN: (46753..46754) "("
+ SYMBOL: (46754..46755)
+ IDENTIFIER: (46754..46755) "*"
+ ATMOSPHERE: (46755..46756) " "
+ SYMBOL: (46756..46757)
+ IDENTIFIER: (46756..46757) "x"
+ ATMOSPHERE: (46757..46758) " "
+ SYMBOL: (46758..46759)
+ IDENTIFIER: (46758..46759) "x"
+ CLOSE_PAREN: (46759..46760) ")"
+ CLOSE_PAREN: (46760..46761) ")"
+ CLOSE_PAREN: (46761..46762) ")"
+ CLOSE_PAREN: (46762..46763) ")"
+ ATMOSPHERE: (46763..46764) "\n"
+ ATMOSPHERE: (46764..46820) ";; (test #t (call-with-current-continuation procedure?))"
+ ATMOSPHERE: (46820..46822) "\n\n"
+ FORM: (46822..46851)
+ OPEN_PAREN: (46822..46823) "("
+ SYMBOL: (46823..46827)
+ IDENTIFIER: (46823..46827) "test"
+ ATMOSPHERE: (46827..46828) " "
+ CONSTANT: (46828..46829)
+ NUMBER: (46828..46829) "7"
+ ATMOSPHERE: (46829..46830) " "
+ FORM: (46830..46850)
+ OPEN_PAREN: (46830..46831) "("
+ SYMBOL: (46831..46836)
+ IDENTIFIER: (46831..46836) "apply"
+ ATMOSPHERE: (46836..46837) " "
+ SYMBOL: (46837..46838)
+ IDENTIFIER: (46837..46838) "+"
+ ATMOSPHERE: (46838..46839) " "
+ FORM: (46839..46849)
+ OPEN_PAREN: (46839..46840) "("
+ SYMBOL: (46840..46844)
+ IDENTIFIER: (46840..46844) "list"
+ ATMOSPHERE: (46844..46845) " "
+ CONSTANT: (46845..46846)
+ NUMBER: (46845..46846) "3"
+ ATMOSPHERE: (46846..46847) " "
+ CONSTANT: (46847..46848)
+ NUMBER: (46847..46848) "4"
+ CLOSE_PAREN: (46848..46849) ")"
+ CLOSE_PAREN: (46849..46850) ")"
+ CLOSE_PAREN: (46850..46851) ")"
+ ATMOSPHERE: (46851..46852) "\n"
+ FORM: (46852..46881)
+ OPEN_PAREN: (46852..46853) "("
+ SYMBOL: (46853..46857)
+ IDENTIFIER: (46853..46857) "test"
+ ATMOSPHERE: (46857..46858) " "
+ CONSTANT: (46858..46859)
+ NUMBER: (46858..46859) "7"
+ ATMOSPHERE: (46859..46860) " "
+ FORM: (46860..46880)
+ OPEN_PAREN: (46860..46861) "("
+ SYMBOL: (46861..46866)
+ IDENTIFIER: (46861..46866) "apply"
+ ATMOSPHERE: (46866..46867) " "
+ SYMBOL: (46867..46868)
+ IDENTIFIER: (46867..46868) "+"
+ ATMOSPHERE: (46868..46869) " "
+ CONSTANT: (46869..46870)
+ NUMBER: (46869..46870) "3"
+ ATMOSPHERE: (46870..46871) " "
+ CONSTANT: (46871..46872)
+ NUMBER: (46871..46872) "4"
+ ATMOSPHERE: (46872..46873) " "
+ FORM: (46873..46879)
+ OPEN_PAREN: (46873..46874) "("
+ SYMBOL: (46874..46878)
+ IDENTIFIER: (46874..46878) "list"
+ CLOSE_PAREN: (46878..46879) ")"
+ CLOSE_PAREN: (46879..46880) ")"
+ CLOSE_PAREN: (46880..46881) ")"
+ ATMOSPHERE: (46881..46882) "\n"
+ ATMOSPHERE: (46882..46926) ";; (test-error (apply +)) ;; not enough args"
+ ATMOSPHERE: (46926..46927) "\n"
+ ATMOSPHERE: (46927..46978) ";; (test-error (apply + 3)) ;; final arg not a list"
+ ATMOSPHERE: (46978..46979) "\n"
+ ATMOSPHERE: (46979..47032) ";; (test-error (apply + 3 4)) ;; final arg not a list"
+ ATMOSPHERE: (47032..47033) "\n"
+ ATMOSPHERE: (47033..47094) ";; (test-error (apply + '(2 3 . 4))) ;; final arg is improper"
+ ATMOSPHERE: (47094..47097) "\n\n\n"
+ ATMOSPHERE: (47097..47115) ";; (define compose"
+ ATMOSPHERE: (47115..47116) "\n"
+ ATMOSPHERE: (47116..47134) ";; (lambda (f g)"
+ ATMOSPHERE: (47134..47135) "\n"
+ ATMOSPHERE: (47135..47154) ";; (lambda args"
+ ATMOSPHERE: (47154..47155) "\n"
+ ATMOSPHERE: (47155..47185) ";; (f (apply g args)))))"
+ ATMOSPHERE: (47185..47186) "\n"
+ ATMOSPHERE: (47186..47202) ";; (test '(30 0)"
+ ATMOSPHERE: (47202..47203) "\n"
+ ATMOSPHERE: (47203..47278) ";; (call-with-values (lambda () ((compose exact-integer-sqrt *) 12 75))"
+ ATMOSPHERE: (47278..47279) "\n"
+ ATMOSPHERE: (47279..47294) ";; list))"
+ ATMOSPHERE: (47294..47296) "\n\n"
+ ATMOSPHERE: (47296..47346) ";; (test '(b e h) (map cadr '((a b) (d e) (g h))))"
+ ATMOSPHERE: (47346..47348) "\n\n"
+ ATMOSPHERE: (47348..47419) ";; (test '(1 4 27 256 3125) (map (lambda (n) (expt n n)) '(1 2 3 4 5)))"
+ ATMOSPHERE: (47419..47421) "\n\n"
+ ATMOSPHERE: (47421..47467) ";; (test '(5 7 9) (map + '(1 2 3) '(4 5 6 7)))"
+ ATMOSPHERE: (47467..47469) "\n\n"
+ ATMOSPHERE: (47469..47480) ";; (test #t"
+ ATMOSPHERE: (47480..47481) "\n"
+ ATMOSPHERE: (47481..47515) ";; (let ((res (let ((count 0))"
+ ATMOSPHERE: (47515..47516) "\n"
+ ATMOSPHERE: (47516..47558) ";; (map (lambda (ignored)"
+ ATMOSPHERE: (47558..47559) "\n"
+ ATMOSPHERE: (47559..47610) ";; (set! count (+ count 1))"
+ ATMOSPHERE: (47610..47611) "\n"
+ ATMOSPHERE: (47611..47644) ";; count)"
+ ATMOSPHERE: (47644..47645) "\n"
+ ATMOSPHERE: (47645..47680) ";; '(a b)))))"
+ ATMOSPHERE: (47680..47681) "\n"
+ ATMOSPHERE: (47681..47713) ";; (or (equal? res '(1 2))"
+ ATMOSPHERE: (47713..47714) "\n"
+ ATMOSPHERE: (47714..47749) ";; (equal? res '(2 1)))))"
+ ATMOSPHERE: (47749..47751) "\n\n"
+ ATMOSPHERE: (47751..47786) ";; (test '(10 200 3000 40 500 6000)"
+ ATMOSPHERE: (47786..47787) "\n"
+ ATMOSPHERE: (47787..47824) ";; (let ((ls1 (list 10 100 1000))"
+ ATMOSPHERE: (47824..47825) "\n"
+ ATMOSPHERE: (47825..47863) ";; (ls2 (list 1 2 3 4 5 6)))"
+ ATMOSPHERE: (47863..47864) "\n"
+ ATMOSPHERE: (47864..47898) ";; (set-cdr! (cddr ls1) ls1)"
+ ATMOSPHERE: (47898..47899) "\n"
+ ATMOSPHERE: (47899..47925) ";; (map * ls1 ls2)))"
+ ATMOSPHERE: (47925..47927) "\n\n"
+ ATMOSPHERE: (47927..47981) ";; (test \"abdegh\" (string-map char-foldcase \"AbdEgH\"))"
+ ATMOSPHERE: (47981..47983) "\n\n"
+ ATMOSPHERE: (47983..48009) ";; (test \"IBM\" (string-map"
+ ATMOSPHERE: (48009..48010) "\n"
+ ATMOSPHERE: (48010..48025) ";; (lambda (c)"
+ ATMOSPHERE: (48025..48026) "\n"
+ ATMOSPHERE: (48026..48072) ";; (integer->char (+ 1 (char->integer c))))"
+ ATMOSPHERE: (48072..48073) "\n"
+ ATMOSPHERE: (48073..48084) ";; \"HAL\"))"
+ ATMOSPHERE: (48084..48086) "\n\n"
+ ATMOSPHERE: (48086..48107) ";; (test \"StUdLyCaPs\""
+ ATMOSPHERE: (48107..48108) "\n"
+ ATMOSPHERE: (48108..48126) ";; (string-map"
+ ATMOSPHERE: (48126..48127) "\n"
+ ATMOSPHERE: (48127..48201) ";; (lambda (c k) (if (eqv? k #\\u) (char-upcase c) (char-downcase c)))"
+ ATMOSPHERE: (48201..48202) "\n"
+ ATMOSPHERE: (48202..48226) ";; \"studlycaps xxx\""
+ ATMOSPHERE: (48226..48227) "\n"
+ ATMOSPHERE: (48227..48249) ";; \"ululululul\"))"
+ ATMOSPHERE: (48249..48251) "\n\n"
+ ATMOSPHERE: (48251..48309) ";; (test #(b e h) (vector-map cadr '#((a b) (d e) (g h))))"
+ ATMOSPHERE: (48309..48311) "\n\n"
+ ATMOSPHERE: (48311..48338) ";; (test #(1 4 27 256 3125)"
+ ATMOSPHERE: (48338..48339) "\n"
+ ATMOSPHERE: (48339..48381) ";; (vector-map (lambda (n) (expt n n))"
+ ATMOSPHERE: (48381..48382) "\n"
+ ATMOSPHERE: (48382..48416) ";; '#(1 2 3 4 5)))"
+ ATMOSPHERE: (48416..48418) "\n\n"
+ ATMOSPHERE: (48418..48473) ";; (test #(5 7 9) (vector-map + '#(1 2 3) '#(4 5 6 7)))"
+ ATMOSPHERE: (48473..48475) "\n\n"
+ ATMOSPHERE: (48475..48486) ";; (test #t"
+ ATMOSPHERE: (48486..48487) "\n"
+ ATMOSPHERE: (48487..48521) ";; (let ((res (let ((count 0))"
+ ATMOSPHERE: (48521..48522) "\n"
+ ATMOSPHERE: (48522..48553) ";; (vector-map"
+ ATMOSPHERE: (48553..48554) "\n"
+ ATMOSPHERE: (48554..48592) ";; (lambda (ignored)"
+ ATMOSPHERE: (48592..48593) "\n"
+ ATMOSPHERE: (48593..48640) ";; (set! count (+ count 1))"
+ ATMOSPHERE: (48640..48641) "\n"
+ ATMOSPHERE: (48641..48670) ";; count)"
+ ATMOSPHERE: (48670..48671) "\n"
+ ATMOSPHERE: (48671..48703) ";; '#(a b)))))"
+ ATMOSPHERE: (48703..48704) "\n"
+ ATMOSPHERE: (48704..48736) ";; (or (equal? res #(1 2))"
+ ATMOSPHERE: (48736..48737) "\n"
+ ATMOSPHERE: (48737..48772) ";; (equal? res #(2 1)))))"
+ ATMOSPHERE: (48772..48774) "\n\n"
+ ATMOSPHERE: (48774..48796) ";; (test #(0 1 4 9 16)"
+ ATMOSPHERE: (48796..48797) "\n"
+ ATMOSPHERE: (48797..48830) ";; (let ((v (make-vector 5)))"
+ ATMOSPHERE: (48830..48831) "\n"
+ ATMOSPHERE: (48831..48861) ";; (for-each (lambda (i)"
+ ATMOSPHERE: (48861..48862) "\n"
+ ATMOSPHERE: (48862..48909) ";; (vector-set! v i (* i i)))"
+ ATMOSPHERE: (48909..48910) "\n"
+ ATMOSPHERE: (48910..48942) ";; '(0 1 2 3 4))"
+ ATMOSPHERE: (48942..48943) "\n"
+ ATMOSPHERE: (48943..48955) ";; v))"
+ ATMOSPHERE: (48955..48957) "\n\n"
+ ATMOSPHERE: (48957..48970) ";; (test 9750"
+ ATMOSPHERE: (48970..48971) "\n"
+ ATMOSPHERE: (48971..49008) ";; (let ((ls1 (list 10 100 1000))"
+ ATMOSPHERE: (49008..49009) "\n"
+ ATMOSPHERE: (49009..49046) ";; (ls2 (list 1 2 3 4 5 6))"
+ ATMOSPHERE: (49046..49047) "\n"
+ ATMOSPHERE: (49047..49070) ";; (count 0))"
+ ATMOSPHERE: (49070..49071) "\n"
+ ATMOSPHERE: (49071..49105) ";; (set-cdr! (cddr ls1) ls1)"
+ ATMOSPHERE: (49105..49106) "\n"
+ ATMOSPHERE: (49106..49179) ";; (for-each (lambda (x y) (set! count (+ count (* x y)))) ls2 ls1)"
+ ATMOSPHERE: (49179..49180) "\n"
+ ATMOSPHERE: (49180..49196) ";; count))"
+ ATMOSPHERE: (49196..49198) "\n\n"
+ ATMOSPHERE: (49198..49226) ";; (test '(101 100 99 98 97)"
+ ATMOSPHERE: (49226..49227) "\n"
+ ATMOSPHERE: (49227..49248) ";; (let ((v '()))"
+ ATMOSPHERE: (49248..49249) "\n"
+ ATMOSPHERE: (49249..49274) ";; (string-for-each"
+ ATMOSPHERE: (49274..49275) "\n"
+ ATMOSPHERE: (49275..49333) ";; (lambda (c) (set! v (cons (char->integer c) v)))"
+ ATMOSPHERE: (49333..49334) "\n"
+ ATMOSPHERE: (49334..49352) ";; \"abcde\")"
+ ATMOSPHERE: (49352..49353) "\n"
+ ATMOSPHERE: (49353..49365) ";; v))"
+ ATMOSPHERE: (49365..49367) "\n\n"
+ ATMOSPHERE: (49367..49414) ";; (test '(0 1 4 9 16) (let ((v (make-list 5)))"
+ ATMOSPHERE: (49414..49415) "\n"
+ ATMOSPHERE: (49415..49436) ";; (vector-for-each"
+ ATMOSPHERE: (49436..49437) "\n"
+ ATMOSPHERE: (49437..49479) ";; (lambda (i) (list-set! v i (* i i)))"
+ ATMOSPHERE: (49479..49480) "\n"
+ ATMOSPHERE: (49480..49500) ";; '#(0 1 2 3 4))"
+ ATMOSPHERE: (49500..49501) "\n"
+ ATMOSPHERE: (49501..49509) ";; v))"
+ ATMOSPHERE: (49509..49511) "\n\n"
+ ATMOSPHERE: (49511..49554) ";; (test -3 (call-with-current-continuation"
+ ATMOSPHERE: (49554..49555) "\n"
+ ATMOSPHERE: (49555..49574) ";; (lambda (exit)"
+ ATMOSPHERE: (49574..49575) "\n"
+ ATMOSPHERE: (49575..49603) ";; (for-each (lambda (x)"
+ ATMOSPHERE: (49603..49604) "\n"
+ ATMOSPHERE: (49604..49640) ";; (if (negative? x)"
+ ATMOSPHERE: (49640..49641) "\n"
+ ATMOSPHERE: (49641..49674) ";; (exit x)))"
+ ATMOSPHERE: (49674..49675) "\n"
+ ATMOSPHERE: (49675..49713) ";; '(54 0 37 -3 245 19))"
+ ATMOSPHERE: (49713..49714) "\n"
+ ATMOSPHERE: (49714..49726) ";; #t)))"
+ ATMOSPHERE: (49726..49727) "\n"
+ ATMOSPHERE: (49727..49749) ";; (define list-length"
+ ATMOSPHERE: (49749..49750) "\n"
+ ATMOSPHERE: (49750..49768) ";; (lambda (obj)"
+ ATMOSPHERE: (49768..49769) "\n"
+ ATMOSPHERE: (49769..49807) ";; (call-with-current-continuation"
+ ATMOSPHERE: (49807..49808) "\n"
+ ATMOSPHERE: (49808..49833) ";; (lambda (return)"
+ ATMOSPHERE: (49833..49834) "\n"
+ ATMOSPHERE: (49834..49856) ";; (letrec ((r"
+ ATMOSPHERE: (49856..49857) "\n"
+ ATMOSPHERE: (49857..49891) ";; (lambda (obj)"
+ ATMOSPHERE: (49891..49892) "\n"
+ ATMOSPHERE: (49892..49936) ";; (cond ((null? obj) 0)"
+ ATMOSPHERE: (49936..49937) "\n"
+ ATMOSPHERE: (49937..49978) ";; ((pair? obj)"
+ ATMOSPHERE: (49978..49979) "\n"
+ ATMOSPHERE: (49979..50029) ";; (+ (r (cdr obj)) 1))"
+ ATMOSPHERE: (50029..50030) "\n"
+ ATMOSPHERE: (50030..50081) ";; (else (return #f))))))"
+ ATMOSPHERE: (50081..50082) "\n"
+ ATMOSPHERE: (50082..50107) ";; (r obj))))))"
+ ATMOSPHERE: (50107..50109) "\n\n"
+ ATMOSPHERE: (50109..50145) ";; (test 4 (list-length '(1 2 3 4)))"
+ ATMOSPHERE: (50145..50147) "\n\n"
+ ATMOSPHERE: (50147..50184) ";; (test #f (list-length '(a b . c)))"
+ ATMOSPHERE: (50184..50186) "\n\n"
+ ATMOSPHERE: (50186..50196) ";; (test 5"
+ ATMOSPHERE: (50196..50197) "\n"
+ ATMOSPHERE: (50197..50246) ";; (call-with-values (lambda () (values 4 5))"
+ ATMOSPHERE: (50246..50247) "\n"
+ ATMOSPHERE: (50247..50274) ";; (lambda (a b) b)))"
+ ATMOSPHERE: (50274..50276) "\n\n"
+ ATMOSPHERE: (50276..50311) ";; (test -1 (call-with-values * -))"
+ ATMOSPHERE: (50311..50313) "\n\n"
+ ATMOSPHERE: (50313..50348) ";; (test '(connect talk1 disconnect"
+ ATMOSPHERE: (50348..50349) "\n"
+ ATMOSPHERE: (50349..50385) ";; connect talk2 disconnect)"
+ ATMOSPHERE: (50385..50386) "\n"
+ ATMOSPHERE: (50386..50409) ";; (let ((path '())"
+ ATMOSPHERE: (50409..50410) "\n"
+ ATMOSPHERE: (50410..50430) ";; (c #f))"
+ ATMOSPHERE: (50430..50431) "\n"
+ ATMOSPHERE: (50431..50462) ";; (let ((add (lambda (s)"
+ ATMOSPHERE: (50462..50463) "\n"
+ ATMOSPHERE: (50463..50513) ";; (set! path (cons s path)))))"
+ ATMOSPHERE: (50513..50514) "\n"
+ ATMOSPHERE: (50514..50538) ";; (dynamic-wind"
+ ATMOSPHERE: (50538..50539) "\n"
+ ATMOSPHERE: (50539..50578) ";; (lambda () (add 'connect))"
+ ATMOSPHERE: (50578..50579) "\n"
+ ATMOSPHERE: (50579..50602) ";; (lambda ()"
+ ATMOSPHERE: (50602..50603) "\n"
+ ATMOSPHERE: (50603..50654) ";; (add (call-with-current-continuation"
+ ATMOSPHERE: (50654..50655) "\n"
+ ATMOSPHERE: (50655..50688) ";; (lambda (c0)"
+ ATMOSPHERE: (50688..50689) "\n"
+ ATMOSPHERE: (50689..50723) ";; (set! c c0)"
+ ATMOSPHERE: (50723..50724) "\n"
+ ATMOSPHERE: (50724..50757) ";; 'talk1))))"
+ ATMOSPHERE: (50757..50758) "\n"
+ ATMOSPHERE: (50758..50801) ";; (lambda () (add 'disconnect)))"
+ ATMOSPHERE: (50801..50802) "\n"
+ ATMOSPHERE: (50802..50836) ";; (if (< (length path) 4)"
+ ATMOSPHERE: (50836..50837) "\n"
+ ATMOSPHERE: (50837..50862) ";; (c 'talk2)"
+ ATMOSPHERE: (50862..50863) "\n"
+ ATMOSPHERE: (50863..50896) ";; (reverse path)))))"
+ ATMOSPHERE: (50896..50898) "\n\n"
+ FORM: (50898..50908)
+ OPEN_PAREN: (50898..50899) "("
+ SYMBOL: (50899..50907)
+ IDENTIFIER: (50899..50907) "test-end"
+ CLOSE_PAREN: (50907..50908) ")"
+ ATMOSPHERE: (50908..50910) "\n\n"
+ FORM: (50910..50940)
+ OPEN_PAREN: (50910..50911) "("
+ SYMBOL: (50911..50921)
+ IDENTIFIER: (50911..50921) "test-begin"
+ ATMOSPHERE: (50921..50922) " "
+ CONSTANT: (50922..50939)
+ STRING: (50922..50939) "\"6.11 Exceptions\""
+ CLOSE_PAREN: (50939..50940) ")"
+ ATMOSPHERE: (50940..50942) "\n\n"
+ ATMOSPHERE: (50942..50953) ";; (test 65"
+ ATMOSPHERE: (50953..50954) "\n"
+ ATMOSPHERE: (50954..50984) ";; (with-exception-handler"
+ ATMOSPHERE: (50984..50985) "\n"
+ ATMOSPHERE: (50985..51010) ";; (lambda (con) 42)"
+ ATMOSPHERE: (51010..51011) "\n"
+ ATMOSPHERE: (51011..51029) ";; (lambda ()"
+ ATMOSPHERE: (51029..51030) "\n"
+ ATMOSPHERE: (51030..51083) ";; (+ (raise-continuable \"should be a number\")"
+ ATMOSPHERE: (51083..51084) "\n"
+ ATMOSPHERE: (51084..51103) ";; 23))))"
+ ATMOSPHERE: (51103..51105) "\n\n"
+ ATMOSPHERE: (51105..51116) ";; (test #t"
+ ATMOSPHERE: (51116..51117) "\n"
+ ATMOSPHERE: (51117..51187) ";; (error-object? (guard (exn (else exn)) (error \"BOOM!\" 1 2 3))))"
+ ATMOSPHERE: (51187..51188) "\n"
+ ATMOSPHERE: (51188..51204) ";; (test \"BOOM!\""
+ ATMOSPHERE: (51204..51205) "\n"
+ ATMOSPHERE: (51205..51282) ";; (error-object-message (guard (exn (else exn)) (error \"BOOM!\" 1 2 3))))"
+ ATMOSPHERE: (51282..51283) "\n"
+ ATMOSPHERE: (51283..51300) ";; (test '(1 2 3)"
+ ATMOSPHERE: (51300..51301) "\n"
+ ATMOSPHERE: (51301..51380) ";; (error-object-irritants (guard (exn (else exn)) (error \"BOOM!\" 1 2 3))))"
+ ATMOSPHERE: (51380..51382) "\n\n"
+ ATMOSPHERE: (51382..51393) ";; (test #f"
+ ATMOSPHERE: (51393..51394) "\n"
+ ATMOSPHERE: (51394..51456) ";; (file-error? (guard (exn (else exn)) (error \"BOOM!\"))))"
+ ATMOSPHERE: (51456..51457) "\n"
+ ATMOSPHERE: (51457..51468) ";; (test #t"
+ ATMOSPHERE: (51468..51469) "\n"
+ ATMOSPHERE: (51469..51550) ";; (file-error? (guard (exn (else exn)) (open-input-file \" no such file \"))))"
+ ATMOSPHERE: (51550..51552) "\n\n"
+ ATMOSPHERE: (51552..51563) ";; (test #f"
+ ATMOSPHERE: (51563..51564) "\n"
+ ATMOSPHERE: (51564..51626) ";; (read-error? (guard (exn (else exn)) (error \"BOOM!\"))))"
+ ATMOSPHERE: (51626..51627) "\n"
+ ATMOSPHERE: (51627..51638) ";; (test #t"
+ ATMOSPHERE: (51638..51639) "\n"
+ ATMOSPHERE: (51639..51716) ";; (read-error? (guard (exn (else exn)) (read (open-input-string \")\")))))"
+ ATMOSPHERE: (51716..51717) "\n"
+ ATMOSPHERE: (51717..51728) ";; (test #t"
+ ATMOSPHERE: (51728..51729) "\n"
+ ATMOSPHERE: (51729..51807) ";; (read-error? (guard (exn (else exn)) (read (open-input-string \"\\\"\")))))"
+ ATMOSPHERE: (51807..51809) "\n\n"
+ ATMOSPHERE: (51809..51844) ";; (define something-went-wrong #f)"
+ ATMOSPHERE: (51844..51845) "\n"
+ ATMOSPHERE: (51845..51884) ";; (define (test-exception-handler-1 v)"
+ ATMOSPHERE: (51884..51885) "\n"
+ ATMOSPHERE: (51885..51921) ";; (call-with-current-continuation"
+ ATMOSPHERE: (51921..51922) "\n"
+ ATMOSPHERE: (51922..51939) ";; (lambda (k)"
+ ATMOSPHERE: (51939..51940) "\n"
+ ATMOSPHERE: (51940..51971) ";; (with-exception-handler"
+ ATMOSPHERE: (51971..51972) "\n"
+ ATMOSPHERE: (51972..51992) ";; (lambda (x)"
+ ATMOSPHERE: (51992..51993) "\n"
+ ATMOSPHERE: (51993..52054) ";; (set! something-went-wrong (list \"condition: \" x))"
+ ATMOSPHERE: (52054..52055) "\n"
+ ATMOSPHERE: (52055..52081) ";; (k 'exception))"
+ ATMOSPHERE: (52081..52082) "\n"
+ ATMOSPHERE: (52082..52101) ";; (lambda ()"
+ ATMOSPHERE: (52101..52102) "\n"
+ ATMOSPHERE: (52102..52164) ";; (+ 1 (if (> v 0) (+ v 100) (raise 'an-error))))))))"
+ ATMOSPHERE: (52164..52165) "\n"
+ ATMOSPHERE: (52165..52207) ";; (test 106 (test-exception-handler-1 5))"
+ ATMOSPHERE: (52207..52208) "\n"
+ ATMOSPHERE: (52208..52241) ";; (test #f something-went-wrong)"
+ ATMOSPHERE: (52241..52242) "\n"
+ ATMOSPHERE: (52242..52292) ";; (test 'exception (test-exception-handler-1 -1))"
+ ATMOSPHERE: (52292..52293) "\n"
+ ATMOSPHERE: (52293..52349) ";; (test '(\"condition: \" an-error) something-went-wrong)"
+ ATMOSPHERE: (52349..52351) "\n\n"
+ ATMOSPHERE: (52351..52384) ";; (set! something-went-wrong #f)"
+ ATMOSPHERE: (52384..52385) "\n"
+ ATMOSPHERE: (52385..52424) ";; (define (test-exception-handler-2 v)"
+ ATMOSPHERE: (52424..52425) "\n"
+ ATMOSPHERE: (52425..52474) ";; (guard (ex (else 'caught-another-exception))"
+ ATMOSPHERE: (52474..52475) "\n"
+ ATMOSPHERE: (52475..52505) ";; (with-exception-handler"
+ ATMOSPHERE: (52505..52506) "\n"
+ ATMOSPHERE: (52506..52525) ";; (lambda (x)"
+ ATMOSPHERE: (52525..52526) "\n"
+ ATMOSPHERE: (52526..52566) ";; (set! something-went-wrong #t)"
+ ATMOSPHERE: (52566..52567) "\n"
+ ATMOSPHERE: (52567..52599) ";; (list \"exception:\" x))"
+ ATMOSPHERE: (52599..52600) "\n"
+ ATMOSPHERE: (52600..52618) ";; (lambda ()"
+ ATMOSPHERE: (52618..52619) "\n"
+ ATMOSPHERE: (52619..52679) ";; (+ 1 (if (> v 0) (+ v 100) (raise 'an-error)))))))"
+ ATMOSPHERE: (52679..52680) "\n"
+ ATMOSPHERE: (52680..52722) ";; (test 106 (test-exception-handler-2 5))"
+ ATMOSPHERE: (52722..52723) "\n"
+ ATMOSPHERE: (52723..52756) ";; (test #f something-went-wrong)"
+ ATMOSPHERE: (52756..52757) "\n"
+ ATMOSPHERE: (52757..52822) ";; (test 'caught-another-exception (test-exception-handler-2 -1))"
+ ATMOSPHERE: (52822..52823) "\n"
+ ATMOSPHERE: (52823..52856) ";; (test #t something-went-wrong)"
+ ATMOSPHERE: (52856..52858) "\n\n"
+ ATMOSPHERE: (52858..52921) ";; ;; Based on an example from R6RS-lib section 7.1 Exceptions."
+ ATMOSPHERE: (52921..52922) "\n"
+ ATMOSPHERE: (52922..52982) ";; ;; R7RS section 6.11 Exceptions has a simplified version."
+ ATMOSPHERE: (52982..52983) "\n"
+ ATMOSPHERE: (52983..53019) ";; (let* ((out (open-output-string))"
+ ATMOSPHERE: (53019..53020) "\n"
+ ATMOSPHERE: (53020..53060) ";; (value (with-exception-handler"
+ ATMOSPHERE: (53060..53061) "\n"
+ ATMOSPHERE: (53061..53092) ";; (lambda (con)"
+ ATMOSPHERE: (53092..53093) "\n"
+ ATMOSPHERE: (53093..53118) ";; (cond"
+ ATMOSPHERE: (53118..53119) "\n"
+ ATMOSPHERE: (53119..53158) ";; ((not (list? con))"
+ ATMOSPHERE: (53158..53159) "\n"
+ ATMOSPHERE: (53159..53193) ";; (raise con))"
+ ATMOSPHERE: (53193..53194) "\n"
+ ATMOSPHERE: (53194..53227) ";; ((list? con)"
+ ATMOSPHERE: (53227..53228) "\n"
+ ATMOSPHERE: (53228..53274) ";; (display (car con) out))"
+ ATMOSPHERE: (53274..53275) "\n"
+ ATMOSPHERE: (53275..53301) ";; (else"
+ ATMOSPHERE: (53301..53302) "\n"
+ ATMOSPHERE: (53302..53367) ";; (display \"a warning has been issued\" out)))"
+ ATMOSPHERE: (53367..53368) "\n"
+ ATMOSPHERE: (53368..53391) ";; 42)"
+ ATMOSPHERE: (53391..53392) "\n"
+ ATMOSPHERE: (53392..53420) ";; (lambda ()"
+ ATMOSPHERE: (53420..53421) "\n"
+ ATMOSPHERE: (53421..53462) ";; (+ (raise-continuable"
+ ATMOSPHERE: (53462..53463) "\n"
+ ATMOSPHERE: (53463..53515) ";; (list \"should be a number\"))"
+ ATMOSPHERE: (53515..53516) "\n"
+ ATMOSPHERE: (53516..53546) ";; 23)))))"
+ ATMOSPHERE: (53546..53547) "\n"
+ ATMOSPHERE: (53547..53603) ";; (test \"should be a number\" (get-output-string out))"
+ ATMOSPHERE: (53603..53604) "\n"
+ ATMOSPHERE: (53604..53625) ";; (test 65 value))"
+ ATMOSPHERE: (53625..53627) "\n\n"
+ ATMOSPHERE: (53627..53669) ";; ;; From SRFI-34 \"Examples\" section - #3"
+ ATMOSPHERE: (53669..53670) "\n"
+ ATMOSPHERE: (53670..53713) ";; (define (test-exception-handler-3 v out)"
+ ATMOSPHERE: (53713..53714) "\n"
+ ATMOSPHERE: (53714..53736) ";; (guard (condition"
+ ATMOSPHERE: (53736..53737) "\n"
+ ATMOSPHERE: (53737..53755) ";; (else"
+ ATMOSPHERE: (53755..53756) "\n"
+ ATMOSPHERE: (53756..53797) ";; (display \"condition: \" out)"
+ ATMOSPHERE: (53797..53798) "\n"
+ ATMOSPHERE: (53798..53833) ";; (write condition out)"
+ ATMOSPHERE: (53833..53834) "\n"
+ ATMOSPHERE: (53834..53865) ";; (display #\\! out)"
+ ATMOSPHERE: (53865..53866) "\n"
+ ATMOSPHERE: (53866..53892) ";; 'exception))"
+ ATMOSPHERE: (53892..53893) "\n"
+ ATMOSPHERE: (53893..53952) ";; (+ 1 (if (= v 0) (raise 'an-error) (/ 10 v)))))"
+ ATMOSPHERE: (53952..53953) "\n"
+ ATMOSPHERE: (53953..53989) ";; (let* ((out (open-output-string))"
+ ATMOSPHERE: (53989..53990) "\n"
+ ATMOSPHERE: (53990..54041) ";; (value (test-exception-handler-3 0 out)))"
+ ATMOSPHERE: (54041..54042) "\n"
+ ATMOSPHERE: (54042..54070) ";; (test 'exception value)"
+ ATMOSPHERE: (54070..54071) "\n"
+ ATMOSPHERE: (54071..54130) ";; (test \"condition: an-error!\" (get-output-string out)))"
+ ATMOSPHERE: (54130..54132) "\n\n"
+ ATMOSPHERE: (54132..54175) ";; (define (test-exception-handler-4 v out)"
+ ATMOSPHERE: (54175..54176) "\n"
+ ATMOSPHERE: (54176..54212) ";; (call-with-current-continuation"
+ ATMOSPHERE: (54212..54213) "\n"
+ ATMOSPHERE: (54213..54230) ";; (lambda (k)"
+ ATMOSPHERE: (54230..54231) "\n"
+ ATMOSPHERE: (54231..54262) ";; (with-exception-handler"
+ ATMOSPHERE: (54262..54263) "\n"
+ ATMOSPHERE: (54263..54283) ";; (lambda (x)"
+ ATMOSPHERE: (54283..54284) "\n"
+ ATMOSPHERE: (54284..54320) ";; (display \"reraised \" out)"
+ ATMOSPHERE: (54320..54321) "\n"
+ ATMOSPHERE: (54321..54363) ";; (write x out) (display #\\! out)"
+ ATMOSPHERE: (54363..54364) "\n"
+ ATMOSPHERE: (54364..54385) ";; (k 'zero))"
+ ATMOSPHERE: (54385..54386) "\n"
+ ATMOSPHERE: (54386..54405) ";; (lambda ()"
+ ATMOSPHERE: (54405..54406) "\n"
+ ATMOSPHERE: (54406..54434) ";; (guard (condition"
+ ATMOSPHERE: (54434..54435) "\n"
+ ATMOSPHERE: (54435..54476) ";; ((positive? condition)"
+ ATMOSPHERE: (54476..54477) "\n"
+ ATMOSPHERE: (54477..54507) ";; 'positive)"
+ ATMOSPHERE: (54507..54508) "\n"
+ ATMOSPHERE: (54508..54549) ";; ((negative? condition)"
+ ATMOSPHERE: (54549..54550) "\n"
+ ATMOSPHERE: (54550..54581) ";; 'negative))"
+ ATMOSPHERE: (54581..54582) "\n"
+ ATMOSPHERE: (54582..54610) ";; (raise v)))))))"
+ ATMOSPHERE: (54610..54612) "\n\n"
+ ATMOSPHERE: (54612..54654) ";; ;; From SRFI-34 \"Examples\" section - #5"
+ ATMOSPHERE: (54654..54655) "\n"
+ ATMOSPHERE: (54655..54691) ";; (let* ((out (open-output-string))"
+ ATMOSPHERE: (54691..54692) "\n"
+ ATMOSPHERE: (54692..54743) ";; (value (test-exception-handler-4 1 out)))"
+ ATMOSPHERE: (54743..54744) "\n"
+ ATMOSPHERE: (54744..54782) ";; (test \"\" (get-output-string out))"
+ ATMOSPHERE: (54782..54783) "\n"
+ ATMOSPHERE: (54783..54811) ";; (test 'positive value))"
+ ATMOSPHERE: (54811..54812) "\n"
+ ATMOSPHERE: (54812..54854) ";; ;; From SRFI-34 \"Examples\" section - #6"
+ ATMOSPHERE: (54854..54855) "\n"
+ ATMOSPHERE: (54855..54891) ";; (let* ((out (open-output-string))"
+ ATMOSPHERE: (54891..54892) "\n"
+ ATMOSPHERE: (54892..54944) ";; (value (test-exception-handler-4 -1 out)))"
+ ATMOSPHERE: (54944..54945) "\n"
+ ATMOSPHERE: (54945..54983) ";; (test \"\" (get-output-string out))"
+ ATMOSPHERE: (54983..54984) "\n"
+ ATMOSPHERE: (54984..55012) ";; (test 'negative value))"
+ ATMOSPHERE: (55012..55013) "\n"
+ ATMOSPHERE: (55013..55055) ";; ;; From SRFI-34 \"Examples\" section - #7"
+ ATMOSPHERE: (55055..55056) "\n"
+ ATMOSPHERE: (55056..55092) ";; (let* ((out (open-output-string))"
+ ATMOSPHERE: (55092..55093) "\n"
+ ATMOSPHERE: (55093..55144) ";; (value (test-exception-handler-4 0 out)))"
+ ATMOSPHERE: (55144..55145) "\n"
+ ATMOSPHERE: (55145..55194) ";; (test \"reraised 0!\" (get-output-string out))"
+ ATMOSPHERE: (55194..55195) "\n"
+ ATMOSPHERE: (55195..55219) ";; (test 'zero value))"
+ ATMOSPHERE: (55219..55221) "\n\n"
+ ATMOSPHERE: (55221..55263) ";; ;; From SRFI-34 \"Examples\" section - #8"
+ ATMOSPHERE: (55263..55264) "\n"
+ ATMOSPHERE: (55264..55275) ";; (test 42"
+ ATMOSPHERE: (55275..55276) "\n"
+ ATMOSPHERE: (55276..55300) ";; (guard (condition"
+ ATMOSPHERE: (55300..55301) "\n"
+ ATMOSPHERE: (55301..55344) ";; ((assq 'a condition) => cdr)"
+ ATMOSPHERE: (55344..55345) "\n"
+ ATMOSPHERE: (55345..55382) ";; ((assq 'b condition)))"
+ ATMOSPHERE: (55382..55383) "\n"
+ ATMOSPHERE: (55383..55421) ";; (raise (list (cons 'a 42)))))"
+ ATMOSPHERE: (55421..55423) "\n\n"
+ ATMOSPHERE: (55423..55465) ";; ;; From SRFI-34 \"Examples\" section - #9"
+ ATMOSPHERE: (55465..55466) "\n"
+ ATMOSPHERE: (55466..55484) ";; (test '(b . 23)"
+ ATMOSPHERE: (55484..55485) "\n"
+ ATMOSPHERE: (55485..55509) ";; (guard (condition"
+ ATMOSPHERE: (55509..55510) "\n"
+ ATMOSPHERE: (55510..55553) ";; ((assq 'a condition) => cdr)"
+ ATMOSPHERE: (55553..55554) "\n"
+ ATMOSPHERE: (55554..55591) ";; ((assq 'b condition)))"
+ ATMOSPHERE: (55591..55592) "\n"
+ ATMOSPHERE: (55592..55630) ";; (raise (list (cons 'b 23)))))"
+ ATMOSPHERE: (55630..55632) "\n\n"
+ ATMOSPHERE: (55632..55650) ";; (test 'caught-d"
+ ATMOSPHERE: (55650..55651) "\n"
+ ATMOSPHERE: (55651..55675) ";; (guard (condition"
+ ATMOSPHERE: (55675..55676) "\n"
+ ATMOSPHERE: (55676..55722) ";; ((assq 'c condition) 'caught-c)"
+ ATMOSPHERE: (55722..55723) "\n"
+ ATMOSPHERE: (55723..55770) ";; ((assq 'd condition) 'caught-d))"
+ ATMOSPHERE: (55770..55771) "\n"
+ ATMOSPHERE: (55771..55785) ";; (list"
+ ATMOSPHERE: (55785..55786) "\n"
+ ATMOSPHERE: (55786..55804) ";; (sqrt 8)"
+ ATMOSPHERE: (55804..55805) "\n"
+ ATMOSPHERE: (55805..55832) ";; (guard (condition"
+ ATMOSPHERE: (55832..55833) "\n"
+ ATMOSPHERE: (55833..55879) ";; ((assq 'a condition) => cdr)"
+ ATMOSPHERE: (55879..55880) "\n"
+ ATMOSPHERE: (55880..55920) ";; ((assq 'b condition)))"
+ ATMOSPHERE: (55920..55921) "\n"
+ ATMOSPHERE: (55921..55964) ";; (raise (list (cons 'd 24)))))))"
+ ATMOSPHERE: (55964..55966) "\n\n"
+ FORM: (55966..55976)
+ OPEN_PAREN: (55966..55967) "("
+ SYMBOL: (55967..55975)
+ IDENTIFIER: (55967..55975) "test-end"
+ CLOSE_PAREN: (55975..55976) ")"
+ ATMOSPHERE: (55976..55978) "\n\n"
+ FORM: (55978..56025)
+ OPEN_PAREN: (55978..55979) "("
+ SYMBOL: (55979..55989)
+ IDENTIFIER: (55979..55989) "test-begin"
+ ATMOSPHERE: (55989..55990) " "
+ CONSTANT: (55990..56024)
+ STRING: (55990..56024) "\"6.12 Environments and evaluation\""
+ CLOSE_PAREN: (56024..56025) ")"
+ ATMOSPHERE: (56025..56027) "\n\n"
+ ATMOSPHERE: (56027..56088) ";; ;; (test 21 (eval '(* 7 3) (scheme-report-environment 5)))"
+ ATMOSPHERE: (56088..56090) "\n\n"
+ ATMOSPHERE: (56090..56101) ";; (test 20"
+ ATMOSPHERE: (56101..56102) "\n"
+ ATMOSPHERE: (56102..56171) ";; (let ((f (eval '(lambda (f x) (f x x)) (null-environment 5))))"
+ ATMOSPHERE: (56171..56172) "\n"
+ ATMOSPHERE: (56172..56191) ";; (f + 10)))"
+ ATMOSPHERE: (56191..56193) "\n\n"
+ ATMOSPHERE: (56193..56256) ";; (test 1024 (eval '(expt 2 10) (environment '(scheme base))))"
+ ATMOSPHERE: (56256..56257) "\n"
+ ATMOSPHERE: (56257..56294) ";; ;; (sin 0) may return exact number"
+ ATMOSPHERE: (56294..56295) "\n"
+ ATMOSPHERE: (56295..56366) ";; (test 0.0 (inexact (eval '(sin 0) (environment '(scheme inexact)))))"
+ ATMOSPHERE: (56366..56367) "\n"
+ ATMOSPHERE: (56367..56378) ";; ;; ditto"
+ ATMOSPHERE: (56378..56379) "\n"
+ ATMOSPHERE: (56379..56435) ";; (test 1024.0 (eval '(+ (expt 2 10) (inexact (sin 0)))"
+ ATMOSPHERE: (56435..56436) "\n"
+ ATMOSPHERE: (56436..56506) ";; (environment '(scheme base) '(scheme inexact))))"
+ ATMOSPHERE: (56506..56508) "\n\n"
+ FORM: (56508..56518)
+ OPEN_PAREN: (56508..56509) "("
+ SYMBOL: (56509..56517)
+ IDENTIFIER: (56509..56517) "test-end"
+ CLOSE_PAREN: (56517..56518) ")"
+ ATMOSPHERE: (56518..56520) "\n\n"
+ FORM: (56520..56556)
+ OPEN_PAREN: (56520..56521) "("
+ SYMBOL: (56521..56531)
+ IDENTIFIER: (56521..56531) "test-begin"
+ ATMOSPHERE: (56531..56532) " "
+ CONSTANT: (56532..56555)
+ STRING: (56532..56555) "\"6.13 Input and output\""
+ CLOSE_PAREN: (56555..56556) ")"
+ ATMOSPHERE: (56556..56558) "\n\n"
+ ATMOSPHERE: (56558..56599) ";; (test #t (port? (current-input-port)))"
+ ATMOSPHERE: (56599..56600) "\n"
+ ATMOSPHERE: (56600..56647) ";; (test #t (input-port? (current-input-port)))"
+ ATMOSPHERE: (56647..56648) "\n"
+ ATMOSPHERE: (56648..56697) ";; (test #t (output-port? (current-output-port)))"
+ ATMOSPHERE: (56697..56698) "\n"
+ ATMOSPHERE: (56698..56746) ";; (test #t (output-port? (current-error-port)))"
+ ATMOSPHERE: (56746..56747) "\n"
+ ATMOSPHERE: (56747..56799) ";; (test #t (input-port? (open-input-string \"abc\")))"
+ ATMOSPHERE: (56799..56800) "\n"
+ ATMOSPHERE: (56800..56848) ";; (test #t (output-port? (open-output-string)))"
+ ATMOSPHERE: (56848..56850) "\n\n"
+ ATMOSPHERE: (56850..56904) ";; (test #t (textual-port? (open-input-string \"abc\")))"
+ ATMOSPHERE: (56904..56905) "\n"
+ ATMOSPHERE: (56905..56954) ";; (test #t (textual-port? (open-output-string)))"
+ ATMOSPHERE: (56954..56955) "\n"
+ ATMOSPHERE: (56955..57017) ";; (test #t (binary-port? (open-input-bytevector #u8(0 1 2))))"
+ ATMOSPHERE: (57017..57018) "\n"
+ ATMOSPHERE: (57018..57070) ";; (test #t (binary-port? (open-output-bytevector)))"
+ ATMOSPHERE: (57070..57072) "\n\n"
+ ATMOSPHERE: (57072..57129) ";; (test #t (input-port-open? (open-input-string \"abc\")))"
+ ATMOSPHERE: (57129..57130) "\n"
+ ATMOSPHERE: (57130..57183) ";; (test #t (output-port-open? (open-output-string)))"
+ ATMOSPHERE: (57183..57185) "\n\n"
+ ATMOSPHERE: (57185..57196) ";; (test #f"
+ ATMOSPHERE: (57196..57197) "\n"
+ ATMOSPHERE: (57197..57241) ";; (let ((in (open-input-string \"abc\")))"
+ ATMOSPHERE: (57241..57242) "\n"
+ ATMOSPHERE: (57242..57272) ";; (close-input-port in)"
+ ATMOSPHERE: (57272..57273) "\n"
+ ATMOSPHERE: (57273..57305) ";; (input-port-open? in)))"
+ ATMOSPHERE: (57305..57307) "\n\n"
+ ATMOSPHERE: (57307..57318) ";; (test #f"
+ ATMOSPHERE: (57318..57319) "\n"
+ ATMOSPHERE: (57319..57359) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (57359..57360) "\n"
+ ATMOSPHERE: (57360..57392) ";; (close-output-port out)"
+ ATMOSPHERE: (57392..57393) "\n"
+ ATMOSPHERE: (57393..57427) ";; (output-port-open? out)))"
+ ATMOSPHERE: (57427..57429) "\n\n"
+ ATMOSPHERE: (57429..57440) ";; (test #f"
+ ATMOSPHERE: (57440..57441) "\n"
+ ATMOSPHERE: (57441..57481) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (57481..57482) "\n"
+ ATMOSPHERE: (57482..57507) ";; (close-port out)"
+ ATMOSPHERE: (57507..57508) "\n"
+ ATMOSPHERE: (57508..57542) ";; (output-port-open? out)))"
+ ATMOSPHERE: (57542..57544) "\n\n"
+ ATMOSPHERE: (57544..57559) ";; (test 'error"
+ ATMOSPHERE: (57559..57560) "\n"
+ ATMOSPHERE: (57560..57604) ";; (let ((in (open-input-string \"abc\")))"
+ ATMOSPHERE: (57604..57605) "\n"
+ ATMOSPHERE: (57605..57635) ";; (close-input-port in)"
+ ATMOSPHERE: (57635..57636) "\n"
+ ATMOSPHERE: (57636..57689) ";; (guard (exn (else 'error)) (read-char in))))"
+ ATMOSPHERE: (57689..57691) "\n\n"
+ ATMOSPHERE: (57691..57706) ";; (test 'error"
+ ATMOSPHERE: (57706..57707) "\n"
+ ATMOSPHERE: (57707..57747) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (57747..57748) "\n"
+ ATMOSPHERE: (57748..57780) ";; (close-output-port out)"
+ ATMOSPHERE: (57780..57781) "\n"
+ ATMOSPHERE: (57781..57840) ";; (guard (exn (else 'error)) (write-char #\\c out))))"
+ ATMOSPHERE: (57840..57842) "\n\n"
+ ATMOSPHERE: (57842..57881) ";; (test #t (eof-object? (eof-object)))"
+ ATMOSPHERE: (57881..57882) "\n"
+ ATMOSPHERE: (57882..57938) ";; (test #t (eof-object? (read (open-input-string \"\"))))"
+ ATMOSPHERE: (57938..57939) "\n"
+ ATMOSPHERE: (57939..57990) ";; (test #t (char-ready? (open-input-string \"42\")))"
+ ATMOSPHERE: (57990..57991) "\n"
+ ATMOSPHERE: (57991..58037) ";; (test 42 (read (open-input-string \" 42 \")))"
+ ATMOSPHERE: (58037..58039) "\n\n"
+ ATMOSPHERE: (58039..58100) ";; (test #t (eof-object? (read-char (open-input-string \"\"))))"
+ ATMOSPHERE: (58100..58101) "\n"
+ ATMOSPHERE: (58101..58152) ";; (test #\\a (read-char (open-input-string \"abc\")))"
+ ATMOSPHERE: (58152..58154) "\n\n"
+ ATMOSPHERE: (58154..58215) ";; (test #t (eof-object? (read-line (open-input-string \"\"))))"
+ ATMOSPHERE: (58215..58216) "\n"
+ ATMOSPHERE: (58216..58269) ";; (test \"abc\" (read-line (open-input-string \"abc\")))"
+ ATMOSPHERE: (58269..58270) "\n"
+ ATMOSPHERE: (58270..58330) ";; (test \"abc\" (read-line (open-input-string \"abc\\ndef\\n\")))"
+ ATMOSPHERE: (58330..58332) "\n\n"
+ ATMOSPHERE: (58332..58397) ";; (test #t (eof-object? (read-string 3 (open-input-string \"\"))))"
+ ATMOSPHERE: (58397..58398) "\n"
+ ATMOSPHERE: (58398..58456) ";; (test \"abc\" (read-string 3 (open-input-string \"abcd\")))"
+ ATMOSPHERE: (58456..58457) "\n"
+ ATMOSPHERE: (58457..58521) ";; (test \"abc\" (read-string 3 (open-input-string \"abc\\ndef\\n\")))"
+ ATMOSPHERE: (58521..58523) "\n\n"
+ ATMOSPHERE: (58523..58596) ";; (let ((in (open-input-string (string #\\x10F700 #\\x10F701 #\\x10F702))))"
+ ATMOSPHERE: (58596..58597) "\n"
+ ATMOSPHERE: (58597..58628) ";; (let* ((c0 (peek-char in))"
+ ATMOSPHERE: (58628..58629) "\n"
+ ATMOSPHERE: (58629..58660) ";; (c1 (read-char in))"
+ ATMOSPHERE: (58660..58661) "\n"
+ ATMOSPHERE: (58661..58692) ";; (c2 (read-char in))"
+ ATMOSPHERE: (58692..58693) "\n"
+ ATMOSPHERE: (58693..58725) ";; (c3 (read-char in)))"
+ ATMOSPHERE: (58725..58726) "\n"
+ ATMOSPHERE: (58726..58752) ";; (test #\\x10F700 c0)"
+ ATMOSPHERE: (58752..58753) "\n"
+ ATMOSPHERE: (58753..58779) ";; (test #\\x10F700 c1)"
+ ATMOSPHERE: (58779..58780) "\n"
+ ATMOSPHERE: (58780..58806) ";; (test #\\x10F701 c2)"
+ ATMOSPHERE: (58806..58807) "\n"
+ ATMOSPHERE: (58807..58835) ";; (test #\\x10F702 c3)))"
+ ATMOSPHERE: (58835..58837) "\n\n"
+ ATMOSPHERE: (58837..58864) ";; (test (string #\\x10F700)"
+ ATMOSPHERE: (58864..58865) "\n"
+ ATMOSPHERE: (58865..58905) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (58905..58906) "\n"
+ ATMOSPHERE: (58906..58941) ";; (write-char #\\x10F700 out)"
+ ATMOSPHERE: (58941..58942) "\n"
+ ATMOSPHERE: (58942..58976) ";; (get-output-string out)))"
+ ATMOSPHERE: (58976..58978) "\n\n"
+ ATMOSPHERE: (58978..58992) ";; (test \"abc\""
+ ATMOSPHERE: (58992..58993) "\n"
+ ATMOSPHERE: (58993..59033) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (59033..59034) "\n"
+ ATMOSPHERE: (59034..59059) ";; (write 'abc out)"
+ ATMOSPHERE: (59059..59060) "\n"
+ ATMOSPHERE: (59060..59094) ";; (get-output-string out)))"
+ ATMOSPHERE: (59094..59096) "\n\n"
+ ATMOSPHERE: (59096..59114) ";; (test \"abc def\""
+ ATMOSPHERE: (59114..59115) "\n"
+ ATMOSPHERE: (59115..59155) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (59155..59156) "\n"
+ ATMOSPHERE: (59156..59188) ";; (display \"abc def\" out)"
+ ATMOSPHERE: (59188..59189) "\n"
+ ATMOSPHERE: (59189..59223) ";; (get-output-string out)))"
+ ATMOSPHERE: (59223..59225) "\n\n"
+ ATMOSPHERE: (59225..59239) ";; (test \"abc\""
+ ATMOSPHERE: (59239..59240) "\n"
+ ATMOSPHERE: (59240..59280) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (59280..59281) "\n"
+ ATMOSPHERE: (59281..59307) ";; (display #\\a out)"
+ ATMOSPHERE: (59307..59308) "\n"
+ ATMOSPHERE: (59308..59334) ";; (display \"b\" out)"
+ ATMOSPHERE: (59334..59335) "\n"
+ ATMOSPHERE: (59335..59361) ";; (display #\\c out)"
+ ATMOSPHERE: (59361..59362) "\n"
+ ATMOSPHERE: (59362..59396) ";; (get-output-string out)))"
+ ATMOSPHERE: (59396..59398) "\n\n"
+ ATMOSPHERE: (59398..59409) ";; (test #t"
+ ATMOSPHERE: (59409..59410) "\n"
+ ATMOSPHERE: (59410..59452) ";; (let* ((out (open-output-string))"
+ ATMOSPHERE: (59452..59453) "\n"
+ ATMOSPHERE: (59453..59519) ";; (r (begin (newline out) (get-output-string out))))"
+ ATMOSPHERE: (59519..59520) "\n"
+ ATMOSPHERE: (59520..59571) ";; (or (equal? r \"\\n\") (equal? r \"\\r\\n\"))))"
+ ATMOSPHERE: (59571..59573) "\n\n"
+ ATMOSPHERE: (59573..59591) ";; (test \"abc def\""
+ ATMOSPHERE: (59591..59592) "\n"
+ ATMOSPHERE: (59592..59632) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (59632..59633) "\n"
+ ATMOSPHERE: (59633..59670) ";; (write-string \"abc def\" out)"
+ ATMOSPHERE: (59670..59671) "\n"
+ ATMOSPHERE: (59671..59705) ";; (get-output-string out)))"
+ ATMOSPHERE: (59705..59707) "\n\n"
+ ATMOSPHERE: (59707..59721) ";; (test \"def\""
+ ATMOSPHERE: (59721..59722) "\n"
+ ATMOSPHERE: (59722..59762) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (59762..59763) "\n"
+ ATMOSPHERE: (59763..59802) ";; (write-string \"abc def\" out 4)"
+ ATMOSPHERE: (59802..59803) "\n"
+ ATMOSPHERE: (59803..59837) ";; (get-output-string out)))"
+ ATMOSPHERE: (59837..59839) "\n\n"
+ ATMOSPHERE: (59839..59853) ";; (test \"c d\""
+ ATMOSPHERE: (59853..59854) "\n"
+ ATMOSPHERE: (59854..59894) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (59894..59895) "\n"
+ ATMOSPHERE: (59895..59936) ";; (write-string \"abc def\" out 2 5)"
+ ATMOSPHERE: (59936..59937) "\n"
+ ATMOSPHERE: (59937..59971) ";; (get-output-string out)))"
+ ATMOSPHERE: (59971..59973) "\n\n"
+ ATMOSPHERE: (59973..59984) ";; (test \"\""
+ ATMOSPHERE: (59984..59985) "\n"
+ ATMOSPHERE: (59985..60023) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (60023..60024) "\n"
+ ATMOSPHERE: (60024..60054) ";; (flush-output-port out)"
+ ATMOSPHERE: (60054..60055) "\n"
+ ATMOSPHERE: (60055..60087) ";; (get-output-string out)))"
+ ATMOSPHERE: (60087..60089) "\n\n"
+ ATMOSPHERE: (60089..60155) ";; (test #t (eof-object? (read-u8 (open-input-bytevector #u8()))))"
+ ATMOSPHERE: (60155..60156) "\n"
+ ATMOSPHERE: (60156..60212) ";; (test 1 (read-u8 (open-input-bytevector #u8(1 2 3))))"
+ ATMOSPHERE: (60212..60214) "\n\n"
+ ATMOSPHERE: (60214..60290) ";; (test #t (eof-object? (read-bytevector 3 (open-input-bytevector #u8()))))"
+ ATMOSPHERE: (60290..60291) "\n"
+ ATMOSPHERE: (60291..60346) ";; (test #t (u8-ready? (open-input-bytevector #u8(1))))"
+ ATMOSPHERE: (60346..60347) "\n"
+ ATMOSPHERE: (60347..60414) ";; (test #u8(1) (read-bytevector 3 (open-input-bytevector #u8(1))))"
+ ATMOSPHERE: (60414..60415) "\n"
+ ATMOSPHERE: (60415..60486) ";; (test #u8(1 2) (read-bytevector 3 (open-input-bytevector #u8(1 2))))"
+ ATMOSPHERE: (60486..60487) "\n"
+ ATMOSPHERE: (60487..60562) ";; (test #u8(1 2 3) (read-bytevector 3 (open-input-bytevector #u8(1 2 3))))"
+ ATMOSPHERE: (60562..60563) "\n"
+ ATMOSPHERE: (60563..60640) ";; (test #u8(1 2 3) (read-bytevector 3 (open-input-bytevector #u8(1 2 3 4))))"
+ ATMOSPHERE: (60640..60642) "\n\n"
+ ATMOSPHERE: (60642..60653) ";; (test #t"
+ ATMOSPHERE: (60653..60654) "\n"
+ ATMOSPHERE: (60654..60695) ";; (let ((bv (bytevector 1 2 3 4 5)))"
+ ATMOSPHERE: (60695..60696) "\n"
+ ATMOSPHERE: (60696..60772) ";; (eof-object? (read-bytevector! bv (open-input-bytevector #u8())))))"
+ ATMOSPHERE: (60772..60774) "\n\n"
+ ATMOSPHERE: (60774..60798) ";; (test #u8(6 7 8 9 10)"
+ ATMOSPHERE: (60798..60799) "\n"
+ ATMOSPHERE: (60799..60838) ";; (let ((bv (bytevector 1 2 3 4 5)))"
+ ATMOSPHERE: (60838..60839) "\n"
+ ATMOSPHERE: (60839..60911) ";; (read-bytevector! bv (open-input-bytevector #u8(6 7 8 9 10)) 0 5)"
+ ATMOSPHERE: (60911..60912) "\n"
+ ATMOSPHERE: (60912..60923) ";; bv))"
+ ATMOSPHERE: (60923..60925) "\n\n"
+ ATMOSPHERE: (60925..60948) ";; (test #u8(6 7 8 4 5)"
+ ATMOSPHERE: (60948..60949) "\n"
+ ATMOSPHERE: (60949..60988) ";; (let ((bv (bytevector 1 2 3 4 5)))"
+ ATMOSPHERE: (60988..60989) "\n"
+ ATMOSPHERE: (60989..61061) ";; (read-bytevector! bv (open-input-bytevector #u8(6 7 8 9 10)) 0 3)"
+ ATMOSPHERE: (61061..61062) "\n"
+ ATMOSPHERE: (61062..61073) ";; bv))"
+ ATMOSPHERE: (61073..61075) "\n\n"
+ ATMOSPHERE: (61075..61098) ";; (test #u8(1 2 3 6 5)"
+ ATMOSPHERE: (61098..61099) "\n"
+ ATMOSPHERE: (61099..61138) ";; (let ((bv (bytevector 1 2 3 4 5)))"
+ ATMOSPHERE: (61138..61139) "\n"
+ ATMOSPHERE: (61139..61211) ";; (read-bytevector! bv (open-input-bytevector #u8(6 7 8 9 10)) 3 4)"
+ ATMOSPHERE: (61211..61212) "\n"
+ ATMOSPHERE: (61212..61223) ";; bv))"
+ ATMOSPHERE: (61223..61225) "\n\n"
+ ATMOSPHERE: (61225..61244) ";; (test #u8(1 2 3)"
+ ATMOSPHERE: (61244..61245) "\n"
+ ATMOSPHERE: (61245..61287) ";; (let ((out (open-output-bytevector)))"
+ ATMOSPHERE: (61287..61288) "\n"
+ ATMOSPHERE: (61288..61311) ";; (write-u8 1 out)"
+ ATMOSPHERE: (61311..61312) "\n"
+ ATMOSPHERE: (61312..61335) ";; (write-u8 2 out)"
+ ATMOSPHERE: (61335..61336) "\n"
+ ATMOSPHERE: (61336..61359) ";; (write-u8 3 out)"
+ ATMOSPHERE: (61359..61360) "\n"
+ ATMOSPHERE: (61360..61396) ";; (get-output-bytevector out)))"
+ ATMOSPHERE: (61396..61398) "\n\n"
+ ATMOSPHERE: (61398..61421) ";; (test #u8(1 2 3 4 5)"
+ ATMOSPHERE: (61421..61422) "\n"
+ ATMOSPHERE: (61422..61464) ";; (let ((out (open-output-bytevector)))"
+ ATMOSPHERE: (61464..61465) "\n"
+ ATMOSPHERE: (61465..61509) ";; (write-bytevector #u8(1 2 3 4 5) out)"
+ ATMOSPHERE: (61509..61510) "\n"
+ ATMOSPHERE: (61510..61546) ";; (get-output-bytevector out)))"
+ ATMOSPHERE: (61546..61548) "\n\n"
+ ATMOSPHERE: (61548..61567) ";; (test #u8(3 4 5)"
+ ATMOSPHERE: (61567..61568) "\n"
+ ATMOSPHERE: (61568..61610) ";; (let ((out (open-output-bytevector)))"
+ ATMOSPHERE: (61610..61611) "\n"
+ ATMOSPHERE: (61611..61657) ";; (write-bytevector #u8(1 2 3 4 5) out 2)"
+ ATMOSPHERE: (61657..61658) "\n"
+ ATMOSPHERE: (61658..61694) ";; (get-output-bytevector out)))"
+ ATMOSPHERE: (61694..61696) "\n\n"
+ ATMOSPHERE: (61696..61713) ";; (test #u8(3 4)"
+ ATMOSPHERE: (61713..61714) "\n"
+ ATMOSPHERE: (61714..61756) ";; (let ((out (open-output-bytevector)))"
+ ATMOSPHERE: (61756..61757) "\n"
+ ATMOSPHERE: (61757..61805) ";; (write-bytevector #u8(1 2 3 4 5) out 2 4)"
+ ATMOSPHERE: (61805..61806) "\n"
+ ATMOSPHERE: (61806..61842) ";; (get-output-bytevector out)))"
+ ATMOSPHERE: (61842..61844) "\n\n"
+ ATMOSPHERE: (61844..61858) ";; (test #u8()"
+ ATMOSPHERE: (61858..61859) "\n"
+ ATMOSPHERE: (61859..61901) ";; (let ((out (open-output-bytevector)))"
+ ATMOSPHERE: (61901..61902) "\n"
+ ATMOSPHERE: (61902..61932) ";; (flush-output-port out)"
+ ATMOSPHERE: (61932..61933) "\n"
+ ATMOSPHERE: (61933..61969) ";; (get-output-bytevector out)))"
+ ATMOSPHERE: (61969..61971) "\n\n"
+ ATMOSPHERE: (61971..61982) ";; (test #t"
+ ATMOSPHERE: (61982..61983) "\n"
+ ATMOSPHERE: (61983..62002) ";; (and (member"
+ ATMOSPHERE: (62002..62003) "\n"
+ ATMOSPHERE: (62003..62048) ";; (let ((out (open-output-string))"
+ ATMOSPHERE: (62048..62049) "\n"
+ ATMOSPHERE: (62049..62081) ";; (x (list 1)))"
+ ATMOSPHERE: (62081..62082) "\n"
+ ATMOSPHERE: (62082..62111) ";; (set-cdr! x x)"
+ ATMOSPHERE: (62111..62112) "\n"
+ ATMOSPHERE: (62112..62140) ";; (write x out)"
+ ATMOSPHERE: (62140..62141) "\n"
+ ATMOSPHERE: (62141..62180) ";; (get-output-string out))"
+ ATMOSPHERE: (62180..62181) "\n"
+ ATMOSPHERE: (62181..62254) ";; ;; labels not guaranteed to be 0 indexed, spacing may differ"
+ ATMOSPHERE: (62254..62255) "\n"
+ ATMOSPHERE: (62255..62301) ";; '(\"#0=(1 . #0#)\" \"#1=(1 . #1#)\"))"
+ ATMOSPHERE: (62301..62302) "\n"
+ ATMOSPHERE: (62302..62318) ";; #t))"
+ ATMOSPHERE: (62318..62320) "\n\n"
+ ATMOSPHERE: (62320..62348) ";; (test \"((1 2 3) (1 2 3))\""
+ ATMOSPHERE: (62348..62349) "\n"
+ ATMOSPHERE: (62349..62388) ";; (let ((out (open-output-string))"
+ ATMOSPHERE: (62388..62389) "\n"
+ ATMOSPHERE: (62389..62419) ";; (x (list 1 2 3)))"
+ ATMOSPHERE: (62419..62420) "\n"
+ ATMOSPHERE: (62420..62451) ";; (write (list x x) out)"
+ ATMOSPHERE: (62451..62452) "\n"
+ ATMOSPHERE: (62452..62486) ";; (get-output-string out)))"
+ ATMOSPHERE: (62486..62488) "\n\n"
+ ATMOSPHERE: (62488..62516) ";; (test \"((1 2 3) (1 2 3))\""
+ ATMOSPHERE: (62516..62517) "\n"
+ ATMOSPHERE: (62517..62556) ";; (let ((out (open-output-string))"
+ ATMOSPHERE: (62556..62557) "\n"
+ ATMOSPHERE: (62557..62587) ";; (x (list 1 2 3)))"
+ ATMOSPHERE: (62587..62588) "\n"
+ ATMOSPHERE: (62588..62626) ";; (write-simple (list x x) out)"
+ ATMOSPHERE: (62626..62627) "\n"
+ ATMOSPHERE: (62627..62661) ";; (get-output-string out)))"
+ ATMOSPHERE: (62661..62663) "\n\n"
+ ATMOSPHERE: (62663..62674) ";; (test #t"
+ ATMOSPHERE: (62674..62675) "\n"
+ ATMOSPHERE: (62675..62727) ";; (and (member (let ((out (open-output-string))"
+ ATMOSPHERE: (62727..62728) "\n"
+ ATMOSPHERE: (62728..62771) ";; (x (list 1 2 3)))"
+ ATMOSPHERE: (62771..62772) "\n"
+ ATMOSPHERE: (62772..62823) ";; (write-shared (list x x) out)"
+ ATMOSPHERE: (62823..62824) "\n"
+ ATMOSPHERE: (62824..62870) ";; (get-output-string out))"
+ ATMOSPHERE: (62870..62871) "\n"
+ ATMOSPHERE: (62871..62932) ";; '(\"(#0=(1 2 3) #0#)\" \"(#1=(1 2 3) #1#)\"))"
+ ATMOSPHERE: (62932..62933) "\n"
+ ATMOSPHERE: (62933..62949) ";; #t))"
+ ATMOSPHERE: (62949..62951) "\n\n"
+ FORM: (62951..62977)
+ OPEN_PAREN: (62951..62952) "("
+ SYMBOL: (62952..62962)
+ IDENTIFIER: (62952..62962) "test-begin"
+ ATMOSPHERE: (62962..62963) " "
+ CONSTANT: (62963..62976)
+ STRING: (62963..62976) "\"Read syntax\""
+ CLOSE_PAREN: (62976..62977) ")"
+ ATMOSPHERE: (62977..62979) "\n\n"
+ ATMOSPHERE: (62979..63022) ";; ;; check reading boolean followed by eof"
+ ATMOSPHERE: (63022..63023) "\n"
+ ATMOSPHERE: (63023..63067) ";; (test #t (read (open-input-string \"#t\")))"
+ ATMOSPHERE: (63067..63068) "\n"
+ ATMOSPHERE: (63068..63115) ";; (test #t (read (open-input-string \"#true\")))"
+ ATMOSPHERE: (63115..63116) "\n"
+ ATMOSPHERE: (63116..63160) ";; (test #f (read (open-input-string \"#f\")))"
+ ATMOSPHERE: (63160..63161) "\n"
+ ATMOSPHERE: (63161..63209) ";; (test #f (read (open-input-string \"#false\")))"
+ ATMOSPHERE: (63209..63210) "\n"
+ ATMOSPHERE: (63210..63233) ";; (define (read2 port)"
+ ATMOSPHERE: (63233..63234) "\n"
+ ATMOSPHERE: (63234..63280) ";; (let* ((o1 (read port)) (o2 (read port)))"
+ ATMOSPHERE: (63280..63281) "\n"
+ ATMOSPHERE: (63281..63302) ";; (cons o1 o2)))"
+ ATMOSPHERE: (63302..63303) "\n"
+ ATMOSPHERE: (63303..63352) ";; ;; check reading boolean followed by delimiter"
+ ATMOSPHERE: (63352..63353) "\n"
+ ATMOSPHERE: (63353..63410) ";; (test '(#t . (5)) (read2 (open-input-string \"#t(5)\")))"
+ ATMOSPHERE: (63410..63411) "\n"
+ ATMOSPHERE: (63411..63469) ";; (test '(#t . 6) (read2 (open-input-string \"#true 6 \")))"
+ ATMOSPHERE: (63469..63470) "\n"
+ ATMOSPHERE: (63470..63524) ";; (test '(#f . 7) (read2 (open-input-string \"#f 7\")))"
+ ATMOSPHERE: (63524..63525) "\n"
+ ATMOSPHERE: (63525..63588) ";; (test '(#f . \"8\") (read2 (open-input-string \"#false\\\"8\\\"\")))"
+ ATMOSPHERE: (63588..63590) "\n\n"
+ ATMOSPHERE: (63590..63635) ";; (test '() (read (open-input-string \"()\")))"
+ ATMOSPHERE: (63635..63636) "\n"
+ ATMOSPHERE: (63636..63687) ";; (test '(1 2) (read (open-input-string \"(1 2)\")))"
+ ATMOSPHERE: (63687..63688) "\n"
+ ATMOSPHERE: (63688..63743) ";; (test '(1 . 2) (read (open-input-string \"(1 . 2)\")))"
+ ATMOSPHERE: (63743..63744) "\n"
+ ATMOSPHERE: (63744..63799) ";; (test '(1 2) (read (open-input-string \"(1 . (2))\")))"
+ ATMOSPHERE: (63799..63800) "\n"
+ ATMOSPHERE: (63800..63871) ";; (test '(1 2 3 4 5) (read (open-input-string \"(1 . (2 3 4 . (5)))\")))"
+ ATMOSPHERE: (63871..63872) "\n"
+ ATMOSPHERE: (63872..63933) ";; (test '1 (cadr (read (open-input-string \"#0=(1 . #0#)\"))))"
+ ATMOSPHERE: (63933..63934) "\n"
+ ATMOSPHERE: (63934..64005) ";; (test '(1 2 3) (cadr (read (open-input-string \"(#0=(1 2 3) #0#)\"))))"
+ ATMOSPHERE: (64005..64007) "\n\n"
+ ATMOSPHERE: (64007..64067) ";; (test '(quote (1 2)) (read (open-input-string \"'(1 2)\")))"
+ ATMOSPHERE: (64067..64068) "\n"
+ ATMOSPHERE: (64068..64139) ";; (test '(quote (1 (unquote 2))) (read (open-input-string \"'(1 ,2)\")))"
+ ATMOSPHERE: (64139..64140) "\n"
+ ATMOSPHERE: (64140..64221) ";; (test '(quote (1 (unquote-splicing 2))) (read (open-input-string \"'(1 ,@2)\")))"
+ ATMOSPHERE: (64221..64222) "\n"
+ ATMOSPHERE: (64222..64298) ";; (test '(quasiquote (1 (unquote 2))) (read (open-input-string \"`(1 ,2)\")))"
+ ATMOSPHERE: (64298..64300) "\n\n"
+ ATMOSPHERE: (64300..64346) ";; (test #() (read (open-input-string \"#()\")))"
+ ATMOSPHERE: (64346..64347) "\n"
+ ATMOSPHERE: (64347..64399) ";; (test #(a b) (read (open-input-string \"#(a b)\")))"
+ ATMOSPHERE: (64399..64401) "\n\n"
+ ATMOSPHERE: (64401..64451) ";; (test #u8() (read (open-input-string \"#u8()\")))"
+ ATMOSPHERE: (64451..64452) "\n"
+ ATMOSPHERE: (64452..64508) ";; (test #u8(0 1) (read (open-input-string \"#u8(0 1)\")))"
+ ATMOSPHERE: (64508..64510) "\n\n"
+ ATMOSPHERE: (64510..64557) ";; (test 'abc (read (open-input-string \"abc\")))"
+ ATMOSPHERE: (64557..64558) "\n"
+ ATMOSPHERE: (64558..64609) ";; (test 'abc (read (open-input-string \"abc def\")))"
+ ATMOSPHERE: (64609..64610) "\n"
+ ATMOSPHERE: (64610..64657) ";; (test 'ABC (read (open-input-string \"ABC\")))"
+ ATMOSPHERE: (64657..64658) "\n"
+ ATMOSPHERE: (64658..64716) ";; (test 'Hello (read (open-input-string \"|H\\\\x65;llo|\")))"
+ ATMOSPHERE: (64716..64718) "\n\n"
+ ATMOSPHERE: (64718..64777) ";; (test 'abc (read (open-input-string \"#!fold-case ABC\")))"
+ ATMOSPHERE: (64777..64778) "\n"
+ ATMOSPHERE: (64778..64852) ";; (test 'ABC (read (open-input-string \"#!fold-case #!no-fold-case ABC\")))"
+ ATMOSPHERE: (64852..64854) "\n\n"
+ ATMOSPHERE: (64854..64908) ";; (test 'def (read (open-input-string \"#; abc def\")))"
+ ATMOSPHERE: (64908..64909) "\n"
+ ATMOSPHERE: (64909..64964) ";; (test 'def (read (open-input-string \"; abc \\ndef\")))"
+ ATMOSPHERE: (64964..64965) "\n"
+ ATMOSPHERE: (64965..65022) ";; (test 'def (read (open-input-string \"#| abc |# def\")))"
+ ATMOSPHERE: (65022..65023) "\n"
+ ATMOSPHERE: (65023..65090) ";; (test 'ghi (read (open-input-string \"#| abc #| def |# |# ghi\")))"
+ ATMOSPHERE: (65090..65091) "\n"
+ ATMOSPHERE: (65091..65153) ";; (test 'ghi (read (open-input-string \"#; ; abc\\n def ghi\")))"
+ ATMOSPHERE: (65153..65154) "\n"
+ ATMOSPHERE: (65154..65220) ";; (test '(abs -16) (read (open-input-string \"(#;sqrt abs -16)\")))"
+ ATMOSPHERE: (65220..65221) "\n"
+ ATMOSPHERE: (65221..65281) ";; (test '(a d) (read (open-input-string \"(a #; #;b c d)\")))"
+ ATMOSPHERE: (65281..65282) "\n"
+ ATMOSPHERE: (65282..65345) ";; (test '(a e) (read (open-input-string \"(a #;(b #;c d) e)\")))"
+ ATMOSPHERE: (65345..65346) "\n"
+ ATMOSPHERE: (65346..65405) ";; (test '(a . c) (read (open-input-string \"(a . #;b c)\")))"
+ ATMOSPHERE: (65405..65406) "\n"
+ ATMOSPHERE: (65406..65465) ";; (test '(a . b) (read (open-input-string \"(a . b #;c)\")))"
+ ATMOSPHERE: (65465..65467) "\n\n"
+ ATMOSPHERE: (65467..65499) ";; (define (test-read-error str)"
+ ATMOSPHERE: (65499..65500) "\n"
+ ATMOSPHERE: (65500..65521) ";; (test-assert str"
+ ATMOSPHERE: (65521..65522) "\n"
+ ATMOSPHERE: (65522..65553) ";; (guard (exn (else #t))"
+ ATMOSPHERE: (65553..65554) "\n"
+ ATMOSPHERE: (65554..65595) ";; (read (open-input-string str))"
+ ATMOSPHERE: (65595..65596) "\n"
+ ATMOSPHERE: (65596..65612) ";; #f)))"
+ ATMOSPHERE: (65612..65614) "\n\n"
+ ATMOSPHERE: (65614..65646) ";; (test-read-error \"(#;a . b)\")"
+ ATMOSPHERE: (65646..65647) "\n"
+ ATMOSPHERE: (65647..65679) ";; (test-read-error \"(a . #;b)\")"
+ ATMOSPHERE: (65679..65680) "\n"
+ ATMOSPHERE: (65680..65712) ";; (test-read-error \"(a #;. b)\")"
+ ATMOSPHERE: (65712..65713) "\n"
+ ATMOSPHERE: (65713..65749) ";; (test-read-error \"(#;x #;y . z)\")"
+ ATMOSPHERE: (65749..65750) "\n"
+ ATMOSPHERE: (65750..65789) ";; (test-read-error \"(#; #;x #;y . z)\")"
+ ATMOSPHERE: (65789..65790) "\n"
+ ATMOSPHERE: (65790..65825) ";; (test-read-error \"(#; #;x . z)\")"
+ ATMOSPHERE: (65825..65827) "\n\n"
+ ATMOSPHERE: (65827..65874) ";; (test #\\a (read (open-input-string \"#\\\\a\")))"
+ ATMOSPHERE: (65874..65875) "\n"
+ ATMOSPHERE: (65875..65930) ";; (test #\\space (read (open-input-string \"#\\\\space\")))"
+ ATMOSPHERE: (65930..65931) "\n"
+ ATMOSPHERE: (65931..65995) ";; (test 0 (char->integer (read (open-input-string \"#\\\\null\"))))"
+ ATMOSPHERE: (65995..65996) "\n"
+ ATMOSPHERE: (65996..66061) ";; (test 7 (char->integer (read (open-input-string \"#\\\\alarm\"))))"
+ ATMOSPHERE: (66061..66062) "\n"
+ ATMOSPHERE: (66062..66131) ";; (test 8 (char->integer (read (open-input-string \"#\\\\backspace\"))))"
+ ATMOSPHERE: (66131..66132) "\n"
+ ATMOSPHERE: (66132..66195) ";; (test 9 (char->integer (read (open-input-string \"#\\\\tab\"))))"
+ ATMOSPHERE: (66195..66196) "\n"
+ ATMOSPHERE: (66196..66264) ";; (test 10 (char->integer (read (open-input-string \"#\\\\newline\"))))"
+ ATMOSPHERE: (66264..66265) "\n"
+ ATMOSPHERE: (66265..66332) ";; (test 13 (char->integer (read (open-input-string \"#\\\\return\"))))"
+ ATMOSPHERE: (66332..66333) "\n"
+ ATMOSPHERE: (66333..66402) ";; (test #x7F (char->integer (read (open-input-string \"#\\\\delete\"))))"
+ ATMOSPHERE: (66402..66403) "\n"
+ ATMOSPHERE: (66403..66472) ";; (test #x1B (char->integer (read (open-input-string \"#\\\\escape\"))))"
+ ATMOSPHERE: (66472..66473) "\n"
+ ATMOSPHERE: (66473..66539) ";; (test #x03BB (char->integer (read (open-input-string \"#\\\\λ\"))))"
+ ATMOSPHERE: (66539..66540) "\n"
+ ATMOSPHERE: (66540..66610) ";; (test #x03BB (char->integer (read (open-input-string \"#\\\\x03BB\"))))"
+ ATMOSPHERE: (66610..66612) "\n\n"
+ ATMOSPHERE: (66612..66664) ";; (test \"abc\" (read (open-input-string \"\\\"abc\\\"\")))"
+ ATMOSPHERE: (66664..66665) "\n"
+ ATMOSPHERE: (66665..66725) ";; (test \"abc\" (read (open-input-string \"\\\"abc\\\" \\\"def\\\"\")))"
+ ATMOSPHERE: (66725..66726) "\n"
+ ATMOSPHERE: (66726..66778) ";; (test \"ABC\" (read (open-input-string \"\\\"ABC\\\"\")))"
+ ATMOSPHERE: (66778..66779) "\n"
+ ATMOSPHERE: (66779..66840) ";; (test \"Hello\" (read (open-input-string \"\\\"H\\\\x65;llo\\\"\")))"
+ ATMOSPHERE: (66840..66841) "\n"
+ ATMOSPHERE: (66841..66920) ";; (test 7 (char->integer (string-ref (read (open-input-string \"\\\"\\\\a\\\"\")) 0)))"
+ ATMOSPHERE: (66920..66921) "\n"
+ ATMOSPHERE: (66921..67000) ";; (test 8 (char->integer (string-ref (read (open-input-string \"\\\"\\\\b\\\"\")) 0)))"
+ ATMOSPHERE: (67000..67001) "\n"
+ ATMOSPHERE: (67001..67080) ";; (test 9 (char->integer (string-ref (read (open-input-string \"\\\"\\\\t\\\"\")) 0)))"
+ ATMOSPHERE: (67080..67081) "\n"
+ ATMOSPHERE: (67081..67161) ";; (test 10 (char->integer (string-ref (read (open-input-string \"\\\"\\\\n\\\"\")) 0)))"
+ ATMOSPHERE: (67161..67162) "\n"
+ ATMOSPHERE: (67162..67242) ";; (test 13 (char->integer (string-ref (read (open-input-string \"\\\"\\\\r\\\"\")) 0)))"
+ ATMOSPHERE: (67242..67243) "\n"
+ ATMOSPHERE: (67243..67326) ";; (test #x22 (char->integer (string-ref (read (open-input-string \"\\\"\\\\\\\"\\\"\")) 0)))"
+ ATMOSPHERE: (67326..67327) "\n"
+ ATMOSPHERE: (67327..67409) ";; (test #x7C (char->integer (string-ref (read (open-input-string \"\\\"\\\\|\\\"\")) 0)))"
+ ATMOSPHERE: (67409..67410) "\n"
+ ATMOSPHERE: (67410..67488) ";; (test \"line 1\\nline 2\\n\" (read (open-input-string \"\\\"line 1\\nline 2\\n\\\"\")))"
+ ATMOSPHERE: (67488..67489) "\n"
+ ATMOSPHERE: (67489..67573) ";; (test \"line 1continued\\n\" (read (open-input-string \"\\\"line 1\\\\\\ncontinued\\n\\\"\")))"
+ ATMOSPHERE: (67573..67574) "\n"
+ ATMOSPHERE: (67574..67659) ";; (test \"line 1continued\\n\" (read (open-input-string \"\\\"line 1\\\\ \\ncontinued\\n\\\"\")))"
+ ATMOSPHERE: (67659..67660) "\n"
+ ATMOSPHERE: (67660..67745) ";; (test \"line 1continued\\n\" (read (open-input-string \"\\\"line 1\\\\\\n continued\\n\\\"\")))"
+ ATMOSPHERE: (67745..67746) "\n"
+ ATMOSPHERE: (67746..67838) ";; (test \"line 1continued\\n\" (read (open-input-string \"\\\"line 1\\\\ \\t \\n \\t continued\\n\\\"\")))"
+ ATMOSPHERE: (67838..67839) "\n"
+ ATMOSPHERE: (67839..67933) ";; (test \"line 1\\n\\nline 3\\n\" (read (open-input-string \"\\\"line 1\\\\ \\t \\n \\t \\n\\nline 3\\n\\\"\")))"
+ ATMOSPHERE: (67933..67934) "\n"
+ ATMOSPHERE: (67934..68023) ";; (test #x03BB (char->integer (string-ref (read (open-input-string \"\\\"\\\\x03BB;\\\"\")) 0)))"
+ ATMOSPHERE: (68023..68025) "\n\n"
+ ATMOSPHERE: (68025..68060) ";; (define-syntax test-write-syntax"
+ ATMOSPHERE: (68060..68061) "\n"
+ ATMOSPHERE: (68061..68082) ";; (syntax-rules ()"
+ ATMOSPHERE: (68082..68083) "\n"
+ ATMOSPHERE: (68083..68130) ";; ((test-write-syntax expect-str obj-expr)"
+ ATMOSPHERE: (68130..68131) "\n"
+ ATMOSPHERE: (68131..68172) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (68172..68173) "\n"
+ ATMOSPHERE: (68173..68203) ";; (write obj-expr out)"
+ ATMOSPHERE: (68203..68204) "\n"
+ ATMOSPHERE: (68204..68259) ";; (test expect-str (get-output-string out))))))"
+ ATMOSPHERE: (68259..68261) "\n\n"
+ ATMOSPHERE: (68261..68294) ";; (test-write-syntax \"|.|\" '|.|)"
+ ATMOSPHERE: (68294..68295) "\n"
+ ATMOSPHERE: (68295..68332) ";; (test-write-syntax \"|a b|\" '|a b|)"
+ ATMOSPHERE: (68332..68333) "\n"
+ ATMOSPHERE: (68333..68368) ";; (test-write-syntax \"|,a|\" '|,a|)"
+ ATMOSPHERE: (68368..68369) "\n"
+ ATMOSPHERE: (68369..68404) ";; (test-write-syntax \"|\\\"|\" '|\\\"|)"
+ ATMOSPHERE: (68404..68405) "\n"
+ ATMOSPHERE: (68405..68441) ";; (test-write-syntax \"|\\\\||\" '|\\||)"
+ ATMOSPHERE: (68441..68442) "\n"
+ ATMOSPHERE: (68442..68473) ";; (test-write-syntax \"||\" '||)"
+ ATMOSPHERE: (68473..68474) "\n"
+ ATMOSPHERE: (68474..68517) ";; (test-write-syntax \"|\\\\\\\\123|\" '|\\\\123|)"
+ ATMOSPHERE: (68517..68518) "\n"
+ ATMOSPHERE: (68518..68549) ";; (test-write-syntax \"a\" '|a|)"
+ ATMOSPHERE: (68549..68550) "\n"
+ ATMOSPHERE: (68550..68588) ";; ;; (test-write-syntax \"a.b\" '|a.b|)"
+ ATMOSPHERE: (68588..68589) "\n"
+ ATMOSPHERE: (68589..68622) ";; (test-write-syntax \"|2|\" '|2|)"
+ ATMOSPHERE: (68622..68623) "\n"
+ ATMOSPHERE: (68623..68658) ";; (test-write-syntax \"|+3|\" '|+3|)"
+ ATMOSPHERE: (68658..68659) "\n"
+ ATMOSPHERE: (68659..68696) ";; (test-write-syntax \"|-.4|\" '|-.4|)"
+ ATMOSPHERE: (68696..68697) "\n"
+ ATMOSPHERE: (68697..68732) ";; (test-write-syntax \"|+i|\" '|+i|)"
+ ATMOSPHERE: (68732..68733) "\n"
+ ATMOSPHERE: (68733..68768) ";; (test-write-syntax \"|-i|\" '|-i|)"
+ ATMOSPHERE: (68768..68769) "\n"
+ ATMOSPHERE: (68769..68812) ";; (test-write-syntax \"|+inf.0|\" '|+inf.0|)"
+ ATMOSPHERE: (68812..68813) "\n"
+ ATMOSPHERE: (68813..68856) ";; (test-write-syntax \"|-inf.0|\" '|-inf.0|)"
+ ATMOSPHERE: (68856..68857) "\n"
+ ATMOSPHERE: (68857..68900) ";; (test-write-syntax \"|+nan.0|\" '|+nan.0|)"
+ ATMOSPHERE: (68900..68901) "\n"
+ ATMOSPHERE: (68901..68944) ";; (test-write-syntax \"|+NaN.0|\" '|+NaN.0|)"
+ ATMOSPHERE: (68944..68945) "\n"
+ ATMOSPHERE: (68945..68994) ";; (test-write-syntax \"|+NaN.0abc|\" '|+NaN.0abc|)"
+ ATMOSPHERE: (68994..68996) "\n\n"
+ FORM: (68996..69006)
+ OPEN_PAREN: (68996..68997) "("
+ SYMBOL: (68997..69005)
+ IDENTIFIER: (68997..69005) "test-end"
+ CLOSE_PAREN: (69005..69006) ")"
+ ATMOSPHERE: (69006..69008) "\n\n"
+ FORM: (69008..69037)
+ OPEN_PAREN: (69008..69009) "("
+ SYMBOL: (69009..69019)
+ IDENTIFIER: (69009..69019) "test-begin"
+ ATMOSPHERE: (69019..69020) " "
+ CONSTANT: (69020..69036)
+ STRING: (69020..69036) "\"Numeric syntax\""
+ CLOSE_PAREN: (69036..69037) ")"
+ ATMOSPHERE: (69037..69039) "\n\n"
+ ATMOSPHERE: (69039..69091) ";; ;; Numeric syntax adapted from Peter Bex's tests."
+ ATMOSPHERE: (69091..69092) "\n"
+ ATMOSPHERE: (69092..69097) ";; ;;"
+ ATMOSPHERE: (69097..69098) "\n"
+ ATMOSPHERE: (69098..69160) ";; ;; These are updated to R7RS, using string ports instead of"
+ ATMOSPHERE: (69160..69161) "\n"
+ ATMOSPHERE: (69161..69232) ";; ;; string->number, and \"error\" tests removed because implementations"
+ ATMOSPHERE: (69232..69233) "\n"
+ ATMOSPHERE: (69233..69303) ";; ;; are free to provide their own numeric extensions. Currently all"
+ ATMOSPHERE: (69303..69304) "\n"
+ ATMOSPHERE: (69304..69369) ";; ;; tests are run by default - need to cond-expand and test for"
+ ATMOSPHERE: (69369..69370) "\n"
+ ATMOSPHERE: (69370..69396) ";; ;; infinities and -0.0."
+ ATMOSPHERE: (69396..69398) "\n\n"
+ ATMOSPHERE: (69398..69435) ";; (define-syntax test-numeric-syntax"
+ ATMOSPHERE: (69435..69436) "\n"
+ ATMOSPHERE: (69436..69457) ";; (syntax-rules ()"
+ ATMOSPHERE: (69457..69458) "\n"
+ ATMOSPHERE: (69458..69507) ";; ((test-numeric-syntax str expect strs ...)"
+ ATMOSPHERE: (69507..69508) "\n"
+ ATMOSPHERE: (69508..69557) ";; (let* ((z (read (open-input-string str)))"
+ ATMOSPHERE: (69557..69558) "\n"
+ ATMOSPHERE: (69558..69599) ";; (out (open-output-string))"
+ ATMOSPHERE: (69599..69600) "\n"
+ ATMOSPHERE: (69600..69669) ";; (z-str (begin (write z out) (get-output-string out))))"
+ ATMOSPHERE: (69669..69670) "\n"
+ ATMOSPHERE: (69670..69704) ";; (test expect (values z))"
+ ATMOSPHERE: (69704..69705) "\n"
+ ATMOSPHERE: (69705..69768) ";; (test #t (and (member z-str '(str strs ...)) #t))))))"
+ ATMOSPHERE: (69768..69770) "\n\n"
+ ATMOSPHERE: (69770..69801) ";; ;; Each test is of the form:"
+ ATMOSPHERE: (69801..69802) "\n"
+ ATMOSPHERE: (69802..69807) ";; ;;"
+ ATMOSPHERE: (69807..69808) "\n"
+ ATMOSPHERE: (69808..69888) ";; ;; (test-numeric-syntax input-str expected-value expected-write-values ...)"
+ ATMOSPHERE: (69888..69889) "\n"
+ ATMOSPHERE: (69889..69894) ";; ;;"
+ ATMOSPHERE: (69894..69895) "\n"
+ ATMOSPHERE: (69895..69962) ";; ;; where the input should be eqv? to the expected-value, and the"
+ ATMOSPHERE: (69962..69963) "\n"
+ ATMOSPHERE: (69963..70034) ";; ;; written output the same as any of the expected-write-values. The"
+ ATMOSPHERE: (70034..70035) "\n"
+ ATMOSPHERE: (70035..70045) ";; ;; form"
+ ATMOSPHERE: (70045..70046) "\n"
+ ATMOSPHERE: (70046..70051) ";; ;;"
+ ATMOSPHERE: (70051..70052) "\n"
+ ATMOSPHERE: (70052..70106) ";; ;; (test-numeric-syntax input-str expected-value)"
+ ATMOSPHERE: (70106..70107) "\n"
+ ATMOSPHERE: (70107..70112) ";; ;;"
+ ATMOSPHERE: (70112..70113) "\n"
+ ATMOSPHERE: (70113..70137) ";; ;; is a shorthand for"
+ ATMOSPHERE: (70137..70138) "\n"
+ ATMOSPHERE: (70138..70143) ";; ;;"
+ ATMOSPHERE: (70143..70144) "\n"
+ ATMOSPHERE: (70144..70210) ";; ;; (test-numeric-syntax input-str expected-value (input-str))"
+ ATMOSPHERE: (70210..70212) "\n\n"
+ ATMOSPHERE: (70212..70224) ";; ;; Simple"
+ ATMOSPHERE: (70224..70225) "\n"
+ ATMOSPHERE: (70225..70255) ";; (test-numeric-syntax \"1\" 1)"
+ ATMOSPHERE: (70255..70256) "\n"
+ ATMOSPHERE: (70256..70291) ";; (test-numeric-syntax \"+1\" 1 \"1\")"
+ ATMOSPHERE: (70291..70292) "\n"
+ ATMOSPHERE: (70292..70324) ";; (test-numeric-syntax \"-1\" -1)"
+ ATMOSPHERE: (70324..70325) "\n"
+ ATMOSPHERE: (70325..70370) ";; (test-numeric-syntax \"#i1\" 1.0 \"1.0\" \"1.\")"
+ ATMOSPHERE: (70370..70371) "\n"
+ ATMOSPHERE: (70371..70416) ";; (test-numeric-syntax \"#I1\" 1.0 \"1.0\" \"1.\")"
+ ATMOSPHERE: (70416..70417) "\n"
+ ATMOSPHERE: (70417..70466) ";; (test-numeric-syntax \"#i-1\" -1.0 \"-1.0\" \"-1.\")"
+ ATMOSPHERE: (70466..70467) "\n"
+ ATMOSPHERE: (70467..70480) ";; ;; Decimal"
+ ATMOSPHERE: (70480..70481) "\n"
+ ATMOSPHERE: (70481..70526) ";; (test-numeric-syntax \"1.0\" 1.0 \"1.0\" \"1.\")"
+ ATMOSPHERE: (70526..70527) "\n"
+ ATMOSPHERE: (70527..70571) ";; (test-numeric-syntax \"1.\" 1.0 \"1.0\" \"1.\")"
+ ATMOSPHERE: (70571..70572) "\n"
+ ATMOSPHERE: (70572..70622) ";; (test-numeric-syntax \".1\" 0.1 \"0.1\" \"100.0e-3\")"
+ ATMOSPHERE: (70622..70623) "\n"
+ ATMOSPHERE: (70623..70677) ";; (test-numeric-syntax \"-.1\" -0.1 \"-0.1\" \"-100.0e-3\")"
+ ATMOSPHERE: (70677..70678) "\n"
+ ATMOSPHERE: (70678..70754) ";; ;; Some Schemes don't allow negative zero. This is okay with the standard"
+ ATMOSPHERE: (70754..70755) "\n"
+ ATMOSPHERE: (70755..70819) ";; (test-numeric-syntax \"-.0\" -0.0 \"-0.\" \"-0.0\" \"0.0\" \"0.\" \".0\")"
+ ATMOSPHERE: (70819..70820) "\n"
+ ATMOSPHERE: (70820..70884) ";; (test-numeric-syntax \"-0.\" -0.0 \"-.0\" \"-0.0\" \"0.0\" \"0.\" \".0\")"
+ ATMOSPHERE: (70884..70885) "\n"
+ ATMOSPHERE: (70885..70932) ";; (test-numeric-syntax \"#i1.0\" 1.0 \"1.0\" \"1.\")"
+ ATMOSPHERE: (70932..70933) "\n"
+ ATMOSPHERE: (70933..70971) ";; (test-numeric-syntax \"#e1.0\" 1 \"1\")"
+ ATMOSPHERE: (70971..70972) "\n"
+ ATMOSPHERE: (70972..71010) ";; (test-numeric-syntax \"#e-.0\" 0 \"0\")"
+ ATMOSPHERE: (71010..71011) "\n"
+ ATMOSPHERE: (71011..71049) ";; (test-numeric-syntax \"#e-0.\" 0 \"0\")"
+ ATMOSPHERE: (71049..71050) "\n"
+ ATMOSPHERE: (71050..71084) ";; ;; Decimal notation with suffix"
+ ATMOSPHERE: (71084..71085) "\n"
+ ATMOSPHERE: (71085..71136) ";; (test-numeric-syntax \"1e2\" 100.0 \"100.0\" \"100.\")"
+ ATMOSPHERE: (71136..71137) "\n"
+ ATMOSPHERE: (71137..71188) ";; (test-numeric-syntax \"1E2\" 100.0 \"100.0\" \"100.\")"
+ ATMOSPHERE: (71188..71189) "\n"
+ ATMOSPHERE: (71189..71240) ";; (test-numeric-syntax \"1s2\" 100.0 \"100.0\" \"100.\")"
+ ATMOSPHERE: (71240..71241) "\n"
+ ATMOSPHERE: (71241..71292) ";; (test-numeric-syntax \"1S2\" 100.0 \"100.0\" \"100.\")"
+ ATMOSPHERE: (71292..71293) "\n"
+ ATMOSPHERE: (71293..71344) ";; (test-numeric-syntax \"1f2\" 100.0 \"100.0\" \"100.\")"
+ ATMOSPHERE: (71344..71345) "\n"
+ ATMOSPHERE: (71345..71396) ";; (test-numeric-syntax \"1F2\" 100.0 \"100.0\" \"100.\")"
+ ATMOSPHERE: (71396..71397) "\n"
+ ATMOSPHERE: (71397..71448) ";; (test-numeric-syntax \"1d2\" 100.0 \"100.0\" \"100.\")"
+ ATMOSPHERE: (71448..71449) "\n"
+ ATMOSPHERE: (71449..71500) ";; (test-numeric-syntax \"1D2\" 100.0 \"100.0\" \"100.\")"
+ ATMOSPHERE: (71500..71501) "\n"
+ ATMOSPHERE: (71501..71552) ";; (test-numeric-syntax \"1l2\" 100.0 \"100.0\" \"100.\")"
+ ATMOSPHERE: (71552..71553) "\n"
+ ATMOSPHERE: (71553..71604) ";; (test-numeric-syntax \"1L2\" 100.0 \"100.0\" \"100.\")"
+ ATMOSPHERE: (71604..71605) "\n"
+ ATMOSPHERE: (71605..71619) ";; ;; NaN, Inf"
+ ATMOSPHERE: (71619..71620) "\n"
+ ATMOSPHERE: (71620..71678) ";; (test-numeric-syntax \"+nan.0\" +nan.0 \"+nan.0\" \"+NaN.0\")"
+ ATMOSPHERE: (71678..71679) "\n"
+ ATMOSPHERE: (71679..71737) ";; (test-numeric-syntax \"+NAN.0\" +nan.0 \"+nan.0\" \"+NaN.0\")"
+ ATMOSPHERE: (71737..71738) "\n"
+ ATMOSPHERE: (71738..71796) ";; (test-numeric-syntax \"+inf.0\" +inf.0 \"+inf.0\" \"+Inf.0\")"
+ ATMOSPHERE: (71796..71797) "\n"
+ ATMOSPHERE: (71797..71855) ";; (test-numeric-syntax \"+InF.0\" +inf.0 \"+inf.0\" \"+Inf.0\")"
+ ATMOSPHERE: (71855..71856) "\n"
+ ATMOSPHERE: (71856..71914) ";; (test-numeric-syntax \"-inf.0\" -inf.0 \"-inf.0\" \"-Inf.0\")"
+ ATMOSPHERE: (71914..71915) "\n"
+ ATMOSPHERE: (71915..71973) ";; (test-numeric-syntax \"-iNF.0\" -inf.0 \"-inf.0\" \"-Inf.0\")"
+ ATMOSPHERE: (71973..71974) "\n"
+ ATMOSPHERE: (71974..72034) ";; (test-numeric-syntax \"#i+nan.0\" +nan.0 \"+nan.0\" \"+NaN.0\")"
+ ATMOSPHERE: (72034..72035) "\n"
+ ATMOSPHERE: (72035..72095) ";; (test-numeric-syntax \"#i+inf.0\" +inf.0 \"+inf.0\" \"+Inf.0\")"
+ ATMOSPHERE: (72095..72096) "\n"
+ ATMOSPHERE: (72096..72156) ";; (test-numeric-syntax \"#i-inf.0\" -inf.0 \"-inf.0\" \"-Inf.0\")"
+ ATMOSPHERE: (72156..72157) "\n"
+ ATMOSPHERE: (72157..72175) ";; ;; Exact ratios"
+ ATMOSPHERE: (72175..72176) "\n"
+ ATMOSPHERE: (72176..72214) ";; (test-numeric-syntax \"1/2\" (/ 1 2))"
+ ATMOSPHERE: (72214..72215) "\n"
+ ATMOSPHERE: (72215..72261) ";; (test-numeric-syntax \"#e1/2\" (/ 1 2) \"1/2\")"
+ ATMOSPHERE: (72261..72262) "\n"
+ ATMOSPHERE: (72262..72299) ";; (test-numeric-syntax \"10/2\" 5 \"5\")"
+ ATMOSPHERE: (72299..72300) "\n"
+ ATMOSPHERE: (72300..72343) ";; (test-numeric-syntax \"-1/2\" (- (/ 1 2)))"
+ ATMOSPHERE: (72343..72344) "\n"
+ ATMOSPHERE: (72344..72381) ";; (test-numeric-syntax \"0/10\" 0 \"0\")"
+ ATMOSPHERE: (72381..72382) "\n"
+ ATMOSPHERE: (72382..72421) ";; (test-numeric-syntax \"#e0/10\" 0 \"0\")"
+ ATMOSPHERE: (72421..72422) "\n"
+ ATMOSPHERE: (72422..72472) ";; (test-numeric-syntax \"#i3/2\" (/ 3.0 2.0) \"1.5\")"
+ ATMOSPHERE: (72472..72473) "\n"
+ ATMOSPHERE: (72473..72492) ";; ;; Exact complex"
+ ATMOSPHERE: (72492..72493) "\n"
+ ATMOSPHERE: (72493..72547) ";; (test-numeric-syntax \"1+2i\" (make-rectangular 1 2))"
+ ATMOSPHERE: (72547..72548) "\n"
+ ATMOSPHERE: (72548..72609) ";; (test-numeric-syntax \"1+2I\" (make-rectangular 1 2) \"1+2i\")"
+ ATMOSPHERE: (72609..72610) "\n"
+ ATMOSPHERE: (72610..72665) ";; (test-numeric-syntax \"1-2i\" (make-rectangular 1 -2))"
+ ATMOSPHERE: (72665..72666) "\n"
+ ATMOSPHERE: (72666..72722) ";; (test-numeric-syntax \"-1+2i\" (make-rectangular -1 2))"
+ ATMOSPHERE: (72722..72723) "\n"
+ ATMOSPHERE: (72723..72780) ";; (test-numeric-syntax \"-1-2i\" (make-rectangular -1 -2))"
+ ATMOSPHERE: (72780..72781) "\n"
+ ATMOSPHERE: (72781..72857) ";; (test-numeric-syntax \"+i\" (make-rectangular 0 1) \"+i\" \"+1i\" \"0+i\" \"0+1i\")"
+ ATMOSPHERE: (72857..72858) "\n"
+ ATMOSPHERE: (72858..72935) ";; (test-numeric-syntax \"0+i\" (make-rectangular 0 1) \"+i\" \"+1i\" \"0+i\" \"0+1i\")"
+ ATMOSPHERE: (72935..72936) "\n"
+ ATMOSPHERE: (72936..73014) ";; (test-numeric-syntax \"0+1i\" (make-rectangular 0 1) \"+i\" \"+1i\" \"0+i\" \"0+1i\")"
+ ATMOSPHERE: (73014..73015) "\n"
+ ATMOSPHERE: (73015..73092) ";; (test-numeric-syntax \"-i\" (make-rectangular 0 -1) \"-i\" \"-1i\" \"0-i\" \"0-1i\")"
+ ATMOSPHERE: (73092..73093) "\n"
+ ATMOSPHERE: (73093..73171) ";; (test-numeric-syntax \"0-i\" (make-rectangular 0 -1) \"-i\" \"-1i\" \"0-i\" \"0-1i\")"
+ ATMOSPHERE: (73171..73172) "\n"
+ ATMOSPHERE: (73172..73251) ";; (test-numeric-syntax \"0-1i\" (make-rectangular 0 -1) \"-i\" \"-1i\" \"0-i\" \"0-1i\")"
+ ATMOSPHERE: (73251..73252) "\n"
+ ATMOSPHERE: (73252..73323) ";; (test-numeric-syntax \"+2i\" (make-rectangular 0 2) \"2i\" \"+2i\" \"0+2i\")"
+ ATMOSPHERE: (73323..73324) "\n"
+ ATMOSPHERE: (73324..73391) ";; (test-numeric-syntax \"-2i\" (make-rectangular 0 -2) \"-2i\" \"0-2i\")"
+ ATMOSPHERE: (73391..73392) "\n"
+ ATMOSPHERE: (73392..73453) ";; ;; Decimal-notation complex numbers (rectangular notation)"
+ ATMOSPHERE: (73453..73454) "\n"
+ ATMOSPHERE: (73454..73549) ";; (test-numeric-syntax \"1.0+2i\" (make-rectangular 1.0 2) \"1.0+2.0i\" \"1.0+2i\" \"1.+2i\" \"1.+2.i\")"
+ ATMOSPHERE: (73549..73550) "\n"
+ ATMOSPHERE: (73550..73645) ";; (test-numeric-syntax \"1+2.0i\" (make-rectangular 1 2.0) \"1.0+2.0i\" \"1+2.0i\" \"1.+2.i\" \"1+2.i\")"
+ ATMOSPHERE: (73645..73646) "\n"
+ ATMOSPHERE: (73646..73734) ";; (test-numeric-syntax \"1e2+1.0i\" (make-rectangular 100.0 1.0) \"100.0+1.0i\" \"100.+1.i\")"
+ ATMOSPHERE: (73734..73735) "\n"
+ ATMOSPHERE: (73735..73823) ";; (test-numeric-syntax \"1s2+1.0i\" (make-rectangular 100.0 1.0) \"100.0+1.0i\" \"100.+1.i\")"
+ ATMOSPHERE: (73823..73824) "\n"
+ ATMOSPHERE: (73824..73912) ";; (test-numeric-syntax \"1.0+1e2i\" (make-rectangular 1.0 100.0) \"1.0+100.0i\" \"1.+100.i\")"
+ ATMOSPHERE: (73912..73913) "\n"
+ ATMOSPHERE: (73913..74001) ";; (test-numeric-syntax \"1.0+1s2i\" (make-rectangular 1.0 100.0) \"1.0+100.0i\" \"1.+100.i\")"
+ ATMOSPHERE: (74001..74002) "\n"
+ ATMOSPHERE: (74002..74057) ";; ;; Fractional complex numbers (rectangular notation)"
+ ATMOSPHERE: (74057..74058) "\n"
+ ATMOSPHERE: (74058..74128) ";; (test-numeric-syntax \"1/2+3/4i\" (make-rectangular (/ 1 2) (/ 3 4)))"
+ ATMOSPHERE: (74128..74129) "\n"
+ ATMOSPHERE: (74129..74207) ";; ;; Mixed fractional/decimal notation complex numbers (rectangular notation)"
+ ATMOSPHERE: (74207..74208) "\n"
+ ATMOSPHERE: (74208..74273) ";; (test-numeric-syntax \"0.5+3/4i\" (make-rectangular 0.5 (/ 3 4))"
+ ATMOSPHERE: (74273..74274) "\n"
+ ATMOSPHERE: (74274..74343) ";; \"0.5+0.75i\" \".5+.75i\" \"0.5+3/4i\" \".5+3/4i\" \"500.0e-3+750.0e-3i\")"
+ ATMOSPHERE: (74343..74344) "\n"
+ ATMOSPHERE: (74344..74389) ";; ;; Complex NaN, Inf (rectangular notation)"
+ ATMOSPHERE: (74389..74390) "\n"
+ ATMOSPHERE: (74390..74484) ";; ;;(test-numeric-syntax \"+nan.0+nan.0i\" (make-rectangular the-nan the-nan) \"+NaN.0+NaN.0i\") "
+ ATMOSPHERE: (74484..74485) "\n"
+ ATMOSPHERE: (74485..74574) ";; (test-numeric-syntax \"+inf.0+inf.0i\" (make-rectangular +inf.0 +inf.0) \"+Inf.0+Inf.0i\")"
+ ATMOSPHERE: (74574..74575) "\n"
+ ATMOSPHERE: (74575..74664) ";; (test-numeric-syntax \"-inf.0+inf.0i\" (make-rectangular -inf.0 +inf.0) \"-Inf.0+Inf.0i\")"
+ ATMOSPHERE: (74664..74665) "\n"
+ ATMOSPHERE: (74665..74754) ";; (test-numeric-syntax \"-inf.0-inf.0i\" (make-rectangular -inf.0 -inf.0) \"-Inf.0-Inf.0i\")"
+ ATMOSPHERE: (74754..74755) "\n"
+ ATMOSPHERE: (74755..74844) ";; (test-numeric-syntax \"+inf.0-inf.0i\" (make-rectangular +inf.0 -inf.0) \"+Inf.0-Inf.0i\")"
+ ATMOSPHERE: (74844..74845) "\n"
+ ATMOSPHERE: (74845..74883) ";; ;; Complex numbers (polar notation)"
+ ATMOSPHERE: (74883..74884) "\n"
+ ATMOSPHERE: (74884..74938) ";; ;; Need to account for imprecision in write output."
+ ATMOSPHERE: (74938..74939) "\n"
+ ATMOSPHERE: (74939..75049) ";; ;;(test-numeric-syntax \"1@2\" -0.416146836547142+0.909297426825682i \"-0.416146836547142+0.909297426825682i\")"
+ ATMOSPHERE: (75049..75050) "\n"
+ ATMOSPHERE: (75050..75069) ";; ;; Base prefixes"
+ ATMOSPHERE: (75069..75070) "\n"
+ ATMOSPHERE: (75070..75109) ";; (test-numeric-syntax \"#x11\" 17 \"17\")"
+ ATMOSPHERE: (75109..75110) "\n"
+ ATMOSPHERE: (75110..75149) ";; (test-numeric-syntax \"#X11\" 17 \"17\")"
+ ATMOSPHERE: (75149..75150) "\n"
+ ATMOSPHERE: (75150..75189) ";; (test-numeric-syntax \"#d11\" 11 \"11\")"
+ ATMOSPHERE: (75189..75190) "\n"
+ ATMOSPHERE: (75190..75229) ";; (test-numeric-syntax \"#D11\" 11 \"11\")"
+ ATMOSPHERE: (75229..75230) "\n"
+ ATMOSPHERE: (75230..75267) ";; (test-numeric-syntax \"#o11\" 9 \"9\")"
+ ATMOSPHERE: (75267..75268) "\n"
+ ATMOSPHERE: (75268..75305) ";; (test-numeric-syntax \"#O11\" 9 \"9\")"
+ ATMOSPHERE: (75305..75306) "\n"
+ ATMOSPHERE: (75306..75343) ";; (test-numeric-syntax \"#b11\" 3 \"3\")"
+ ATMOSPHERE: (75343..75344) "\n"
+ ATMOSPHERE: (75344..75381) ";; (test-numeric-syntax \"#B11\" 3 \"3\")"
+ ATMOSPHERE: (75381..75382) "\n"
+ ATMOSPHERE: (75382..75418) ";; (test-numeric-syntax \"#o7\" 7 \"7\")"
+ ATMOSPHERE: (75418..75419) "\n"
+ ATMOSPHERE: (75419..75457) ";; (test-numeric-syntax \"#xa\" 10 \"10\")"
+ ATMOSPHERE: (75457..75458) "\n"
+ ATMOSPHERE: (75458..75496) ";; (test-numeric-syntax \"#xA\" 10 \"10\")"
+ ATMOSPHERE: (75496..75497) "\n"
+ ATMOSPHERE: (75497..75535) ";; (test-numeric-syntax \"#xf\" 15 \"15\")"
+ ATMOSPHERE: (75535..75536) "\n"
+ ATMOSPHERE: (75536..75578) ";; (test-numeric-syntax \"#x-10\" -16 \"-16\")"
+ ATMOSPHERE: (75578..75579) "\n"
+ ATMOSPHERE: (75579..75621) ";; (test-numeric-syntax \"#d-10\" -10 \"-10\")"
+ ATMOSPHERE: (75621..75622) "\n"
+ ATMOSPHERE: (75622..75662) ";; (test-numeric-syntax \"#o-10\" -8 \"-8\")"
+ ATMOSPHERE: (75662..75663) "\n"
+ ATMOSPHERE: (75663..75703) ";; (test-numeric-syntax \"#b-10\" -2 \"-2\")"
+ ATMOSPHERE: (75703..75704) "\n"
+ ATMOSPHERE: (75704..75733) ";; ;; Combination of prefixes"
+ ATMOSPHERE: (75733..75734) "\n"
+ ATMOSPHERE: (75734..75775) ";; (test-numeric-syntax \"#e#x10\" 16 \"16\")"
+ ATMOSPHERE: (75775..75776) "\n"
+ ATMOSPHERE: (75776..75827) ";; (test-numeric-syntax \"#i#x10\" 16.0 \"16.0\" \"16.\")"
+ ATMOSPHERE: (75827..75828) "\n"
+ ATMOSPHERE: (75828..75879) ";; (test-numeric-syntax \"#x#i10\" 16.0 \"16.0\" \"16.\")"
+ ATMOSPHERE: (75879..75880) "\n"
+ ATMOSPHERE: (75880..75931) ";; (test-numeric-syntax \"#i#x1/10\" 0.0625 \"0.0625\")"
+ ATMOSPHERE: (75931..75932) "\n"
+ ATMOSPHERE: (75932..75983) ";; (test-numeric-syntax \"#x#i1/10\" 0.0625 \"0.0625\")"
+ ATMOSPHERE: (75983..75984) "\n"
+ ATMOSPHERE: (75984..76037) ";; ;; (Attempted) decimal notation with base prefixes"
+ ATMOSPHERE: (76037..76038) "\n"
+ ATMOSPHERE: (76038..76084) ";; (test-numeric-syntax \"#d1.\" 1.0 \"1.0\" \"1.\")"
+ ATMOSPHERE: (76084..76085) "\n"
+ ATMOSPHERE: (76085..76142) ";; (test-numeric-syntax \"#d.1\" 0.1 \"0.1\" \".1\" \"100.0e-3\")"
+ ATMOSPHERE: (76142..76143) "\n"
+ ATMOSPHERE: (76143..76185) ";; (test-numeric-syntax \"#x1e2\" 482 \"482\")"
+ ATMOSPHERE: (76185..76186) "\n"
+ ATMOSPHERE: (76186..76239) ";; (test-numeric-syntax \"#d1e2\" 100.0 \"100.0\" \"100.\")"
+ ATMOSPHERE: (76239..76240) "\n"
+ ATMOSPHERE: (76240..76269) ";; ;; Fractions with prefixes"
+ ATMOSPHERE: (76269..76270) "\n"
+ ATMOSPHERE: (76270..76309) ";; (test-numeric-syntax \"#x10/2\" 8 \"8\")"
+ ATMOSPHERE: (76309..76310) "\n"
+ ATMOSPHERE: (76310..76359) ";; (test-numeric-syntax \"#x11/2\" (/ 17 2) \"17/2\")"
+ ATMOSPHERE: (76359..76360) "\n"
+ ATMOSPHERE: (76360..76409) ";; (test-numeric-syntax \"#d11/2\" (/ 11 2) \"11/2\")"
+ ATMOSPHERE: (76409..76410) "\n"
+ ATMOSPHERE: (76410..76457) ";; (test-numeric-syntax \"#o11/2\" (/ 9 2) \"9/2\")"
+ ATMOSPHERE: (76457..76458) "\n"
+ ATMOSPHERE: (76458..76506) ";; (test-numeric-syntax \"#b11/10\" (/ 3 2) \"3/2\")"
+ ATMOSPHERE: (76506..76507) "\n"
+ ATMOSPHERE: (76507..76542) ";; ;; Complex numbers with prefixes"
+ ATMOSPHERE: (76542..76543) "\n"
+ ATMOSPHERE: (76543..76614) ";; ;;(test-numeric-syntax \"#x10+11i\" (make-rectangular 16 17) \"16+17i\")"
+ ATMOSPHERE: (76614..76615) "\n"
+ ATMOSPHERE: (76615..76699) ";; (test-numeric-syntax \"#d1.0+1.0i\" (make-rectangular 1.0 1.0) \"1.0+1.0i\" \"1.+1.i\")"
+ ATMOSPHERE: (76699..76700) "\n"
+ ATMOSPHERE: (76700..76769) ";; (test-numeric-syntax \"#d10+11i\" (make-rectangular 10 11) \"10+11i\")"
+ ATMOSPHERE: (76769..76770) "\n"
+ ATMOSPHERE: (76770..76837) ";; ;;(test-numeric-syntax \"#o10+11i\" (make-rectangular 8 9) \"8+9i\")"
+ ATMOSPHERE: (76837..76838) "\n"
+ ATMOSPHERE: (76838..76905) ";; ;;(test-numeric-syntax \"#b10+11i\" (make-rectangular 2 3) \"2+3i\")"
+ ATMOSPHERE: (76905..76906) "\n"
+ ATMOSPHERE: (76906..76981) ";; ;;(test-numeric-syntax \"#e1.0+1.0i\" (make-rectangular 1 1) \"1+1i\" \"1+i\")"
+ ATMOSPHERE: (76981..76982) "\n"
+ ATMOSPHERE: (76982..77068) ";; ;;(test-numeric-syntax \"#i1.0+1.0i\" (make-rectangular 1.0 1.0) \"1.0+1.0i\" \"1.+1.i\")"
+ ATMOSPHERE: (77068..77070) "\n\n"
+ ATMOSPHERE: (77070..77102) ";; (define-syntax test-precision"
+ ATMOSPHERE: (77102..77103) "\n"
+ ATMOSPHERE: (77103..77124) ";; (syntax-rules ()"
+ ATMOSPHERE: (77124..77125) "\n"
+ ATMOSPHERE: (77125..77162) ";; ((test-round-trip str alt ...)"
+ ATMOSPHERE: (77162..77163) "\n"
+ ATMOSPHERE: (77163..77202) ";; (let* ((n (string->number str))"
+ ATMOSPHERE: (77202..77203) "\n"
+ ATMOSPHERE: (77203..77243) ";; (str2 (number->string n))"
+ ATMOSPHERE: (77243..77244) "\n"
+ ATMOSPHERE: (77244..77288) ";; (accepted (list str alt ...))"
+ ATMOSPHERE: (77288..77289) "\n"
+ ATMOSPHERE: (77289..77332) ";; (ls (member str2 accepted)))"
+ ATMOSPHERE: (77332..77333) "\n"
+ ATMOSPHERE: (77333..77391) ";; (test-assert (string-append \"(member? \" str2 \" \""
+ ATMOSPHERE: (77391..77392) "\n"
+ ATMOSPHERE: (77392..77463) ";; (let ((out (open-output-string)))"
+ ATMOSPHERE: (77463..77464) "\n"
+ ATMOSPHERE: (77464..77524) ";; (write accepted out)"
+ ATMOSPHERE: (77524..77525) "\n"
+ ATMOSPHERE: (77525..77589) ";; (get-output-string out))"
+ ATMOSPHERE: (77589..77590) "\n"
+ ATMOSPHERE: (77590..77632) ";; \")\")"
+ ATMOSPHERE: (77632..77633) "\n"
+ ATMOSPHERE: (77633..77656) ";; (pair? ls))"
+ ATMOSPHERE: (77656..77657) "\n"
+ ATMOSPHERE: (77657..77683) ";; (when (pair? ls)"
+ ATMOSPHERE: (77683..77684) "\n"
+ ATMOSPHERE: (77684..77751) ";; (test-assert (string-append \"(eqv?: \" str \" \" str2 \")\")"
+ ATMOSPHERE: (77751..77752) "\n"
+ ATMOSPHERE: (77752..77806) ";; (eqv? n (string->number (car ls)))))))))"
+ ATMOSPHERE: (77806..77808) "\n\n"
+ ATMOSPHERE: (77808..77863) ";; (test-precision \"-1.7976931348623157e+308\" \"-inf.0\")"
+ ATMOSPHERE: (77863..77864) "\n"
+ ATMOSPHERE: (77864..77949) ";; (test-precision \"4.940656458412465e-324\" \"4.94065645841247e-324\" \"5.0e-324\" \"0.0\")"
+ ATMOSPHERE: (77949..77950) "\n"
+ ATMOSPHERE: (77950..78035) ";; (test-precision \"9.881312916824931e-324\" \"9.88131291682493e-324\" \"1.0e-323\" \"0.0\")"
+ ATMOSPHERE: (78035..78036) "\n"
+ ATMOSPHERE: (78036..78096) ";; (test-precision \"1.48219693752374e-323\" \"1.5e-323\" \"0.0\")"
+ ATMOSPHERE: (78096..78097) "\n"
+ ATMOSPHERE: (78097..78182) ";; (test-precision \"1.976262583364986e-323\" \"1.97626258336499e-323\" \"2.0e-323\" \"0.0\")"
+ ATMOSPHERE: (78182..78183) "\n"
+ ATMOSPHERE: (78183..78268) ";; (test-precision \"2.470328229206233e-323\" \"2.47032822920623e-323\" \"2.5e-323\" \"0.0\")"
+ ATMOSPHERE: (78268..78269) "\n"
+ ATMOSPHERE: (78269..78354) ";; (test-precision \"2.420921664622108e-322\" \"2.42092166462211e-322\" \"2.4e-322\" \"0.0\")"
+ ATMOSPHERE: (78354..78355) "\n"
+ ATMOSPHERE: (78355..78442) ";; (test-precision \"2.420921664622108e-320\" \"2.42092166462211e-320\" \"2.421e-320\" \"0.0\")"
+ ATMOSPHERE: (78442..78443) "\n"
+ ATMOSPHERE: (78443..78495) ";; (test-precision \"1.4489974452386991\" \"1.4489975\")"
+ ATMOSPHERE: (78495..78496) "\n"
+ ATMOSPHERE: (78496..78572) ";; (test-precision \"0.14285714285714282\" \"0.14285714285714288\" \"0.14285715\")"
+ ATMOSPHERE: (78572..78573) "\n"
+ ATMOSPHERE: (78573..78627) ";; (test-precision \"1.7976931348623157e+308\" \"+inf.0\")"
+ ATMOSPHERE: (78627..78629) "\n\n"
+ FORM: (78629..78639)
+ OPEN_PAREN: (78629..78630) "("
+ SYMBOL: (78630..78638)
+ IDENTIFIER: (78630..78638) "test-end"
+ CLOSE_PAREN: (78638..78639) ")"
+ ATMOSPHERE: (78639..78641) "\n\n"
+ FORM: (78641..78651)
+ OPEN_PAREN: (78641..78642) "("
+ SYMBOL: (78642..78650)
+ IDENTIFIER: (78642..78650) "test-end"
+ CLOSE_PAREN: (78650..78651) ")"
+ ATMOSPHERE: (78651..78653) "\n\n"
+ FORM: (78653..78689)
+ OPEN_PAREN: (78653..78654) "("
+ SYMBOL: (78654..78664)
+ IDENTIFIER: (78654..78664) "test-begin"
+ ATMOSPHERE: (78664..78665) " "
+ CONSTANT: (78665..78688)
+ STRING: (78665..78688) "\"6.14 System interface\""
+ CLOSE_PAREN: (78688..78689) ")"
+ ATMOSPHERE: (78689..78691) "\n\n"
+ ATMOSPHERE: (78691..78718) ";; ;; 6.14 System interface"
+ ATMOSPHERE: (78718..78720) "\n\n"
+ ATMOSPHERE: (78720..78797) ";; ;; (test \"/usr/local/bin:/usr/bin:/bin\" (get-environment-variable \"PATH\"))"
+ ATMOSPHERE: (78797..78799) "\n\n"
+ ATMOSPHERE: (78799..78855) ";; (test #t (string? (get-environment-variable \"PATH\")))"
+ ATMOSPHERE: (78855..78857) "\n\n"
+ ATMOSPHERE: (78857..78933) ";; ;; (test '((\"USER\" . \"root\") (\"HOME\" . \"/\")) (get-environment-variables))"
+ ATMOSPHERE: (78933..78935) "\n\n"
+ ATMOSPHERE: (78935..78978) ";; (let ((env (get-environment-variables)))"
+ ATMOSPHERE: (78978..78979) "\n"
+ ATMOSPHERE: (78979..79005) ";; (define (env-pair? x)"
+ ATMOSPHERE: (79005..79006) "\n"
+ ATMOSPHERE: (79006..79065) ";; (and (pair? x) (string? (car x)) (string? (cdr x))))"
+ ATMOSPHERE: (79065..79066) "\n"
+ ATMOSPHERE: (79066..79093) ";; (define (all? pred ls)"
+ ATMOSPHERE: (79093..79094) "\n"
+ ATMOSPHERE: (79094..79160) ";; (or (null? ls) (and (pred (car ls)) (all? pred (cdr ls)))))"
+ ATMOSPHERE: (79160..79161) "\n"
+ ATMOSPHERE: (79161..79187) ";; (test #t (list? env))"
+ ATMOSPHERE: (79187..79188) "\n"
+ ATMOSPHERE: (79188..79224) ";; (test #t (all? env-pair? env)))"
+ ATMOSPHERE: (79224..79226) "\n\n"
+ ATMOSPHERE: (79226..79261) ";; (test #t (list? (command-line)))"
+ ATMOSPHERE: (79261..79263) "\n\n"
+ ATMOSPHERE: (79263..79300) ";; (test #t (real? (current-second)))"
+ ATMOSPHERE: (79300..79301) "\n"
+ ATMOSPHERE: (79301..79341) ";; (test #t (inexact? (current-second)))"
+ ATMOSPHERE: (79341..79342) "\n"
+ ATMOSPHERE: (79342..79379) ";; (test #t (exact? (current-jiffy)))"
+ ATMOSPHERE: (79379..79380) "\n"
+ ATMOSPHERE: (79380..79422) ";; (test #t (exact? (jiffies-per-second)))"
+ ATMOSPHERE: (79422..79424) "\n\n"
+ ATMOSPHERE: (79424..79455) ";; (test #t (list? (features)))"
+ ATMOSPHERE: (79455..79456) "\n"
+ ATMOSPHERE: (79456..79501) ";; (test #t (and (memq 'r7rs (features)) #t))"
+ ATMOSPHERE: (79501..79503) "\n\n"
+ ATMOSPHERE: (79503..79534) ";; (test #t (file-exists? \".\"))"
+ ATMOSPHERE: (79534..79535) "\n"
+ ATMOSPHERE: (79535..79579) ";; (test #f (file-exists? \" no such file \"))"
+ ATMOSPHERE: (79579..79581) "\n\n"
+ ATMOSPHERE: (79581..79605) ";; (test #t (file-error?"
+ ATMOSPHERE: (79605..79606) "\n"
+ ATMOSPHERE: (79606..79642) ";; (guard (exn (else exn))"
+ ATMOSPHERE: (79642..79643) "\n"
+ ATMOSPHERE: (79643..79691) ";; (delete-file \" no such file \"))))"
+ ATMOSPHERE: (79691..79693) "\n\n"
+ FORM: (79693..79703)
+ OPEN_PAREN: (79693..79694) "("
+ SYMBOL: (79694..79702)
+ IDENTIFIER: (79694..79702) "test-end"
+ CLOSE_PAREN: (79702..79703) ")"
+ ATMOSPHERE: (79703..79705) "\n\n"
+ FORM: (79705..79715)
+ OPEN_PAREN: (79705..79706) "("
+ SYMBOL: (79706..79714)
+ IDENTIFIER: (79706..79714) "test-end"
+ CLOSE_PAREN: (79714..79715) ")"
+ ATMOSPHERE: (79715..79716) "\n"
+ EOF: (79716..79716) ""
diff --git a/spec/collatz.ast b/spec/collatz.ast
new file mode 100644
index 0000000..a762933
--- /dev/null
+++ b/spec/collatz.ast
@@ -0,0 +1,304 @@
+PROGRAM: (0..638)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..43) "\n\n"
+ ATMOSPHERE: (43..64) ";; Modululs remainder"
+ ATMOSPHERE: (64..65) "\n"
+ ATMOSPHERE: (65..67) ";;"
+ ATMOSPHERE: (67..68) "\n"
+ ATMOSPHERE: (68..107) ";; Returns the modulus remainder of n/d"
+ ATMOSPHERE: (107..108) "\n"
+ FORM: (108..177)
+ OPEN_PAREN: (108..109) "("
+ SYMBOL: (109..115)
+ IDENTIFIER: (109..115) "define"
+ ATMOSPHERE: (115..116) " "
+ FORM: (116..125)
+ OPEN_PAREN: (116..117) "("
+ SYMBOL: (117..120)
+ IDENTIFIER: (117..120) "mod"
+ ATMOSPHERE: (120..121) " "
+ SYMBOL: (121..122)
+ IDENTIFIER: (121..122) "n"
+ ATMOSPHERE: (122..123) " "
+ SYMBOL: (123..124)
+ IDENTIFIER: (123..124) "d"
+ CLOSE_PAREN: (124..125) ")"
+ ATMOSPHERE: (125..130) "\n "
+ FORM: (130..176)
+ OPEN_PAREN: (130..131) "("
+ SYMBOL: (131..133)
+ IDENTIFIER: (131..133) "if"
+ ATMOSPHERE: (133..134) " "
+ FORM: (134..141)
+ OPEN_PAREN: (134..135) "("
+ SYMBOL: (135..136)
+ IDENTIFIER: (135..136) "<"
+ ATMOSPHERE: (136..137) " "
+ SYMBOL: (137..138)
+ IDENTIFIER: (137..138) "n"
+ ATMOSPHERE: (138..139) " "
+ SYMBOL: (139..140)
+ IDENTIFIER: (139..140) "d"
+ CLOSE_PAREN: (140..141) ")"
+ ATMOSPHERE: (141..150) "\n "
+ SYMBOL: (150..151)
+ IDENTIFIER: (150..151) "n"
+ ATMOSPHERE: (151..160) "\n "
+ FORM: (160..175)
+ OPEN_PAREN: (160..161) "("
+ SYMBOL: (161..164)
+ IDENTIFIER: (161..164) "mod"
+ ATMOSPHERE: (164..165) " "
+ FORM: (165..172)
+ OPEN_PAREN: (165..166) "("
+ SYMBOL: (166..167)
+ IDENTIFIER: (166..167) "-"
+ ATMOSPHERE: (167..168) " "
+ SYMBOL: (168..169)
+ IDENTIFIER: (168..169) "n"
+ ATMOSPHERE: (169..170) " "
+ SYMBOL: (170..171)
+ IDENTIFIER: (170..171) "d"
+ CLOSE_PAREN: (171..172) ")"
+ ATMOSPHERE: (172..173) " "
+ SYMBOL: (173..174)
+ IDENTIFIER: (173..174) "d"
+ CLOSE_PAREN: (174..175) ")"
+ CLOSE_PAREN: (175..176) ")"
+ CLOSE_PAREN: (176..177) ")"
+ ATMOSPHERE: (177..179) "\n\n"
+ ATMOSPHERE: (179..233) ";; Find how long a given number takes to converge on 1"
+ ATMOSPHERE: (233..234) "\n"
+ FORM: (234..514)
+ OPEN_PAREN: (234..235) "("
+ SYMBOL: (235..241)
+ IDENTIFIER: (235..241) "define"
+ ATMOSPHERE: (241..242) " "
+ FORM: (242..253)
+ OPEN_PAREN: (242..243) "("
+ SYMBOL: (243..250)
+ IDENTIFIER: (243..250) "collatz"
+ ATMOSPHERE: (250..251) " "
+ SYMBOL: (251..252)
+ IDENTIFIER: (251..252) "x"
+ CLOSE_PAREN: (252..253) ")"
+ ATMOSPHERE: (253..258) "\n "
+ FORM: (258..486)
+ OPEN_PAREN: (258..259) "("
+ SYMBOL: (259..265)
+ IDENTIFIER: (259..265) "define"
+ ATMOSPHERE: (265..266) " "
+ FORM: (266..292)
+ OPEN_PAREN: (266..267) "("
+ SYMBOL: (267..283)
+ IDENTIFIER: (267..283) "collatz-internal"
+ ATMOSPHERE: (283..284) " "
+ SYMBOL: (284..285)
+ IDENTIFIER: (284..285) "x"
+ ATMOSPHERE: (285..286) " "
+ SYMBOL: (286..291)
+ IDENTIFIER: (286..291) "steps"
+ CLOSE_PAREN: (291..292) ")"
+ ATMOSPHERE: (292..301) "\n "
+ FORM: (301..485)
+ OPEN_PAREN: (301..302) "("
+ SYMBOL: (302..304)
+ IDENTIFIER: (302..304) "if"
+ ATMOSPHERE: (304..305) " "
+ FORM: (305..312)
+ OPEN_PAREN: (305..306) "("
+ SYMBOL: (306..307)
+ IDENTIFIER: (306..307) "="
+ ATMOSPHERE: (307..308) " "
+ SYMBOL: (308..309)
+ IDENTIFIER: (308..309) "x"
+ ATMOSPHERE: (309..310) " "
+ CONSTANT: (310..311)
+ NUMBER: (310..311) "1"
+ CLOSE_PAREN: (311..312) ")"
+ ATMOSPHERE: (312..325) "\n "
+ SYMBOL: (325..330)
+ IDENTIFIER: (325..330) "steps"
+ ATMOSPHERE: (330..343) "\n "
+ FORM: (343..484)
+ OPEN_PAREN: (343..344) "("
+ SYMBOL: (344..360)
+ IDENTIFIER: (344..360) "collatz-internal"
+ ATMOSPHERE: (360..377) "\n "
+ FORM: (377..459)
+ OPEN_PAREN: (377..378) "("
+ SYMBOL: (378..380)
+ IDENTIFIER: (378..380) "if"
+ ATMOSPHERE: (380..381) " "
+ FORM: (381..396)
+ OPEN_PAREN: (381..382) "("
+ SYMBOL: (382..383)
+ IDENTIFIER: (382..383) "="
+ ATMOSPHERE: (383..384) " "
+ FORM: (384..393)
+ OPEN_PAREN: (384..385) "("
+ SYMBOL: (385..388)
+ IDENTIFIER: (385..388) "mod"
+ ATMOSPHERE: (388..389) " "
+ SYMBOL: (389..390)
+ IDENTIFIER: (389..390) "x"
+ ATMOSPHERE: (390..391) " "
+ CONSTANT: (391..392)
+ NUMBER: (391..392) "2"
+ CLOSE_PAREN: (392..393) ")"
+ ATMOSPHERE: (393..394) " "
+ CONSTANT: (394..395)
+ NUMBER: (394..395) "0"
+ CLOSE_PAREN: (395..396) ")"
+ ATMOSPHERE: (396..417) "\n "
+ FORM: (417..424)
+ OPEN_PAREN: (417..418) "("
+ SYMBOL: (418..419)
+ IDENTIFIER: (418..419) "/"
+ ATMOSPHERE: (419..420) " "
+ SYMBOL: (420..421)
+ IDENTIFIER: (420..421) "x"
+ ATMOSPHERE: (421..422) " "
+ CONSTANT: (422..423)
+ NUMBER: (422..423) "2"
+ CLOSE_PAREN: (423..424) ")"
+ ATMOSPHERE: (424..445) "\n "
+ FORM: (445..458)
+ OPEN_PAREN: (445..446) "("
+ SYMBOL: (446..447)
+ IDENTIFIER: (446..447) "+"
+ ATMOSPHERE: (447..448) " "
+ FORM: (448..455)
+ OPEN_PAREN: (448..449) "("
+ SYMBOL: (449..450)
+ IDENTIFIER: (449..450) "*"
+ ATMOSPHERE: (450..451) " "
+ SYMBOL: (451..452)
+ IDENTIFIER: (451..452) "x"
+ ATMOSPHERE: (452..453) " "
+ CONSTANT: (453..454)
+ NUMBER: (453..454) "3"
+ CLOSE_PAREN: (454..455) ")"
+ ATMOSPHERE: (455..456) " "
+ CONSTANT: (456..457)
+ NUMBER: (456..457) "1"
+ CLOSE_PAREN: (457..458) ")"
+ CLOSE_PAREN: (458..459) ")"
+ ATMOSPHERE: (459..472) "\n "
+ FORM: (472..483)
+ OPEN_PAREN: (472..473) "("
+ SYMBOL: (473..474)
+ IDENTIFIER: (473..474) "+"
+ ATMOSPHERE: (474..475) " "
+ SYMBOL: (475..480)
+ IDENTIFIER: (475..480) "steps"
+ ATMOSPHERE: (480..481) " "
+ CONSTANT: (481..482)
+ NUMBER: (481..482) "1"
+ CLOSE_PAREN: (482..483) ")"
+ CLOSE_PAREN: (483..484) ")"
+ CLOSE_PAREN: (484..485) ")"
+ CLOSE_PAREN: (485..486) ")"
+ ATMOSPHERE: (486..491) "\n "
+ FORM: (491..513)
+ OPEN_PAREN: (491..492) "("
+ SYMBOL: (492..508)
+ IDENTIFIER: (492..508) "collatz-internal"
+ ATMOSPHERE: (508..509) " "
+ SYMBOL: (509..510)
+ IDENTIFIER: (509..510) "x"
+ ATMOSPHERE: (510..511) " "
+ CONSTANT: (511..512)
+ NUMBER: (511..512) "0"
+ CLOSE_PAREN: (512..513) ")"
+ CLOSE_PAREN: (513..514) ")"
+ ATMOSPHERE: (514..516) "\n\n"
+ FORM: (516..538)
+ OPEN_PAREN: (516..517) "("
+ SYMBOL: (517..524)
+ IDENTIFIER: (517..524) "display"
+ ATMOSPHERE: (524..525) " "
+ FORM: (525..537)
+ OPEN_PAREN: (525..526) "("
+ SYMBOL: (526..533)
+ IDENTIFIER: (526..533) "collatz"
+ ATMOSPHERE: (533..534) " "
+ CONSTANT: (534..536)
+ NUMBER: (534..536) "17"
+ CLOSE_PAREN: (536..537) ")"
+ CLOSE_PAREN: (537..538) ")"
+ FORM: (538..547)
+ OPEN_PAREN: (538..539) "("
+ SYMBOL: (539..546)
+ IDENTIFIER: (539..546) "newline"
+ CLOSE_PAREN: (546..547) ")"
+ ATMOSPHERE: (547..548) " "
+ ATMOSPHERE: (548..556) ";; => 12"
+ ATMOSPHERE: (556..557) "\n"
+ FORM: (557..578)
+ OPEN_PAREN: (557..558) "("
+ SYMBOL: (558..565)
+ IDENTIFIER: (558..565) "display"
+ ATMOSPHERE: (565..566) " "
+ FORM: (566..577)
+ OPEN_PAREN: (566..567) "("
+ SYMBOL: (567..574)
+ IDENTIFIER: (567..574) "collatz"
+ ATMOSPHERE: (574..575) " "
+ CONSTANT: (575..576)
+ NUMBER: (575..576) "1"
+ CLOSE_PAREN: (576..577) ")"
+ CLOSE_PAREN: (577..578) ")"
+ FORM: (578..587)
+ OPEN_PAREN: (578..579) "("
+ SYMBOL: (579..586)
+ IDENTIFIER: (579..586) "newline"
+ CLOSE_PAREN: (586..587) ")"
+ ATMOSPHERE: (587..589) " "
+ ATMOSPHERE: (589..596) ";; => 0"
+ ATMOSPHERE: (596..597) "\n"
+ FORM: (597..618)
+ OPEN_PAREN: (597..598) "("
+ SYMBOL: (598..605)
+ IDENTIFIER: (598..605) "display"
+ ATMOSPHERE: (605..606) " "
+ FORM: (606..617)
+ OPEN_PAREN: (606..607) "("
+ SYMBOL: (607..614)
+ IDENTIFIER: (607..614) "collatz"
+ ATMOSPHERE: (614..615) " "
+ CONSTANT: (615..616)
+ NUMBER: (615..616) "9"
+ CLOSE_PAREN: (616..617) ")"
+ CLOSE_PAREN: (617..618) ")"
+ FORM: (618..627)
+ OPEN_PAREN: (618..619) "("
+ SYMBOL: (619..626)
+ IDENTIFIER: (619..626) "newline"
+ CLOSE_PAREN: (626..627) ")"
+ ATMOSPHERE: (627..629) " "
+ ATMOSPHERE: (629..637) ";; => 19"
+ ATMOSPHERE: (637..638) "\n"
+ EOF: (638..638) ""
diff --git a/spec/comment.ast b/spec/comment.ast
new file mode 100644
index 0000000..ef3b437
--- /dev/null
+++ b/spec/comment.ast
@@ -0,0 +1,20 @@
+PROGRAM: (0..163)
+ ATMOSPHERE: (0..9) "; this is"
+ ATMOSPHERE: (9..10) "\n"
+ ATMOSPHERE: (10..33) ";; just a collection of"
+ ATMOSPHERE: (33..34) "\n"
+ ATMOSPHERE: (34..47) ";;;; comments"
+ ATMOSPHERE: (47..48) "\n"
+ ATMOSPHERE: (48..53) "; and"
+ ATMOSPHERE: (53..54) "\n"
+ ATMOSPHERE: (54..61) ";things"
+ ATMOSPHERE: (61..62) "\n"
+ ATMOSPHERE: (62..75) "; ; ; ; ; ; ;"
+ ATMOSPHERE: (75..76) "\n"
+ CONSTANT: (76..77)
+ NUMBER: (76..77) "0"
+ ATMOSPHERE: (77..78) "\n"
+ ATMOSPHERE: (78..147) ";; ^^ that one keeps the compiler happy. A file without statements is"
+ ATMOSPHERE: (147..148) "\n"
+ ATMOSPHERE: (148..163) ";; \"undefined\"."
+ EOF: (163..163) ""
diff --git a/spec/comments_extended.ast b/spec/comments_extended.ast
new file mode 100644
index 0000000..2c49343
--- /dev/null
+++ b/spec/comments_extended.ast
@@ -0,0 +1,141 @@
+PROGRAM: (0..534)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..43) "\n\n"
+ ATMOSPHERE: (43..121) "#|\n The FACT procedure computes the factorial of a non-negative integer.\n|#"
+ ATMOSPHERE: (121..122) "\n"
+ FORM: (122..507)
+ OPEN_PAREN: (122..123) "("
+ SYMBOL: (123..129)
+ IDENTIFIER: (123..129) "define"
+ ATMOSPHERE: (129..130) " "
+ SYMBOL: (130..134)
+ IDENTIFIER: (130..134) "fact"
+ ATMOSPHERE: (134..139) "\n "
+ FORM: (139..506)
+ OPEN_PAREN: (139..140) "("
+ SYMBOL: (140..146)
+ IDENTIFIER: (140..146) "lambda"
+ ATMOSPHERE: (146..147) " "
+ FORM: (147..150)
+ OPEN_PAREN: (147..148) "("
+ SYMBOL: (148..149)
+ IDENTIFIER: (148..149) "n"
+ CLOSE_PAREN: (149..150) ")"
+ ATMOSPHERE: (150..159) "\n "
+ ATMOSPHERE: (159..216) "; ; ~~~ Remove these when builtins are properly supported"
+ ATMOSPHERE: (216..225) "\n "
+ ATMOSPHERE: (225..243) "; (define (- x) x)"
+ ATMOSPHERE: (243..252) "\n "
+ ATMOSPHERE: (252..270) "; (define (= y) y)"
+ ATMOSPHERE: (270..279) "\n "
+ ATMOSPHERE: (279..297) "; (define (* z) z)"
+ ATMOSPHERE: (297..306) "\n "
+ ATMOSPHERE: (306..356) "; ; ~~~~ Remove when scopes are supported properly"
+ ATMOSPHERE: (356..365) "\n "
+ ATMOSPHERE: (365..386) "; (define (fact x) x)"
+ ATMOSPHERE: (386..396) "\n\n "
+ FORM: (396..505)
+ OPEN_PAREN: (396..397) "("
+ SYMBOL: (397..399)
+ IDENTIFIER: (397..399) "if"
+ ATMOSPHERE: (399..400) " "
+ FORM: (400..407)
+ OPEN_PAREN: (400..401) "("
+ SYMBOL: (401..402)
+ IDENTIFIER: (401..402) "="
+ ATMOSPHERE: (402..403) " "
+ SYMBOL: (403..404)
+ IDENTIFIER: (403..404) "n"
+ ATMOSPHERE: (404..405) " "
+ CONSTANT: (405..406)
+ NUMBER: (405..406) "0"
+ CLOSE_PAREN: (406..407) ")"
+ ATMOSPHERE: (407..420) "\n "
+ ATMOSPHERE: (420..442)
+ ATMOSPHERE: (420..422) "#;"
+ FORM: (422..429)
+ OPEN_PAREN: (422..423) "("
+ SYMBOL: (423..424)
+ IDENTIFIER: (423..424) "="
+ ATMOSPHERE: (424..425) " "
+ SYMBOL: (425..426)
+ IDENTIFIER: (425..426) "n"
+ ATMOSPHERE: (426..427) " "
+ CONSTANT: (427..428)
+ NUMBER: (427..428) "1"
+ CLOSE_PAREN: (428..429) ")"
+ ATMOSPHERE: (429..442) "\n "
+ CONSTANT: (442..443)
+ NUMBER: (442..443) "1"
+ ATMOSPHERE: (443..451) " "
+ ATMOSPHERE: (451..471) ";Base case: return 1"
+ ATMOSPHERE: (471..484) "\n "
+ FORM: (484..504)
+ OPEN_PAREN: (484..485) "("
+ SYMBOL: (485..486)
+ IDENTIFIER: (485..486) "*"
+ ATMOSPHERE: (486..487) " "
+ SYMBOL: (487..488)
+ IDENTIFIER: (487..488) "n"
+ ATMOSPHERE: (488..489) " "
+ FORM: (489..503)
+ OPEN_PAREN: (489..490) "("
+ SYMBOL: (490..494)
+ IDENTIFIER: (490..494) "fact"
+ ATMOSPHERE: (494..495) " "
+ FORM: (495..502)
+ OPEN_PAREN: (495..496) "("
+ SYMBOL: (496..497)
+ IDENTIFIER: (496..497) "-"
+ ATMOSPHERE: (497..498) " "
+ SYMBOL: (498..499)
+ IDENTIFIER: (498..499) "n"
+ ATMOSPHERE: (499..500) " "
+ CONSTANT: (500..501)
+ NUMBER: (500..501) "1"
+ CLOSE_PAREN: (501..502) ")"
+ CLOSE_PAREN: (502..503) ")"
+ CLOSE_PAREN: (503..504) ")"
+ CLOSE_PAREN: (504..505) ")"
+ CLOSE_PAREN: (505..506) ")"
+ CLOSE_PAREN: (506..507) ")"
+ ATMOSPHERE: (507..509) "\n\n"
+ FORM: (509..527)
+ OPEN_PAREN: (509..510) "("
+ SYMBOL: (510..517)
+ IDENTIFIER: (510..517) "display"
+ ATMOSPHERE: (517..518) " "
+ FORM: (518..526)
+ OPEN_PAREN: (518..519) "("
+ SYMBOL: (519..523)
+ IDENTIFIER: (519..523) "fact"
+ ATMOSPHERE: (523..524) " "
+ CONSTANT: (524..525)
+ NUMBER: (524..525) "3"
+ CLOSE_PAREN: (525..526) ")"
+ CLOSE_PAREN: (526..527) ")"
+ ATMOSPHERE: (527..528) " "
+ ATMOSPHERE: (528..534) "; -> 6"
+ EOF: (534..534) ""
diff --git a/spec/conditions.ast b/spec/conditions.ast
new file mode 100644
index 0000000..cb63afe
--- /dev/null
+++ b/spec/conditions.ast
@@ -0,0 +1,282 @@
+PROGRAM: (0..707)
+ FORM: (0..211)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ ATMOSPHERE: (26..93) ";; FIXME: we shouldn't _need_ to import this, but we have no way of"
+ ATMOSPHERE: (93..98) "\n "
+ ATMOSPHERE: (98..162) ";; exporting or re-exporting macro definitions currently."
+ ATMOSPHERE: (162..167) "\n "
+ FORM: (167..191)
+ OPEN_PAREN: (167..168) "("
+ SYMBOL: (168..175)
+ IDENTIFIER: (168..175) "feersum"
+ ATMOSPHERE: (175..176) " "
+ SYMBOL: (176..183)
+ IDENTIFIER: (176..183) "builtin"
+ ATMOSPHERE: (183..184) " "
+ SYMBOL: (184..190)
+ IDENTIFIER: (184..190) "macros"
+ CLOSE_PAREN: (190..191) ")"
+ ATMOSPHERE: (191..196) "\n "
+ FORM: (196..210)
+ OPEN_PAREN: (196..197) "("
+ SYMBOL: (197..203)
+ IDENTIFIER: (197..203) "scheme"
+ ATMOSPHERE: (203..204) " "
+ SYMBOL: (204..209)
+ IDENTIFIER: (204..209) "write"
+ CLOSE_PAREN: (209..210) ")"
+ CLOSE_PAREN: (210..211) ")"
+ ATMOSPHERE: (211..212) "\n"
+ FORM: (212..318)
+ OPEN_PAREN: (212..213) "("
+ SYMBOL: (213..220)
+ IDENTIFIER: (213..220) "display"
+ ATMOSPHERE: (220..221) " "
+ FORM: (221..317)
+ OPEN_PAREN: (221..222) "("
+ SYMBOL: (222..226)
+ IDENTIFIER: (222..226) "list"
+ ATMOSPHERE: (226..231) "\n "
+ FORM: (231..246)
+ OPEN_PAREN: (231..232) "("
+ SYMBOL: (232..236)
+ IDENTIFIER: (232..236) "when"
+ ATMOSPHERE: (236..237) " "
+ CONSTANT: (237..239)
+ BOOLEAN: (237..239) "#t"
+ ATMOSPHERE: (239..240) " "
+ CONSTANT: (240..241)
+ NUMBER: (240..241) "1"
+ ATMOSPHERE: (241..242) " "
+ CONSTANT: (242..243)
+ NUMBER: (242..243) "2"
+ ATMOSPHERE: (243..244) " "
+ CONSTANT: (244..245)
+ NUMBER: (244..245) "3"
+ CLOSE_PAREN: (245..246) ")"
+ ATMOSPHERE: (246..251) "\n "
+ FORM: (251..266)
+ OPEN_PAREN: (251..252) "("
+ SYMBOL: (252..256)
+ IDENTIFIER: (252..256) "when"
+ ATMOSPHERE: (256..257) " "
+ CONSTANT: (257..259)
+ BOOLEAN: (257..259) "#f"
+ ATMOSPHERE: (259..260) " "
+ QUOTED_DATUM: (260..265)
+ QUOTE: (260..261) "'"
+ SYMBOL: (261..265)
+ IDENTIFIER: (261..265) "fail"
+ CLOSE_PAREN: (265..266) ")"
+ ATMOSPHERE: (266..271) "\n "
+ FORM: (271..288)
+ OPEN_PAREN: (271..272) "("
+ SYMBOL: (272..278)
+ IDENTIFIER: (272..278) "unless"
+ ATMOSPHERE: (278..279) " "
+ CONSTANT: (279..281)
+ BOOLEAN: (279..281) "#f"
+ ATMOSPHERE: (281..282) " "
+ QUOTED_DATUM: (282..287)
+ QUOTE: (282..283) "'"
+ SYMBOL: (283..287)
+ IDENTIFIER: (283..287) "yarp"
+ CLOSE_PAREN: (287..288) ")"
+ ATMOSPHERE: (288..293) "\n "
+ FORM: (293..311)
+ OPEN_PAREN: (293..294) "("
+ SYMBOL: (294..300)
+ IDENTIFIER: (294..300) "unless"
+ ATMOSPHERE: (300..301) " "
+ CONSTANT: (301..306)
+ BOOLEAN: (301..306) "#true"
+ ATMOSPHERE: (306..307) " "
+ CONSTANT: (307..310)
+ NUMBER: (307..310) "123"
+ CLOSE_PAREN: (310..311) ")"
+ ATMOSPHERE: (311..316) "\n "
+ CLOSE_PAREN: (316..317) ")"
+ CLOSE_PAREN: (317..318) ")"
+ ATMOSPHERE: (318..320) "\n\n"
+ FORM: (320..366)
+ OPEN_PAREN: (320..321) "("
+ SYMBOL: (321..328)
+ IDENTIFIER: (321..328) "display"
+ ATMOSPHERE: (328..333) "\n "
+ FORM: (333..365)
+ OPEN_PAREN: (333..334) "("
+ SYMBOL: (334..336)
+ IDENTIFIER: (334..336) "if"
+ ATMOSPHERE: (336..337) " "
+ CONSTANT: (337..339)
+ BOOLEAN: (337..339) "#t"
+ ATMOSPHERE: (339..348) "\n "
+ CONSTANT: (348..351)
+ NUMBER: (348..351) "255"
+ ATMOSPHERE: (351..360) "\n "
+ CONSTANT: (360..364)
+ NUMBER: (360..364) "-123"
+ CLOSE_PAREN: (364..365) ")"
+ CLOSE_PAREN: (365..366) ")"
+ ATMOSPHERE: (366..368) "\n\n"
+ ATMOSPHERE: (368..421) ";; Hello isn't #f, therefore we should return \"world\""
+ ATMOSPHERE: (421..422) "\n"
+ FORM: (422..475)
+ OPEN_PAREN: (422..423) "("
+ SYMBOL: (423..430)
+ IDENTIFIER: (423..430) "display"
+ ATMOSPHERE: (430..435) "\n "
+ FORM: (435..474)
+ OPEN_PAREN: (435..436) "("
+ SYMBOL: (436..438)
+ IDENTIFIER: (436..438) "if"
+ ATMOSPHERE: (438..439) " "
+ CONSTANT: (439..446)
+ STRING: (439..446) "\"hello\""
+ ATMOSPHERE: (446..455) "\n "
+ CONSTANT: (455..462)
+ STRING: (455..462) "\"world\""
+ ATMOSPHERE: (462..471) "\n "
+ CONSTANT: (471..473)
+ NUMBER: (471..473) "-2"
+ CLOSE_PAREN: (473..474) ")"
+ CLOSE_PAREN: (474..475) ")"
+ ATMOSPHERE: (475..485) "\n \n"
+ FORM: (485..565)
+ OPEN_PAREN: (485..486) "("
+ SYMBOL: (486..493)
+ IDENTIFIER: (486..493) "display"
+ ATMOSPHERE: (493..498) "\n "
+ FORM: (498..564)
+ OPEN_PAREN: (498..499) "("
+ SYMBOL: (499..503)
+ IDENTIFIER: (499..503) "cond"
+ ATMOSPHERE: (503..512) "\n "
+ FORM: (512..523)
+ OPEN_PAREN: (512..513) "("
+ CONSTANT: (513..515)
+ BOOLEAN: (513..515) "#f"
+ ATMOSPHERE: (515..516) " "
+ QUOTED_DATUM: (516..522)
+ QUOTE: (516..517) "'"
+ SYMBOL: (517..522)
+ IDENTIFIER: (517..522) "false"
+ CLOSE_PAREN: (522..523) ")"
+ ATMOSPHERE: (523..532) "\n "
+ FORM: (532..542)
+ OPEN_PAREN: (532..533) "("
+ CONSTANT: (533..535)
+ BOOLEAN: (533..535) "#t"
+ ATMOSPHERE: (535..536) " "
+ QUOTED_DATUM: (536..541)
+ QUOTE: (536..537) "'"
+ SYMBOL: (537..541)
+ IDENTIFIER: (537..541) "true"
+ CLOSE_PAREN: (541..542) ")"
+ ATMOSPHERE: (542..551) "\n "
+ FORM: (551..563)
+ OPEN_PAREN: (551..552) "("
+ SYMBOL: (552..556)
+ IDENTIFIER: (552..556) "else"
+ ATMOSPHERE: (556..557) " "
+ QUOTED_DATUM: (557..562)
+ QUOTE: (557..558) "'"
+ SYMBOL: (558..562)
+ IDENTIFIER: (558..562) "fail"
+ CLOSE_PAREN: (562..563) ")"
+ CLOSE_PAREN: (563..564) ")"
+ CLOSE_PAREN: (564..565) ")"
+ ATMOSPHERE: (565..566) "\n"
+ FORM: (566..625)
+ OPEN_PAREN: (566..567) "("
+ SYMBOL: (567..574)
+ IDENTIFIER: (567..574) "display"
+ ATMOSPHERE: (574..579) "\n "
+ FORM: (579..624)
+ OPEN_PAREN: (579..580) "("
+ SYMBOL: (580..584)
+ IDENTIFIER: (580..584) "cond"
+ ATMOSPHERE: (584..593) "\n "
+ FORM: (593..604)
+ OPEN_PAREN: (593..594) "("
+ CONSTANT: (594..596)
+ BOOLEAN: (594..596) "#f"
+ ATMOSPHERE: (596..597) " "
+ QUOTED_DATUM: (597..603)
+ QUOTE: (597..598) "'"
+ SYMBOL: (598..603)
+ IDENTIFIER: (598..603) "false"
+ CLOSE_PAREN: (603..604) ")"
+ ATMOSPHERE: (604..613) "\n "
+ FORM: (613..623)
+ OPEN_PAREN: (613..614) "("
+ CONSTANT: (614..616)
+ BOOLEAN: (614..616) "#t"
+ ATMOSPHERE: (616..617) " "
+ QUOTED_DATUM: (617..622)
+ QUOTE: (617..618) "'"
+ SYMBOL: (618..622)
+ IDENTIFIER: (618..622) "true"
+ CLOSE_PAREN: (622..623) ")"
+ CLOSE_PAREN: (623..624) ")"
+ CLOSE_PAREN: (624..625) ")"
+ ATMOSPHERE: (625..626) "\n"
+ FORM: (626..665)
+ OPEN_PAREN: (626..627) "("
+ SYMBOL: (627..634)
+ IDENTIFIER: (627..634) "display"
+ ATMOSPHERE: (634..639) "\n "
+ FORM: (639..664)
+ OPEN_PAREN: (639..640) "("
+ SYMBOL: (640..644)
+ IDENTIFIER: (640..644) "cond"
+ ATMOSPHERE: (644..653) "\n "
+ FORM: (653..663)
+ OPEN_PAREN: (653..654) "("
+ SYMBOL: (654..658)
+ IDENTIFIER: (654..658) "else"
+ ATMOSPHERE: (658..659) " "
+ QUOTED_DATUM: (659..662)
+ QUOTE: (659..660) "'"
+ SYMBOL: (660..662)
+ IDENTIFIER: (660..662) "ok"
+ CLOSE_PAREN: (662..663) ")"
+ CLOSE_PAREN: (663..664) ")"
+ CLOSE_PAREN: (664..665) ")"
+ ATMOSPHERE: (665..666) "\n"
+ FORM: (666..706)
+ OPEN_PAREN: (666..667) "("
+ SYMBOL: (667..674)
+ IDENTIFIER: (667..674) "display"
+ ATMOSPHERE: (674..679) "\n "
+ FORM: (679..705)
+ OPEN_PAREN: (679..680) "("
+ SYMBOL: (680..684)
+ IDENTIFIER: (680..684) "cond"
+ ATMOSPHERE: (684..694) " \n "
+ FORM: (694..704)
+ OPEN_PAREN: (694..695) "("
+ CONSTANT: (695..697)
+ BOOLEAN: (695..697) "#f"
+ ATMOSPHERE: (697..698) " "
+ QUOTED_DATUM: (698..703)
+ QUOTE: (698..699) "'"
+ SYMBOL: (699..703)
+ IDENTIFIER: (699..703) "fail"
+ CLOSE_PAREN: (703..704) ")"
+ CLOSE_PAREN: (704..705) ")"
+ CLOSE_PAREN: (705..706) ")"
+ ATMOSPHERE: (706..707) "\n"
+ EOF: (707..707) ""
diff --git a/spec/cxr.ast b/spec/cxr.ast
new file mode 100644
index 0000000..8dff57e
--- /dev/null
+++ b/spec/cxr.ast
@@ -0,0 +1,167 @@
+PROGRAM: (0..265)
+ FORM: (0..58)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..20)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..19)
+ IDENTIFIER: (16..19) "cxr"
+ CLOSE_PAREN: (19..20) ")"
+ ATMOSPHERE: (20..25) "\n "
+ FORM: (25..38)
+ OPEN_PAREN: (25..26) "("
+ SYMBOL: (26..32)
+ IDENTIFIER: (26..32) "scheme"
+ ATMOSPHERE: (32..33) " "
+ SYMBOL: (33..37)
+ IDENTIFIER: (33..37) "base"
+ CLOSE_PAREN: (37..38) ")"
+ ATMOSPHERE: (38..43) "\n "
+ FORM: (43..57)
+ OPEN_PAREN: (43..44) "("
+ SYMBOL: (44..50)
+ IDENTIFIER: (44..50) "scheme"
+ ATMOSPHERE: (50..51) " "
+ SYMBOL: (51..56)
+ IDENTIFIER: (51..56) "write"
+ CLOSE_PAREN: (56..57) ")"
+ CLOSE_PAREN: (57..58) ")"
+ ATMOSPHERE: (58..60) "\n\n"
+ FORM: (60..119)
+ OPEN_PAREN: (60..61) "("
+ SYMBOL: (61..67)
+ IDENTIFIER: (61..67) "define"
+ ATMOSPHERE: (67..68) " "
+ SYMBOL: (68..77)
+ IDENTIFIER: (68..77) "test-list"
+ ATMOSPHERE: (77..78) " "
+ QUOTED_DATUM: (78..118)
+ QUOTE: (78..79) "'"
+ FORM: (79..118)
+ OPEN_PAREN: (79..80) "("
+ ATMOSPHERE: (80..85) "\n "
+ FORM: (85..92)
+ OPEN_PAREN: (85..86) "("
+ CONSTANT: (86..87)
+ NUMBER: (86..87) "1"
+ ATMOSPHERE: (87..88) " "
+ CONSTANT: (88..89)
+ NUMBER: (88..89) "2"
+ ATMOSPHERE: (89..90) " "
+ CONSTANT: (90..91)
+ NUMBER: (90..91) "3"
+ CLOSE_PAREN: (91..92) ")"
+ ATMOSPHERE: (92..97) "\n "
+ FORM: (97..104)
+ OPEN_PAREN: (97..98) "("
+ CONSTANT: (98..99)
+ NUMBER: (98..99) "4"
+ ATMOSPHERE: (99..100) " "
+ CONSTANT: (100..101)
+ NUMBER: (100..101) "5"
+ ATMOSPHERE: (101..102) " "
+ CONSTANT: (102..103)
+ NUMBER: (102..103) "6"
+ CLOSE_PAREN: (103..104) ")"
+ ATMOSPHERE: (104..109) "\n "
+ FORM: (109..116)
+ OPEN_PAREN: (109..110) "("
+ CONSTANT: (110..111)
+ NUMBER: (110..111) "7"
+ ATMOSPHERE: (111..112) " "
+ CONSTANT: (112..113)
+ NUMBER: (112..113) "8"
+ ATMOSPHERE: (113..114) " "
+ CONSTANT: (114..115)
+ NUMBER: (114..115) "9"
+ CLOSE_PAREN: (115..116) ")"
+ ATMOSPHERE: (116..117) "\n"
+ CLOSE_PAREN: (117..118) ")"
+ CLOSE_PAREN: (118..119) ")"
+ ATMOSPHERE: (119..121) "\n\n"
+ FORM: (121..147)
+ OPEN_PAREN: (121..122) "("
+ SYMBOL: (122..129)
+ IDENTIFIER: (122..129) "display"
+ ATMOSPHERE: (129..130) " "
+ FORM: (130..146)
+ OPEN_PAREN: (130..131) "("
+ SYMBOL: (131..135)
+ IDENTIFIER: (131..135) "caar"
+ ATMOSPHERE: (135..136) " "
+ SYMBOL: (136..145)
+ IDENTIFIER: (136..145) "test-list"
+ CLOSE_PAREN: (145..146) ")"
+ CLOSE_PAREN: (146..147) ")"
+ FORM: (147..156)
+ OPEN_PAREN: (147..148) "("
+ SYMBOL: (148..155)
+ IDENTIFIER: (148..155) "newline"
+ CLOSE_PAREN: (155..156) ")"
+ ATMOSPHERE: (156..157) "\n"
+ FORM: (157..183)
+ OPEN_PAREN: (157..158) "("
+ SYMBOL: (158..165)
+ IDENTIFIER: (158..165) "display"
+ ATMOSPHERE: (165..166) " "
+ FORM: (166..182)
+ OPEN_PAREN: (166..167) "("
+ SYMBOL: (167..171)
+ IDENTIFIER: (167..171) "cadr"
+ ATMOSPHERE: (171..172) " "
+ SYMBOL: (172..181)
+ IDENTIFIER: (172..181) "test-list"
+ CLOSE_PAREN: (181..182) ")"
+ CLOSE_PAREN: (182..183) ")"
+ FORM: (183..192)
+ OPEN_PAREN: (183..184) "("
+ SYMBOL: (184..191)
+ IDENTIFIER: (184..191) "newline"
+ CLOSE_PAREN: (191..192) ")"
+ ATMOSPHERE: (192..193) "\n"
+ FORM: (193..219)
+ OPEN_PAREN: (193..194) "("
+ SYMBOL: (194..201)
+ IDENTIFIER: (194..201) "display"
+ ATMOSPHERE: (201..202) " "
+ FORM: (202..218)
+ OPEN_PAREN: (202..203) "("
+ SYMBOL: (203..207)
+ IDENTIFIER: (203..207) "cdar"
+ ATMOSPHERE: (207..208) " "
+ SYMBOL: (208..217)
+ IDENTIFIER: (208..217) "test-list"
+ CLOSE_PAREN: (217..218) ")"
+ CLOSE_PAREN: (218..219) ")"
+ FORM: (219..228)
+ OPEN_PAREN: (219..220) "("
+ SYMBOL: (220..227)
+ IDENTIFIER: (220..227) "newline"
+ CLOSE_PAREN: (227..228) ")"
+ ATMOSPHERE: (228..229) "\n"
+ FORM: (229..255)
+ OPEN_PAREN: (229..230) "("
+ SYMBOL: (230..237)
+ IDENTIFIER: (230..237) "display"
+ ATMOSPHERE: (237..238) " "
+ FORM: (238..254)
+ OPEN_PAREN: (238..239) "("
+ SYMBOL: (239..243)
+ IDENTIFIER: (239..243) "cddr"
+ ATMOSPHERE: (243..244) " "
+ SYMBOL: (244..253)
+ IDENTIFIER: (244..253) "test-list"
+ CLOSE_PAREN: (253..254) ")"
+ CLOSE_PAREN: (254..255) ")"
+ FORM: (255..264)
+ OPEN_PAREN: (255..256) "("
+ SYMBOL: (256..263)
+ IDENTIFIER: (256..263) "newline"
+ CLOSE_PAREN: (263..264) ")"
+ ATMOSPHERE: (264..265) "\n"
+ EOF: (265..265) ""
diff --git a/spec/define-and-assign.ast b/spec/define-and-assign.ast
new file mode 100644
index 0000000..9b1284d
--- /dev/null
+++ b/spec/define-and-assign.ast
@@ -0,0 +1,89 @@
+PROGRAM: (0..115)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..54)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..49)
+ IDENTIFIER: (43..49) "define"
+ ATMOSPHERE: (49..50) " "
+ SYMBOL: (50..51)
+ IDENTIFIER: (50..51) "x"
+ ATMOSPHERE: (51..52) " "
+ CONSTANT: (52..53)
+ NUMBER: (52..53) "2"
+ CLOSE_PAREN: (53..54) ")"
+ ATMOSPHERE: (54..55) "\n"
+ FORM: (55..72)
+ OPEN_PAREN: (55..56) "("
+ SYMBOL: (56..63)
+ IDENTIFIER: (56..63) "display"
+ ATMOSPHERE: (63..64) " "
+ FORM: (64..71)
+ OPEN_PAREN: (64..65) "("
+ SYMBOL: (65..66)
+ IDENTIFIER: (65..66) "+"
+ ATMOSPHERE: (66..67) " "
+ SYMBOL: (67..68)
+ IDENTIFIER: (67..68) "x"
+ ATMOSPHERE: (68..69) " "
+ CONSTANT: (69..70)
+ NUMBER: (69..70) "1"
+ CLOSE_PAREN: (70..71) ")"
+ CLOSE_PAREN: (71..72) ")"
+ ATMOSPHERE: (72..73) " "
+ ATMOSPHERE: (73..79) "; => 3"
+ ATMOSPHERE: (79..80) "\n"
+ FORM: (80..90)
+ OPEN_PAREN: (80..81) "("
+ SYMBOL: (81..85)
+ IDENTIFIER: (81..85) "set!"
+ ATMOSPHERE: (85..86) " "
+ SYMBOL: (86..87)
+ IDENTIFIER: (86..87) "x"
+ ATMOSPHERE: (87..88) " "
+ CONSTANT: (88..89)
+ NUMBER: (88..89) "4"
+ CLOSE_PAREN: (89..90) ")"
+ ATMOSPHERE: (90..91) "\n"
+ FORM: (91..108)
+ OPEN_PAREN: (91..92) "("
+ SYMBOL: (92..99)
+ IDENTIFIER: (92..99) "display"
+ ATMOSPHERE: (99..100) " "
+ FORM: (100..107)
+ OPEN_PAREN: (100..101) "("
+ SYMBOL: (101..102)
+ IDENTIFIER: (101..102) "+"
+ ATMOSPHERE: (102..103) " "
+ SYMBOL: (103..104)
+ IDENTIFIER: (103..104) "x"
+ ATMOSPHERE: (104..105) " "
+ CONSTANT: (105..106)
+ NUMBER: (105..106) "1"
+ CLOSE_PAREN: (106..107) ")"
+ CLOSE_PAREN: (107..108) ")"
+ ATMOSPHERE: (108..109) " "
+ ATMOSPHERE: (109..115) "; => 5"
+ EOF: (115..115) ""
diff --git a/spec/display-utils.ast b/spec/display-utils.ast
new file mode 100644
index 0000000..a3aa85a
--- /dev/null
+++ b/spec/display-utils.ast
@@ -0,0 +1,128 @@
+PROGRAM: (0..253)
+ FORM: (0..252)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..15)
+ IDENTIFIER: (1..15) "define-library"
+ ATMOSPHERE: (15..16) " "
+ FORM: (16..38)
+ OPEN_PAREN: (16..17) "("
+ SYMBOL: (17..24)
+ IDENTIFIER: (17..24) "example"
+ ATMOSPHERE: (24..25) " "
+ SYMBOL: (25..37)
+ IDENTIFIER: (25..37) "displayutils"
+ CLOSE_PAREN: (37..38) ")"
+ ATMOSPHERE: (38..40) "\n\t"
+ FORM: (40..60)
+ OPEN_PAREN: (40..41) "("
+ SYMBOL: (41..47)
+ IDENTIFIER: (41..47) "export"
+ ATMOSPHERE: (47..48) " "
+ SYMBOL: (48..59)
+ IDENTIFIER: (48..59) "display-all"
+ CLOSE_PAREN: (59..60) ")"
+ ATMOSPHERE: (60..62) "\n\t"
+ FORM: (62..101)
+ OPEN_PAREN: (62..63) "("
+ SYMBOL: (63..69)
+ IDENTIFIER: (63..69) "import"
+ ATMOSPHERE: (69..70) " "
+ FORM: (70..83)
+ OPEN_PAREN: (70..71) "("
+ SYMBOL: (71..77)
+ IDENTIFIER: (71..77) "scheme"
+ ATMOSPHERE: (77..78) " "
+ SYMBOL: (78..82)
+ IDENTIFIER: (78..82) "base"
+ CLOSE_PAREN: (82..83) ")"
+ ATMOSPHERE: (83..86) "\n\t\t"
+ FORM: (86..100)
+ OPEN_PAREN: (86..87) "("
+ SYMBOL: (87..93)
+ IDENTIFIER: (87..93) "scheme"
+ ATMOSPHERE: (93..94) " "
+ SYMBOL: (94..99)
+ IDENTIFIER: (94..99) "write"
+ CLOSE_PAREN: (99..100) ")"
+ CLOSE_PAREN: (100..101) ")"
+ ATMOSPHERE: (101..103) "\n\t"
+ FORM: (103..251)
+ OPEN_PAREN: (103..104) "("
+ SYMBOL: (104..109)
+ IDENTIFIER: (104..109) "begin"
+ ATMOSPHERE: (109..112) "\n\t\t"
+ FORM: (112..250)
+ OPEN_PAREN: (112..113) "("
+ SYMBOL: (113..119)
+ IDENTIFIER: (113..119) "define"
+ ATMOSPHERE: (119..120) " "
+ FORM: (120..140)
+ OPEN_PAREN: (120..121) "("
+ SYMBOL: (121..132)
+ IDENTIFIER: (121..132) "display-all"
+ ATMOSPHERE: (132..133) " "
+ SYMBOL: (133..139)
+ IDENTIFIER: (133..139) "things"
+ CLOSE_PAREN: (139..140) ")"
+ ATMOSPHERE: (140..144) "\n\t\t\t"
+ FORM: (144..249)
+ OPEN_PAREN: (144..145) "("
+ SYMBOL: (145..147)
+ IDENTIFIER: (145..147) "if"
+ ATMOSPHERE: (147..148) " "
+ FORM: (148..162)
+ OPEN_PAREN: (148..149) "("
+ SYMBOL: (149..154)
+ IDENTIFIER: (149..154) "null?"
+ ATMOSPHERE: (154..155) " "
+ SYMBOL: (155..161)
+ IDENTIFIER: (155..161) "things"
+ CLOSE_PAREN: (161..162) ")"
+ ATMOSPHERE: (162..167) "\n\t\t\t\t"
+ FORM: (167..176)
+ OPEN_PAREN: (167..168) "("
+ SYMBOL: (168..175)
+ IDENTIFIER: (168..175) "newline"
+ CLOSE_PAREN: (175..176) ")"
+ ATMOSPHERE: (176..181) "\n\t\t\t\t"
+ FORM: (181..248)
+ OPEN_PAREN: (181..182) "("
+ SYMBOL: (182..187)
+ IDENTIFIER: (182..187) "begin"
+ ATMOSPHERE: (187..193) "\n\t\t\t\t\t"
+ FORM: (193..215)
+ OPEN_PAREN: (193..194) "("
+ SYMBOL: (194..201)
+ IDENTIFIER: (194..201) "display"
+ ATMOSPHERE: (201..202) " "
+ FORM: (202..214)
+ OPEN_PAREN: (202..203) "("
+ SYMBOL: (203..206)
+ IDENTIFIER: (203..206) "car"
+ ATMOSPHERE: (206..207) " "
+ SYMBOL: (207..213)
+ IDENTIFIER: (207..213) "things"
+ CLOSE_PAREN: (213..214) ")"
+ CLOSE_PAREN: (214..215) ")"
+ ATMOSPHERE: (215..221) "\n\t\t\t\t\t"
+ FORM: (221..247)
+ OPEN_PAREN: (221..222) "("
+ SYMBOL: (222..233)
+ IDENTIFIER: (222..233) "display-all"
+ ATMOSPHERE: (233..234) " "
+ FORM: (234..246)
+ OPEN_PAREN: (234..235) "("
+ SYMBOL: (235..238)
+ IDENTIFIER: (235..238) "cdr"
+ ATMOSPHERE: (238..239) " "
+ SYMBOL: (239..245)
+ IDENTIFIER: (239..245) "things"
+ CLOSE_PAREN: (245..246) ")"
+ CLOSE_PAREN: (246..247) ")"
+ CLOSE_PAREN: (247..248) ")"
+ CLOSE_PAREN: (248..249) ")"
+ CLOSE_PAREN: (249..250) ")"
+ CLOSE_PAREN: (250..251) ")"
+ CLOSE_PAREN: (251..252) ")"
+ ATMOSPHERE: (252..253) "\n"
+ EOF: (253..253) ""
diff --git a/spec/display.ast b/spec/display.ast
new file mode 100644
index 0000000..9696922
--- /dev/null
+++ b/spec/display.ast
@@ -0,0 +1,119 @@
+PROGRAM: (0..255)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..54)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..50)
+ IDENTIFIER: (43..50) "display"
+ ATMOSPHERE: (50..51) " "
+ CONSTANT: (51..53)
+ STRING: (51..53) "\"\""
+ CLOSE_PAREN: (53..54) ")"
+ FORM: (54..63)
+ OPEN_PAREN: (54..55) "("
+ SYMBOL: (55..62)
+ IDENTIFIER: (55..62) "newline"
+ CLOSE_PAREN: (62..63) ")"
+ ATMOSPHERE: (63..64) " "
+ ATMOSPHERE: (64..69) "; => "
+ ATMOSPHERE: (69..70) "\n"
+ FORM: (70..82)
+ OPEN_PAREN: (70..71) "("
+ SYMBOL: (71..78)
+ IDENTIFIER: (71..78) "display"
+ ATMOSPHERE: (78..79) " "
+ FORM: (79..81)
+ OPEN_PAREN: (79..80) "("
+ CLOSE_PAREN: (80..81) ")"
+ CLOSE_PAREN: (81..82) ")"
+ FORM: (82..91)
+ OPEN_PAREN: (82..83) "("
+ SYMBOL: (83..90)
+ IDENTIFIER: (83..90) "newline"
+ CLOSE_PAREN: (90..91) ")"
+ ATMOSPHERE: (91..92) " "
+ ATMOSPHERE: (92..96) "; =>"
+ ATMOSPHERE: (96..97) "\n"
+ FORM: (97..110)
+ OPEN_PAREN: (97..98) "("
+ SYMBOL: (98..105)
+ IDENTIFIER: (98..105) "display"
+ ATMOSPHERE: (105..106) " "
+ CONSTANT: (106..109)
+ NUMBER: (106..109) "123"
+ CLOSE_PAREN: (109..110) ")"
+ FORM: (110..119)
+ OPEN_PAREN: (110..111) "("
+ SYMBOL: (111..118)
+ IDENTIFIER: (111..118) "newline"
+ CLOSE_PAREN: (118..119) ")"
+ ATMOSPHERE: (119..120) " "
+ ATMOSPHERE: (120..128) "; => 123"
+ ATMOSPHERE: (128..129) "\n"
+ FORM: (129..152)
+ OPEN_PAREN: (129..130) "("
+ SYMBOL: (130..137)
+ IDENTIFIER: (130..137) "display"
+ ATMOSPHERE: (137..138) " "
+ CONSTANT: (138..151)
+ STRING: (138..151) "\"Hello World\""
+ CLOSE_PAREN: (151..152) ")"
+ FORM: (152..165)
+ OPEN_PAREN: (152..153) "("
+ SYMBOL: (153..160)
+ IDENTIFIER: (153..160) "display"
+ ATMOSPHERE: (160..161) " "
+ CONSTANT: (161..164)
+ CHARACTER: (161..164) "#\\!"
+ CLOSE_PAREN: (164..165) ")"
+ FORM: (165..174)
+ OPEN_PAREN: (165..166) "("
+ SYMBOL: (166..173)
+ IDENTIFIER: (166..173) "newline"
+ CLOSE_PAREN: (173..174) ")"
+ ATMOSPHERE: (174..175) " "
+ ATMOSPHERE: (175..192) "; => Hello World!"
+ ATMOSPHERE: (192..193) "\n"
+ FORM: (193..240)
+ OPEN_PAREN: (193..194) "("
+ SYMBOL: (194..201)
+ IDENTIFIER: (194..201) "display"
+ ATMOSPHERE: (201..202) " "
+ QUOTED_DATUM: (202..239)
+ QUOTE: (202..203) "'"
+ FORM: (203..239)
+ OPEN_PAREN: (203..204) "("
+ CONSTANT: (204..238)
+ STRING: (204..238) "\"I \\\" need \\v some \\x00; escaping\""
+ CLOSE_PAREN: (238..239) ")"
+ CLOSE_PAREN: (239..240) ")"
+ FORM: (240..249)
+ OPEN_PAREN: (240..241) "("
+ SYMBOL: (241..248)
+ IDENTIFIER: (241..248) "newline"
+ CLOSE_PAREN: (248..249) ")"
+ ATMOSPHERE: (249..250) " "
+ ATMOSPHERE: (250..255) "; => "
+ EOF: (255..255) ""
diff --git a/spec/dragons.ast b/spec/dragons.ast
new file mode 100644
index 0000000..14a3f1b
--- /dev/null
+++ b/spec/dragons.ast
@@ -0,0 +1,468 @@
+PROGRAM: (0..1158)
+ FORM: (0..1127)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..15)
+ IDENTIFIER: (1..15) "define-library"
+ ATMOSPHERE: (15..16) " "
+ FORM: (16..24)
+ OPEN_PAREN: (16..17) "("
+ SYMBOL: (17..23)
+ IDENTIFIER: (17..23) "dragon"
+ CLOSE_PAREN: (23..24) ")"
+ ATMOSPHERE: (24..29) "\n "
+ FORM: (29..70)
+ OPEN_PAREN: (29..30) "("
+ SYMBOL: (30..36)
+ IDENTIFIER: (30..36) "import"
+ ATMOSPHERE: (36..37) " "
+ FORM: (37..50)
+ OPEN_PAREN: (37..38) "("
+ SYMBOL: (38..44)
+ IDENTIFIER: (38..44) "scheme"
+ ATMOSPHERE: (44..45) " "
+ SYMBOL: (45..49)
+ IDENTIFIER: (45..49) "base"
+ CLOSE_PAREN: (49..50) ")"
+ ATMOSPHERE: (50..55) "\n "
+ FORM: (55..69)
+ OPEN_PAREN: (55..56) "("
+ SYMBOL: (56..62)
+ IDENTIFIER: (56..62) "scheme"
+ ATMOSPHERE: (62..63) " "
+ SYMBOL: (63..68)
+ IDENTIFIER: (63..68) "write"
+ CLOSE_PAREN: (68..69) ")"
+ CLOSE_PAREN: (69..70) ")"
+ ATMOSPHERE: (70..75) "\n "
+ FORM: (75..90)
+ OPEN_PAREN: (75..76) "("
+ SYMBOL: (76..82)
+ IDENTIFIER: (76..82) "export"
+ ATMOSPHERE: (82..83) " "
+ SYMBOL: (83..89)
+ IDENTIFIER: (83..89) "dragon"
+ CLOSE_PAREN: (89..90) ")"
+ ATMOSPHERE: (90..95) "\n "
+ FORM: (95..1126)
+ OPEN_PAREN: (95..96) "("
+ SYMBOL: (96..101)
+ IDENTIFIER: (96..101) "begin"
+ ATMOSPHERE: (101..111) "\n\n "
+ FORM: (111..295)
+ OPEN_PAREN: (111..112) "("
+ SYMBOL: (112..118)
+ IDENTIFIER: (112..118) "define"
+ ATMOSPHERE: (118..119) " "
+ FORM: (119..136)
+ OPEN_PAREN: (119..120) "("
+ SYMBOL: (120..127)
+ IDENTIFIER: (120..127) "command"
+ ATMOSPHERE: (127..128) " "
+ SYMBOL: (128..131)
+ IDENTIFIER: (128..131) "cmd"
+ ATMOSPHERE: (131..132) " "
+ SYMBOL: (132..135)
+ IDENTIFIER: (132..135) "arg"
+ CLOSE_PAREN: (135..136) ")"
+ ATMOSPHERE: (136..149) "\n "
+ FORM: (149..168)
+ OPEN_PAREN: (149..150) "("
+ SYMBOL: (150..157)
+ IDENTIFIER: (150..157) "display"
+ ATMOSPHERE: (157..158) " "
+ CONSTANT: (158..167)
+ STRING: (158..167) "\"turtle.\""
+ CLOSE_PAREN: (167..168) ")"
+ ATMOSPHERE: (168..181) "\n "
+ FORM: (181..194)
+ OPEN_PAREN: (181..182) "("
+ SYMBOL: (182..189)
+ IDENTIFIER: (182..189) "display"
+ ATMOSPHERE: (189..190) " "
+ SYMBOL: (190..193)
+ IDENTIFIER: (190..193) "cmd"
+ CLOSE_PAREN: (193..194) ")"
+ ATMOSPHERE: (194..207) "\n "
+ FORM: (207..220)
+ OPEN_PAREN: (207..208) "("
+ SYMBOL: (208..215)
+ IDENTIFIER: (208..215) "display"
+ ATMOSPHERE: (215..216) " "
+ CONSTANT: (216..219)
+ STRING: (216..219) "\"(\""
+ CLOSE_PAREN: (219..220) ")"
+ ATMOSPHERE: (220..233) "\n "
+ FORM: (233..246)
+ OPEN_PAREN: (233..234) "("
+ SYMBOL: (234..241)
+ IDENTIFIER: (234..241) "display"
+ ATMOSPHERE: (241..242) " "
+ SYMBOL: (242..245)
+ IDENTIFIER: (242..245) "arg"
+ CLOSE_PAREN: (245..246) ")"
+ ATMOSPHERE: (246..259) "\n "
+ FORM: (259..272)
+ OPEN_PAREN: (259..260) "("
+ SYMBOL: (260..267)
+ IDENTIFIER: (260..267) "display"
+ ATMOSPHERE: (267..268) " "
+ CONSTANT: (268..271)
+ STRING: (268..271) "\")\""
+ CLOSE_PAREN: (271..272) ")"
+ ATMOSPHERE: (272..285) "\n "
+ FORM: (285..294)
+ OPEN_PAREN: (285..286) "("
+ SYMBOL: (286..293)
+ IDENTIFIER: (286..293) "newline"
+ CLOSE_PAREN: (293..294) ")"
+ CLOSE_PAREN: (294..295) ")"
+ ATMOSPHERE: (295..305) "\n\n "
+ FORM: (305..476)
+ OPEN_PAREN: (305..306) "("
+ SYMBOL: (306..312)
+ IDENTIFIER: (306..312) "define"
+ ATMOSPHERE: (312..313) " "
+ FORM: (313..319)
+ OPEN_PAREN: (313..314) "("
+ SYMBOL: (314..318)
+ IDENTIFIER: (314..318) "init"
+ CLOSE_PAREN: (318..319) ")"
+ ATMOSPHERE: (319..332) "\n "
+ FORM: (332..357)
+ OPEN_PAREN: (332..333) "("
+ SYMBOL: (333..340)
+ IDENTIFIER: (333..340) "display"
+ ATMOSPHERE: (340..341) " "
+ CONSTANT: (341..356)
+ STRING: (341..356) "\"import turtle\""
+ CLOSE_PAREN: (356..357) ")"
+ FORM: (357..366)
+ OPEN_PAREN: (357..358) "("
+ SYMBOL: (358..365)
+ IDENTIFIER: (358..365) "newline"
+ CLOSE_PAREN: (365..366) ")"
+ ATMOSPHERE: (366..379) "\n "
+ FORM: (379..398)
+ OPEN_PAREN: (379..380) "("
+ SYMBOL: (380..387)
+ IDENTIFIER: (380..387) "command"
+ ATMOSPHERE: (387..388) " "
+ CONSTANT: (388..395)
+ STRING: (388..395) "\"speed\""
+ ATMOSPHERE: (395..396) " "
+ CONSTANT: (396..397)
+ NUMBER: (396..397) "0"
+ CLOSE_PAREN: (397..398) ")"
+ ATMOSPHERE: (398..411) "\n "
+ FORM: (411..437)
+ OPEN_PAREN: (411..412) "("
+ SYMBOL: (412..419)
+ IDENTIFIER: (412..419) "command"
+ ATMOSPHERE: (419..420) " "
+ CONSTANT: (420..428)
+ STRING: (420..428) "\"tracer\""
+ ATMOSPHERE: (428..429) " "
+ CONSTANT: (429..436)
+ STRING: (429..436) "\"False\""
+ CLOSE_PAREN: (436..437) ")"
+ ATMOSPHERE: (437..450) "\n "
+ FORM: (450..475)
+ OPEN_PAREN: (450..451) "("
+ SYMBOL: (451..458)
+ IDENTIFIER: (451..458) "command"
+ ATMOSPHERE: (458..459) " "
+ CONSTANT: (459..471)
+ STRING: (459..471) "\"showturtle\""
+ ATMOSPHERE: (471..472) " "
+ CONSTANT: (472..474)
+ STRING: (472..474) "\"\""
+ CLOSE_PAREN: (474..475) ")"
+ CLOSE_PAREN: (475..476) ")"
+ ATMOSPHERE: (476..486) "\n\n "
+ FORM: (486..537)
+ OPEN_PAREN: (486..487) "("
+ SYMBOL: (487..493)
+ IDENTIFIER: (487..493) "define"
+ ATMOSPHERE: (493..494) " "
+ FORM: (494..504)
+ OPEN_PAREN: (494..495) "("
+ SYMBOL: (495..503)
+ IDENTIFIER: (495..503) "finalise"
+ CLOSE_PAREN: (503..504) ")"
+ ATMOSPHERE: (504..517) "\n "
+ FORM: (517..536)
+ OPEN_PAREN: (517..518) "("
+ SYMBOL: (518..525)
+ IDENTIFIER: (518..525) "command"
+ ATMOSPHERE: (525..526) " "
+ CONSTANT: (526..532)
+ STRING: (526..532) "\"done\""
+ ATMOSPHERE: (532..533) " "
+ CONSTANT: (533..535)
+ STRING: (533..535) "\"\""
+ CLOSE_PAREN: (535..536) ")"
+ CLOSE_PAREN: (536..537) ")"
+ ATMOSPHERE: (537..548) "\n\n\n "
+ FORM: (548..953)
+ OPEN_PAREN: (548..549) "("
+ SYMBOL: (549..555)
+ IDENTIFIER: (549..555) "define"
+ ATMOSPHERE: (555..556) " "
+ FORM: (556..583)
+ OPEN_PAREN: (556..557) "("
+ SYMBOL: (557..568)
+ IDENTIFIER: (557..568) "dragon-iter"
+ ATMOSPHERE: (568..569) " "
+ SYMBOL: (569..573)
+ IDENTIFIER: (569..573) "iter"
+ ATMOSPHERE: (573..574) " "
+ SYMBOL: (574..578)
+ IDENTIFIER: (574..578) "size"
+ ATMOSPHERE: (578..579) " "
+ SYMBOL: (579..582)
+ IDENTIFIER: (579..582) "dir"
+ CLOSE_PAREN: (582..583) ")"
+ ATMOSPHERE: (583..596) "\n "
+ FORM: (596..952)
+ OPEN_PAREN: (596..597) "("
+ SYMBOL: (597..599)
+ IDENTIFIER: (597..599) "if"
+ ATMOSPHERE: (599..600) " "
+ FORM: (600..610)
+ OPEN_PAREN: (600..601) "("
+ SYMBOL: (601..602)
+ IDENTIFIER: (601..602) "="
+ ATMOSPHERE: (602..603) " "
+ CONSTANT: (603..604)
+ NUMBER: (603..604) "0"
+ ATMOSPHERE: (604..605) " "
+ SYMBOL: (605..609)
+ IDENTIFIER: (605..609) "iter"
+ CLOSE_PAREN: (609..610) ")"
+ ATMOSPHERE: (610..627) "\n "
+ FORM: (627..646)
+ OPEN_PAREN: (627..628) "("
+ SYMBOL: (628..635)
+ IDENTIFIER: (628..635) "command"
+ ATMOSPHERE: (635..636) " "
+ CONSTANT: (636..640)
+ STRING: (636..640) "\"fd\""
+ ATMOSPHERE: (640..641) " "
+ SYMBOL: (641..645)
+ IDENTIFIER: (641..645) "size"
+ CLOSE_PAREN: (645..646) ")"
+ ATMOSPHERE: (646..663) "\n "
+ FORM: (663..951)
+ OPEN_PAREN: (663..664) "("
+ SYMBOL: (664..667)
+ IDENTIFIER: (664..667) "let"
+ ATMOSPHERE: (667..668) " "
+ FORM: (668..796)
+ OPEN_PAREN: (668..669) "("
+ FORM: (669..686)
+ OPEN_PAREN: (669..670) "("
+ SYMBOL: (670..674)
+ IDENTIFIER: (670..674) "next"
+ ATMOSPHERE: (674..675) " "
+ FORM: (675..685)
+ OPEN_PAREN: (675..676) "("
+ SYMBOL: (676..677)
+ IDENTIFIER: (676..677) "-"
+ ATMOSPHERE: (677..678) " "
+ SYMBOL: (678..682)
+ IDENTIFIER: (678..682) "iter"
+ ATMOSPHERE: (682..683) " "
+ CONSTANT: (683..684)
+ NUMBER: (683..684) "1"
+ CLOSE_PAREN: (684..685) ")"
+ CLOSE_PAREN: (685..686) ")"
+ ATMOSPHERE: (686..709) "\n "
+ FORM: (709..732)
+ OPEN_PAREN: (709..710) "("
+ SYMBOL: (710..714)
+ IDENTIFIER: (710..714) "size"
+ ATMOSPHERE: (714..715) " "
+ FORM: (715..731)
+ OPEN_PAREN: (715..716) "("
+ SYMBOL: (716..717)
+ IDENTIFIER: (716..717) "*"
+ ATMOSPHERE: (717..718) " "
+ SYMBOL: (718..722)
+ IDENTIFIER: (718..722) "size"
+ ATMOSPHERE: (722..723) " "
+ CONSTANT: (723..730)
+ NUMBER: (723..730) "0.70711"
+ CLOSE_PAREN: (730..731) ")"
+ CLOSE_PAREN: (731..732) ")"
+ ATMOSPHERE: (732..755) "\n "
+ FORM: (755..795)
+ OPEN_PAREN: (755..756) "("
+ SYMBOL: (756..763)
+ IDENTIFIER: (756..763) "turncmd"
+ ATMOSPHERE: (763..764) " "
+ FORM: (764..794)
+ OPEN_PAREN: (764..765) "("
+ SYMBOL: (765..767)
+ IDENTIFIER: (765..767) "if"
+ ATMOSPHERE: (767..768) " "
+ FORM: (768..783)
+ OPEN_PAREN: (768..769) "("
+ SYMBOL: (769..772)
+ IDENTIFIER: (769..772) "eq?"
+ ATMOSPHERE: (772..773) " "
+ SYMBOL: (773..776)
+ IDENTIFIER: (773..776) "dir"
+ ATMOSPHERE: (776..777) " "
+ QUOTED_DATUM: (777..782)
+ QUOTE: (777..778) "'"
+ SYMBOL: (778..782)
+ IDENTIFIER: (778..782) "left"
+ CLOSE_PAREN: (782..783) ")"
+ ATMOSPHERE: (783..784) " "
+ CONSTANT: (784..788)
+ STRING: (784..788) "\"lt\""
+ ATMOSPHERE: (788..789) " "
+ CONSTANT: (789..793)
+ STRING: (789..793) "\"rt\""
+ CLOSE_PAREN: (793..794) ")"
+ CLOSE_PAREN: (794..795) ")"
+ CLOSE_PAREN: (795..796) ")"
+ ATMOSPHERE: (796..821) "\n "
+ FORM: (821..850)
+ OPEN_PAREN: (821..822) "("
+ SYMBOL: (822..833)
+ IDENTIFIER: (822..833) "dragon-iter"
+ ATMOSPHERE: (833..834) " "
+ SYMBOL: (834..838)
+ IDENTIFIER: (834..838) "next"
+ ATMOSPHERE: (838..839) " "
+ SYMBOL: (839..843)
+ IDENTIFIER: (839..843) "size"
+ ATMOSPHERE: (843..844) " "
+ QUOTED_DATUM: (844..849)
+ QUOTE: (844..845) "'"
+ SYMBOL: (845..849)
+ IDENTIFIER: (845..849) "left"
+ CLOSE_PAREN: (849..850) ")"
+ ATMOSPHERE: (850..875) "\n "
+ FORM: (875..895)
+ OPEN_PAREN: (875..876) "("
+ SYMBOL: (876..883)
+ IDENTIFIER: (876..883) "command"
+ ATMOSPHERE: (883..884) " "
+ SYMBOL: (884..891)
+ IDENTIFIER: (884..891) "turncmd"
+ ATMOSPHERE: (891..892) " "
+ CONSTANT: (892..894)
+ NUMBER: (892..894) "90"
+ CLOSE_PAREN: (894..895) ")"
+ ATMOSPHERE: (895..920) "\n "
+ FORM: (920..950)
+ OPEN_PAREN: (920..921) "("
+ SYMBOL: (921..932)
+ IDENTIFIER: (921..932) "dragon-iter"
+ ATMOSPHERE: (932..933) " "
+ SYMBOL: (933..937)
+ IDENTIFIER: (933..937) "next"
+ ATMOSPHERE: (937..938) " "
+ SYMBOL: (938..942)
+ IDENTIFIER: (938..942) "size"
+ ATMOSPHERE: (942..943) " "
+ QUOTED_DATUM: (943..949)
+ QUOTE: (943..944) "'"
+ SYMBOL: (944..949)
+ IDENTIFIER: (944..949) "right"
+ CLOSE_PAREN: (949..950) ")"
+ CLOSE_PAREN: (950..951) ")"
+ CLOSE_PAREN: (951..952) ")"
+ CLOSE_PAREN: (952..953) ")"
+ ATMOSPHERE: (953..963) "\n\n "
+ FORM: (963..1107)
+ OPEN_PAREN: (963..964) "("
+ SYMBOL: (964..970)
+ IDENTIFIER: (964..970) "define"
+ ATMOSPHERE: (970..971) " "
+ FORM: (971..984)
+ OPEN_PAREN: (971..972) "("
+ SYMBOL: (972..978)
+ IDENTIFIER: (972..978) "dragon"
+ ATMOSPHERE: (978..979) " "
+ SYMBOL: (979..983)
+ IDENTIFIER: (979..983) "iter"
+ CLOSE_PAREN: (983..984) ")"
+ ATMOSPHERE: (984..997) "\n "
+ FORM: (997..1003)
+ OPEN_PAREN: (997..998) "("
+ SYMBOL: (998..1002)
+ IDENTIFIER: (998..1002) "init"
+ CLOSE_PAREN: (1002..1003) ")"
+ ATMOSPHERE: (1003..1016) "\n "
+ FORM: (1016..1042)
+ OPEN_PAREN: (1016..1017) "("
+ SYMBOL: (1017..1024)
+ IDENTIFIER: (1017..1024) "command"
+ ATMOSPHERE: (1024..1025) " "
+ CONSTANT: (1025..1029)
+ STRING: (1025..1029) "\"rt\""
+ ATMOSPHERE: (1029..1030) " "
+ FORM: (1030..1041)
+ OPEN_PAREN: (1030..1031) "("
+ SYMBOL: (1031..1032)
+ IDENTIFIER: (1031..1032) "*"
+ ATMOSPHERE: (1032..1033) " "
+ CONSTANT: (1033..1035)
+ NUMBER: (1033..1035) "45"
+ ATMOSPHERE: (1035..1036) " "
+ SYMBOL: (1036..1040)
+ IDENTIFIER: (1036..1040) "iter"
+ CLOSE_PAREN: (1040..1041) ")"
+ CLOSE_PAREN: (1041..1042) ")"
+ ATMOSPHERE: (1042..1055) "\n "
+ FORM: (1055..1083)
+ OPEN_PAREN: (1055..1056) "("
+ SYMBOL: (1056..1067)
+ IDENTIFIER: (1056..1067) "dragon-iter"
+ ATMOSPHERE: (1067..1068) " "
+ SYMBOL: (1068..1072)
+ IDENTIFIER: (1068..1072) "iter"
+ ATMOSPHERE: (1072..1073) " "
+ CONSTANT: (1073..1076)
+ NUMBER: (1073..1076) "450"
+ ATMOSPHERE: (1076..1077) " "
+ QUOTED_DATUM: (1077..1082)
+ QUOTE: (1077..1078) "'"
+ SYMBOL: (1078..1082)
+ IDENTIFIER: (1078..1082) "left"
+ CLOSE_PAREN: (1082..1083) ")"
+ ATMOSPHERE: (1083..1096) "\n "
+ FORM: (1096..1106)
+ OPEN_PAREN: (1096..1097) "("
+ SYMBOL: (1097..1105)
+ IDENTIFIER: (1097..1105) "finalise"
+ CLOSE_PAREN: (1105..1106) ")"
+ CLOSE_PAREN: (1106..1107) ")"
+ ATMOSPHERE: (1107..1125) "\n \n "
+ CLOSE_PAREN: (1125..1126) ")"
+ CLOSE_PAREN: (1126..1127) ")"
+ ATMOSPHERE: (1127..1129) "\n\n"
+ FORM: (1129..1146)
+ OPEN_PAREN: (1129..1130) "("
+ SYMBOL: (1130..1136)
+ IDENTIFIER: (1130..1136) "import"
+ ATMOSPHERE: (1136..1137) " "
+ FORM: (1137..1145)
+ OPEN_PAREN: (1137..1138) "("
+ SYMBOL: (1138..1144)
+ IDENTIFIER: (1138..1144) "dragon"
+ CLOSE_PAREN: (1144..1145) ")"
+ CLOSE_PAREN: (1145..1146) ")"
+ ATMOSPHERE: (1146..1148) "\n\n"
+ FORM: (1148..1158)
+ OPEN_PAREN: (1148..1149) "("
+ SYMBOL: (1149..1155)
+ IDENTIFIER: (1149..1155) "dragon"
+ ATMOSPHERE: (1155..1156) " "
+ CONSTANT: (1156..1157)
+ NUMBER: (1156..1157) "3"
+ CLOSE_PAREN: (1157..1158) ")"
+ EOF: (1158..1158) ""
diff --git a/spec/envtest.ast b/spec/envtest.ast
new file mode 100644
index 0000000..4e4533b
--- /dev/null
+++ b/spec/envtest.ast
@@ -0,0 +1,195 @@
+PROGRAM: (0..272)
+ FORM: (0..39)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..24) "\n "
+ FORM: (24..38)
+ OPEN_PAREN: (24..25) "("
+ SYMBOL: (25..31)
+ IDENTIFIER: (25..31) "scheme"
+ ATMOSPHERE: (31..32) " "
+ SYMBOL: (32..37)
+ IDENTIFIER: (32..37) "write"
+ CLOSE_PAREN: (37..38) ")"
+ CLOSE_PAREN: (38..39) ")"
+ ATMOSPHERE: (39..41) "\n\n"
+ FORM: (41..94)
+ OPEN_PAREN: (41..42) "("
+ SYMBOL: (42..48)
+ IDENTIFIER: (42..48) "define"
+ ATMOSPHERE: (48..49) " "
+ FORM: (49..56)
+ OPEN_PAREN: (49..50) "("
+ SYMBOL: (50..53)
+ IDENTIFIER: (50..53) "foo"
+ ATMOSPHERE: (53..54) " "
+ SYMBOL: (54..55)
+ IDENTIFIER: (54..55) "a"
+ CLOSE_PAREN: (55..56) ")"
+ ATMOSPHERE: (56..59) "\n "
+ FORM: (59..87)
+ OPEN_PAREN: (59..60) "("
+ SYMBOL: (60..66)
+ IDENTIFIER: (60..66) "define"
+ ATMOSPHERE: (66..67) " "
+ FORM: (67..74)
+ OPEN_PAREN: (67..68) "("
+ SYMBOL: (68..71)
+ IDENTIFIER: (68..71) "bar"
+ ATMOSPHERE: (71..72) " "
+ SYMBOL: (72..73)
+ IDENTIFIER: (72..73) "b"
+ CLOSE_PAREN: (73..74) ")"
+ ATMOSPHERE: (74..79) "\n "
+ FORM: (79..86)
+ OPEN_PAREN: (79..80) "("
+ SYMBOL: (80..81)
+ IDENTIFIER: (80..81) "+"
+ ATMOSPHERE: (81..82) " "
+ SYMBOL: (82..83)
+ IDENTIFIER: (82..83) "a"
+ ATMOSPHERE: (83..84) " "
+ SYMBOL: (84..85)
+ IDENTIFIER: (84..85) "b"
+ CLOSE_PAREN: (85..86) ")"
+ CLOSE_PAREN: (86..87) ")"
+ ATMOSPHERE: (87..90) "\n "
+ SYMBOL: (90..93)
+ IDENTIFIER: (90..93) "bar"
+ CLOSE_PAREN: (93..94) ")"
+ ATMOSPHERE: (94..96) "\n\n"
+ FORM: (96..119)
+ OPEN_PAREN: (96..97) "("
+ SYMBOL: (97..104)
+ IDENTIFIER: (97..104) "display"
+ ATMOSPHERE: (104..105) " "
+ FORM: (105..118)
+ OPEN_PAREN: (105..106) "("
+ FORM: (106..115)
+ OPEN_PAREN: (106..107) "("
+ SYMBOL: (107..110)
+ IDENTIFIER: (107..110) "foo"
+ ATMOSPHERE: (110..111) " "
+ CONSTANT: (111..114)
+ NUMBER: (111..114) "123"
+ CLOSE_PAREN: (114..115) ")"
+ ATMOSPHERE: (115..116) " "
+ CONSTANT: (116..117)
+ NUMBER: (116..117) "4"
+ CLOSE_PAREN: (117..118) ")"
+ CLOSE_PAREN: (118..119) ")"
+ FORM: (119..128)
+ OPEN_PAREN: (119..120) "("
+ SYMBOL: (120..127)
+ IDENTIFIER: (120..127) "newline"
+ CLOSE_PAREN: (127..128) ")"
+ ATMOSPHERE: (128..130) "\n\n"
+ FORM: (130..240)
+ OPEN_PAREN: (130..131) "("
+ SYMBOL: (131..137)
+ IDENTIFIER: (131..137) "define"
+ ATMOSPHERE: (137..138) " "
+ FORM: (138..148)
+ OPEN_PAREN: (138..139) "("
+ SYMBOL: (139..143)
+ IDENTIFIER: (139..143) "test"
+ ATMOSPHERE: (143..144) " "
+ SYMBOL: (144..145)
+ IDENTIFIER: (144..145) "a"
+ ATMOSPHERE: (145..146) " "
+ SYMBOL: (146..147)
+ IDENTIFIER: (146..147) "b"
+ CLOSE_PAREN: (147..148) ")"
+ ATMOSPHERE: (148..151) "\n "
+ FORM: (151..226)
+ OPEN_PAREN: (151..152) "("
+ SYMBOL: (152..158)
+ IDENTIFIER: (152..158) "define"
+ ATMOSPHERE: (158..159) " "
+ FORM: (159..169)
+ OPEN_PAREN: (159..160) "("
+ SYMBOL: (160..168)
+ IDENTIFIER: (160..168) "do-stuff"
+ CLOSE_PAREN: (168..169) ")"
+ ATMOSPHERE: (169..174) "\n "
+ FORM: (174..209)
+ OPEN_PAREN: (174..175) "("
+ SYMBOL: (175..181)
+ IDENTIFIER: (175..181) "define"
+ ATMOSPHERE: (181..182) " "
+ FORM: (182..192)
+ OPEN_PAREN: (182..183) "("
+ SYMBOL: (183..189)
+ IDENTIFIER: (183..189) "things"
+ ATMOSPHERE: (189..190) " "
+ SYMBOL: (190..191)
+ IDENTIFIER: (190..191) "c"
+ CLOSE_PAREN: (191..192) ")"
+ ATMOSPHERE: (192..199) "\n "
+ FORM: (199..208)
+ OPEN_PAREN: (199..200) "("
+ SYMBOL: (200..201)
+ IDENTIFIER: (200..201) "+"
+ ATMOSPHERE: (201..202) " "
+ SYMBOL: (202..203)
+ IDENTIFIER: (202..203) "a"
+ ATMOSPHERE: (203..204) " "
+ SYMBOL: (204..205)
+ IDENTIFIER: (204..205) "b"
+ ATMOSPHERE: (205..206) " "
+ SYMBOL: (206..207)
+ IDENTIFIER: (206..207) "c"
+ CLOSE_PAREN: (207..208) ")"
+ CLOSE_PAREN: (208..209) ")"
+ ATMOSPHERE: (209..214) "\n "
+ FORM: (214..225)
+ OPEN_PAREN: (214..215) "("
+ SYMBOL: (215..221)
+ IDENTIFIER: (215..221) "things"
+ ATMOSPHERE: (221..222) " "
+ CONSTANT: (222..224)
+ NUMBER: (222..224) "12"
+ CLOSE_PAREN: (224..225) ")"
+ CLOSE_PAREN: (225..226) ")"
+ ATMOSPHERE: (226..229) "\n "
+ FORM: (229..239)
+ OPEN_PAREN: (229..230) "("
+ SYMBOL: (230..238)
+ IDENTIFIER: (230..238) "do-stuff"
+ CLOSE_PAREN: (238..239) ")"
+ CLOSE_PAREN: (239..240) ")"
+ ATMOSPHERE: (240..242) "\n\n"
+ FORM: (242..262)
+ OPEN_PAREN: (242..243) "("
+ SYMBOL: (243..250)
+ IDENTIFIER: (243..250) "display"
+ ATMOSPHERE: (250..251) " "
+ FORM: (251..261)
+ OPEN_PAREN: (251..252) "("
+ SYMBOL: (252..256)
+ IDENTIFIER: (252..256) "test"
+ ATMOSPHERE: (256..257) " "
+ CONSTANT: (257..258)
+ NUMBER: (257..258) "1"
+ ATMOSPHERE: (258..259) " "
+ CONSTANT: (259..260)
+ NUMBER: (259..260) "2"
+ CLOSE_PAREN: (260..261) ")"
+ CLOSE_PAREN: (261..262) ")"
+ FORM: (262..271)
+ OPEN_PAREN: (262..263) "("
+ SYMBOL: (263..270)
+ IDENTIFIER: (263..270) "newline"
+ CLOSE_PAREN: (270..271) ")"
+ ATMOSPHERE: (271..272) "\n"
+ EOF: (272..272) ""
diff --git a/spec/equivalence.ast b/spec/equivalence.ast
new file mode 100644
index 0000000..6dd3dd7
--- /dev/null
+++ b/spec/equivalence.ast
@@ -0,0 +1,1095 @@
+PROGRAM: (0..2277)
+ ATMOSPHERE: (0..62) ";; Tests for the Equivalence Predicates (section 6.1 of R7RS)."
+ ATMOSPHERE: (62..63) "\n"
+ FORM: (63..104)
+ OPEN_PAREN: (63..64) "("
+ SYMBOL: (64..70)
+ IDENTIFIER: (64..70) "import"
+ ATMOSPHERE: (70..71) " "
+ FORM: (71..84)
+ OPEN_PAREN: (71..72) "("
+ SYMBOL: (72..78)
+ IDENTIFIER: (72..78) "scheme"
+ ATMOSPHERE: (78..79) " "
+ SYMBOL: (79..83)
+ IDENTIFIER: (79..83) "base"
+ CLOSE_PAREN: (83..84) ")"
+ ATMOSPHERE: (84..89) "\n "
+ FORM: (89..103)
+ OPEN_PAREN: (89..90) "("
+ SYMBOL: (90..96)
+ IDENTIFIER: (90..96) "scheme"
+ ATMOSPHERE: (96..97) " "
+ SYMBOL: (97..102)
+ IDENTIFIER: (97..102) "write"
+ CLOSE_PAREN: (102..103) ")"
+ CLOSE_PAREN: (103..104) ")"
+ ATMOSPHERE: (104..106) "\n\n"
+ ATMOSPHERE: (106..128) ";; Trivial equivalence"
+ ATMOSPHERE: (128..129) "\n"
+ FORM: (129..562)
+ OPEN_PAREN: (129..130) "("
+ SYMBOL: (130..137)
+ IDENTIFIER: (130..137) "display"
+ ATMOSPHERE: (137..138) " "
+ FORM: (138..561)
+ OPEN_PAREN: (138..139) "("
+ SYMBOL: (139..143)
+ IDENTIFIER: (139..143) "list"
+ ATMOSPHERE: (143..149) "\n\n "
+ FORM: (149..161)
+ OPEN_PAREN: (149..150) "("
+ SYMBOL: (150..154)
+ IDENTIFIER: (150..154) "eqv?"
+ ATMOSPHERE: (154..155) " "
+ QUOTED_DATUM: (155..158)
+ QUOTE: (155..156) "’"
+ SYMBOL: (156..157)
+ IDENTIFIER: (156..157) "a"
+ ATMOSPHERE: (157..158) " "
+ QUOTED_DATUM: (158..160)
+ QUOTE: (158..159) "’"
+ SYMBOL: (159..160)
+ IDENTIFIER: (159..160) "a"
+ CLOSE_PAREN: (160..161) ")"
+ ATMOSPHERE: (161..162) " "
+ ATMOSPHERE: (162..169) "; ~> #t"
+ ATMOSPHERE: (169..174) "\n "
+ FORM: (174..186)
+ OPEN_PAREN: (174..175) "("
+ SYMBOL: (175..179)
+ IDENTIFIER: (175..179) "eqv?"
+ ATMOSPHERE: (179..180) " "
+ QUOTED_DATUM: (180..183)
+ QUOTE: (180..181) "’"
+ SYMBOL: (181..182)
+ IDENTIFIER: (181..182) "a"
+ ATMOSPHERE: (182..183) " "
+ QUOTED_DATUM: (183..185)
+ QUOTE: (183..184) "’"
+ SYMBOL: (184..185)
+ IDENTIFIER: (184..185) "b"
+ CLOSE_PAREN: (185..186) ")"
+ ATMOSPHERE: (186..187) " "
+ ATMOSPHERE: (187..194) "; ~> #f"
+ ATMOSPHERE: (194..199) "\n "
+ FORM: (199..209)
+ OPEN_PAREN: (199..200) "("
+ SYMBOL: (200..204)
+ IDENTIFIER: (200..204) "eqv?"
+ ATMOSPHERE: (204..205) " "
+ CONSTANT: (205..206)
+ NUMBER: (205..206) "2"
+ ATMOSPHERE: (206..207) " "
+ CONSTANT: (207..208)
+ NUMBER: (207..208) "2"
+ CLOSE_PAREN: (208..209) ")"
+ ATMOSPHERE: (209..210) " "
+ ATMOSPHERE: (210..217) "; ~> #t"
+ ATMOSPHERE: (217..222) "\n "
+ FORM: (222..234)
+ OPEN_PAREN: (222..223) "("
+ SYMBOL: (223..227)
+ IDENTIFIER: (223..227) "eqv?"
+ ATMOSPHERE: (227..228) " "
+ CONSTANT: (228..229)
+ NUMBER: (228..229) "2"
+ ATMOSPHERE: (229..230) " "
+ CONSTANT: (230..233)
+ NUMBER: (230..233) "2.0"
+ CLOSE_PAREN: (233..234) ")"
+ ATMOSPHERE: (234..235) " "
+ ATMOSPHERE: (235..293) "; ~> #f Should be false, but we don't do exact numbers :-/"
+ ATMOSPHERE: (293..298) "\n "
+ FORM: (298..312)
+ OPEN_PAREN: (298..299) "("
+ SYMBOL: (299..303)
+ IDENTIFIER: (299..303) "eqv?"
+ ATMOSPHERE: (303..304) " "
+ QUOTED_DATUM: (304..308)
+ QUOTE: (304..305) "’"
+ FORM: (305..307)
+ OPEN_PAREN: (305..306) "("
+ CLOSE_PAREN: (306..307) ")"
+ ATMOSPHERE: (307..308) " "
+ QUOTED_DATUM: (308..311)
+ QUOTE: (308..309) "’"
+ FORM: (309..311)
+ OPEN_PAREN: (309..310) "("
+ CLOSE_PAREN: (310..311) ")"
+ CLOSE_PAREN: (311..312) ")"
+ ATMOSPHERE: (312..313) " "
+ ATMOSPHERE: (313..320) "; ~> #t"
+ ATMOSPHERE: (320..325) "\n "
+ FORM: (325..351)
+ OPEN_PAREN: (325..326) "("
+ SYMBOL: (326..330)
+ IDENTIFIER: (326..330) "eqv?"
+ ATMOSPHERE: (330..331) " "
+ CONSTANT: (331..340)
+ NUMBER: (331..340) "100000000"
+ ATMOSPHERE: (340..341) " "
+ CONSTANT: (341..350)
+ NUMBER: (341..350) "100000000"
+ CLOSE_PAREN: (350..351) ")"
+ ATMOSPHERE: (351..352) " "
+ ATMOSPHERE: (352..359) "; ~> #t"
+ ATMOSPHERE: (359..364) "\n "
+ ATMOSPHERE: (364..391) "; (eqv? 0.0 +nan.0) ; ~> #f"
+ ATMOSPHERE: (391..396) "\n "
+ FORM: (396..424)
+ OPEN_PAREN: (396..397) "("
+ SYMBOL: (397..401)
+ IDENTIFIER: (397..401) "eqv?"
+ ATMOSPHERE: (401..402) " "
+ FORM: (402..412)
+ OPEN_PAREN: (402..403) "("
+ SYMBOL: (403..407)
+ IDENTIFIER: (403..407) "cons"
+ ATMOSPHERE: (407..408) " "
+ CONSTANT: (408..409)
+ NUMBER: (408..409) "1"
+ ATMOSPHERE: (409..410) " "
+ CONSTANT: (410..411)
+ NUMBER: (410..411) "2"
+ CLOSE_PAREN: (411..412) ")"
+ ATMOSPHERE: (412..413) " "
+ FORM: (413..423)
+ OPEN_PAREN: (413..414) "("
+ SYMBOL: (414..418)
+ IDENTIFIER: (414..418) "cons"
+ ATMOSPHERE: (418..419) " "
+ CONSTANT: (419..420)
+ NUMBER: (419..420) "1"
+ ATMOSPHERE: (420..421) " "
+ CONSTANT: (421..422)
+ NUMBER: (421..422) "2"
+ CLOSE_PAREN: (422..423) ")"
+ CLOSE_PAREN: (423..424) ")"
+ ATMOSPHERE: (424..425) " "
+ ATMOSPHERE: (425..432) "; ~> #f"
+ ATMOSPHERE: (432..437) "\n "
+ FORM: (437..470)
+ OPEN_PAREN: (437..438) "("
+ SYMBOL: (438..442)
+ IDENTIFIER: (438..442) "eqv?"
+ ATMOSPHERE: (442..443) " "
+ FORM: (443..456)
+ OPEN_PAREN: (443..444) "("
+ SYMBOL: (444..450)
+ IDENTIFIER: (444..450) "lambda"
+ ATMOSPHERE: (450..451) " "
+ FORM: (451..453)
+ OPEN_PAREN: (451..452) "("
+ CLOSE_PAREN: (452..453) ")"
+ ATMOSPHERE: (453..454) " "
+ CONSTANT: (454..455)
+ NUMBER: (454..455) "1"
+ CLOSE_PAREN: (455..456) ")"
+ FORM: (456..469)
+ OPEN_PAREN: (456..457) "("
+ SYMBOL: (457..463)
+ IDENTIFIER: (457..463) "lambda"
+ ATMOSPHERE: (463..464) " "
+ FORM: (464..466)
+ OPEN_PAREN: (464..465) "("
+ CLOSE_PAREN: (465..466) ")"
+ ATMOSPHERE: (466..467) " "
+ CONSTANT: (467..468)
+ NUMBER: (467..468) "2"
+ CLOSE_PAREN: (468..469) ")"
+ CLOSE_PAREN: (469..470) ")"
+ ATMOSPHERE: (470..471) " "
+ ATMOSPHERE: (471..478) "; ~> #f"
+ ATMOSPHERE: (478..483) "\n "
+ FORM: (483..519)
+ OPEN_PAREN: (483..484) "("
+ SYMBOL: (484..487)
+ IDENTIFIER: (484..487) "let"
+ ATMOSPHERE: (487..488) " "
+ FORM: (488..508)
+ OPEN_PAREN: (488..489) "("
+ FORM: (489..507)
+ OPEN_PAREN: (489..490) "("
+ SYMBOL: (490..491)
+ IDENTIFIER: (490..491) "p"
+ ATMOSPHERE: (491..492) " "
+ FORM: (492..506)
+ OPEN_PAREN: (492..493) "("
+ SYMBOL: (493..499)
+ IDENTIFIER: (493..499) "lambda"
+ ATMOSPHERE: (499..500) " "
+ FORM: (500..503)
+ OPEN_PAREN: (500..501) "("
+ SYMBOL: (501..502)
+ IDENTIFIER: (501..502) "x"
+ CLOSE_PAREN: (502..503) ")"
+ ATMOSPHERE: (503..504) " "
+ SYMBOL: (504..505)
+ IDENTIFIER: (504..505) "x"
+ CLOSE_PAREN: (505..506) ")"
+ CLOSE_PAREN: (506..507) ")"
+ CLOSE_PAREN: (507..508) ")"
+ FORM: (508..518)
+ OPEN_PAREN: (508..509) "("
+ SYMBOL: (509..513)
+ IDENTIFIER: (509..513) "eqv?"
+ ATMOSPHERE: (513..514) " "
+ SYMBOL: (514..515)
+ IDENTIFIER: (514..515) "p"
+ ATMOSPHERE: (515..516) " "
+ SYMBOL: (516..517)
+ IDENTIFIER: (516..517) "p"
+ CLOSE_PAREN: (517..518) ")"
+ CLOSE_PAREN: (518..519) ")"
+ ATMOSPHERE: (519..520) " "
+ ATMOSPHERE: (520..527) "; ~> #t"
+ ATMOSPHERE: (527..532) "\n "
+ FORM: (532..546)
+ OPEN_PAREN: (532..533) "("
+ SYMBOL: (533..537)
+ IDENTIFIER: (533..537) "eqv?"
+ ATMOSPHERE: (537..538) " "
+ CONSTANT: (538..540)
+ BOOLEAN: (538..540) "#f"
+ ATMOSPHERE: (540..541) " "
+ QUOTED_DATUM: (541..545)
+ QUOTE: (541..542) "’"
+ SYMBOL: (542..545)
+ IDENTIFIER: (542..545) "nil"
+ CLOSE_PAREN: (545..546) ")"
+ ATMOSPHERE: (546..547) " "
+ ATMOSPHERE: (547..554) "; ~> #f"
+ ATMOSPHERE: (554..560) "\n\n "
+ CLOSE_PAREN: (560..561) ")"
+ CLOSE_PAREN: (561..562) ")"
+ FORM: (562..571)
+ OPEN_PAREN: (562..563) "("
+ SYMBOL: (563..570)
+ IDENTIFIER: (563..570) "newline"
+ CLOSE_PAREN: (570..571) ")"
+ ATMOSPHERE: (571..573) "\n\n"
+ ATMOSPHERE: (573..609) ";; implementaiton specified restults"
+ ATMOSPHERE: (609..610) "\n"
+ FORM: (610..905)
+ OPEN_PAREN: (610..611) "("
+ SYMBOL: (611..618)
+ IDENTIFIER: (611..618) "display"
+ ATMOSPHERE: (618..619) " "
+ FORM: (619..904)
+ OPEN_PAREN: (619..620) "("
+ SYMBOL: (620..624)
+ IDENTIFIER: (620..624) "list"
+ ATMOSPHERE: (624..630) "\n\n "
+ FORM: (630..642)
+ OPEN_PAREN: (630..631) "("
+ SYMBOL: (631..635)
+ IDENTIFIER: (631..635) "eqv?"
+ ATMOSPHERE: (635..636) " "
+ CONSTANT: (636..638)
+ STRING: (636..638) "\"\""
+ ATMOSPHERE: (638..639) " "
+ CONSTANT: (639..641)
+ STRING: (639..641) "\"\""
+ CLOSE_PAREN: (641..642) ")"
+ ATMOSPHERE: (642..643) " "
+ ATMOSPHERE: (643..659) "; ~> unspecified"
+ ATMOSPHERE: (659..664) "\n "
+ FORM: (664..680)
+ OPEN_PAREN: (664..665) "("
+ SYMBOL: (665..669)
+ IDENTIFIER: (665..669) "eqv?"
+ ATMOSPHERE: (669..670) " "
+ QUOTED_DATUM: (670..675)
+ QUOTE: (670..671) "’"
+ VEC: (671..674)
+ OPEN_PAREN: (671..673) "#("
+ CLOSE_PAREN: (673..674) ")"
+ ATMOSPHERE: (674..675) " "
+ QUOTED_DATUM: (675..679)
+ QUOTE: (675..676) "’"
+ VEC: (676..679)
+ OPEN_PAREN: (676..678) "#("
+ CLOSE_PAREN: (678..679) ")"
+ CLOSE_PAREN: (679..680) ")"
+ ATMOSPHERE: (680..681) " "
+ ATMOSPHERE: (681..697) "; ~> unspecified"
+ ATMOSPHERE: (697..702) "\n "
+ FORM: (702..737)
+ OPEN_PAREN: (702..703) "("
+ SYMBOL: (703..707)
+ IDENTIFIER: (703..707) "eqv?"
+ ATMOSPHERE: (707..708) " "
+ FORM: (708..722)
+ OPEN_PAREN: (708..709) "("
+ SYMBOL: (709..715)
+ IDENTIFIER: (709..715) "lambda"
+ ATMOSPHERE: (715..716) " "
+ FORM: (716..719)
+ OPEN_PAREN: (716..717) "("
+ SYMBOL: (717..718)
+ IDENTIFIER: (717..718) "x"
+ CLOSE_PAREN: (718..719) ")"
+ ATMOSPHERE: (719..720) " "
+ SYMBOL: (720..721)
+ IDENTIFIER: (720..721) "x"
+ CLOSE_PAREN: (721..722) ")"
+ FORM: (722..736)
+ OPEN_PAREN: (722..723) "("
+ SYMBOL: (723..729)
+ IDENTIFIER: (723..729) "lambda"
+ ATMOSPHERE: (729..730) " "
+ FORM: (730..733)
+ OPEN_PAREN: (730..731) "("
+ SYMBOL: (731..732)
+ IDENTIFIER: (731..732) "x"
+ CLOSE_PAREN: (732..733) ")"
+ ATMOSPHERE: (733..734) " "
+ SYMBOL: (734..735)
+ IDENTIFIER: (734..735) "x"
+ CLOSE_PAREN: (735..736) ")"
+ CLOSE_PAREN: (736..737) ")"
+ ATMOSPHERE: (737..738) " "
+ ATMOSPHERE: (738..754) "; ~> unspecified"
+ ATMOSPHERE: (754..759) "\n "
+ FORM: (759..794)
+ OPEN_PAREN: (759..760) "("
+ SYMBOL: (760..764)
+ IDENTIFIER: (760..764) "eqv?"
+ ATMOSPHERE: (764..765) " "
+ FORM: (765..779)
+ OPEN_PAREN: (765..766) "("
+ SYMBOL: (766..772)
+ IDENTIFIER: (766..772) "lambda"
+ ATMOSPHERE: (772..773) " "
+ FORM: (773..776)
+ OPEN_PAREN: (773..774) "("
+ SYMBOL: (774..775)
+ IDENTIFIER: (774..775) "x"
+ CLOSE_PAREN: (775..776) ")"
+ ATMOSPHERE: (776..777) " "
+ SYMBOL: (777..778)
+ IDENTIFIER: (777..778) "x"
+ CLOSE_PAREN: (778..779) ")"
+ FORM: (779..793)
+ OPEN_PAREN: (779..780) "("
+ SYMBOL: (780..786)
+ IDENTIFIER: (780..786) "lambda"
+ ATMOSPHERE: (786..787) " "
+ FORM: (787..790)
+ OPEN_PAREN: (787..788) "("
+ SYMBOL: (788..789)
+ IDENTIFIER: (788..789) "y"
+ CLOSE_PAREN: (789..790) ")"
+ ATMOSPHERE: (790..791) " "
+ SYMBOL: (791..792)
+ IDENTIFIER: (791..792) "y"
+ CLOSE_PAREN: (792..793) ")"
+ CLOSE_PAREN: (793..794) ")"
+ ATMOSPHERE: (794..795) " "
+ ATMOSPHERE: (795..811) "; ~> unspecified"
+ ATMOSPHERE: (811..816) "\n "
+ ATMOSPHERE: (816..853) "; (eqv? 1.0e0 1.0f0) ; ~> unspecified"
+ ATMOSPHERE: (853..858) "\n "
+ ATMOSPHERE: (858..897) "; (eqv? +nan.0 +nan.0) ; ~> unspecified"
+ ATMOSPHERE: (897..903) "\n\n "
+ CLOSE_PAREN: (903..904) ")"
+ CLOSE_PAREN: (904..905) ")"
+ FORM: (905..914)
+ OPEN_PAREN: (905..906) "("
+ SYMBOL: (906..913)
+ IDENTIFIER: (906..913) "newline"
+ CLOSE_PAREN: (913..914) ")"
+ ATMOSPHERE: (914..916) "\n\n"
+ ATMOSPHERE: (916..979) ";; Lambdas that capture state should be different for each call"
+ ATMOSPHERE: (979..980) "\n"
+ FORM: (980..1097)
+ OPEN_PAREN: (980..981) "("
+ SYMBOL: (981..987)
+ IDENTIFIER: (981..987) "define"
+ ATMOSPHERE: (987..988) " "
+ SYMBOL: (988..999)
+ IDENTIFIER: (988..999) "gen-counter"
+ ATMOSPHERE: (999..1004) "\n "
+ FORM: (1004..1096)
+ OPEN_PAREN: (1004..1005) "("
+ SYMBOL: (1005..1011)
+ IDENTIFIER: (1005..1011) "lambda"
+ ATMOSPHERE: (1011..1012) " "
+ FORM: (1012..1014)
+ OPEN_PAREN: (1012..1013) "("
+ CLOSE_PAREN: (1013..1014) ")"
+ ATMOSPHERE: (1014..1023) "\n "
+ FORM: (1023..1095)
+ OPEN_PAREN: (1023..1024) "("
+ SYMBOL: (1024..1027)
+ IDENTIFIER: (1024..1027) "let"
+ ATMOSPHERE: (1027..1028) " "
+ FORM: (1028..1035)
+ OPEN_PAREN: (1028..1029) "("
+ FORM: (1029..1034)
+ OPEN_PAREN: (1029..1030) "("
+ SYMBOL: (1030..1031)
+ IDENTIFIER: (1030..1031) "n"
+ ATMOSPHERE: (1031..1032) " "
+ CONSTANT: (1032..1033)
+ NUMBER: (1032..1033) "0"
+ CLOSE_PAREN: (1033..1034) ")"
+ CLOSE_PAREN: (1034..1035) ")"
+ ATMOSPHERE: (1035..1048) "\n "
+ FORM: (1048..1094)
+ OPEN_PAREN: (1048..1049) "("
+ SYMBOL: (1049..1055)
+ IDENTIFIER: (1049..1055) "lambda"
+ ATMOSPHERE: (1055..1056) " "
+ FORM: (1056..1058)
+ OPEN_PAREN: (1056..1057) "("
+ CLOSE_PAREN: (1057..1058) ")"
+ ATMOSPHERE: (1058..1075) "\n "
+ FORM: (1075..1091)
+ OPEN_PAREN: (1075..1076) "("
+ SYMBOL: (1076..1080)
+ IDENTIFIER: (1076..1080) "set!"
+ ATMOSPHERE: (1080..1081) " "
+ SYMBOL: (1081..1082)
+ IDENTIFIER: (1081..1082) "n"
+ ATMOSPHERE: (1082..1083) " "
+ FORM: (1083..1090)
+ OPEN_PAREN: (1083..1084) "("
+ SYMBOL: (1084..1085)
+ IDENTIFIER: (1084..1085) "+"
+ ATMOSPHERE: (1085..1086) " "
+ SYMBOL: (1086..1087)
+ IDENTIFIER: (1086..1087) "n"
+ ATMOSPHERE: (1087..1088) " "
+ CONSTANT: (1088..1089)
+ NUMBER: (1088..1089) "1"
+ CLOSE_PAREN: (1089..1090) ")"
+ CLOSE_PAREN: (1090..1091) ")"
+ ATMOSPHERE: (1091..1092) " "
+ SYMBOL: (1092..1093)
+ IDENTIFIER: (1092..1093) "n"
+ CLOSE_PAREN: (1093..1094) ")"
+ CLOSE_PAREN: (1094..1095) ")"
+ CLOSE_PAREN: (1095..1096) ")"
+ CLOSE_PAREN: (1096..1097) ")"
+ ATMOSPHERE: (1097..1098) "\n"
+ FORM: (1098..1148)
+ OPEN_PAREN: (1098..1099) "("
+ SYMBOL: (1099..1106)
+ IDENTIFIER: (1099..1106) "display"
+ ATMOSPHERE: (1106..1107) " "
+ FORM: (1107..1147)
+ OPEN_PAREN: (1107..1108) "("
+ SYMBOL: (1108..1111)
+ IDENTIFIER: (1108..1111) "let"
+ ATMOSPHERE: (1111..1112) " "
+ FORM: (1112..1131)
+ OPEN_PAREN: (1112..1113) "("
+ FORM: (1113..1130)
+ OPEN_PAREN: (1113..1114) "("
+ SYMBOL: (1114..1115)
+ IDENTIFIER: (1114..1115) "g"
+ ATMOSPHERE: (1115..1116) " "
+ FORM: (1116..1129)
+ OPEN_PAREN: (1116..1117) "("
+ SYMBOL: (1117..1128)
+ IDENTIFIER: (1117..1128) "gen-counter"
+ CLOSE_PAREN: (1128..1129) ")"
+ CLOSE_PAREN: (1129..1130) ")"
+ CLOSE_PAREN: (1130..1131) ")"
+ ATMOSPHERE: (1131..1136) "\n "
+ FORM: (1136..1146)
+ OPEN_PAREN: (1136..1137) "("
+ SYMBOL: (1137..1141)
+ IDENTIFIER: (1137..1141) "eqv?"
+ ATMOSPHERE: (1141..1142) " "
+ SYMBOL: (1142..1143)
+ IDENTIFIER: (1142..1143) "g"
+ ATMOSPHERE: (1143..1144) " "
+ SYMBOL: (1144..1145)
+ IDENTIFIER: (1144..1145) "g"
+ CLOSE_PAREN: (1145..1146) ")"
+ CLOSE_PAREN: (1146..1147) ")"
+ CLOSE_PAREN: (1147..1148) ")"
+ ATMOSPHERE: (1148..1149) " "
+ ATMOSPHERE: (1149..1156) "; ~> #t"
+ ATMOSPHERE: (1156..1157) "\n"
+ FORM: (1157..1201)
+ OPEN_PAREN: (1157..1158) "("
+ SYMBOL: (1158..1165)
+ IDENTIFIER: (1158..1165) "display"
+ ATMOSPHERE: (1165..1166) " "
+ FORM: (1166..1200)
+ OPEN_PAREN: (1166..1167) "("
+ SYMBOL: (1167..1171)
+ IDENTIFIER: (1167..1171) "eqv?"
+ ATMOSPHERE: (1171..1172) " "
+ FORM: (1172..1185)
+ OPEN_PAREN: (1172..1173) "("
+ SYMBOL: (1173..1184)
+ IDENTIFIER: (1173..1184) "gen-counter"
+ CLOSE_PAREN: (1184..1185) ")"
+ ATMOSPHERE: (1185..1186) " "
+ FORM: (1186..1199)
+ OPEN_PAREN: (1186..1187) "("
+ SYMBOL: (1187..1198)
+ IDENTIFIER: (1187..1198) "gen-counter"
+ CLOSE_PAREN: (1198..1199) ")"
+ CLOSE_PAREN: (1199..1200) ")"
+ CLOSE_PAREN: (1200..1201) ")"
+ ATMOSPHERE: (1201..1202) " "
+ ATMOSPHERE: (1202..1209) "; ~> #f"
+ ATMOSPHERE: (1209..1210) "\n"
+ FORM: (1210..1219)
+ OPEN_PAREN: (1210..1211) "("
+ SYMBOL: (1211..1218)
+ IDENTIFIER: (1211..1218) "newline"
+ CLOSE_PAREN: (1218..1219) ")"
+ ATMOSPHERE: (1219..1221) "\n\n"
+ ATMOSPHERE: (1221..1292) ";; The `eq?` Predicate is allowed to just do a pointer equivalence test"
+ ATMOSPHERE: (1292..1293) "\n"
+ FORM: (1293..1748)
+ OPEN_PAREN: (1293..1294) "("
+ SYMBOL: (1294..1301)
+ IDENTIFIER: (1294..1301) "display"
+ ATMOSPHERE: (1301..1303) "\n "
+ FORM: (1303..1747)
+ OPEN_PAREN: (1303..1304) "("
+ SYMBOL: (1304..1308)
+ IDENTIFIER: (1304..1308) "list"
+ ATMOSPHERE: (1308..1311) "\n "
+ FORM: (1311..1322)
+ OPEN_PAREN: (1311..1312) "("
+ SYMBOL: (1312..1315)
+ IDENTIFIER: (1312..1315) "eq?"
+ ATMOSPHERE: (1315..1316) " "
+ QUOTED_DATUM: (1316..1319)
+ QUOTE: (1316..1317) "’"
+ SYMBOL: (1317..1318)
+ IDENTIFIER: (1317..1318) "a"
+ ATMOSPHERE: (1318..1319) " "
+ QUOTED_DATUM: (1319..1321)
+ QUOTE: (1319..1320) "’"
+ SYMBOL: (1320..1321)
+ IDENTIFIER: (1320..1321) "a"
+ CLOSE_PAREN: (1321..1322) ")"
+ ATMOSPHERE: (1322..1323) " "
+ ATMOSPHERE: (1323..1330) "; -> #t"
+ ATMOSPHERE: (1330..1333) "\n "
+ FORM: (1333..1348)
+ OPEN_PAREN: (1333..1334) "("
+ SYMBOL: (1334..1337)
+ IDENTIFIER: (1334..1337) "eq?"
+ ATMOSPHERE: (1337..1338) " "
+ QUOTED_DATUM: (1338..1343)
+ QUOTE: (1338..1339) "’"
+ FORM: (1339..1342)
+ OPEN_PAREN: (1339..1340) "("
+ SYMBOL: (1340..1341)
+ IDENTIFIER: (1340..1341) "a"
+ CLOSE_PAREN: (1341..1342) ")"
+ ATMOSPHERE: (1342..1343) " "
+ QUOTED_DATUM: (1343..1347)
+ QUOTE: (1343..1344) "’"
+ FORM: (1344..1347)
+ OPEN_PAREN: (1344..1345) "("
+ SYMBOL: (1345..1346)
+ IDENTIFIER: (1345..1346) "a"
+ CLOSE_PAREN: (1346..1347) ")"
+ CLOSE_PAREN: (1347..1348) ")"
+ ATMOSPHERE: (1348..1349) " "
+ ATMOSPHERE: (1349..1365) "; -> unspecified"
+ ATMOSPHERE: (1365..1368) "\n "
+ FORM: (1368..1393)
+ OPEN_PAREN: (1368..1369) "("
+ SYMBOL: (1369..1372)
+ IDENTIFIER: (1369..1372) "eq?"
+ ATMOSPHERE: (1372..1373) " "
+ FORM: (1373..1382)
+ OPEN_PAREN: (1373..1374) "("
+ SYMBOL: (1374..1378)
+ IDENTIFIER: (1374..1378) "list"
+ ATMOSPHERE: (1378..1379) " "
+ QUOTED_DATUM: (1379..1381)
+ QUOTE: (1379..1380) "’"
+ SYMBOL: (1380..1381)
+ IDENTIFIER: (1380..1381) "a"
+ CLOSE_PAREN: (1381..1382) ")"
+ ATMOSPHERE: (1382..1383) " "
+ FORM: (1383..1392)
+ OPEN_PAREN: (1383..1384) "("
+ SYMBOL: (1384..1388)
+ IDENTIFIER: (1384..1388) "list"
+ ATMOSPHERE: (1388..1389) " "
+ QUOTED_DATUM: (1389..1391)
+ QUOTE: (1389..1390) "’"
+ SYMBOL: (1390..1391)
+ IDENTIFIER: (1390..1391) "a"
+ CLOSE_PAREN: (1391..1392) ")"
+ CLOSE_PAREN: (1392..1393) ")"
+ ATMOSPHERE: (1393..1394) " "
+ ATMOSPHERE: (1394..1401) "; -> #f"
+ ATMOSPHERE: (1401..1404) "\n "
+ FORM: (1404..1417)
+ OPEN_PAREN: (1404..1405) "("
+ SYMBOL: (1405..1408)
+ IDENTIFIER: (1405..1408) "eq?"
+ ATMOSPHERE: (1408..1409) " "
+ CONSTANT: (1409..1412)
+ STRING: (1409..1412) "\"a\""
+ ATMOSPHERE: (1412..1413) " "
+ CONSTANT: (1413..1416)
+ STRING: (1413..1416) "\"a\""
+ CLOSE_PAREN: (1416..1417) ")"
+ ATMOSPHERE: (1417..1418) " "
+ ATMOSPHERE: (1418..1434) "; -> unspecified"
+ ATMOSPHERE: (1434..1437) "\n "
+ FORM: (1437..1448)
+ OPEN_PAREN: (1437..1438) "("
+ SYMBOL: (1438..1441)
+ IDENTIFIER: (1438..1441) "eq?"
+ ATMOSPHERE: (1441..1442) " "
+ CONSTANT: (1442..1444)
+ STRING: (1442..1444) "\"\""
+ ATMOSPHERE: (1444..1445) " "
+ CONSTANT: (1445..1447)
+ STRING: (1445..1447) "\"\""
+ CLOSE_PAREN: (1447..1448) ")"
+ ATMOSPHERE: (1448..1449) " "
+ ATMOSPHERE: (1449..1465) "; -> unspecified"
+ ATMOSPHERE: (1465..1468) "\n "
+ FORM: (1468..1481)
+ OPEN_PAREN: (1468..1469) "("
+ SYMBOL: (1469..1472)
+ IDENTIFIER: (1469..1472) "eq?"
+ ATMOSPHERE: (1472..1473) " "
+ QUOTED_DATUM: (1473..1477)
+ QUOTE: (1473..1474) "’"
+ FORM: (1474..1476)
+ OPEN_PAREN: (1474..1475) "("
+ CLOSE_PAREN: (1475..1476) ")"
+ ATMOSPHERE: (1476..1477) " "
+ QUOTED_DATUM: (1477..1480)
+ QUOTE: (1477..1478) "’"
+ FORM: (1478..1480)
+ OPEN_PAREN: (1478..1479) "("
+ CLOSE_PAREN: (1479..1480) ")"
+ CLOSE_PAREN: (1480..1481) ")"
+ ATMOSPHERE: (1481..1482) " "
+ ATMOSPHERE: (1482..1489) "; -> #t"
+ ATMOSPHERE: (1489..1492) "\n "
+ FORM: (1492..1501)
+ OPEN_PAREN: (1492..1493) "("
+ SYMBOL: (1493..1496)
+ IDENTIFIER: (1493..1496) "eq?"
+ ATMOSPHERE: (1496..1497) " "
+ CONSTANT: (1497..1498)
+ NUMBER: (1497..1498) "2"
+ ATMOSPHERE: (1498..1499) " "
+ CONSTANT: (1499..1500)
+ NUMBER: (1499..1500) "2"
+ CLOSE_PAREN: (1500..1501) ")"
+ ATMOSPHERE: (1501..1502) " "
+ ATMOSPHERE: (1502..1518) "; -> unspecified"
+ ATMOSPHERE: (1518..1521) "\n "
+ FORM: (1521..1534)
+ OPEN_PAREN: (1521..1522) "("
+ SYMBOL: (1522..1525)
+ IDENTIFIER: (1522..1525) "eq?"
+ ATMOSPHERE: (1525..1526) " "
+ CONSTANT: (1526..1529)
+ CHARACTER: (1526..1529) "#\\A"
+ ATMOSPHERE: (1529..1530) " "
+ CONSTANT: (1530..1533)
+ CHARACTER: (1530..1533) "#\\A"
+ CLOSE_PAREN: (1533..1534) ")"
+ ATMOSPHERE: (1534..1535) " "
+ ATMOSPHERE: (1535..1551) "; -> unspecified"
+ ATMOSPHERE: (1551..1554) "\n "
+ FORM: (1554..1567)
+ OPEN_PAREN: (1554..1555) "("
+ SYMBOL: (1555..1558)
+ IDENTIFIER: (1555..1558) "eq?"
+ ATMOSPHERE: (1558..1559) " "
+ SYMBOL: (1559..1562)
+ IDENTIFIER: (1559..1562) "car"
+ ATMOSPHERE: (1562..1563) " "
+ SYMBOL: (1563..1566)
+ IDENTIFIER: (1563..1566) "car"
+ CLOSE_PAREN: (1566..1567) ")"
+ ATMOSPHERE: (1567..1568) " "
+ ATMOSPHERE: (1568..1575) "; -> #t"
+ ATMOSPHERE: (1575..1578) "\n "
+ FORM: (1578..1608)
+ OPEN_PAREN: (1578..1579) "("
+ SYMBOL: (1579..1582)
+ IDENTIFIER: (1579..1582) "let"
+ ATMOSPHERE: (1582..1583) " "
+ FORM: (1583..1596)
+ OPEN_PAREN: (1583..1584) "("
+ FORM: (1584..1595)
+ OPEN_PAREN: (1584..1585) "("
+ SYMBOL: (1585..1586)
+ IDENTIFIER: (1585..1586) "n"
+ ATMOSPHERE: (1586..1587) " "
+ FORM: (1587..1594)
+ OPEN_PAREN: (1587..1588) "("
+ SYMBOL: (1588..1589)
+ IDENTIFIER: (1588..1589) "+"
+ ATMOSPHERE: (1589..1590) " "
+ CONSTANT: (1590..1591)
+ NUMBER: (1590..1591) "2"
+ ATMOSPHERE: (1591..1592) " "
+ CONSTANT: (1592..1593)
+ NUMBER: (1592..1593) "3"
+ CLOSE_PAREN: (1593..1594) ")"
+ CLOSE_PAREN: (1594..1595) ")"
+ CLOSE_PAREN: (1595..1596) ")"
+ ATMOSPHERE: (1596..1598) "\n\t"
+ FORM: (1598..1607)
+ OPEN_PAREN: (1598..1599) "("
+ SYMBOL: (1599..1602)
+ IDENTIFIER: (1599..1602) "eq?"
+ ATMOSPHERE: (1602..1603) " "
+ SYMBOL: (1603..1604)
+ IDENTIFIER: (1603..1604) "n"
+ ATMOSPHERE: (1604..1605) " "
+ SYMBOL: (1605..1606)
+ IDENTIFIER: (1605..1606) "n"
+ CLOSE_PAREN: (1606..1607) ")"
+ CLOSE_PAREN: (1607..1608) ")"
+ ATMOSPHERE: (1608..1609) " "
+ ATMOSPHERE: (1609..1625) "; -> unspecified"
+ ATMOSPHERE: (1625..1628) "\n "
+ FORM: (1628..1653)
+ OPEN_PAREN: (1628..1629) "("
+ SYMBOL: (1629..1632)
+ IDENTIFIER: (1629..1632) "let"
+ ATMOSPHERE: (1632..1633) " "
+ FORM: (1633..1643)
+ OPEN_PAREN: (1633..1634) "("
+ FORM: (1634..1642)
+ OPEN_PAREN: (1634..1635) "("
+ SYMBOL: (1635..1636)
+ IDENTIFIER: (1635..1636) "x"
+ ATMOSPHERE: (1636..1637) " "
+ QUOTED_DATUM: (1637..1641)
+ QUOTE: (1637..1638) "’"
+ FORM: (1638..1641)
+ OPEN_PAREN: (1638..1639) "("
+ SYMBOL: (1639..1640)
+ IDENTIFIER: (1639..1640) "a"
+ CLOSE_PAREN: (1640..1641) ")"
+ CLOSE_PAREN: (1641..1642) ")"
+ CLOSE_PAREN: (1642..1643) ")"
+ FORM: (1643..1652)
+ OPEN_PAREN: (1643..1644) "("
+ SYMBOL: (1644..1647)
+ IDENTIFIER: (1644..1647) "eq?"
+ ATMOSPHERE: (1647..1648) " "
+ SYMBOL: (1648..1649)
+ IDENTIFIER: (1648..1649) "x"
+ ATMOSPHERE: (1649..1650) " "
+ SYMBOL: (1650..1651)
+ IDENTIFIER: (1650..1651) "x"
+ CLOSE_PAREN: (1651..1652) ")"
+ CLOSE_PAREN: (1652..1653) ")"
+ ATMOSPHERE: (1653..1654) " "
+ ATMOSPHERE: (1654..1661) "; -> #t"
+ ATMOSPHERE: (1661..1664) "\n "
+ FORM: (1664..1689)
+ OPEN_PAREN: (1664..1665) "("
+ SYMBOL: (1665..1668)
+ IDENTIFIER: (1665..1668) "let"
+ ATMOSPHERE: (1668..1669) " "
+ FORM: (1669..1679)
+ OPEN_PAREN: (1669..1670) "("
+ FORM: (1670..1678)
+ OPEN_PAREN: (1670..1671) "("
+ SYMBOL: (1671..1672)
+ IDENTIFIER: (1671..1672) "x"
+ ATMOSPHERE: (1672..1673) " "
+ QUOTED_DATUM: (1673..1677)
+ QUOTE: (1673..1674) "’"
+ VEC: (1674..1677)
+ OPEN_PAREN: (1674..1676) "#("
+ CLOSE_PAREN: (1676..1677) ")"
+ CLOSE_PAREN: (1677..1678) ")"
+ CLOSE_PAREN: (1678..1679) ")"
+ FORM: (1679..1688)
+ OPEN_PAREN: (1679..1680) "("
+ SYMBOL: (1680..1683)
+ IDENTIFIER: (1680..1683) "eq?"
+ ATMOSPHERE: (1683..1684) " "
+ SYMBOL: (1684..1685)
+ IDENTIFIER: (1684..1685) "x"
+ ATMOSPHERE: (1685..1686) " "
+ SYMBOL: (1686..1687)
+ IDENTIFIER: (1686..1687) "x"
+ CLOSE_PAREN: (1687..1688) ")"
+ CLOSE_PAREN: (1688..1689) ")"
+ ATMOSPHERE: (1689..1690) " "
+ ATMOSPHERE: (1690..1697) "; -> #t"
+ ATMOSPHERE: (1697..1700) "\n "
+ FORM: (1700..1735)
+ OPEN_PAREN: (1700..1701) "("
+ SYMBOL: (1701..1704)
+ IDENTIFIER: (1701..1704) "let"
+ ATMOSPHERE: (1704..1705) " "
+ FORM: (1705..1725)
+ OPEN_PAREN: (1705..1706) "("
+ FORM: (1706..1724)
+ OPEN_PAREN: (1706..1707) "("
+ SYMBOL: (1707..1708)
+ IDENTIFIER: (1707..1708) "p"
+ ATMOSPHERE: (1708..1709) " "
+ FORM: (1709..1723)
+ OPEN_PAREN: (1709..1710) "("
+ SYMBOL: (1710..1716)
+ IDENTIFIER: (1710..1716) "lambda"
+ ATMOSPHERE: (1716..1717) " "
+ FORM: (1717..1720)
+ OPEN_PAREN: (1717..1718) "("
+ SYMBOL: (1718..1719)
+ IDENTIFIER: (1718..1719) "x"
+ CLOSE_PAREN: (1719..1720) ")"
+ ATMOSPHERE: (1720..1721) " "
+ SYMBOL: (1721..1722)
+ IDENTIFIER: (1721..1722) "x"
+ CLOSE_PAREN: (1722..1723) ")"
+ CLOSE_PAREN: (1723..1724) ")"
+ CLOSE_PAREN: (1724..1725) ")"
+ FORM: (1725..1734)
+ OPEN_PAREN: (1725..1726) "("
+ SYMBOL: (1726..1729)
+ IDENTIFIER: (1726..1729) "eq?"
+ ATMOSPHERE: (1729..1730) " "
+ SYMBOL: (1730..1731)
+ IDENTIFIER: (1730..1731) "p"
+ ATMOSPHERE: (1731..1732) " "
+ SYMBOL: (1732..1733)
+ IDENTIFIER: (1732..1733) "p"
+ CLOSE_PAREN: (1733..1734) ")"
+ CLOSE_PAREN: (1734..1735) ")"
+ ATMOSPHERE: (1735..1736) " "
+ ATMOSPHERE: (1736..1743) "; -> #t"
+ ATMOSPHERE: (1743..1746) "\n "
+ CLOSE_PAREN: (1746..1747) ")"
+ CLOSE_PAREN: (1747..1748) ")"
+ FORM: (1748..1757)
+ OPEN_PAREN: (1748..1749) "("
+ SYMBOL: (1749..1756)
+ IDENTIFIER: (1749..1756) "newline"
+ CLOSE_PAREN: (1756..1757) ")"
+ ATMOSPHERE: (1757..1759) "\n\n"
+ ATMOSPHERE: (1759..1831) ";; The `equals?` predicate should recursively calculate equivalence. For"
+ ATMOSPHERE: (1831..1832) "\n"
+ ATMOSPHERE: (1832..1887) ";; our implementation this is close to `object.Equals`."
+ ATMOSPHERE: (1887..1888) "\n"
+ FORM: (1888..2267)
+ OPEN_PAREN: (1888..1889) "("
+ SYMBOL: (1889..1896)
+ IDENTIFIER: (1889..1896) "display"
+ ATMOSPHERE: (1896..1898) "\n "
+ FORM: (1898..2266)
+ OPEN_PAREN: (1898..1899) "("
+ SYMBOL: (1899..1903)
+ IDENTIFIER: (1899..1903) "list"
+ ATMOSPHERE: (1903..1906) "\n "
+ FORM: (1906..1920)
+ OPEN_PAREN: (1906..1907) "("
+ SYMBOL: (1907..1913)
+ IDENTIFIER: (1907..1913) "equal?"
+ ATMOSPHERE: (1913..1914) " "
+ QUOTED_DATUM: (1914..1917)
+ QUOTE: (1914..1915) "’"
+ SYMBOL: (1915..1916)
+ IDENTIFIER: (1915..1916) "a"
+ ATMOSPHERE: (1916..1917) " "
+ QUOTED_DATUM: (1917..1919)
+ QUOTE: (1917..1918) "’"
+ SYMBOL: (1918..1919)
+ IDENTIFIER: (1918..1919) "a"
+ CLOSE_PAREN: (1919..1920) ")"
+ ATMOSPHERE: (1920..1921) " "
+ ATMOSPHERE: (1921..1928) "; -> #t"
+ ATMOSPHERE: (1928..1931) "\n "
+ FORM: (1931..1949)
+ OPEN_PAREN: (1931..1932) "("
+ SYMBOL: (1932..1938)
+ IDENTIFIER: (1932..1938) "equal?"
+ ATMOSPHERE: (1938..1939) " "
+ QUOTED_DATUM: (1939..1944)
+ QUOTE: (1939..1940) "’"
+ FORM: (1940..1943)
+ OPEN_PAREN: (1940..1941) "("
+ SYMBOL: (1941..1942)
+ IDENTIFIER: (1941..1942) "a"
+ CLOSE_PAREN: (1942..1943) ")"
+ ATMOSPHERE: (1943..1944) " "
+ QUOTED_DATUM: (1944..1948)
+ QUOTE: (1944..1945) "’"
+ FORM: (1945..1948)
+ OPEN_PAREN: (1945..1946) "("
+ SYMBOL: (1946..1947)
+ IDENTIFIER: (1946..1947) "a"
+ CLOSE_PAREN: (1947..1948) ")"
+ CLOSE_PAREN: (1948..1949) ")"
+ ATMOSPHERE: (1949..1950) " "
+ ATMOSPHERE: (1950..1957) "; -> #t"
+ ATMOSPHERE: (1957..1960) "\n "
+ FORM: (1960..1989)
+ OPEN_PAREN: (1960..1961) "("
+ SYMBOL: (1961..1967)
+ IDENTIFIER: (1961..1967) "equal?"
+ ATMOSPHERE: (1967..1968) " "
+ QUOTED_DATUM: (1968..1978)
+ QUOTE: (1968..1969) "’"
+ FORM: (1969..1978)
+ OPEN_PAREN: (1969..1970) "("
+ SYMBOL: (1970..1971)
+ IDENTIFIER: (1970..1971) "a"
+ ATMOSPHERE: (1971..1972) " "
+ FORM: (1972..1975)
+ OPEN_PAREN: (1972..1973) "("
+ SYMBOL: (1973..1974)
+ IDENTIFIER: (1973..1974) "b"
+ CLOSE_PAREN: (1974..1975) ")"
+ ATMOSPHERE: (1975..1976) " "
+ SYMBOL: (1976..1977)
+ IDENTIFIER: (1976..1977) "c"
+ CLOSE_PAREN: (1977..1978) ")"
+ QUOTED_DATUM: (1978..1988)
+ QUOTE: (1978..1979) "’"
+ FORM: (1979..1988)
+ OPEN_PAREN: (1979..1980) "("
+ SYMBOL: (1980..1981)
+ IDENTIFIER: (1980..1981) "a"
+ ATMOSPHERE: (1981..1982) " "
+ FORM: (1982..1985)
+ OPEN_PAREN: (1982..1983) "("
+ SYMBOL: (1983..1984)
+ IDENTIFIER: (1983..1984) "b"
+ CLOSE_PAREN: (1984..1985) ")"
+ ATMOSPHERE: (1985..1986) " "
+ SYMBOL: (1986..1987)
+ IDENTIFIER: (1986..1987) "c"
+ CLOSE_PAREN: (1987..1988) ")"
+ CLOSE_PAREN: (1988..1989) ")"
+ ATMOSPHERE: (1989..1990) " "
+ ATMOSPHERE: (1990..1997) "; -> #t"
+ ATMOSPHERE: (1997..2000) "\n "
+ FORM: (2000..2020)
+ OPEN_PAREN: (2000..2001) "("
+ SYMBOL: (2001..2007)
+ IDENTIFIER: (2001..2007) "equal?"
+ ATMOSPHERE: (2007..2008) " "
+ CONSTANT: (2008..2013)
+ STRING: (2008..2013) "\"abc\""
+ ATMOSPHERE: (2013..2014) " "
+ CONSTANT: (2014..2019)
+ STRING: (2014..2019) "\"abc\""
+ CLOSE_PAREN: (2019..2020) ")"
+ ATMOSPHERE: (2020..2021) " "
+ ATMOSPHERE: (2021..2028) "; -> #t"
+ ATMOSPHERE: (2028..2031) "\n "
+ FORM: (2031..2043)
+ OPEN_PAREN: (2031..2032) "("
+ SYMBOL: (2032..2038)
+ IDENTIFIER: (2032..2038) "equal?"
+ ATMOSPHERE: (2038..2039) " "
+ CONSTANT: (2039..2040)
+ NUMBER: (2039..2040) "2"
+ ATMOSPHERE: (2040..2041) " "
+ CONSTANT: (2041..2042)
+ NUMBER: (2041..2042) "2"
+ CLOSE_PAREN: (2042..2043) ")"
+ ATMOSPHERE: (2043..2044) " "
+ ATMOSPHERE: (2044..2051) "; -> #t"
+ ATMOSPHERE: (2051..2054) "\n "
+ FORM: (2054..2099)
+ OPEN_PAREN: (2054..2055) "("
+ SYMBOL: (2055..2061)
+ IDENTIFIER: (2055..2061) "equal?"
+ ATMOSPHERE: (2061..2062) " "
+ FORM: (2062..2080)
+ OPEN_PAREN: (2062..2063) "("
+ SYMBOL: (2063..2074)
+ IDENTIFIER: (2063..2074) "make-vector"
+ ATMOSPHERE: (2074..2075) " "
+ CONSTANT: (2075..2076)
+ NUMBER: (2075..2076) "5"
+ ATMOSPHERE: (2076..2077) " "
+ QUOTED_DATUM: (2077..2079)
+ QUOTE: (2077..2078) "’"
+ SYMBOL: (2078..2079)
+ IDENTIFIER: (2078..2079) "a"
+ CLOSE_PAREN: (2079..2080) ")"
+ FORM: (2080..2098)
+ OPEN_PAREN: (2080..2081) "("
+ SYMBOL: (2081..2092)
+ IDENTIFIER: (2081..2092) "make-vector"
+ ATMOSPHERE: (2092..2093) " "
+ CONSTANT: (2093..2094)
+ NUMBER: (2093..2094) "5"
+ ATMOSPHERE: (2094..2095) " "
+ QUOTED_DATUM: (2095..2097)
+ QUOTE: (2095..2096) "’"
+ SYMBOL: (2096..2097)
+ IDENTIFIER: (2096..2097) "a"
+ CLOSE_PAREN: (2097..2098) ")"
+ CLOSE_PAREN: (2098..2099) ")"
+ ATMOSPHERE: (2099..2100) " "
+ ATMOSPHERE: (2100..2107) "; -> #t"
+ ATMOSPHERE: (2107..2110) "\n "
+ ATMOSPHERE: (2110..2149) "; We don't support quote references yet"
+ ATMOSPHERE: (2149..2152) "\n "
+ ATMOSPHERE: (2152..2205) "; (equal? ’#1=(a b . #1#)’#2=(a b a b . #2#)) ; -> #t"
+ ATMOSPHERE: (2205..2208) "\n "
+ FORM: (2208..2245)
+ OPEN_PAREN: (2208..2209) "("
+ SYMBOL: (2209..2215)
+ IDENTIFIER: (2209..2215) "equal?"
+ ATMOSPHERE: (2215..2216) " "
+ FORM: (2216..2230)
+ OPEN_PAREN: (2216..2217) "("
+ SYMBOL: (2217..2223)
+ IDENTIFIER: (2217..2223) "lambda"
+ ATMOSPHERE: (2223..2224) " "
+ FORM: (2224..2227)
+ OPEN_PAREN: (2224..2225) "("
+ SYMBOL: (2225..2226)
+ IDENTIFIER: (2225..2226) "x"
+ CLOSE_PAREN: (2226..2227) ")"
+ ATMOSPHERE: (2227..2228) " "
+ SYMBOL: (2228..2229)
+ IDENTIFIER: (2228..2229) "x"
+ CLOSE_PAREN: (2229..2230) ")"
+ FORM: (2230..2244)
+ OPEN_PAREN: (2230..2231) "("
+ SYMBOL: (2231..2237)
+ IDENTIFIER: (2231..2237) "lambda"
+ ATMOSPHERE: (2237..2238) " "
+ FORM: (2238..2241)
+ OPEN_PAREN: (2238..2239) "("
+ SYMBOL: (2239..2240)
+ IDENTIFIER: (2239..2240) "y"
+ CLOSE_PAREN: (2240..2241) ")"
+ ATMOSPHERE: (2241..2242) " "
+ SYMBOL: (2242..2243)
+ IDENTIFIER: (2242..2243) "y"
+ CLOSE_PAREN: (2243..2244) ")"
+ CLOSE_PAREN: (2244..2245) ")"
+ ATMOSPHERE: (2245..2246) " "
+ ATMOSPHERE: (2246..2262) "; -> unspecified"
+ ATMOSPHERE: (2262..2265) "\n "
+ CLOSE_PAREN: (2265..2266) ")"
+ CLOSE_PAREN: (2266..2267) ")"
+ FORM: (2267..2276)
+ OPEN_PAREN: (2267..2268) "("
+ SYMBOL: (2268..2275)
+ IDENTIFIER: (2268..2275) "newline"
+ CLOSE_PAREN: (2275..2276) ")"
+ ATMOSPHERE: (2276..2277) "\n"
+ EOF: (2277..2277) ""
diff --git a/spec/eratosthenes.ast b/spec/eratosthenes.ast
new file mode 100644
index 0000000..412d051
--- /dev/null
+++ b/spec/eratosthenes.ast
@@ -0,0 +1,364 @@
+PROGRAM: (0..1136)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ ATMOSPHERE: (42..88) ";; Implementation of the Sieve of Eratosthenes"
+ ATMOSPHERE: (88..89) "\n"
+ ATMOSPHERE: (89..143) ";; https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes"
+ ATMOSPHERE: (143..144) "\n"
+ FORM: (144..1030)
+ OPEN_PAREN: (144..145) "("
+ SYMBOL: (145..151)
+ IDENTIFIER: (145..151) "define"
+ ATMOSPHERE: (151..152) " "
+ FORM: (152..168)
+ OPEN_PAREN: (152..153) "("
+ SYMBOL: (153..165)
+ IDENTIFIER: (153..165) "eratosthenes"
+ ATMOSPHERE: (165..166) " "
+ SYMBOL: (166..167)
+ IDENTIFIER: (166..167) "n"
+ CLOSE_PAREN: (167..168) ")"
+ ATMOSPHERE: (168..173) "\n "
+ ATMOSPHERE: (173..223) ";; Mark multiples of the given prime in the vector"
+ ATMOSPHERE: (223..228) "\n "
+ FORM: (228..552)
+ OPEN_PAREN: (228..229) "("
+ SYMBOL: (229..235)
+ IDENTIFIER: (229..235) "define"
+ ATMOSPHERE: (235..236) " "
+ FORM: (236..261)
+ OPEN_PAREN: (236..237) "("
+ SYMBOL: (237..251)
+ IDENTIFIER: (237..251) "mark-multiples"
+ ATMOSPHERE: (251..252) " "
+ SYMBOL: (252..253)
+ IDENTIFIER: (252..253) "p"
+ ATMOSPHERE: (253..254) " "
+ SYMBOL: (254..260)
+ IDENTIFIER: (254..260) "marked"
+ CLOSE_PAREN: (260..261) ")"
+ ATMOSPHERE: (261..270) "\n "
+ FORM: (270..506)
+ OPEN_PAREN: (270..271) "("
+ SYMBOL: (271..277)
+ IDENTIFIER: (271..277) "define"
+ ATMOSPHERE: (277..278) " "
+ FORM: (278..308)
+ OPEN_PAREN: (278..279) "("
+ SYMBOL: (279..296)
+ IDENTIFIER: (279..296) "mark-multiples-at"
+ ATMOSPHERE: (296..297) " "
+ SYMBOL: (297..298)
+ IDENTIFIER: (297..298) "p"
+ ATMOSPHERE: (298..299) " "
+ SYMBOL: (299..300)
+ IDENTIFIER: (299..300) "m"
+ ATMOSPHERE: (300..301) " "
+ SYMBOL: (301..307)
+ IDENTIFIER: (301..307) "marked"
+ CLOSE_PAREN: (307..308) ")"
+ ATMOSPHERE: (308..321) "\n "
+ FORM: (321..505)
+ OPEN_PAREN: (321..322) "("
+ SYMBOL: (322..324)
+ IDENTIFIER: (322..324) "if"
+ ATMOSPHERE: (324..325) " "
+ FORM: (325..354)
+ OPEN_PAREN: (325..326) "("
+ SYMBOL: (326..328)
+ IDENTIFIER: (326..328) ">="
+ ATMOSPHERE: (328..329) " "
+ SYMBOL: (329..330)
+ IDENTIFIER: (329..330) "m"
+ ATMOSPHERE: (330..331) " "
+ FORM: (331..353)
+ OPEN_PAREN: (331..332) "("
+ SYMBOL: (332..345)
+ IDENTIFIER: (332..345) "vector-length"
+ ATMOSPHERE: (345..346) " "
+ SYMBOL: (346..352)
+ IDENTIFIER: (346..352) "marked"
+ CLOSE_PAREN: (352..353) ")"
+ CLOSE_PAREN: (353..354) ")"
+ ATMOSPHERE: (354..371) "\n "
+ SYMBOL: (371..377)
+ IDENTIFIER: (371..377) "marked"
+ ATMOSPHERE: (377..394) "\n "
+ FORM: (394..504)
+ OPEN_PAREN: (394..395) "("
+ SYMBOL: (395..400)
+ IDENTIFIER: (395..400) "begin"
+ ATMOSPHERE: (400..421) "\n "
+ FORM: (421..446)
+ OPEN_PAREN: (421..422) "("
+ SYMBOL: (422..433)
+ IDENTIFIER: (422..433) "vector-set!"
+ ATMOSPHERE: (433..434) " "
+ SYMBOL: (434..440)
+ IDENTIFIER: (434..440) "marked"
+ ATMOSPHERE: (440..441) " "
+ SYMBOL: (441..442)
+ IDENTIFIER: (441..442) "m"
+ ATMOSPHERE: (442..443) " "
+ CONSTANT: (443..445)
+ BOOLEAN: (443..445) "#t"
+ CLOSE_PAREN: (445..446) ")"
+ ATMOSPHERE: (446..467) "\n "
+ FORM: (467..503)
+ OPEN_PAREN: (467..468) "("
+ SYMBOL: (468..485)
+ IDENTIFIER: (468..485) "mark-multiples-at"
+ ATMOSPHERE: (485..486) " "
+ SYMBOL: (486..487)
+ IDENTIFIER: (486..487) "p"
+ ATMOSPHERE: (487..488) " "
+ FORM: (488..495)
+ OPEN_PAREN: (488..489) "("
+ SYMBOL: (489..490)
+ IDENTIFIER: (489..490) "+"
+ ATMOSPHERE: (490..491) " "
+ SYMBOL: (491..492)
+ IDENTIFIER: (491..492) "m"
+ ATMOSPHERE: (492..493) " "
+ SYMBOL: (493..494)
+ IDENTIFIER: (493..494) "p"
+ CLOSE_PAREN: (494..495) ")"
+ ATMOSPHERE: (495..496) " "
+ SYMBOL: (496..502)
+ IDENTIFIER: (496..502) "marked"
+ CLOSE_PAREN: (502..503) ")"
+ CLOSE_PAREN: (503..504) ")"
+ CLOSE_PAREN: (504..505) ")"
+ CLOSE_PAREN: (505..506) ")"
+ ATMOSPHERE: (506..515) "\n "
+ FORM: (515..551)
+ OPEN_PAREN: (515..516) "("
+ SYMBOL: (516..533)
+ IDENTIFIER: (516..533) "mark-multiples-at"
+ ATMOSPHERE: (533..534) " "
+ SYMBOL: (534..535)
+ IDENTIFIER: (534..535) "p"
+ ATMOSPHERE: (535..536) " "
+ FORM: (536..543)
+ OPEN_PAREN: (536..537) "("
+ SYMBOL: (537..538)
+ IDENTIFIER: (537..538) "*"
+ ATMOSPHERE: (538..539) " "
+ SYMBOL: (539..540)
+ IDENTIFIER: (539..540) "p"
+ ATMOSPHERE: (540..541) " "
+ SYMBOL: (541..542)
+ IDENTIFIER: (541..542) "p"
+ CLOSE_PAREN: (542..543) ")"
+ ATMOSPHERE: (543..544) " "
+ SYMBOL: (544..550)
+ IDENTIFIER: (544..550) "marked"
+ CLOSE_PAREN: (550..551) ")"
+ CLOSE_PAREN: (551..552) ")"
+ ATMOSPHERE: (552..557) "\n "
+ ATMOSPHERE: (557..613) ";; main prime sieve. Recursively marks multiples of each"
+ ATMOSPHERE: (613..618) "\n "
+ ATMOSPHERE: (618..667) ";; prime and builds up a list of them as it goes."
+ ATMOSPHERE: (667..672) "\n "
+ FORM: (672..995)
+ OPEN_PAREN: (672..673) "("
+ SYMBOL: (673..679)
+ IDENTIFIER: (673..679) "define"
+ ATMOSPHERE: (679..680) " "
+ FORM: (680..701)
+ OPEN_PAREN: (680..681) "("
+ SYMBOL: (681..684)
+ IDENTIFIER: (681..684) "siv"
+ ATMOSPHERE: (684..685) " "
+ SYMBOL: (685..686)
+ IDENTIFIER: (685..686) "p"
+ ATMOSPHERE: (686..687) " "
+ SYMBOL: (687..693)
+ IDENTIFIER: (687..693) "marked"
+ ATMOSPHERE: (693..694) " "
+ SYMBOL: (694..700)
+ IDENTIFIER: (694..700) "primes"
+ CLOSE_PAREN: (700..701) ")"
+ ATMOSPHERE: (701..710) "\n "
+ FORM: (710..994)
+ OPEN_PAREN: (710..711) "("
+ SYMBOL: (711..713)
+ IDENTIFIER: (711..713) "if"
+ ATMOSPHERE: (713..714) " "
+ FORM: (714..743)
+ OPEN_PAREN: (714..715) "("
+ SYMBOL: (715..717)
+ IDENTIFIER: (715..717) ">="
+ ATMOSPHERE: (717..718) " "
+ SYMBOL: (718..719)
+ IDENTIFIER: (718..719) "p"
+ ATMOSPHERE: (719..720) " "
+ FORM: (720..742)
+ OPEN_PAREN: (720..721) "("
+ SYMBOL: (721..734)
+ IDENTIFIER: (721..734) "vector-length"
+ ATMOSPHERE: (734..735) " "
+ SYMBOL: (735..741)
+ IDENTIFIER: (735..741) "marked"
+ CLOSE_PAREN: (741..742) ")"
+ CLOSE_PAREN: (742..743) ")"
+ ATMOSPHERE: (743..756) "\n "
+ SYMBOL: (756..762)
+ IDENTIFIER: (756..762) "primes"
+ ATMOSPHERE: (762..775) "\n "
+ ATMOSPHERE: (775..838) ";; If the item is marked, it is a multiple of some other prime."
+ ATMOSPHERE: (838..851) "\n "
+ FORM: (851..993)
+ OPEN_PAREN: (851..852) "("
+ SYMBOL: (852..854)
+ IDENTIFIER: (852..854) "if"
+ ATMOSPHERE: (854..855) " "
+ FORM: (855..876)
+ OPEN_PAREN: (855..856) "("
+ SYMBOL: (856..866)
+ IDENTIFIER: (856..866) "vector-ref"
+ ATMOSPHERE: (866..867) " "
+ SYMBOL: (867..873)
+ IDENTIFIER: (867..873) "marked"
+ ATMOSPHERE: (873..874) " "
+ SYMBOL: (874..875)
+ IDENTIFIER: (874..875) "p"
+ CLOSE_PAREN: (875..876) ")"
+ ATMOSPHERE: (876..893) "\n "
+ FORM: (893..920)
+ OPEN_PAREN: (893..894) "("
+ SYMBOL: (894..897)
+ IDENTIFIER: (894..897) "siv"
+ ATMOSPHERE: (897..898) " "
+ FORM: (898..905)
+ OPEN_PAREN: (898..899) "("
+ SYMBOL: (899..900)
+ IDENTIFIER: (899..900) "+"
+ ATMOSPHERE: (900..901) " "
+ CONSTANT: (901..902)
+ NUMBER: (901..902) "1"
+ ATMOSPHERE: (902..903) " "
+ SYMBOL: (903..904)
+ IDENTIFIER: (903..904) "p"
+ CLOSE_PAREN: (904..905) ")"
+ ATMOSPHERE: (905..906) " "
+ SYMBOL: (906..912)
+ IDENTIFIER: (906..912) "marked"
+ ATMOSPHERE: (912..913) " "
+ SYMBOL: (913..919)
+ IDENTIFIER: (913..919) "primes"
+ CLOSE_PAREN: (919..920) ")"
+ ATMOSPHERE: (920..937) "\n "
+ FORM: (937..992)
+ OPEN_PAREN: (937..938) "("
+ SYMBOL: (938..941)
+ IDENTIFIER: (938..941) "siv"
+ ATMOSPHERE: (941..942) " "
+ FORM: (942..949)
+ OPEN_PAREN: (942..943) "("
+ SYMBOL: (943..944)
+ IDENTIFIER: (943..944) "+"
+ ATMOSPHERE: (944..945) " "
+ CONSTANT: (945..946)
+ NUMBER: (945..946) "1"
+ ATMOSPHERE: (946..947) " "
+ SYMBOL: (947..948)
+ IDENTIFIER: (947..948) "p"
+ CLOSE_PAREN: (948..949) ")"
+ ATMOSPHERE: (949..950) " "
+ FORM: (950..975)
+ OPEN_PAREN: (950..951) "("
+ SYMBOL: (951..965)
+ IDENTIFIER: (951..965) "mark-multiples"
+ ATMOSPHERE: (965..966) " "
+ SYMBOL: (966..967)
+ IDENTIFIER: (966..967) "p"
+ ATMOSPHERE: (967..968) " "
+ SYMBOL: (968..974)
+ IDENTIFIER: (968..974) "marked"
+ CLOSE_PAREN: (974..975) ")"
+ ATMOSPHERE: (975..976) " "
+ FORM: (976..991)
+ OPEN_PAREN: (976..977) "("
+ SYMBOL: (977..981)
+ IDENTIFIER: (977..981) "cons"
+ ATMOSPHERE: (981..982) " "
+ SYMBOL: (982..983)
+ IDENTIFIER: (982..983) "p"
+ ATMOSPHERE: (983..984) " "
+ SYMBOL: (984..990)
+ IDENTIFIER: (984..990) "primes"
+ CLOSE_PAREN: (990..991) ")"
+ CLOSE_PAREN: (991..992) ")"
+ CLOSE_PAREN: (992..993) ")"
+ CLOSE_PAREN: (993..994) ")"
+ CLOSE_PAREN: (994..995) ")"
+ ATMOSPHERE: (995..1000) "\n "
+ FORM: (1000..1029)
+ OPEN_PAREN: (1000..1001) "("
+ SYMBOL: (1001..1004)
+ IDENTIFIER: (1001..1004) "siv"
+ ATMOSPHERE: (1004..1005) " "
+ CONSTANT: (1005..1006)
+ NUMBER: (1005..1006) "2"
+ ATMOSPHERE: (1006..1007) " "
+ FORM: (1007..1025)
+ OPEN_PAREN: (1007..1008) "("
+ SYMBOL: (1008..1019)
+ IDENTIFIER: (1008..1019) "make-vector"
+ ATMOSPHERE: (1019..1020) " "
+ SYMBOL: (1020..1021)
+ IDENTIFIER: (1020..1021) "n"
+ ATMOSPHERE: (1021..1022) " "
+ CONSTANT: (1022..1024)
+ BOOLEAN: (1022..1024) "#f"
+ CLOSE_PAREN: (1024..1025) ")"
+ ATMOSPHERE: (1025..1026) " "
+ FORM: (1026..1028)
+ OPEN_PAREN: (1026..1027) "("
+ CLOSE_PAREN: (1027..1028) ")"
+ CLOSE_PAREN: (1028..1029) ")"
+ CLOSE_PAREN: (1029..1030) ")"
+ ATMOSPHERE: (1030..1032) "\n\n"
+ ATMOSPHERE: (1032..1069) ";; ;; Display the first 10,000 primes"
+ ATMOSPHERE: (1069..1070) "\n"
+ ATMOSPHERE: (1070..1104) ";; (display (eratosthenes 104730))"
+ ATMOSPHERE: (1104..1105) "\n"
+ FORM: (1105..1135)
+ OPEN_PAREN: (1105..1106) "("
+ SYMBOL: (1106..1113)
+ IDENTIFIER: (1106..1113) "display"
+ ATMOSPHERE: (1113..1114) " "
+ FORM: (1114..1134)
+ OPEN_PAREN: (1114..1115) "("
+ SYMBOL: (1115..1127)
+ IDENTIFIER: (1115..1127) "eratosthenes"
+ ATMOSPHERE: (1127..1128) " "
+ CONSTANT: (1128..1133)
+ NUMBER: (1128..1133) "10000"
+ CLOSE_PAREN: (1133..1134) ")"
+ CLOSE_PAREN: (1134..1135) ")"
+ ATMOSPHERE: (1135..1136) "\n"
+ EOF: (1136..1136) ""
diff --git a/spec/fact.ast b/spec/fact.ast
new file mode 100644
index 0000000..96357b5
--- /dev/null
+++ b/spec/fact.ast
@@ -0,0 +1,105 @@
+PROGRAM: (0..143)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..115)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..49)
+ IDENTIFIER: (43..49) "define"
+ ATMOSPHERE: (49..50) " "
+ FORM: (50..58)
+ OPEN_PAREN: (50..51) "("
+ SYMBOL: (51..55)
+ IDENTIFIER: (51..55) "fact"
+ ATMOSPHERE: (55..56) " "
+ SYMBOL: (56..57)
+ IDENTIFIER: (56..57) "n"
+ CLOSE_PAREN: (57..58) ")"
+ ATMOSPHERE: (58..63) "\n "
+ FORM: (63..114)
+ OPEN_PAREN: (63..64) "("
+ SYMBOL: (64..66)
+ IDENTIFIER: (64..66) "if"
+ ATMOSPHERE: (66..67) " "
+ FORM: (67..74)
+ OPEN_PAREN: (67..68) "("
+ SYMBOL: (68..69)
+ IDENTIFIER: (68..69) "="
+ ATMOSPHERE: (69..70) " "
+ SYMBOL: (70..71)
+ IDENTIFIER: (70..71) "n"
+ ATMOSPHERE: (71..72) " "
+ CONSTANT: (72..73)
+ NUMBER: (72..73) "0"
+ CLOSE_PAREN: (73..74) ")"
+ ATMOSPHERE: (74..83) "\n "
+ CONSTANT: (83..84)
+ NUMBER: (83..84) "1"
+ ATMOSPHERE: (84..93) "\n "
+ FORM: (93..113)
+ OPEN_PAREN: (93..94) "("
+ SYMBOL: (94..95)
+ IDENTIFIER: (94..95) "*"
+ ATMOSPHERE: (95..96) " "
+ SYMBOL: (96..97)
+ IDENTIFIER: (96..97) "n"
+ ATMOSPHERE: (97..98) " "
+ FORM: (98..112)
+ OPEN_PAREN: (98..99) "("
+ SYMBOL: (99..103)
+ IDENTIFIER: (99..103) "fact"
+ ATMOSPHERE: (103..104) " "
+ FORM: (104..111)
+ OPEN_PAREN: (104..105) "("
+ SYMBOL: (105..106)
+ IDENTIFIER: (105..106) "-"
+ ATMOSPHERE: (106..107) " "
+ SYMBOL: (107..108)
+ IDENTIFIER: (107..108) "n"
+ ATMOSPHERE: (108..109) " "
+ CONSTANT: (109..110)
+ NUMBER: (109..110) "1"
+ CLOSE_PAREN: (110..111) ")"
+ CLOSE_PAREN: (111..112) ")"
+ CLOSE_PAREN: (112..113) ")"
+ CLOSE_PAREN: (113..114) ")"
+ CLOSE_PAREN: (114..115) ")"
+ ATMOSPHERE: (115..117) "\n\n"
+ FORM: (117..135)
+ OPEN_PAREN: (117..118) "("
+ SYMBOL: (118..125)
+ IDENTIFIER: (118..125) "display"
+ ATMOSPHERE: (125..126) " "
+ FORM: (126..134)
+ OPEN_PAREN: (126..127) "("
+ SYMBOL: (127..131)
+ IDENTIFIER: (127..131) "fact"
+ ATMOSPHERE: (131..132) " "
+ CONSTANT: (132..133)
+ NUMBER: (132..133) "4"
+ CLOSE_PAREN: (133..134) ")"
+ CLOSE_PAREN: (134..135) ")"
+ ATMOSPHERE: (135..136) " "
+ ATMOSPHERE: (136..143) "; => 24"
+ EOF: (143..143) ""
diff --git a/spec/fail/3.ast b/spec/fail/3.ast
new file mode 100644
index 0000000..fabc65d
--- /dev/null
+++ b/spec/fail/3.ast
@@ -0,0 +1,51 @@
+PROGRAM: (0..133)
+ ATMOSPHERE: (0..12) "; expectfail"
+ ATMOSPHERE: (12..13) "\n"
+ FORM: (13..25)
+ OPEN_PAREN: (13..14) "("
+ SYMBOL: (14..20)
+ IDENTIFIER: (14..20) "define"
+ ATMOSPHERE: (20..21) " "
+ SYMBOL: (21..22)
+ IDENTIFIER: (21..22) "n"
+ ATMOSPHERE: (22..23) " "
+ CONSTANT: (23..24)
+ NUMBER: (23..24) "1"
+ CLOSE_PAREN: (24..25) ")"
+ ATMOSPHERE: (25..26) "\n"
+ FORM: (26..133)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "lambda"
+ ATMOSPHERE: (33..34) " "
+ FORM: (34..36)
+ OPEN_PAREN: (34..35) "("
+ CLOSE_PAREN: (35..36) ")"
+ ATMOSPHERE: (36..45) "\n "
+ FORM: (45..132)
+ OPEN_PAREN: (45..46) "("
+ SYMBOL: (46..50)
+ IDENTIFIER: (46..50) "set!"
+ ATMOSPHERE: (50..51) " "
+ SYMBOL: (51..52)
+ IDENTIFIER: (51..52) "n"
+ ATMOSPHERE: (52..53) " "
+ FORM: (53..60)
+ OPEN_PAREN: (53..54) "("
+ SYMBOL: (54..55)
+ IDENTIFIER: (54..55) "+"
+ ATMOSPHERE: (55..56) " "
+ CONSTANT: (56..57)
+ NUMBER: (56..57) "1"
+ ATMOSPHERE: (57..58) " "
+ SYMBOL: (58..59)
+ IDENTIFIER: (58..59) "n"
+ CLOSE_PAREN: (59..60) ")"
+ ATMOSPHERE: (60..61) " "
+ ATMOSPHERE: (61..121) "; note the `)` is on the next line. This `set!` is malformed"
+ ATMOSPHERE: (121..130) "\n "
+ SYMBOL: (130..131)
+ IDENTIFIER: (130..131) "n"
+ CLOSE_PAREN: (131..132) ")"
+ CLOSE_PAREN: (132..133) ")"
+ EOF: (133..133) ""
diff --git a/spec/fail/bad-imports.ast b/spec/fail/bad-imports.ast
new file mode 100644
index 0000000..8b34d66
--- /dev/null
+++ b/spec/fail/bad-imports.ast
@@ -0,0 +1,67 @@
+PROGRAM: (0..112)
+ FORM: (0..29)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..28)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..12)
+ IDENTIFIER: (9..12) "not"
+ ATMOSPHERE: (12..13) " "
+ SYMBOL: (13..14)
+ IDENTIFIER: (13..14) "a"
+ ATMOSPHERE: (14..15) " "
+ SYMBOL: (15..19)
+ IDENTIFIER: (15..19) "real"
+ ATMOSPHERE: (19..20) " "
+ SYMBOL: (20..27)
+ IDENTIFIER: (20..27) "library"
+ CLOSE_PAREN: (27..28) ")"
+ CLOSE_PAREN: (28..29) ")"
+ ATMOSPHERE: (29..30) "\n"
+ FORM: (30..47)
+ OPEN_PAREN: (30..31) "("
+ SYMBOL: (31..37)
+ IDENTIFIER: (31..37) "import"
+ ATMOSPHERE: (37..38) " "
+ SYMBOL: (38..46)
+ IDENTIFIER: (38..46) "badthing"
+ CLOSE_PAREN: (46..47) ")"
+ ATMOSPHERE: (47..48) "\n"
+ FORM: (48..112)
+ OPEN_PAREN: (48..49) "("
+ SYMBOL: (49..63)
+ IDENTIFIER: (49..63) "define-library"
+ ATMOSPHERE: (63..64) " "
+ FORM: (64..70)
+ OPEN_PAREN: (64..65) "("
+ SYMBOL: (65..69)
+ IDENTIFIER: (65..69) "test"
+ CLOSE_PAREN: (69..70) ")"
+ ATMOSPHERE: (70..75) "\n "
+ FORM: (75..111)
+ OPEN_PAREN: (75..76) "("
+ SYMBOL: (76..82)
+ IDENTIFIER: (76..82) "import"
+ ATMOSPHERE: (82..83) " "
+ FORM: (83..110)
+ OPEN_PAREN: (83..84) "("
+ SYMBOL: (84..88)
+ IDENTIFIER: (84..88) "only"
+ ATMOSPHERE: (88..89) " "
+ FORM: (89..103)
+ OPEN_PAREN: (89..90) "("
+ SYMBOL: (90..94)
+ IDENTIFIER: (90..94) "test"
+ ATMOSPHERE: (94..95) " "
+ SYMBOL: (95..102)
+ IDENTIFIER: (95..102) "greeter"
+ CLOSE_PAREN: (102..103) ")"
+ ATMOSPHERE: (103..104) " "
+ SYMBOL: (104..109)
+ IDENTIFIER: (104..109) "greet"
+ CLOSE_PAREN: (109..110) ")"
+ CLOSE_PAREN: (110..111) ")"
+ CLOSE_PAREN: (111..112) ")"
+ EOF: (112..112) ""
diff --git a/spec/fail/bad-letrecs.ast b/spec/fail/bad-letrecs.ast
new file mode 100644
index 0000000..72cf9e2
--- /dev/null
+++ b/spec/fail/bad-letrecs.ast
@@ -0,0 +1,105 @@
+PROGRAM: (0..389)
+ FORM: (0..22)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ CLOSE_PAREN: (21..22) ")"
+ ATMOSPHERE: (22..24) "\n\n"
+ FORM: (24..246)
+ OPEN_PAREN: (24..25) "("
+ SYMBOL: (25..31)
+ IDENTIFIER: (25..31) "letrec"
+ ATMOSPHERE: (31..32) " "
+ FORM: (32..124)
+ OPEN_PAREN: (32..33) "("
+ FORM: (33..53)
+ OPEN_PAREN: (33..34) "("
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "first"
+ ATMOSPHERE: (39..40) " "
+ FORM: (40..52)
+ OPEN_PAREN: (40..41) "("
+ SYMBOL: (41..42)
+ IDENTIFIER: (41..42) "+"
+ ATMOSPHERE: (42..43) " "
+ SYMBOL: (43..49)
+ IDENTIFIER: (43..49) "second"
+ ATMOSPHERE: (49..50) " "
+ CONSTANT: (50..51)
+ NUMBER: (50..51) "1"
+ CLOSE_PAREN: (51..52) ")"
+ CLOSE_PAREN: (52..53) ")"
+ ATMOSPHERE: (53..54) " "
+ ATMOSPHERE: (54..104) "; Can't reference second here, it isn't intialised"
+ ATMOSPHERE: (104..109) "\n "
+ FORM: (109..123)
+ OPEN_PAREN: (109..110) "("
+ SYMBOL: (110..116)
+ IDENTIFIER: (110..116) "second"
+ ATMOSPHERE: (116..117) " "
+ SYMBOL: (117..122)
+ IDENTIFIER: (117..122) "first"
+ CLOSE_PAREN: (122..123) ")"
+ CLOSE_PAREN: (123..124) ")"
+ ATMOSPHERE: (124..135) " "
+ ATMOSPHERE: (135..179) "; Can't reference first here, initialisation"
+ ATMOSPHERE: (179..210) "\n "
+ ATMOSPHERE: (210..234) "; order isn't specified."
+ ATMOSPHERE: (234..239) "\n "
+ SYMBOL: (239..245)
+ IDENTIFIER: (239..245) "second"
+ CLOSE_PAREN: (245..246) ")"
+ ATMOSPHERE: (246..247) "\n"
+ FORM: (247..388)
+ OPEN_PAREN: (247..248) "("
+ SYMBOL: (248..255)
+ IDENTIFIER: (248..255) "letrec*"
+ ATMOSPHERE: (255..256) " "
+ FORM: (256..340)
+ OPEN_PAREN: (256..257) "("
+ FORM: (257..279)
+ OPEN_PAREN: (257..258) "("
+ SYMBOL: (258..263)
+ IDENTIFIER: (258..263) "first"
+ ATMOSPHERE: (263..264) " "
+ FORM: (264..278)
+ OPEN_PAREN: (264..265) "("
+ SYMBOL: (265..266)
+ IDENTIFIER: (265..266) "-"
+ ATMOSPHERE: (266..267) " "
+ SYMBOL: (267..273)
+ IDENTIFIER: (267..273) "second"
+ ATMOSPHERE: (273..274) " "
+ CONSTANT: (274..277)
+ NUMBER: (274..277) "100"
+ CLOSE_PAREN: (277..278) ")"
+ CLOSE_PAREN: (278..279) ")"
+ ATMOSPHERE: (279..280) " "
+ ATMOSPHERE: (280..320) "; Can't referenc second, not initialised"
+ ATMOSPHERE: (320..325) "\n "
+ FORM: (325..339)
+ OPEN_PAREN: (325..326) "("
+ SYMBOL: (326..332)
+ IDENTIFIER: (326..332) "second"
+ ATMOSPHERE: (332..333) " "
+ SYMBOL: (333..338)
+ IDENTIFIER: (333..338) "first"
+ CLOSE_PAREN: (338..339) ")"
+ CLOSE_PAREN: (339..340) ")"
+ ATMOSPHERE: (340..354) " "
+ ATMOSPHERE: (354..376) "; This is actually OK."
+ ATMOSPHERE: (376..381) "\n "
+ SYMBOL: (381..387)
+ IDENTIFIER: (381..387) "second"
+ CLOSE_PAREN: (387..388) ")"
+ ATMOSPHERE: (388..389) "\n"
+ EOF: (389..389) ""
diff --git a/spec/fail/bad-library-names-parsefail.ast b/spec/fail/bad-library-names-parsefail.ast
new file mode 100644
index 0000000..eb26a2c
--- /dev/null
+++ b/spec/fail/bad-library-names-parsefail.ast
@@ -0,0 +1,11 @@
+PROGRAM: (0..19)
+ FORM: (0..18)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..15)
+ IDENTIFIER: (1..15) "define-library"
+ ATMOSPHERE: (15..16) " "
+ DOTTED_TAIL: (16..17)
+ DOT: (16..17) "."
+ CLOSE_PAREN: (17..18) ")"
+ ATMOSPHERE: (18..19) "\n"
+ EOF: (19..19) ""
diff --git a/spec/fail/bad-library-names.ast b/spec/fail/bad-library-names.ast
new file mode 100644
index 0000000..8a8ea3c
--- /dev/null
+++ b/spec/fail/bad-library-names.ast
@@ -0,0 +1,91 @@
+PROGRAM: (0..189)
+ FORM: (0..24)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..15)
+ IDENTIFIER: (1..15) "define-library"
+ ATMOSPHERE: (15..16) " "
+ CONSTANT: (16..23)
+ STRING: (16..23) "\"hello\""
+ CLOSE_PAREN: (23..24) ")"
+ ATMOSPHERE: (24..25) "\n"
+ FORM: (25..64)
+ OPEN_PAREN: (25..26) "("
+ SYMBOL: (26..40)
+ IDENTIFIER: (26..40) "define-library"
+ ATMOSPHERE: (40..41) " "
+ FORM: (41..63)
+ OPEN_PAREN: (41..42) "("
+ SYMBOL: (42..48)
+ IDENTIFIER: (42..48) "scheme"
+ ATMOSPHERE: (48..49) " "
+ SYMBOL: (49..62)
+ IDENTIFIER: (49..62) "|silly'chars|"
+ CLOSE_PAREN: (62..63) ")"
+ CLOSE_PAREN: (63..64) ")"
+ ATMOSPHERE: (64..65) "\n"
+ FORM: (65..91)
+ OPEN_PAREN: (65..66) "("
+ SYMBOL: (66..80)
+ IDENTIFIER: (66..80) "define-library"
+ ATMOSPHERE: (80..81) " "
+ FORM: (81..90)
+ OPEN_PAREN: (81..82) "("
+ SYMBOL: (82..86)
+ IDENTIFIER: (82..86) "some"
+ ATMOSPHERE: (86..87) " "
+ QUOTED_DATUM: (87..89)
+ QUOTE: (87..88) "'"
+ SYMBOL: (88..89)
+ IDENTIFIER: (88..89) "t"
+ CLOSE_PAREN: (89..90) ")"
+ CLOSE_PAREN: (90..91) ")"
+ ATMOSPHERE: (91..92) "\n"
+ FORM: (92..124)
+ OPEN_PAREN: (92..93) "("
+ SYMBOL: (93..107)
+ IDENTIFIER: (93..107) "define-library"
+ ATMOSPHERE: (107..108) " "
+ FORM: (108..123)
+ OPEN_PAREN: (108..109) "("
+ SYMBOL: (109..113)
+ IDENTIFIER: (109..113) "srfi"
+ ATMOSPHERE: (113..114) " "
+ SYMBOL: (114..119)
+ IDENTIFIER: (114..119) "trust"
+ ATMOSPHERE: (119..120) " "
+ SYMBOL: (120..122)
+ IDENTIFIER: (120..122) "me"
+ CLOSE_PAREN: (122..123) ")"
+ CLOSE_PAREN: (123..124) ")"
+ ATMOSPHERE: (124..125) "\n"
+ FORM: (125..188)
+ OPEN_PAREN: (125..126) "("
+ SYMBOL: (126..140)
+ IDENTIFIER: (126..140) "define-library"
+ ATMOSPHERE: (140..141) " "
+ FORM: (141..157)
+ OPEN_PAREN: (141..142) "("
+ SYMBOL: (142..149)
+ IDENTIFIER: (142..149) "missing"
+ ATMOSPHERE: (149..150) " "
+ SYMBOL: (150..156)
+ IDENTIFIER: (150..156) "export"
+ CLOSE_PAREN: (156..157) ")"
+ ATMOSPHERE: (157..162) "\n "
+ FORM: (162..187)
+ OPEN_PAREN: (162..163) "("
+ SYMBOL: (163..169)
+ IDENTIFIER: (163..169) "export"
+ ATMOSPHERE: (169..170) " "
+ SYMBOL: (170..172)
+ IDENTIFIER: (170..172) "we"
+ ATMOSPHERE: (172..173) " "
+ SYMBOL: (173..180)
+ IDENTIFIER: (173..180) "|don't|"
+ ATMOSPHERE: (180..181) " "
+ SYMBOL: (181..186)
+ IDENTIFIER: (181..186) "exist"
+ CLOSE_PAREN: (186..187) ")"
+ CLOSE_PAREN: (187..188) ")"
+ ATMOSPHERE: (188..189) "\n"
+ EOF: (189..189) ""
diff --git a/spec/fail/bad-strings-and-idents.ast b/spec/fail/bad-strings-and-idents.ast
new file mode 100644
index 0000000..bd82eb6
--- /dev/null
+++ b/spec/fail/bad-strings-and-idents.ast
@@ -0,0 +1,27 @@
+PROGRAM: (0..193)
+ ATMOSPHERE: (0..76) ";; FIXME: Almost none of these generate parser errors any more. We should be"
+ ATMOSPHERE: (76..77) "\n"
+ ATMOSPHERE: (77..141) ";; more strict about what we accept as strings or idents."
+ ATMOSPHERE: (141..143) "\n\n"
+ CONSTANT: (143..148)
+ STRING: (143..148) "\"\\x;\""
+ ATMOSPHERE: (148..149) "\n"
+ CONSTANT: (149..155)
+ STRING: (149..155) "\"\\x20\""
+ ATMOSPHERE: (155..156) "\n"
+ CONSTANT: (156..171)
+ STRING: (156..171) "\"\\x10000;\\\"\n'|\""
+ ATMOSPHERE: (171..172) "\n"
+ CONSTANT: (172..180)
+ CHARACTER: (172..180) "#\\x12345"
+ ATMOSPHERE: (180..181) "\n"
+ QUOTED_DATUM: (181..188)
+ QUOTE: (181..182) "'"
+ SYMBOL: (182..187)
+ IDENTIFIER: (182..187) "|\\x;|"
+ ATMOSPHERE: (187..188) "\n"
+ QUOTED_DATUM: (188..193)
+ QUOTE: (188..189) "'"
+ CONSTANT: (189..193)
+ ERROR: (189..193) "|\\x\n"
+ EOF: (193..193) ""
diff --git a/spec/fail/macrofails.ast b/spec/fail/macrofails.ast
new file mode 100644
index 0000000..9c48fc8
--- /dev/null
+++ b/spec/fail/macrofails.ast
@@ -0,0 +1,215 @@
+PROGRAM: (0..426)
+ FORM: (0..22)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ CLOSE_PAREN: (21..22) ")"
+ ATMOSPHERE: (22..23) "\n"
+ FORM: (23..147)
+ OPEN_PAREN: (23..24) "("
+ SYMBOL: (24..37)
+ IDENTIFIER: (24..37) "define-syntax"
+ ATMOSPHERE: (37..38) " "
+ SYMBOL: (38..48)
+ IDENTIFIER: (38..48) "test-macro"
+ ATMOSPHERE: (48..53) "\n "
+ FORM: (53..146)
+ OPEN_PAREN: (53..54) "("
+ SYMBOL: (54..66)
+ IDENTIFIER: (54..66) "syntax-rules"
+ ATMOSPHERE: (66..67) " "
+ SYMBOL: (67..70)
+ IDENTIFIER: (67..70) ":::"
+ ATMOSPHERE: (70..71) " "
+ FORM: (71..77)
+ OPEN_PAREN: (71..72) "("
+ SYMBOL: (72..76)
+ IDENTIFIER: (72..76) "test"
+ CLOSE_PAREN: (76..77) ")"
+ ATMOSPHERE: (77..86) "\n "
+ FORM: (86..97)
+ OPEN_PAREN: (86..87) "("
+ FORM: (87..90)
+ OPEN_PAREN: (87..88) "("
+ SYMBOL: (88..89)
+ IDENTIFIER: (88..89) "_"
+ CLOSE_PAREN: (89..90) ")"
+ ATMOSPHERE: (90..91) " "
+ QUOTED_DATUM: (91..96)
+ QUOTE: (91..92) "'"
+ SYMBOL: (92..96)
+ IDENTIFIER: (92..96) "nowt"
+ CLOSE_PAREN: (96..97) ")"
+ ATMOSPHERE: (97..106) "\n "
+ FORM: (106..145)
+ OPEN_PAREN: (106..107) "("
+ FORM: (107..126)
+ OPEN_PAREN: (107..108) "("
+ SYMBOL: (108..109)
+ IDENTIFIER: (108..109) "_"
+ ATMOSPHERE: (109..110) " "
+ SYMBOL: (110..114)
+ IDENTIFIER: (110..114) "test"
+ ATMOSPHERE: (114..115) " "
+ SYMBOL: (115..121)
+ IDENTIFIER: (115..121) "things"
+ ATMOSPHERE: (121..122) " "
+ SYMBOL: (122..125)
+ IDENTIFIER: (122..125) ":::"
+ CLOSE_PAREN: (125..126) ")"
+ ATMOSPHERE: (126..127) " "
+ FORM: (127..144)
+ OPEN_PAREN: (127..128) "("
+ SYMBOL: (128..132)
+ IDENTIFIER: (128..132) "list"
+ ATMOSPHERE: (132..133) " "
+ SYMBOL: (133..139)
+ IDENTIFIER: (133..139) "things"
+ ATMOSPHERE: (139..140) " "
+ SYMBOL: (140..143)
+ IDENTIFIER: (140..143) ":::"
+ CLOSE_PAREN: (143..144) ")"
+ CLOSE_PAREN: (144..145) ")"
+ CLOSE_PAREN: (145..146) ")"
+ CLOSE_PAREN: (146..147) ")"
+ ATMOSPHERE: (147..149) "\n\n"
+ FORM: (149..161)
+ OPEN_PAREN: (149..150) "("
+ SYMBOL: (150..160)
+ IDENTIFIER: (150..160) "test-macro"
+ CLOSE_PAREN: (160..161) ")"
+ ATMOSPHERE: (161..162) "\n"
+ FORM: (162..185)
+ OPEN_PAREN: (162..163) "("
+ SYMBOL: (163..173)
+ IDENTIFIER: (163..173) "test-macro"
+ ATMOSPHERE: (173..174) " "
+ SYMBOL: (174..178)
+ IDENTIFIER: (174..178) "test"
+ ATMOSPHERE: (178..179) " "
+ CONSTANT: (179..180)
+ NUMBER: (179..180) "1"
+ ATMOSPHERE: (180..181) " "
+ CONSTANT: (181..182)
+ NUMBER: (181..182) "2"
+ ATMOSPHERE: (182..183) " "
+ CONSTANT: (183..184)
+ NUMBER: (183..184) "3"
+ CLOSE_PAREN: (184..185) ")"
+ ATMOSPHERE: (185..186) "\n"
+ FORM: (186..212)
+ OPEN_PAREN: (186..187) "("
+ SYMBOL: (187..197)
+ IDENTIFIER: (187..197) "test-macro"
+ ATMOSPHERE: (197..198) " "
+ SYMBOL: (198..202)
+ IDENTIFIER: (198..202) "fail"
+ ATMOSPHERE: (202..203) " "
+ SYMBOL: (203..207)
+ IDENTIFIER: (203..207) "this"
+ ATMOSPHERE: (207..208) " "
+ SYMBOL: (208..211)
+ IDENTIFIER: (208..211) "one"
+ CLOSE_PAREN: (211..212) ")"
+ ATMOSPHERE: (212..214) "\n\n"
+ FORM: (214..426)
+ OPEN_PAREN: (214..215) "("
+ SYMBOL: (215..225)
+ IDENTIFIER: (215..225) "let-syntax"
+ ATMOSPHERE: (225..230) "\n "
+ FORM: (230..405)
+ OPEN_PAREN: (230..231) "("
+ FORM: (231..404)
+ OPEN_PAREN: (231..232) "("
+ SYMBOL: (232..239)
+ IDENTIFIER: (232..239) "another"
+ ATMOSPHERE: (239..240) " "
+ FORM: (240..403)
+ OPEN_PAREN: (240..241) "("
+ SYMBOL: (241..253)
+ IDENTIFIER: (241..253) "syntax-rules"
+ ATMOSPHERE: (253..254) " "
+ FORM: (254..256)
+ OPEN_PAREN: (254..255) "("
+ CLOSE_PAREN: (255..256) ")"
+ ATMOSPHERE: (256..265) "\n "
+ FORM: (265..285)
+ OPEN_PAREN: (265..266) "("
+ FORM: (266..275)
+ OPEN_PAREN: (266..267) "("
+ SYMBOL: (267..268)
+ IDENTIFIER: (267..268) "_"
+ ATMOSPHERE: (268..269) " "
+ SYMBOL: (269..270)
+ IDENTIFIER: (269..270) "a"
+ ATMOSPHERE: (270..271) " "
+ SYMBOL: (271..274)
+ IDENTIFIER: (271..274) "..."
+ CLOSE_PAREN: (274..275) ")"
+ ATMOSPHERE: (275..276) " "
+ QUOTED_DATUM: (276..284)
+ QUOTE: (276..277) "'"
+ FORM: (277..284)
+ OPEN_PAREN: (277..278) "("
+ SYMBOL: (278..279)
+ IDENTIFIER: (278..279) "a"
+ ATMOSPHERE: (279..280) " "
+ SYMBOL: (280..283)
+ IDENTIFIER: (280..283) "..."
+ CLOSE_PAREN: (283..284) ")"
+ CLOSE_PAREN: (284..285) ")"
+ ATMOSPHERE: (285..294) "\n "
+ ATMOSPHERE: (294..327) "; we expect a diagnostic for both"
+ ATMOSPHERE: (327..336) "\n "
+ ATMOSPHERE: (336..366) "; these malformed dotted forms"
+ ATMOSPHERE: (366..375) "\n "
+ FORM: (375..393)
+ OPEN_PAREN: (375..376) "("
+ FORM: (376..381)
+ OPEN_PAREN: (376..377) "("
+ DOTTED_TAIL: (377..380)
+ DOT: (377..378) "."
+ ATMOSPHERE: (378..379) " "
+ SYMBOL: (379..380)
+ IDENTIFIER: (379..380) "_"
+ CLOSE_PAREN: (380..381) ")"
+ ATMOSPHERE: (381..382) " "
+ FORM: (382..392)
+ OPEN_PAREN: (382..383) "("
+ DOTTED_TAIL: (383..391)
+ DOT: (383..384) "."
+ ATMOSPHERE: (384..385) " "
+ CONSTANT: (385..391)
+ STRING: (385..391) "\"test\""
+ CLOSE_PAREN: (391..392) ")"
+ CLOSE_PAREN: (392..393) ")"
+ ATMOSPHERE: (393..402) "\n "
+ CLOSE_PAREN: (402..403) ")"
+ CLOSE_PAREN: (403..404) ")"
+ CLOSE_PAREN: (404..405) ")"
+ ATMOSPHERE: (405..410) "\n "
+ FORM: (410..425)
+ OPEN_PAREN: (410..411) "("
+ SYMBOL: (411..418)
+ IDENTIFIER: (411..418) "another"
+ ATMOSPHERE: (418..419) " "
+ CONSTANT: (419..420)
+ NUMBER: (419..420) "1"
+ ATMOSPHERE: (420..421) " "
+ CONSTANT: (421..422)
+ NUMBER: (421..422) "2"
+ ATMOSPHERE: (422..423) " "
+ CONSTANT: (423..424)
+ NUMBER: (423..424) "3"
+ CLOSE_PAREN: (424..425) ")"
+ CLOSE_PAREN: (425..426) ")"
+ EOF: (426..426) ""
diff --git a/spec/false.ast b/spec/false.ast
new file mode 100644
index 0000000..da016a7
--- /dev/null
+++ b/spec/false.ast
@@ -0,0 +1,4 @@
+PROGRAM: (0..2)
+ CONSTANT: (0..2)
+ BOOLEAN: (0..2) "#f"
+ EOF: (2..2) ""
diff --git a/spec/fib.ast b/spec/fib.ast
new file mode 100644
index 0000000..9d20e7f
--- /dev/null
+++ b/spec/fib.ast
@@ -0,0 +1,155 @@
+PROGRAM: (0..267)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..43) "\n\n"
+ ATMOSPHERE: (43..56) "; 1 1 2 3 5 8"
+ ATMOSPHERE: (56..57) "\n"
+ ATMOSPHERE: (57..70) "; 1 2 3 4 5 6"
+ ATMOSPHERE: (70..72) "\n\n"
+ FORM: (72..236)
+ OPEN_PAREN: (72..73) "("
+ SYMBOL: (73..79)
+ IDENTIFIER: (73..79) "define"
+ ATMOSPHERE: (79..80) " "
+ FORM: (80..87)
+ OPEN_PAREN: (80..81) "("
+ SYMBOL: (81..84)
+ IDENTIFIER: (81..84) "fib"
+ ATMOSPHERE: (84..85) " "
+ SYMBOL: (85..86)
+ IDENTIFIER: (85..86) "n"
+ CLOSE_PAREN: (86..87) ")"
+ ATMOSPHERE: (87..92) "\n "
+ FORM: (92..212)
+ OPEN_PAREN: (92..93) "("
+ SYMBOL: (93..99)
+ IDENTIFIER: (93..99) "define"
+ ATMOSPHERE: (99..100) " "
+ FORM: (100..123)
+ OPEN_PAREN: (100..101) "("
+ SYMBOL: (101..111)
+ IDENTIFIER: (101..111) "fib-helper"
+ ATMOSPHERE: (111..112) " "
+ SYMBOL: (112..113)
+ IDENTIFIER: (112..113) "n"
+ ATMOSPHERE: (113..114) " "
+ SYMBOL: (114..118)
+ IDENTIFIER: (114..118) "last"
+ ATMOSPHERE: (118..119) " "
+ SYMBOL: (119..122)
+ IDENTIFIER: (119..122) "cur"
+ CLOSE_PAREN: (122..123) ")"
+ ATMOSPHERE: (123..132) "\n "
+ FORM: (132..211)
+ OPEN_PAREN: (132..133) "("
+ SYMBOL: (133..135)
+ IDENTIFIER: (133..135) "if"
+ ATMOSPHERE: (135..136) " "
+ FORM: (136..144)
+ OPEN_PAREN: (136..137) "("
+ SYMBOL: (137..139)
+ IDENTIFIER: (137..139) "<="
+ ATMOSPHERE: (139..140) " "
+ SYMBOL: (140..141)
+ IDENTIFIER: (140..141) "n"
+ ATMOSPHERE: (141..142) " "
+ CONSTANT: (142..143)
+ NUMBER: (142..143) "2"
+ CLOSE_PAREN: (143..144) ")"
+ ATMOSPHERE: (144..157) "\n "
+ SYMBOL: (157..160)
+ IDENTIFIER: (157..160) "cur"
+ ATMOSPHERE: (160..173) "\n "
+ FORM: (173..210)
+ OPEN_PAREN: (173..174) "("
+ SYMBOL: (174..184)
+ IDENTIFIER: (174..184) "fib-helper"
+ ATMOSPHERE: (184..185) " "
+ FORM: (185..192)
+ OPEN_PAREN: (185..186) "("
+ SYMBOL: (186..187)
+ IDENTIFIER: (186..187) "-"
+ ATMOSPHERE: (187..188) " "
+ SYMBOL: (188..189)
+ IDENTIFIER: (188..189) "n"
+ ATMOSPHERE: (189..190) " "
+ CONSTANT: (190..191)
+ NUMBER: (190..191) "1"
+ CLOSE_PAREN: (191..192) ")"
+ ATMOSPHERE: (192..193) " "
+ SYMBOL: (193..196)
+ IDENTIFIER: (193..196) "cur"
+ ATMOSPHERE: (196..197) " "
+ FORM: (197..209)
+ OPEN_PAREN: (197..198) "("
+ SYMBOL: (198..199)
+ IDENTIFIER: (198..199) "+"
+ ATMOSPHERE: (199..200) " "
+ SYMBOL: (200..203)
+ IDENTIFIER: (200..203) "cur"
+ ATMOSPHERE: (203..204) " "
+ SYMBOL: (204..208)
+ IDENTIFIER: (204..208) "last"
+ CLOSE_PAREN: (208..209) ")"
+ CLOSE_PAREN: (209..210) ")"
+ CLOSE_PAREN: (210..211) ")"
+ CLOSE_PAREN: (211..212) ")"
+ ATMOSPHERE: (212..217) "\n "
+ FORM: (217..235)
+ OPEN_PAREN: (217..218) "("
+ SYMBOL: (218..228)
+ IDENTIFIER: (218..228) "fib-helper"
+ ATMOSPHERE: (228..229) " "
+ SYMBOL: (229..230)
+ IDENTIFIER: (229..230) "n"
+ ATMOSPHERE: (230..231) " "
+ CONSTANT: (231..232)
+ NUMBER: (231..232) "1"
+ ATMOSPHERE: (232..233) " "
+ CONSTANT: (233..234)
+ NUMBER: (233..234) "1"
+ CLOSE_PAREN: (234..235) ")"
+ CLOSE_PAREN: (235..236) ")"
+ ATMOSPHERE: (236..239) "\n\n\n"
+ FORM: (239..257)
+ OPEN_PAREN: (239..240) "("
+ SYMBOL: (240..247)
+ IDENTIFIER: (240..247) "display"
+ ATMOSPHERE: (247..248) " "
+ FORM: (248..256)
+ OPEN_PAREN: (248..249) "("
+ SYMBOL: (249..252)
+ IDENTIFIER: (249..252) "fib"
+ ATMOSPHERE: (252..253) " "
+ CONSTANT: (253..255)
+ NUMBER: (253..255) "40"
+ CLOSE_PAREN: (255..256) ")"
+ CLOSE_PAREN: (256..257) ")"
+ FORM: (257..266)
+ OPEN_PAREN: (257..258) "("
+ SYMBOL: (258..265)
+ IDENTIFIER: (258..265) "newline"
+ CLOSE_PAREN: (265..266) ")"
+ ATMOSPHERE: (266..267) "\n"
+ EOF: (267..267) ""
diff --git a/spec/gcd.ast b/spec/gcd.ast
new file mode 100644
index 0000000..fcd90f3
--- /dev/null
+++ b/spec/gcd.ast
@@ -0,0 +1,330 @@
+PROGRAM: (0..449)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..43) "\n\n"
+ FORM: (43..106)
+ OPEN_PAREN: (43..44) "("
+ SYMBOL: (44..50)
+ IDENTIFIER: (44..50) "define"
+ ATMOSPHERE: (50..51) " "
+ FORM: (51..60)
+ OPEN_PAREN: (51..52) "("
+ SYMBOL: (52..55)
+ IDENTIFIER: (52..55) "mod"
+ ATMOSPHERE: (55..56) " "
+ SYMBOL: (56..57)
+ IDENTIFIER: (56..57) "a"
+ ATMOSPHERE: (57..58) " "
+ SYMBOL: (58..59)
+ IDENTIFIER: (58..59) "b"
+ CLOSE_PAREN: (59..60) ")"
+ ATMOSPHERE: (60..63) "\n "
+ FORM: (63..105)
+ OPEN_PAREN: (63..64) "("
+ SYMBOL: (64..66)
+ IDENTIFIER: (64..66) "if"
+ ATMOSPHERE: (66..67) " "
+ FORM: (67..74)
+ OPEN_PAREN: (67..68) "("
+ SYMBOL: (68..69)
+ IDENTIFIER: (68..69) "<"
+ ATMOSPHERE: (69..70) " "
+ SYMBOL: (70..71)
+ IDENTIFIER: (70..71) "a"
+ ATMOSPHERE: (71..72) " "
+ SYMBOL: (72..73)
+ IDENTIFIER: (72..73) "b"
+ CLOSE_PAREN: (73..74) ")"
+ ATMOSPHERE: (74..81) "\n "
+ SYMBOL: (81..82)
+ IDENTIFIER: (81..82) "a"
+ ATMOSPHERE: (82..89) "\n "
+ FORM: (89..104)
+ OPEN_PAREN: (89..90) "("
+ SYMBOL: (90..93)
+ IDENTIFIER: (90..93) "mod"
+ ATMOSPHERE: (93..94) " "
+ FORM: (94..101)
+ OPEN_PAREN: (94..95) "("
+ SYMBOL: (95..96)
+ IDENTIFIER: (95..96) "-"
+ ATMOSPHERE: (96..97) " "
+ SYMBOL: (97..98)
+ IDENTIFIER: (97..98) "a"
+ ATMOSPHERE: (98..99) " "
+ SYMBOL: (99..100)
+ IDENTIFIER: (99..100) "b"
+ CLOSE_PAREN: (100..101) ")"
+ ATMOSPHERE: (101..102) " "
+ SYMBOL: (102..103)
+ IDENTIFIER: (102..103) "b"
+ CLOSE_PAREN: (103..104) ")"
+ CLOSE_PAREN: (104..105) ")"
+ CLOSE_PAREN: (105..106) ")"
+ ATMOSPHERE: (106..108) "\n\n"
+ FORM: (108..173)
+ OPEN_PAREN: (108..109) "("
+ SYMBOL: (109..115)
+ IDENTIFIER: (109..115) "define"
+ ATMOSPHERE: (115..116) " "
+ FORM: (116..125)
+ OPEN_PAREN: (116..117) "("
+ SYMBOL: (117..120)
+ IDENTIFIER: (117..120) "gcd"
+ ATMOSPHERE: (120..121) " "
+ SYMBOL: (121..122)
+ IDENTIFIER: (121..122) "a"
+ ATMOSPHERE: (122..123) " "
+ SYMBOL: (123..124)
+ IDENTIFIER: (123..124) "b"
+ CLOSE_PAREN: (124..125) ")"
+ ATMOSPHERE: (125..128) "\n "
+ FORM: (128..172)
+ OPEN_PAREN: (128..129) "("
+ SYMBOL: (129..131)
+ IDENTIFIER: (129..131) "if"
+ ATMOSPHERE: (131..132) " "
+ FORM: (132..139)
+ OPEN_PAREN: (132..133) "("
+ SYMBOL: (133..134)
+ IDENTIFIER: (133..134) "="
+ ATMOSPHERE: (134..135) " "
+ SYMBOL: (135..136)
+ IDENTIFIER: (135..136) "b"
+ ATMOSPHERE: (136..137) " "
+ CONSTANT: (137..138)
+ NUMBER: (137..138) "0"
+ CLOSE_PAREN: (138..139) ")"
+ ATMOSPHERE: (139..146) "\n "
+ SYMBOL: (146..147)
+ IDENTIFIER: (146..147) "a"
+ ATMOSPHERE: (147..154) "\n "
+ FORM: (154..171)
+ OPEN_PAREN: (154..155) "("
+ SYMBOL: (155..158)
+ IDENTIFIER: (155..158) "gcd"
+ ATMOSPHERE: (158..159) " "
+ SYMBOL: (159..160)
+ IDENTIFIER: (159..160) "b"
+ ATMOSPHERE: (160..161) " "
+ FORM: (161..170)
+ OPEN_PAREN: (161..162) "("
+ SYMBOL: (162..165)
+ IDENTIFIER: (162..165) "mod"
+ ATMOSPHERE: (165..166) " "
+ SYMBOL: (166..167)
+ IDENTIFIER: (166..167) "a"
+ ATMOSPHERE: (167..168) " "
+ SYMBOL: (168..169)
+ IDENTIFIER: (168..169) "b"
+ CLOSE_PAREN: (169..170) ")"
+ CLOSE_PAREN: (170..171) ")"
+ CLOSE_PAREN: (171..172) ")"
+ CLOSE_PAREN: (172..173) ")"
+ ATMOSPHERE: (173..175) "\n\n"
+ FORM: (175..195)
+ OPEN_PAREN: (175..176) "("
+ SYMBOL: (176..183)
+ IDENTIFIER: (176..183) "display"
+ ATMOSPHERE: (183..184) " "
+ FORM: (184..194)
+ OPEN_PAREN: (184..185) "("
+ SYMBOL: (185..188)
+ IDENTIFIER: (185..188) "gcd"
+ ATMOSPHERE: (188..189) " "
+ CONSTANT: (189..190)
+ NUMBER: (189..190) "8"
+ ATMOSPHERE: (190..191) " "
+ CONSTANT: (191..193)
+ NUMBER: (191..193) "12"
+ CLOSE_PAREN: (193..194) ")"
+ CLOSE_PAREN: (194..195) ")"
+ FORM: (195..204)
+ OPEN_PAREN: (195..196) "("
+ SYMBOL: (196..203)
+ IDENTIFIER: (196..203) "newline"
+ CLOSE_PAREN: (203..204) ")"
+ ATMOSPHERE: (204..205) "\n"
+ FORM: (205..226)
+ OPEN_PAREN: (205..206) "("
+ SYMBOL: (206..213)
+ IDENTIFIER: (206..213) "display"
+ ATMOSPHERE: (213..214) " "
+ FORM: (214..225)
+ OPEN_PAREN: (214..215) "("
+ SYMBOL: (215..218)
+ IDENTIFIER: (215..218) "gcd"
+ ATMOSPHERE: (218..219) " "
+ CONSTANT: (219..221)
+ NUMBER: (219..221) "42"
+ ATMOSPHERE: (221..222) " "
+ CONSTANT: (222..224)
+ NUMBER: (222..224) "56"
+ CLOSE_PAREN: (224..225) ")"
+ CLOSE_PAREN: (225..226) ")"
+ FORM: (226..235)
+ OPEN_PAREN: (226..227) "("
+ SYMBOL: (227..234)
+ IDENTIFIER: (227..234) "newline"
+ CLOSE_PAREN: (234..235) ")"
+ ATMOSPHERE: (235..236) "\n"
+ FORM: (236..265)
+ OPEN_PAREN: (236..237) "("
+ SYMBOL: (237..244)
+ IDENTIFIER: (237..244) "display"
+ ATMOSPHERE: (244..245) " "
+ FORM: (245..264)
+ OPEN_PAREN: (245..246) "("
+ SYMBOL: (246..249)
+ IDENTIFIER: (246..249) "gcd"
+ ATMOSPHERE: (249..250) " "
+ CONSTANT: (250..256)
+ NUMBER: (250..256) "461952"
+ ATMOSPHERE: (256..257) " "
+ CONSTANT: (257..263)
+ NUMBER: (257..263) "116298"
+ CLOSE_PAREN: (263..264) ")"
+ CLOSE_PAREN: (264..265) ")"
+ FORM: (265..274)
+ OPEN_PAREN: (265..266) "("
+ SYMBOL: (266..273)
+ IDENTIFIER: (266..273) "newline"
+ CLOSE_PAREN: (273..274) ")"
+ ATMOSPHERE: (274..275) "\n"
+ FORM: (275..308)
+ OPEN_PAREN: (275..276) "("
+ SYMBOL: (276..283)
+ IDENTIFIER: (276..283) "display"
+ ATMOSPHERE: (283..284) " "
+ FORM: (284..307)
+ OPEN_PAREN: (284..285) "("
+ SYMBOL: (285..288)
+ IDENTIFIER: (285..288) "gcd"
+ ATMOSPHERE: (288..289) " "
+ CONSTANT: (289..296)
+ NUMBER: (289..296) "7966496"
+ ATMOSPHERE: (296..297) " "
+ CONSTANT: (297..306)
+ NUMBER: (297..306) "314080416"
+ CLOSE_PAREN: (306..307) ")"
+ CLOSE_PAREN: (307..308) ")"
+ FORM: (308..317)
+ OPEN_PAREN: (308..309) "("
+ SYMBOL: (309..316)
+ IDENTIFIER: (309..316) "newline"
+ CLOSE_PAREN: (316..317) ")"
+ ATMOSPHERE: (317..318) "\n"
+ FORM: (318..351)
+ OPEN_PAREN: (318..319) "("
+ SYMBOL: (319..326)
+ IDENTIFIER: (319..326) "display"
+ ATMOSPHERE: (326..327) " "
+ FORM: (327..350)
+ OPEN_PAREN: (327..328) "("
+ SYMBOL: (328..331)
+ IDENTIFIER: (328..331) "gcd"
+ ATMOSPHERE: (331..332) " "
+ CONSTANT: (332..340)
+ NUMBER: (332..340) "24826148"
+ ATMOSPHERE: (340..341) " "
+ CONSTANT: (341..349)
+ NUMBER: (341..349) "45296490"
+ CLOSE_PAREN: (349..350) ")"
+ CLOSE_PAREN: (350..351) ")"
+ FORM: (351..360)
+ OPEN_PAREN: (351..352) "("
+ SYMBOL: (352..359)
+ IDENTIFIER: (352..359) "newline"
+ CLOSE_PAREN: (359..360) ")"
+ ATMOSPHERE: (360..361) "\n"
+ FORM: (361..381)
+ OPEN_PAREN: (361..362) "("
+ SYMBOL: (362..369)
+ IDENTIFIER: (362..369) "display"
+ ATMOSPHERE: (369..370) " "
+ FORM: (370..380)
+ OPEN_PAREN: (370..371) "("
+ SYMBOL: (371..374)
+ IDENTIFIER: (371..374) "gcd"
+ ATMOSPHERE: (374..375) " "
+ CONSTANT: (375..377)
+ NUMBER: (375..377) "12"
+ ATMOSPHERE: (377..378) " "
+ CONSTANT: (378..379)
+ NUMBER: (378..379) "0"
+ CLOSE_PAREN: (379..380) ")"
+ CLOSE_PAREN: (380..381) ")"
+ FORM: (381..390)
+ OPEN_PAREN: (381..382) "("
+ SYMBOL: (382..389)
+ IDENTIFIER: (382..389) "newline"
+ CLOSE_PAREN: (389..390) ")"
+ ATMOSPHERE: (390..391) "\n"
+ FORM: (391..410)
+ OPEN_PAREN: (391..392) "("
+ SYMBOL: (392..399)
+ IDENTIFIER: (392..399) "display"
+ ATMOSPHERE: (399..400) " "
+ FORM: (400..409)
+ OPEN_PAREN: (400..401) "("
+ SYMBOL: (401..404)
+ IDENTIFIER: (401..404) "gcd"
+ ATMOSPHERE: (404..405) " "
+ CONSTANT: (405..406)
+ NUMBER: (405..406) "0"
+ ATMOSPHERE: (406..407) " "
+ CONSTANT: (407..408)
+ NUMBER: (407..408) "0"
+ CLOSE_PAREN: (408..409) ")"
+ CLOSE_PAREN: (409..410) ")"
+ FORM: (410..419)
+ OPEN_PAREN: (410..411) "("
+ SYMBOL: (411..418)
+ IDENTIFIER: (411..418) "newline"
+ CLOSE_PAREN: (418..419) ")"
+ ATMOSPHERE: (419..420) "\n"
+ FORM: (420..439)
+ OPEN_PAREN: (420..421) "("
+ SYMBOL: (421..428)
+ IDENTIFIER: (421..428) "display"
+ ATMOSPHERE: (428..429) " "
+ FORM: (429..438)
+ OPEN_PAREN: (429..430) "("
+ SYMBOL: (430..433)
+ IDENTIFIER: (430..433) "gcd"
+ ATMOSPHERE: (433..434) " "
+ CONSTANT: (434..435)
+ NUMBER: (434..435) "0"
+ ATMOSPHERE: (435..436) " "
+ CONSTANT: (436..437)
+ NUMBER: (436..437) "9"
+ CLOSE_PAREN: (437..438) ")"
+ CLOSE_PAREN: (438..439) ")"
+ FORM: (439..448)
+ OPEN_PAREN: (439..440) "("
+ SYMBOL: (440..447)
+ IDENTIFIER: (440..447) "newline"
+ CLOSE_PAREN: (447..448) ")"
+ ATMOSPHERE: (448..449) "\n"
+ EOF: (449..449) ""
diff --git a/spec/greatest_diff.ast b/spec/greatest_diff.ast
new file mode 100644
index 0000000..f4967de
--- /dev/null
+++ b/spec/greatest_diff.ast
@@ -0,0 +1,440 @@
+PROGRAM: (0..836)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..43) "\n\n"
+ FORM: (43..82)
+ OPEN_PAREN: (43..44) "("
+ SYMBOL: (44..50)
+ IDENTIFIER: (44..50) "define"
+ ATMOSPHERE: (50..51) " "
+ FORM: (51..60)
+ OPEN_PAREN: (51..52) "("
+ SYMBOL: (52..55)
+ IDENTIFIER: (52..55) "min"
+ ATMOSPHERE: (55..56) " "
+ SYMBOL: (56..57)
+ IDENTIFIER: (56..57) "x"
+ ATMOSPHERE: (57..58) " "
+ SYMBOL: (58..59)
+ IDENTIFIER: (58..59) "y"
+ CLOSE_PAREN: (59..60) ")"
+ ATMOSPHERE: (60..65) "\n "
+ FORM: (65..81)
+ OPEN_PAREN: (65..66) "("
+ SYMBOL: (66..68)
+ IDENTIFIER: (66..68) "if"
+ ATMOSPHERE: (68..69) " "
+ FORM: (69..76)
+ OPEN_PAREN: (69..70) "("
+ SYMBOL: (70..71)
+ IDENTIFIER: (70..71) "<"
+ ATMOSPHERE: (71..72) " "
+ SYMBOL: (72..73)
+ IDENTIFIER: (72..73) "x"
+ ATMOSPHERE: (73..74) " "
+ SYMBOL: (74..75)
+ IDENTIFIER: (74..75) "y"
+ CLOSE_PAREN: (75..76) ")"
+ ATMOSPHERE: (76..77) " "
+ SYMBOL: (77..78)
+ IDENTIFIER: (77..78) "x"
+ ATMOSPHERE: (78..79) " "
+ SYMBOL: (79..80)
+ IDENTIFIER: (79..80) "y"
+ CLOSE_PAREN: (80..81) ")"
+ CLOSE_PAREN: (81..82) ")"
+ ATMOSPHERE: (82..83) "\n"
+ FORM: (83..122)
+ OPEN_PAREN: (83..84) "("
+ SYMBOL: (84..90)
+ IDENTIFIER: (84..90) "define"
+ ATMOSPHERE: (90..91) " "
+ FORM: (91..100)
+ OPEN_PAREN: (91..92) "("
+ SYMBOL: (92..95)
+ IDENTIFIER: (92..95) "max"
+ ATMOSPHERE: (95..96) " "
+ SYMBOL: (96..97)
+ IDENTIFIER: (96..97) "x"
+ ATMOSPHERE: (97..98) " "
+ SYMBOL: (98..99)
+ IDENTIFIER: (98..99) "y"
+ CLOSE_PAREN: (99..100) ")"
+ ATMOSPHERE: (100..105) "\n "
+ FORM: (105..121)
+ OPEN_PAREN: (105..106) "("
+ SYMBOL: (106..108)
+ IDENTIFIER: (106..108) "if"
+ ATMOSPHERE: (108..109) " "
+ FORM: (109..116)
+ OPEN_PAREN: (109..110) "("
+ SYMBOL: (110..111)
+ IDENTIFIER: (110..111) ">"
+ ATMOSPHERE: (111..112) " "
+ SYMBOL: (112..113)
+ IDENTIFIER: (112..113) "x"
+ ATMOSPHERE: (113..114) " "
+ SYMBOL: (114..115)
+ IDENTIFIER: (114..115) "y"
+ CLOSE_PAREN: (115..116) ")"
+ ATMOSPHERE: (116..117) " "
+ SYMBOL: (117..118)
+ IDENTIFIER: (117..118) "x"
+ ATMOSPHERE: (118..119) " "
+ SYMBOL: (119..120)
+ IDENTIFIER: (119..120) "y"
+ CLOSE_PAREN: (120..121) ")"
+ CLOSE_PAREN: (121..122) ")"
+ ATMOSPHERE: (122..124) "\n\n"
+ ATMOSPHERE: (124..171) ";; Computes the greatest consecutive difference"
+ ATMOSPHERE: (171..172) "\n"
+ FORM: (172..566)
+ OPEN_PAREN: (172..173) "("
+ SYMBOL: (173..179)
+ IDENTIFIER: (173..179) "define"
+ ATMOSPHERE: (179..180) " "
+ FORM: (180..200)
+ OPEN_PAREN: (180..181) "("
+ SYMBOL: (181..194)
+ IDENTIFIER: (181..194) "greatest-diff"
+ ATMOSPHERE: (194..195) " "
+ SYMBOL: (195..199)
+ IDENTIFIER: (195..199) "nums"
+ CLOSE_PAREN: (199..200) ")"
+ ATMOSPHERE: (200..205) "\n "
+ FORM: (205..523)
+ OPEN_PAREN: (205..206) "("
+ SYMBOL: (206..212)
+ IDENTIFIER: (206..212) "define"
+ ATMOSPHERE: (212..213) " "
+ FORM: (213..248)
+ OPEN_PAREN: (213..214) "("
+ SYMBOL: (214..234)
+ IDENTIFIER: (214..234) "greatest-diff-helper"
+ ATMOSPHERE: (234..235) " "
+ SYMBOL: (235..239)
+ IDENTIFIER: (235..239) "nums"
+ ATMOSPHERE: (239..240) " "
+ SYMBOL: (240..243)
+ IDENTIFIER: (240..243) "low"
+ ATMOSPHERE: (243..244) " "
+ SYMBOL: (244..247)
+ IDENTIFIER: (244..247) "ret"
+ CLOSE_PAREN: (247..248) ")"
+ ATMOSPHERE: (248..257) "\n "
+ FORM: (257..522)
+ OPEN_PAREN: (257..258) "("
+ SYMBOL: (258..260)
+ IDENTIFIER: (258..260) "if"
+ ATMOSPHERE: (260..261) " "
+ FORM: (261..273)
+ OPEN_PAREN: (261..262) "("
+ SYMBOL: (262..267)
+ IDENTIFIER: (262..267) "null?"
+ ATMOSPHERE: (267..268) " "
+ SYMBOL: (268..272)
+ IDENTIFIER: (268..272) "nums"
+ CLOSE_PAREN: (272..273) ")"
+ ATMOSPHERE: (273..286) "\n "
+ SYMBOL: (286..289)
+ IDENTIFIER: (286..289) "ret"
+ ATMOSPHERE: (289..302) "\n "
+ FORM: (302..521)
+ OPEN_PAREN: (302..303) "("
+ SYMBOL: (303..307)
+ IDENTIFIER: (303..307) "let*"
+ ATMOSPHERE: (307..308) " "
+ FORM: (308..468)
+ OPEN_PAREN: (308..309) "("
+ FORM: (309..325)
+ OPEN_PAREN: (309..310) "("
+ SYMBOL: (310..313)
+ IDENTIFIER: (310..313) "cur"
+ ATMOSPHERE: (313..314) " "
+ FORM: (314..324)
+ OPEN_PAREN: (314..315) "("
+ SYMBOL: (315..318)
+ IDENTIFIER: (315..318) "car"
+ ATMOSPHERE: (318..319) " "
+ SYMBOL: (319..323)
+ IDENTIFIER: (319..323) "nums"
+ CLOSE_PAREN: (323..324) ")"
+ CLOSE_PAREN: (324..325) ")"
+ ATMOSPHERE: (325..342) "\n "
+ FORM: (342..359)
+ OPEN_PAREN: (342..343) "("
+ SYMBOL: (343..347)
+ IDENTIFIER: (343..347) "rest"
+ ATMOSPHERE: (347..348) " "
+ FORM: (348..358)
+ OPEN_PAREN: (348..349) "("
+ SYMBOL: (349..352)
+ IDENTIFIER: (349..352) "cdr"
+ ATMOSPHERE: (352..353) " "
+ SYMBOL: (353..357)
+ IDENTIFIER: (353..357) "nums"
+ CLOSE_PAREN: (357..358) ")"
+ CLOSE_PAREN: (358..359) ")"
+ ATMOSPHERE: (359..376) "\n "
+ FORM: (376..394)
+ OPEN_PAREN: (376..377) "("
+ SYMBOL: (377..381)
+ IDENTIFIER: (377..381) "diff"
+ ATMOSPHERE: (381..382) " "
+ FORM: (382..393)
+ OPEN_PAREN: (382..383) "("
+ SYMBOL: (383..384)
+ IDENTIFIER: (383..384) "-"
+ ATMOSPHERE: (384..385) " "
+ SYMBOL: (385..388)
+ IDENTIFIER: (385..388) "cur"
+ ATMOSPHERE: (388..389) " "
+ SYMBOL: (389..392)
+ IDENTIFIER: (389..392) "low"
+ CLOSE_PAREN: (392..393) ")"
+ CLOSE_PAREN: (393..394) ")"
+ ATMOSPHERE: (394..411) "\n "
+ FORM: (411..430)
+ OPEN_PAREN: (411..412) "("
+ SYMBOL: (412..415)
+ IDENTIFIER: (412..415) "low"
+ ATMOSPHERE: (415..416) " "
+ FORM: (416..429)
+ OPEN_PAREN: (416..417) "("
+ SYMBOL: (417..420)
+ IDENTIFIER: (417..420) "min"
+ ATMOSPHERE: (420..421) " "
+ SYMBOL: (421..424)
+ IDENTIFIER: (421..424) "low"
+ ATMOSPHERE: (424..425) " "
+ SYMBOL: (425..428)
+ IDENTIFIER: (425..428) "cur"
+ CLOSE_PAREN: (428..429) ")"
+ CLOSE_PAREN: (429..430) ")"
+ ATMOSPHERE: (430..447) "\n "
+ FORM: (447..467)
+ OPEN_PAREN: (447..448) "("
+ SYMBOL: (448..451)
+ IDENTIFIER: (448..451) "ret"
+ ATMOSPHERE: (451..452) " "
+ FORM: (452..466)
+ OPEN_PAREN: (452..453) "("
+ SYMBOL: (453..456)
+ IDENTIFIER: (453..456) "max"
+ ATMOSPHERE: (456..457) " "
+ SYMBOL: (457..461)
+ IDENTIFIER: (457..461) "diff"
+ ATMOSPHERE: (461..462) " "
+ SYMBOL: (462..465)
+ IDENTIFIER: (462..465) "ret"
+ CLOSE_PAREN: (465..466) ")"
+ CLOSE_PAREN: (466..467) ")"
+ CLOSE_PAREN: (467..468) ")"
+ ATMOSPHERE: (468..485) "\n "
+ FORM: (485..520)
+ OPEN_PAREN: (485..486) "("
+ SYMBOL: (486..506)
+ IDENTIFIER: (486..506) "greatest-diff-helper"
+ ATMOSPHERE: (506..507) " "
+ SYMBOL: (507..511)
+ IDENTIFIER: (507..511) "rest"
+ ATMOSPHERE: (511..512) " "
+ SYMBOL: (512..515)
+ IDENTIFIER: (512..515) "low"
+ ATMOSPHERE: (515..516) " "
+ SYMBOL: (516..519)
+ IDENTIFIER: (516..519) "ret"
+ CLOSE_PAREN: (519..520) ")"
+ CLOSE_PAREN: (520..521) ")"
+ CLOSE_PAREN: (521..522) ")"
+ CLOSE_PAREN: (522..523) ")"
+ ATMOSPHERE: (523..528) "\n "
+ FORM: (528..565)
+ OPEN_PAREN: (528..529) "("
+ SYMBOL: (529..549)
+ IDENTIFIER: (529..549) "greatest-diff-helper"
+ ATMOSPHERE: (549..550) " "
+ SYMBOL: (550..554)
+ IDENTIFIER: (550..554) "nums"
+ ATMOSPHERE: (554..555) " "
+ CONSTANT: (555..561)
+ NUMBER: (555..561) "100000"
+ ATMOSPHERE: (561..562) " "
+ CONSTANT: (562..564)
+ NUMBER: (562..564) "-1"
+ CLOSE_PAREN: (564..565) ")"
+ CLOSE_PAREN: (565..566) ")"
+ ATMOSPHERE: (566..569) "\n\n\n"
+ FORM: (569..611)
+ OPEN_PAREN: (569..570) "("
+ SYMBOL: (570..577)
+ IDENTIFIER: (570..577) "display"
+ ATMOSPHERE: (577..578) " "
+ FORM: (578..610)
+ OPEN_PAREN: (578..579) "("
+ SYMBOL: (579..592)
+ IDENTIFIER: (579..592) "greatest-diff"
+ ATMOSPHERE: (592..593) " "
+ FORM: (593..609)
+ OPEN_PAREN: (593..594) "("
+ SYMBOL: (594..598)
+ IDENTIFIER: (594..598) "list"
+ ATMOSPHERE: (598..599) " "
+ CONSTANT: (599..600)
+ NUMBER: (599..600) "1"
+ ATMOSPHERE: (600..601) " "
+ CONSTANT: (601..602)
+ NUMBER: (601..602) "2"
+ ATMOSPHERE: (602..603) " "
+ CONSTANT: (603..604)
+ NUMBER: (603..604) "3"
+ ATMOSPHERE: (604..605) " "
+ CONSTANT: (605..606)
+ NUMBER: (605..606) "4"
+ ATMOSPHERE: (606..607) " "
+ CONSTANT: (607..608)
+ NUMBER: (607..608) "5"
+ CLOSE_PAREN: (608..609) ")"
+ CLOSE_PAREN: (609..610) ")"
+ CLOSE_PAREN: (610..611) ")"
+ FORM: (611..620)
+ OPEN_PAREN: (611..612) "("
+ SYMBOL: (612..619)
+ IDENTIFIER: (612..619) "newline"
+ CLOSE_PAREN: (619..620) ")"
+ ATMOSPHERE: (620..622) " "
+ ATMOSPHERE: (622..634) "; -> 4 (1 5)"
+ ATMOSPHERE: (634..635) "\n"
+ FORM: (635..675)
+ OPEN_PAREN: (635..636) "("
+ SYMBOL: (636..643)
+ IDENTIFIER: (636..643) "display"
+ ATMOSPHERE: (643..644) " "
+ FORM: (644..674)
+ OPEN_PAREN: (644..645) "("
+ SYMBOL: (645..658)
+ IDENTIFIER: (645..658) "greatest-diff"
+ ATMOSPHERE: (658..659) " "
+ FORM: (659..673)
+ OPEN_PAREN: (659..660) "("
+ SYMBOL: (660..664)
+ IDENTIFIER: (660..664) "list"
+ ATMOSPHERE: (664..665) " "
+ CONSTANT: (665..666)
+ NUMBER: (665..666) "7"
+ ATMOSPHERE: (666..667) " "
+ CONSTANT: (667..668)
+ NUMBER: (667..668) "1"
+ ATMOSPHERE: (668..669) " "
+ CONSTANT: (669..670)
+ NUMBER: (669..670) "5"
+ ATMOSPHERE: (670..671) " "
+ CONSTANT: (671..672)
+ NUMBER: (671..672) "4"
+ CLOSE_PAREN: (672..673) ")"
+ CLOSE_PAREN: (673..674) ")"
+ CLOSE_PAREN: (674..675) ")"
+ FORM: (675..684)
+ OPEN_PAREN: (675..676) "("
+ SYMBOL: (676..683)
+ IDENTIFIER: (676..683) "newline"
+ CLOSE_PAREN: (683..684) ")"
+ ATMOSPHERE: (684..688) " "
+ ATMOSPHERE: (688..700) "; -> 4 (1 5)"
+ ATMOSPHERE: (700..701) "\n"
+ FORM: (701..741)
+ OPEN_PAREN: (701..702) "("
+ SYMBOL: (702..709)
+ IDENTIFIER: (702..709) "display"
+ ATMOSPHERE: (709..710) " "
+ FORM: (710..740)
+ OPEN_PAREN: (710..711) "("
+ SYMBOL: (711..724)
+ IDENTIFIER: (711..724) "greatest-diff"
+ ATMOSPHERE: (724..725) " "
+ FORM: (725..739)
+ OPEN_PAREN: (725..726) "("
+ SYMBOL: (726..730)
+ IDENTIFIER: (726..730) "list"
+ ATMOSPHERE: (730..731) " "
+ CONSTANT: (731..732)
+ NUMBER: (731..732) "9"
+ ATMOSPHERE: (732..733) " "
+ CONSTANT: (733..734)
+ NUMBER: (733..734) "4"
+ ATMOSPHERE: (734..735) " "
+ CONSTANT: (735..736)
+ NUMBER: (735..736) "3"
+ ATMOSPHERE: (736..737) " "
+ CONSTANT: (737..738)
+ NUMBER: (737..738) "2"
+ CLOSE_PAREN: (738..739) ")"
+ CLOSE_PAREN: (739..740) ")"
+ CLOSE_PAREN: (740..741) ")"
+ FORM: (741..750)
+ OPEN_PAREN: (741..742) "("
+ SYMBOL: (742..749)
+ IDENTIFIER: (742..749) "newline"
+ CLOSE_PAREN: (749..750) ")"
+ ATMOSPHERE: (750..754) " "
+ ATMOSPHERE: (754..768) "; -> -1 (none)"
+ ATMOSPHERE: (768..769) "\n"
+ FORM: (769..810)
+ OPEN_PAREN: (769..770) "("
+ SYMBOL: (770..777)
+ IDENTIFIER: (770..777) "display"
+ ATMOSPHERE: (777..778) " "
+ FORM: (778..809)
+ OPEN_PAREN: (778..779) "("
+ SYMBOL: (779..792)
+ IDENTIFIER: (779..792) "greatest-diff"
+ ATMOSPHERE: (792..793) " "
+ FORM: (793..808)
+ OPEN_PAREN: (793..794) "("
+ SYMBOL: (794..798)
+ IDENTIFIER: (794..798) "list"
+ ATMOSPHERE: (798..799) " "
+ CONSTANT: (799..800)
+ NUMBER: (799..800) "1"
+ ATMOSPHERE: (800..801) " "
+ CONSTANT: (801..802)
+ NUMBER: (801..802) "5"
+ ATMOSPHERE: (802..803) " "
+ CONSTANT: (803..804)
+ NUMBER: (803..804) "2"
+ ATMOSPHERE: (804..805) " "
+ CONSTANT: (805..807)
+ NUMBER: (805..807) "10"
+ CLOSE_PAREN: (807..808) ")"
+ CLOSE_PAREN: (808..809) ")"
+ CLOSE_PAREN: (809..810) ")"
+ FORM: (810..819)
+ OPEN_PAREN: (810..811) "("
+ SYMBOL: (811..818)
+ IDENTIFIER: (811..818) "newline"
+ CLOSE_PAREN: (818..819) ")"
+ ATMOSPHERE: (819..822) " "
+ ATMOSPHERE: (822..835) "; -> 9 (1 10)"
+ ATMOSPHERE: (835..836) "\n"
+ EOF: (836..836) ""
diff --git a/spec/hello.ast b/spec/hello.ast
new file mode 100644
index 0000000..d2a9a90
--- /dev/null
+++ b/spec/hello.ast
@@ -0,0 +1,25 @@
+PROGRAM: (0..46)
+ FORM: (0..23)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..22)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..21)
+ IDENTIFIER: (16..21) "write"
+ CLOSE_PAREN: (21..22) ")"
+ CLOSE_PAREN: (22..23) ")"
+ ATMOSPHERE: (23..24) "\n"
+ FORM: (24..46)
+ OPEN_PAREN: (24..25) "("
+ SYMBOL: (25..32)
+ IDENTIFIER: (25..32) "display"
+ ATMOSPHERE: (32..33) " "
+ CONSTANT: (33..45)
+ STRING: (33..45) "\"helloworld\""
+ CLOSE_PAREN: (45..46) ")"
+ EOF: (46..46) ""
diff --git a/spec/importtest.ast b/spec/importtest.ast
new file mode 100644
index 0000000..bdaa9d8
--- /dev/null
+++ b/spec/importtest.ast
@@ -0,0 +1,38 @@
+PROGRAM: (0..107)
+ ATMOSPHERE: (0..29) "; !depends: display-utils.sld"
+ ATMOSPHERE: (29..30) "\n"
+ FORM: (30..61)
+ OPEN_PAREN: (30..31) "("
+ SYMBOL: (31..37)
+ IDENTIFIER: (31..37) "import"
+ ATMOSPHERE: (37..38) " "
+ FORM: (38..60)
+ OPEN_PAREN: (38..39) "("
+ SYMBOL: (39..46)
+ IDENTIFIER: (39..46) "example"
+ ATMOSPHERE: (46..47) " "
+ SYMBOL: (47..59)
+ IDENTIFIER: (47..59) "displayutils"
+ CLOSE_PAREN: (59..60) ")"
+ CLOSE_PAREN: (60..61) ")"
+ ATMOSPHERE: (61..62) "\n"
+ FORM: (62..107)
+ OPEN_PAREN: (62..63) "("
+ SYMBOL: (63..74)
+ IDENTIFIER: (63..74) "display-all"
+ ATMOSPHERE: (74..75) " "
+ QUOTED_DATUM: (75..106)
+ QUOTE: (75..76) "'"
+ FORM: (76..106)
+ OPEN_PAREN: (76..77) "("
+ CONSTANT: (77..86)
+ STRING: (77..86) "\"library\""
+ ATMOSPHERE: (86..87) " "
+ CONSTANT: (87..98)
+ STRING: (87..98) "\"reference\""
+ ATMOSPHERE: (98..99) " "
+ CONSTANT: (99..105)
+ STRING: (99..105) "\"test\""
+ CLOSE_PAREN: (105..106) ")"
+ CLOSE_PAREN: (106..107) ")"
+ EOF: (107..107) ""
diff --git a/spec/issue-4.ast b/spec/issue-4.ast
new file mode 100644
index 0000000..1715fc6
--- /dev/null
+++ b/spec/issue-4.ast
@@ -0,0 +1,178 @@
+PROGRAM: (0..328)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..118)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..49)
+ IDENTIFIER: (43..49) "define"
+ ATMOSPHERE: (49..50) " "
+ FORM: (50..66)
+ OPEN_PAREN: (50..51) "("
+ SYMBOL: (51..63)
+ IDENTIFIER: (51..63) "make-counter"
+ ATMOSPHERE: (63..64) " "
+ SYMBOL: (64..65)
+ IDENTIFIER: (64..65) "n"
+ CLOSE_PAREN: (65..66) ")"
+ ATMOSPHERE: (66..71) "\n "
+ FORM: (71..117)
+ OPEN_PAREN: (71..72) "("
+ SYMBOL: (72..78)
+ IDENTIFIER: (72..78) "lambda"
+ ATMOSPHERE: (78..79) " "
+ FORM: (79..81)
+ OPEN_PAREN: (79..80) "("
+ CLOSE_PAREN: (80..81) ")"
+ ATMOSPHERE: (81..90) "\n "
+ FORM: (90..106)
+ OPEN_PAREN: (90..91) "("
+ SYMBOL: (91..95)
+ IDENTIFIER: (91..95) "set!"
+ ATMOSPHERE: (95..96) " "
+ SYMBOL: (96..97)
+ IDENTIFIER: (96..97) "n"
+ ATMOSPHERE: (97..98) " "
+ FORM: (98..105)
+ OPEN_PAREN: (98..99) "("
+ SYMBOL: (99..100)
+ IDENTIFIER: (99..100) "+"
+ ATMOSPHERE: (100..101) " "
+ CONSTANT: (101..102)
+ NUMBER: (101..102) "1"
+ ATMOSPHERE: (102..103) " "
+ SYMBOL: (103..104)
+ IDENTIFIER: (103..104) "n"
+ CLOSE_PAREN: (104..105) ")"
+ CLOSE_PAREN: (105..106) ")"
+ ATMOSPHERE: (106..115) "\n "
+ SYMBOL: (115..116)
+ IDENTIFIER: (115..116) "n"
+ CLOSE_PAREN: (116..117) ")"
+ CLOSE_PAREN: (117..118) ")"
+ ATMOSPHERE: (118..119) "\n"
+ FORM: (119..154)
+ OPEN_PAREN: (119..120) "("
+ SYMBOL: (120..126)
+ IDENTIFIER: (120..126) "define"
+ ATMOSPHERE: (126..127) " "
+ SYMBOL: (127..135)
+ IDENTIFIER: (127..135) "from-ten"
+ ATMOSPHERE: (135..136) " "
+ FORM: (136..153)
+ OPEN_PAREN: (136..137) "("
+ SYMBOL: (137..149)
+ IDENTIFIER: (137..149) "make-counter"
+ ATMOSPHERE: (149..150) " "
+ CONSTANT: (150..152)
+ NUMBER: (150..152) "10"
+ CLOSE_PAREN: (152..153) ")"
+ CLOSE_PAREN: (153..154) ")"
+ ATMOSPHERE: (154..155) "\n"
+ FORM: (155..191)
+ OPEN_PAREN: (155..156) "("
+ SYMBOL: (156..162)
+ IDENTIFIER: (156..162) "define"
+ ATMOSPHERE: (162..163) " "
+ SYMBOL: (163..171)
+ IDENTIFIER: (163..171) "from-ton"
+ ATMOSPHERE: (171..172) " "
+ FORM: (172..190)
+ OPEN_PAREN: (172..173) "("
+ SYMBOL: (173..185)
+ IDENTIFIER: (173..185) "make-counter"
+ ATMOSPHERE: (185..186) " "
+ CONSTANT: (186..189)
+ NUMBER: (186..189) "100"
+ CLOSE_PAREN: (189..190) ")"
+ CLOSE_PAREN: (190..191) ")"
+ ATMOSPHERE: (191..193) "\n\n"
+ FORM: (193..213)
+ OPEN_PAREN: (193..194) "("
+ SYMBOL: (194..201)
+ IDENTIFIER: (194..201) "display"
+ ATMOSPHERE: (201..202) " "
+ FORM: (202..212)
+ OPEN_PAREN: (202..203) "("
+ SYMBOL: (203..211)
+ IDENTIFIER: (203..211) "from-ten"
+ CLOSE_PAREN: (211..212) ")"
+ CLOSE_PAREN: (212..213) ")"
+ ATMOSPHERE: (213..214) "\n"
+ FORM: (214..234)
+ OPEN_PAREN: (214..215) "("
+ SYMBOL: (215..222)
+ IDENTIFIER: (215..222) "display"
+ ATMOSPHERE: (222..223) " "
+ FORM: (223..233)
+ OPEN_PAREN: (223..224) "("
+ SYMBOL: (224..232)
+ IDENTIFIER: (224..232) "from-ton"
+ CLOSE_PAREN: (232..233) ")"
+ CLOSE_PAREN: (233..234) ")"
+ ATMOSPHERE: (234..236) "\n\n"
+ ATMOSPHERE: (236..266) ";; This should return 102 + 12"
+ ATMOSPHERE: (266..267) "\n"
+ FORM: (267..302)
+ OPEN_PAREN: (267..268) "("
+ SYMBOL: (268..275)
+ IDENTIFIER: (268..275) "display"
+ ATMOSPHERE: (275..276) " "
+ FORM: (276..301)
+ OPEN_PAREN: (276..277) "("
+ SYMBOL: (277..278)
+ IDENTIFIER: (277..278) "+"
+ ATMOSPHERE: (278..279) " "
+ FORM: (279..289)
+ OPEN_PAREN: (279..280) "("
+ SYMBOL: (280..288)
+ IDENTIFIER: (280..288) "from-ton"
+ CLOSE_PAREN: (288..289) ")"
+ ATMOSPHERE: (289..290) " "
+ FORM: (290..300)
+ OPEN_PAREN: (290..291) "("
+ SYMBOL: (291..299)
+ IDENTIFIER: (291..299) "from-ten"
+ CLOSE_PAREN: (299..300) ")"
+ CLOSE_PAREN: (300..301) ")"
+ CLOSE_PAREN: (301..302) ")"
+ ATMOSPHERE: (302..303) "\n"
+ FORM: (303..328)
+ OPEN_PAREN: (303..304) "("
+ SYMBOL: (304..305)
+ IDENTIFIER: (304..305) "+"
+ ATMOSPHERE: (305..306) " "
+ FORM: (306..316)
+ OPEN_PAREN: (306..307) "("
+ SYMBOL: (307..315)
+ IDENTIFIER: (307..315) "from-ton"
+ CLOSE_PAREN: (315..316) ")"
+ ATMOSPHERE: (316..317) " "
+ FORM: (317..327)
+ OPEN_PAREN: (317..318) "("
+ SYMBOL: (318..326)
+ IDENTIFIER: (318..326) "from-ten"
+ CLOSE_PAREN: (326..327) ")"
+ CLOSE_PAREN: (327..328) ")"
+ EOF: (328..328) ""
diff --git a/spec/issue-45.ast b/spec/issue-45.ast
new file mode 100644
index 0000000..e7a7d3c
--- /dev/null
+++ b/spec/issue-45.ast
@@ -0,0 +1,242 @@
+PROGRAM: (0..370)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..22)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..21)
+ IDENTIFIER: (16..21) "write"
+ CLOSE_PAREN: (21..22) ")"
+ ATMOSPHERE: (22..27) "\n "
+ FORM: (27..40)
+ OPEN_PAREN: (27..28) "("
+ SYMBOL: (28..34)
+ IDENTIFIER: (28..34) "scheme"
+ ATMOSPHERE: (34..35) " "
+ SYMBOL: (35..39)
+ IDENTIFIER: (35..39) "base"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..43) "\n\n"
+ FORM: (43..149)
+ OPEN_PAREN: (43..44) "("
+ SYMBOL: (44..57)
+ IDENTIFIER: (44..57) "define-syntax"
+ ATMOSPHERE: (57..58) " "
+ SYMBOL: (58..61)
+ IDENTIFIER: (58..61) "bug"
+ ATMOSPHERE: (61..66) "\n "
+ FORM: (66..148)
+ OPEN_PAREN: (66..67) "("
+ SYMBOL: (67..79)
+ IDENTIFIER: (67..79) "syntax-rules"
+ ATMOSPHERE: (79..80) " "
+ FORM: (80..82)
+ OPEN_PAREN: (80..81) "("
+ CLOSE_PAREN: (81..82) ")"
+ ATMOSPHERE: (82..91) "\n "
+ FORM: (91..147)
+ OPEN_PAREN: (91..92) "("
+ FORM: (92..113)
+ OPEN_PAREN: (92..93) "("
+ SYMBOL: (93..96)
+ IDENTIFIER: (93..96) "bug"
+ ATMOSPHERE: (96..97) " "
+ FORM: (97..104)
+ OPEN_PAREN: (97..98) "("
+ SYMBOL: (98..99)
+ IDENTIFIER: (98..99) "a"
+ ATMOSPHERE: (99..100) " "
+ SYMBOL: (100..103)
+ IDENTIFIER: (100..103) "..."
+ CLOSE_PAREN: (103..104) ")"
+ ATMOSPHERE: (104..105) " "
+ FORM: (105..112)
+ OPEN_PAREN: (105..106) "("
+ SYMBOL: (106..107)
+ IDENTIFIER: (106..107) "b"
+ ATMOSPHERE: (107..108) " "
+ SYMBOL: (108..111)
+ IDENTIFIER: (108..111) "..."
+ CLOSE_PAREN: (111..112) ")"
+ CLOSE_PAREN: (112..113) ")"
+ ATMOSPHERE: (113..114) " "
+ FORM: (114..146)
+ OPEN_PAREN: (114..115) "("
+ SYMBOL: (115..119)
+ IDENTIFIER: (115..119) "cons"
+ ATMOSPHERE: (119..120) " "
+ FORM: (120..132)
+ OPEN_PAREN: (120..121) "("
+ SYMBOL: (121..125)
+ IDENTIFIER: (121..125) "list"
+ ATMOSPHERE: (125..126) " "
+ SYMBOL: (126..127)
+ IDENTIFIER: (126..127) "a"
+ ATMOSPHERE: (127..128) " "
+ SYMBOL: (128..131)
+ IDENTIFIER: (128..131) "..."
+ CLOSE_PAREN: (131..132) ")"
+ ATMOSPHERE: (132..133) " "
+ FORM: (133..145)
+ OPEN_PAREN: (133..134) "("
+ SYMBOL: (134..138)
+ IDENTIFIER: (134..138) "list"
+ ATMOSPHERE: (138..139) " "
+ SYMBOL: (139..140)
+ IDENTIFIER: (139..140) "b"
+ ATMOSPHERE: (140..141) " "
+ SYMBOL: (141..144)
+ IDENTIFIER: (141..144) "..."
+ CLOSE_PAREN: (144..145) ")"
+ CLOSE_PAREN: (145..146) ")"
+ CLOSE_PAREN: (146..147) ")"
+ CLOSE_PAREN: (147..148) ")"
+ CLOSE_PAREN: (148..149) ")"
+ ATMOSPHERE: (149..150) "\n"
+ FORM: (150..245)
+ OPEN_PAREN: (150..151) "("
+ SYMBOL: (151..164)
+ IDENTIFIER: (151..164) "define-syntax"
+ ATMOSPHERE: (164..165) " "
+ SYMBOL: (165..168)
+ IDENTIFIER: (165..168) "zip"
+ ATMOSPHERE: (168..173) "\n "
+ FORM: (173..244)
+ OPEN_PAREN: (173..174) "("
+ SYMBOL: (174..186)
+ IDENTIFIER: (174..186) "syntax-rules"
+ ATMOSPHERE: (186..187) " "
+ FORM: (187..189)
+ OPEN_PAREN: (187..188) "("
+ CLOSE_PAREN: (188..189) ")"
+ ATMOSPHERE: (189..198) "\n "
+ FORM: (198..243)
+ OPEN_PAREN: (198..199) "("
+ FORM: (199..220)
+ OPEN_PAREN: (199..200) "("
+ SYMBOL: (200..203)
+ IDENTIFIER: (200..203) "bug"
+ ATMOSPHERE: (203..204) " "
+ FORM: (204..211)
+ OPEN_PAREN: (204..205) "("
+ SYMBOL: (205..206)
+ IDENTIFIER: (205..206) "a"
+ ATMOSPHERE: (206..207) " "
+ SYMBOL: (207..210)
+ IDENTIFIER: (207..210) "..."
+ CLOSE_PAREN: (210..211) ")"
+ ATMOSPHERE: (211..212) " "
+ FORM: (212..219)
+ OPEN_PAREN: (212..213) "("
+ SYMBOL: (213..214)
+ IDENTIFIER: (213..214) "b"
+ ATMOSPHERE: (214..215) " "
+ SYMBOL: (215..218)
+ IDENTIFIER: (215..218) "..."
+ CLOSE_PAREN: (218..219) ")"
+ CLOSE_PAREN: (219..220) ")"
+ ATMOSPHERE: (220..221) " "
+ FORM: (221..242)
+ OPEN_PAREN: (221..222) "("
+ SYMBOL: (222..226)
+ IDENTIFIER: (222..226) "list"
+ ATMOSPHERE: (226..227) " "
+ FORM: (227..237)
+ OPEN_PAREN: (227..228) "("
+ SYMBOL: (228..232)
+ IDENTIFIER: (228..232) "cons"
+ ATMOSPHERE: (232..233) " "
+ SYMBOL: (233..234)
+ IDENTIFIER: (233..234) "a"
+ ATMOSPHERE: (234..235) " "
+ SYMBOL: (235..236)
+ IDENTIFIER: (235..236) "b"
+ CLOSE_PAREN: (236..237) ")"
+ ATMOSPHERE: (237..238) " "
+ SYMBOL: (238..241)
+ IDENTIFIER: (238..241) "..."
+ CLOSE_PAREN: (241..242) ")"
+ CLOSE_PAREN: (242..243) ")"
+ CLOSE_PAREN: (243..244) ")"
+ CLOSE_PAREN: (244..245) ")"
+ ATMOSPHERE: (245..247) "\n\n"
+ FORM: (247..360)
+ OPEN_PAREN: (247..248) "("
+ SYMBOL: (248..255)
+ IDENTIFIER: (248..255) "display"
+ ATMOSPHERE: (255..256) " "
+ FORM: (256..359)
+ OPEN_PAREN: (256..257) "("
+ SYMBOL: (257..261)
+ IDENTIFIER: (257..261) "list"
+ ATMOSPHERE: (261..266) "\n "
+ FORM: (266..285)
+ OPEN_PAREN: (266..267) "("
+ SYMBOL: (267..270)
+ IDENTIFIER: (267..270) "bug"
+ ATMOSPHERE: (270..271) " "
+ FORM: (271..278)
+ OPEN_PAREN: (271..272) "("
+ CONSTANT: (272..273)
+ NUMBER: (272..273) "1"
+ ATMOSPHERE: (273..274) " "
+ CONSTANT: (274..275)
+ NUMBER: (274..275) "2"
+ ATMOSPHERE: (275..276) " "
+ CONSTANT: (276..277)
+ NUMBER: (276..277) "3"
+ CLOSE_PAREN: (277..278) ")"
+ ATMOSPHERE: (278..279) " "
+ FORM: (279..284)
+ OPEN_PAREN: (279..280) "("
+ CONSTANT: (280..281)
+ NUMBER: (280..281) "4"
+ ATMOSPHERE: (281..282) " "
+ CONSTANT: (282..283)
+ NUMBER: (282..283) "5"
+ CLOSE_PAREN: (283..284) ")"
+ CLOSE_PAREN: (284..285) ")"
+ ATMOSPHERE: (285..286) " "
+ ATMOSPHERE: (286..305) "; -> '((1 2 3) 4 5)"
+ ATMOSPHERE: (305..310) "\n "
+ FORM: (310..327)
+ OPEN_PAREN: (310..311) "("
+ SYMBOL: (311..314)
+ IDENTIFIER: (311..314) "zip"
+ ATMOSPHERE: (314..315) " "
+ FORM: (315..320)
+ OPEN_PAREN: (315..316) "("
+ CONSTANT: (316..317)
+ NUMBER: (316..317) "1"
+ ATMOSPHERE: (317..318) " "
+ CONSTANT: (318..319)
+ NUMBER: (318..319) "2"
+ CLOSE_PAREN: (319..320) ")"
+ ATMOSPHERE: (320..321) " "
+ FORM: (321..326)
+ OPEN_PAREN: (321..322) "("
+ CONSTANT: (322..323)
+ NUMBER: (322..323) "3"
+ ATMOSPHERE: (323..324) " "
+ CONSTANT: (324..325)
+ NUMBER: (324..325) "4"
+ CLOSE_PAREN: (325..326) ")"
+ CLOSE_PAREN: (326..327) ")"
+ ATMOSPHERE: (327..330) " "
+ ATMOSPHERE: (330..353) "; -> '((1 . 3) (2 . 4))"
+ ATMOSPHERE: (353..358) "\n "
+ CLOSE_PAREN: (358..359) ")"
+ CLOSE_PAREN: (359..360) ")"
+ FORM: (360..369)
+ OPEN_PAREN: (360..361) "("
+ SYMBOL: (361..368)
+ IDENTIFIER: (361..368) "newline"
+ CLOSE_PAREN: (368..369) ")"
+ ATMOSPHERE: (369..370) "\n"
+ EOF: (370..370) ""
diff --git a/spec/issue-5_a.ast b/spec/issue-5_a.ast
new file mode 100644
index 0000000..a04ccee
--- /dev/null
+++ b/spec/issue-5_a.ast
@@ -0,0 +1,79 @@
+PROGRAM: (0..171)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..140)
+ OPEN_PAREN: (42..43) "("
+ FORM: (43..133)
+ OPEN_PAREN: (43..44) "("
+ SYMBOL: (44..50)
+ IDENTIFIER: (44..50) "lambda"
+ ATMOSPHERE: (50..51) " "
+ FORM: (51..54)
+ OPEN_PAREN: (51..52) "("
+ SYMBOL: (52..53)
+ IDENTIFIER: (52..53) "a"
+ CLOSE_PAREN: (53..54) ")"
+ ATMOSPHERE: (54..59) "\n "
+ FORM: (59..126)
+ OPEN_PAREN: (59..60) "("
+ SYMBOL: (60..67)
+ IDENTIFIER: (60..67) "display"
+ ATMOSPHERE: (67..76) "\n "
+ FORM: (76..125)
+ OPEN_PAREN: (76..77) "("
+ SYMBOL: (77..79)
+ IDENTIFIER: (77..79) "if"
+ ATMOSPHERE: (79..80) " "
+ CONSTANT: (80..82)
+ BOOLEAN: (80..82) "#f"
+ ATMOSPHERE: (82..97) "\n "
+ FORM: (97..110)
+ OPEN_PAREN: (97..98) "("
+ SYMBOL: (98..104)
+ IDENTIFIER: (98..104) "lambda"
+ ATMOSPHERE: (104..105) " "
+ FORM: (105..107)
+ OPEN_PAREN: (105..106) "("
+ CLOSE_PAREN: (106..107) ")"
+ ATMOSPHERE: (107..108) " "
+ SYMBOL: (108..109)
+ IDENTIFIER: (108..109) "a"
+ CLOSE_PAREN: (109..110) ")"
+ ATMOSPHERE: (110..123) "\n "
+ SYMBOL: (123..124)
+ IDENTIFIER: (123..124) "a"
+ CLOSE_PAREN: (124..125) ")"
+ CLOSE_PAREN: (125..126) ")"
+ ATMOSPHERE: (126..131) "\n "
+ SYMBOL: (131..132)
+ IDENTIFIER: (131..132) "a"
+ CLOSE_PAREN: (132..133) ")"
+ ATMOSPHERE: (133..136) "\n "
+ CONSTANT: (136..139)
+ NUMBER: (136..139) "101"
+ CLOSE_PAREN: (139..140) ")"
+ ATMOSPHERE: (140..141) " "
+ ATMOSPHERE: (141..171) "; -> should be 101, but is '()"
+ EOF: (171..171) ""
diff --git a/spec/issue-5_b.ast b/spec/issue-5_b.ast
new file mode 100644
index 0000000..ea3c224
--- /dev/null
+++ b/spec/issue-5_b.ast
@@ -0,0 +1,221 @@
+PROGRAM: (0..393)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..321)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..49)
+ IDENTIFIER: (43..49) "define"
+ ATMOSPHERE: (49..50) " "
+ FORM: (50..59)
+ OPEN_PAREN: (50..51) "("
+ SYMBOL: (51..56)
+ IDENTIFIER: (51..56) "check"
+ ATMOSPHERE: (56..57) " "
+ SYMBOL: (57..58)
+ IDENTIFIER: (57..58) "n"
+ CLOSE_PAREN: (58..59) ")"
+ ATMOSPHERE: (59..64) "\n "
+ FORM: (64..320)
+ OPEN_PAREN: (64..65) "("
+ SYMBOL: (65..71)
+ IDENTIFIER: (65..71) "letrec"
+ ATMOSPHERE: (71..72) " "
+ FORM: (72..301)
+ OPEN_PAREN: (72..73) "("
+ FORM: (73..180)
+ OPEN_PAREN: (73..74) "("
+ SYMBOL: (74..78)
+ IDENTIFIER: (74..78) "odd?"
+ ATMOSPHERE: (78..79) " "
+ FORM: (79..179)
+ OPEN_PAREN: (79..80) "("
+ SYMBOL: (80..86)
+ IDENTIFIER: (80..86) "lambda"
+ ATMOSPHERE: (86..87) " "
+ FORM: (87..90)
+ OPEN_PAREN: (87..88) "("
+ SYMBOL: (88..89)
+ IDENTIFIER: (88..89) "m"
+ CLOSE_PAREN: (89..90) ")"
+ ATMOSPHERE: (90..107) "\n "
+ FORM: (107..178)
+ OPEN_PAREN: (107..108) "("
+ SYMBOL: (108..110)
+ IDENTIFIER: (108..110) "if"
+ ATMOSPHERE: (110..111) " "
+ FORM: (111..118)
+ OPEN_PAREN: (111..112) "("
+ SYMBOL: (112..113)
+ IDENTIFIER: (112..113) "="
+ ATMOSPHERE: (113..114) " "
+ SYMBOL: (114..115)
+ IDENTIFIER: (114..115) "m"
+ ATMOSPHERE: (115..116) " "
+ CONSTANT: (116..117)
+ NUMBER: (116..117) "0"
+ CLOSE_PAREN: (117..118) ")"
+ ATMOSPHERE: (118..139) "\n "
+ CONSTANT: (139..141)
+ BOOLEAN: (139..141) "#f"
+ ATMOSPHERE: (141..162) "\n "
+ FORM: (162..177)
+ OPEN_PAREN: (162..163) "("
+ SYMBOL: (163..168)
+ IDENTIFIER: (163..168) "even?"
+ ATMOSPHERE: (168..169) " "
+ FORM: (169..176)
+ OPEN_PAREN: (169..170) "("
+ SYMBOL: (170..171)
+ IDENTIFIER: (170..171) "-"
+ ATMOSPHERE: (171..172) " "
+ SYMBOL: (172..173)
+ IDENTIFIER: (172..173) "m"
+ ATMOSPHERE: (173..174) " "
+ CONSTANT: (174..175)
+ NUMBER: (174..175) "1"
+ CLOSE_PAREN: (175..176) ")"
+ CLOSE_PAREN: (176..177) ")"
+ CLOSE_PAREN: (177..178) ")"
+ CLOSE_PAREN: (178..179) ")"
+ CLOSE_PAREN: (179..180) ")"
+ ATMOSPHERE: (180..193) "\n "
+ FORM: (193..300)
+ OPEN_PAREN: (193..194) "("
+ SYMBOL: (194..199)
+ IDENTIFIER: (194..199) "even?"
+ ATMOSPHERE: (199..200) " "
+ FORM: (200..299)
+ OPEN_PAREN: (200..201) "("
+ SYMBOL: (201..207)
+ IDENTIFIER: (201..207) "lambda"
+ ATMOSPHERE: (207..208) " "
+ FORM: (208..211)
+ OPEN_PAREN: (208..209) "("
+ SYMBOL: (209..210)
+ IDENTIFIER: (209..210) "m"
+ CLOSE_PAREN: (210..211) ")"
+ ATMOSPHERE: (211..228) "\n "
+ FORM: (228..298)
+ OPEN_PAREN: (228..229) "("
+ SYMBOL: (229..231)
+ IDENTIFIER: (229..231) "if"
+ ATMOSPHERE: (231..232) " "
+ FORM: (232..239)
+ OPEN_PAREN: (232..233) "("
+ SYMBOL: (233..234)
+ IDENTIFIER: (233..234) "="
+ ATMOSPHERE: (234..235) " "
+ SYMBOL: (235..236)
+ IDENTIFIER: (235..236) "m"
+ ATMOSPHERE: (236..237) " "
+ CONSTANT: (237..238)
+ NUMBER: (237..238) "0"
+ CLOSE_PAREN: (238..239) ")"
+ ATMOSPHERE: (239..260) "\n "
+ CONSTANT: (260..262)
+ BOOLEAN: (260..262) "#t"
+ ATMOSPHERE: (262..283) "\n "
+ FORM: (283..297)
+ OPEN_PAREN: (283..284) "("
+ SYMBOL: (284..288)
+ IDENTIFIER: (284..288) "odd?"
+ ATMOSPHERE: (288..289) " "
+ FORM: (289..296)
+ OPEN_PAREN: (289..290) "("
+ SYMBOL: (290..291)
+ IDENTIFIER: (290..291) "-"
+ ATMOSPHERE: (291..292) " "
+ SYMBOL: (292..293)
+ IDENTIFIER: (292..293) "m"
+ ATMOSPHERE: (293..294) " "
+ CONSTANT: (294..295)
+ NUMBER: (294..295) "1"
+ CLOSE_PAREN: (295..296) ")"
+ CLOSE_PAREN: (296..297) ")"
+ CLOSE_PAREN: (297..298) ")"
+ CLOSE_PAREN: (298..299) ")"
+ CLOSE_PAREN: (299..300) ")"
+ CLOSE_PAREN: (300..301) ")"
+ ATMOSPHERE: (301..310) "\n "
+ FORM: (310..319)
+ OPEN_PAREN: (310..311) "("
+ SYMBOL: (311..316)
+ IDENTIFIER: (311..316) "even?"
+ ATMOSPHERE: (316..317) " "
+ SYMBOL: (317..318)
+ IDENTIFIER: (317..318) "n"
+ CLOSE_PAREN: (318..319) ")"
+ CLOSE_PAREN: (319..320) ")"
+ CLOSE_PAREN: (320..321) ")"
+ ATMOSPHERE: (321..323) "\n\n"
+ FORM: (323..343)
+ OPEN_PAREN: (323..324) "("
+ SYMBOL: (324..331)
+ IDENTIFIER: (324..331) "display"
+ ATMOSPHERE: (331..332) " "
+ FORM: (332..342)
+ OPEN_PAREN: (332..333) "("
+ SYMBOL: (333..338)
+ IDENTIFIER: (333..338) "check"
+ ATMOSPHERE: (338..339) " "
+ CONSTANT: (339..341)
+ NUMBER: (339..341) "54"
+ CLOSE_PAREN: (341..342) ")"
+ CLOSE_PAREN: (342..343) ")"
+ FORM: (343..352)
+ OPEN_PAREN: (343..344) "("
+ SYMBOL: (344..351)
+ IDENTIFIER: (344..351) "newline"
+ CLOSE_PAREN: (351..352) ")"
+ ATMOSPHERE: (352..353) "\n"
+ FORM: (353..372)
+ OPEN_PAREN: (353..354) "("
+ SYMBOL: (354..361)
+ IDENTIFIER: (354..361) "display"
+ ATMOSPHERE: (361..362) " "
+ FORM: (362..371)
+ OPEN_PAREN: (362..363) "("
+ SYMBOL: (363..368)
+ IDENTIFIER: (363..368) "check"
+ ATMOSPHERE: (368..369) " "
+ CONSTANT: (369..370)
+ NUMBER: (369..370) "7"
+ CLOSE_PAREN: (370..371) ")"
+ CLOSE_PAREN: (371..372) ")"
+ FORM: (372..381)
+ OPEN_PAREN: (372..373) "("
+ SYMBOL: (373..380)
+ IDENTIFIER: (373..380) "newline"
+ CLOSE_PAREN: (380..381) ")"
+ ATMOSPHERE: (381..382) "\n"
+ FORM: (382..393)
+ OPEN_PAREN: (382..383) "("
+ SYMBOL: (383..388)
+ IDENTIFIER: (383..388) "check"
+ ATMOSPHERE: (388..389) " "
+ CONSTANT: (389..392)
+ NUMBER: (389..392) "123"
+ CLOSE_PAREN: (392..393) ")"
+ EOF: (393..393) ""
diff --git a/spec/iterfact.ast b/spec/iterfact.ast
new file mode 100644
index 0000000..9f2e86b
--- /dev/null
+++ b/spec/iterfact.ast
@@ -0,0 +1,228 @@
+PROGRAM: (0..354)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..115)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..49)
+ IDENTIFIER: (43..49) "define"
+ ATMOSPHERE: (49..50) " "
+ FORM: (50..58)
+ OPEN_PAREN: (50..51) "("
+ SYMBOL: (51..55)
+ IDENTIFIER: (51..55) "fact"
+ ATMOSPHERE: (55..56) " "
+ SYMBOL: (56..57)
+ IDENTIFIER: (56..57) "n"
+ CLOSE_PAREN: (57..58) ")"
+ ATMOSPHERE: (58..63) "\n "
+ FORM: (63..114)
+ OPEN_PAREN: (63..64) "("
+ SYMBOL: (64..66)
+ IDENTIFIER: (64..66) "if"
+ ATMOSPHERE: (66..67) " "
+ FORM: (67..74)
+ OPEN_PAREN: (67..68) "("
+ SYMBOL: (68..69)
+ IDENTIFIER: (68..69) "="
+ ATMOSPHERE: (69..70) " "
+ SYMBOL: (70..71)
+ IDENTIFIER: (70..71) "n"
+ ATMOSPHERE: (71..72) " "
+ CONSTANT: (72..73)
+ NUMBER: (72..73) "0"
+ CLOSE_PAREN: (73..74) ")"
+ ATMOSPHERE: (74..83) "\n "
+ CONSTANT: (83..84)
+ NUMBER: (83..84) "1"
+ ATMOSPHERE: (84..93) "\n "
+ FORM: (93..113)
+ OPEN_PAREN: (93..94) "("
+ SYMBOL: (94..95)
+ IDENTIFIER: (94..95) "*"
+ ATMOSPHERE: (95..96) " "
+ SYMBOL: (96..97)
+ IDENTIFIER: (96..97) "n"
+ ATMOSPHERE: (97..98) " "
+ FORM: (98..112)
+ OPEN_PAREN: (98..99) "("
+ SYMBOL: (99..103)
+ IDENTIFIER: (99..103) "fact"
+ ATMOSPHERE: (103..104) " "
+ FORM: (104..111)
+ OPEN_PAREN: (104..105) "("
+ SYMBOL: (105..106)
+ IDENTIFIER: (105..106) "-"
+ ATMOSPHERE: (106..107) " "
+ SYMBOL: (107..108)
+ IDENTIFIER: (107..108) "n"
+ ATMOSPHERE: (108..109) " "
+ CONSTANT: (109..110)
+ NUMBER: (109..110) "1"
+ CLOSE_PAREN: (110..111) ")"
+ CLOSE_PAREN: (111..112) ")"
+ CLOSE_PAREN: (112..113) ")"
+ CLOSE_PAREN: (113..114) ")"
+ CLOSE_PAREN: (114..115) ")"
+ ATMOSPHERE: (115..117) "\n\n"
+ FORM: (117..277)
+ OPEN_PAREN: (117..118) "("
+ SYMBOL: (118..124)
+ IDENTIFIER: (118..124) "define"
+ ATMOSPHERE: (124..125) " "
+ FORM: (125..137)
+ OPEN_PAREN: (125..126) "("
+ SYMBOL: (126..134)
+ IDENTIFIER: (126..134) "iterfact"
+ ATMOSPHERE: (134..135) " "
+ SYMBOL: (135..136)
+ IDENTIFIER: (135..136) "n"
+ CLOSE_PAREN: (136..137) ")"
+ ATMOSPHERE: (137..142) "\n "
+ FORM: (142..253)
+ OPEN_PAREN: (142..143) "("
+ SYMBOL: (143..149)
+ IDENTIFIER: (143..149) "define"
+ ATMOSPHERE: (149..150) " "
+ FORM: (150..170)
+ OPEN_PAREN: (150..151) "("
+ SYMBOL: (151..163)
+ IDENTIFIER: (151..163) "iterfact-acc"
+ ATMOSPHERE: (163..164) " "
+ SYMBOL: (164..165)
+ IDENTIFIER: (164..165) "n"
+ ATMOSPHERE: (165..166) " "
+ SYMBOL: (166..169)
+ IDENTIFIER: (166..169) "acc"
+ CLOSE_PAREN: (169..170) ")"
+ ATMOSPHERE: (170..179) "\n "
+ FORM: (179..252)
+ OPEN_PAREN: (179..180) "("
+ SYMBOL: (180..182)
+ IDENTIFIER: (180..182) "if"
+ ATMOSPHERE: (182..183) " "
+ FORM: (183..190)
+ OPEN_PAREN: (183..184) "("
+ SYMBOL: (184..185)
+ IDENTIFIER: (184..185) "="
+ ATMOSPHERE: (185..186) " "
+ SYMBOL: (186..187)
+ IDENTIFIER: (186..187) "n"
+ ATMOSPHERE: (187..188) " "
+ CONSTANT: (188..189)
+ NUMBER: (188..189) "0"
+ CLOSE_PAREN: (189..190) ")"
+ ATMOSPHERE: (190..203) "\n "
+ SYMBOL: (203..206)
+ IDENTIFIER: (203..206) "acc"
+ ATMOSPHERE: (206..219) "\n "
+ FORM: (219..251)
+ OPEN_PAREN: (219..220) "("
+ SYMBOL: (220..232)
+ IDENTIFIER: (220..232) "iterfact-acc"
+ ATMOSPHERE: (232..233) " "
+ FORM: (233..240)
+ OPEN_PAREN: (233..234) "("
+ SYMBOL: (234..235)
+ IDENTIFIER: (234..235) "-"
+ ATMOSPHERE: (235..236) " "
+ SYMBOL: (236..237)
+ IDENTIFIER: (236..237) "n"
+ ATMOSPHERE: (237..238) " "
+ CONSTANT: (238..239)
+ NUMBER: (238..239) "1"
+ CLOSE_PAREN: (239..240) ")"
+ ATMOSPHERE: (240..241) " "
+ FORM: (241..250)
+ OPEN_PAREN: (241..242) "("
+ SYMBOL: (242..243)
+ IDENTIFIER: (242..243) "*"
+ ATMOSPHERE: (243..244) " "
+ SYMBOL: (244..247)
+ IDENTIFIER: (244..247) "acc"
+ ATMOSPHERE: (247..248) " "
+ SYMBOL: (248..249)
+ IDENTIFIER: (248..249) "n"
+ CLOSE_PAREN: (249..250) ")"
+ CLOSE_PAREN: (250..251) ")"
+ CLOSE_PAREN: (251..252) ")"
+ CLOSE_PAREN: (252..253) ")"
+ ATMOSPHERE: (253..258) "\n "
+ FORM: (258..276)
+ OPEN_PAREN: (258..259) "("
+ SYMBOL: (259..271)
+ IDENTIFIER: (259..271) "iterfact-acc"
+ ATMOSPHERE: (271..272) " "
+ SYMBOL: (272..273)
+ IDENTIFIER: (272..273) "n"
+ ATMOSPHERE: (273..274) " "
+ CONSTANT: (274..275)
+ NUMBER: (274..275) "1"
+ CLOSE_PAREN: (275..276) ")"
+ CLOSE_PAREN: (276..277) ")"
+ ATMOSPHERE: (277..279) "\n\n"
+ FORM: (279..297)
+ OPEN_PAREN: (279..280) "("
+ SYMBOL: (280..287)
+ IDENTIFIER: (280..287) "display"
+ ATMOSPHERE: (287..288) " "
+ FORM: (288..296)
+ OPEN_PAREN: (288..289) "("
+ SYMBOL: (289..293)
+ IDENTIFIER: (289..293) "fact"
+ ATMOSPHERE: (293..294) " "
+ CONSTANT: (294..295)
+ NUMBER: (294..295) "4"
+ CLOSE_PAREN: (295..296) ")"
+ CLOSE_PAREN: (296..297) ")"
+ FORM: (297..306)
+ OPEN_PAREN: (297..298) "("
+ SYMBOL: (298..305)
+ IDENTIFIER: (298..305) "newline"
+ CLOSE_PAREN: (305..306) ")"
+ ATMOSPHERE: (306..307) " "
+ ATMOSPHERE: (307..314) "; => 24"
+ ATMOSPHERE: (314..315) "\n"
+ FORM: (315..337)
+ OPEN_PAREN: (315..316) "("
+ SYMBOL: (316..323)
+ IDENTIFIER: (316..323) "display"
+ ATMOSPHERE: (323..324) " "
+ FORM: (324..336)
+ OPEN_PAREN: (324..325) "("
+ SYMBOL: (325..333)
+ IDENTIFIER: (325..333) "iterfact"
+ ATMOSPHERE: (333..334) " "
+ CONSTANT: (334..335)
+ NUMBER: (334..335) "4"
+ CLOSE_PAREN: (335..336) ")"
+ CLOSE_PAREN: (336..337) ")"
+ FORM: (337..346)
+ OPEN_PAREN: (337..338) "("
+ SYMBOL: (338..345)
+ IDENTIFIER: (338..345) "newline"
+ CLOSE_PAREN: (345..346) ")"
+ ATMOSPHERE: (346..347) " "
+ ATMOSPHERE: (347..354) "; => 24"
+ EOF: (354..354) ""
diff --git a/spec/lambdas.ast b/spec/lambdas.ast
new file mode 100644
index 0000000..4122cf1
--- /dev/null
+++ b/spec/lambdas.ast
@@ -0,0 +1,156 @@
+PROGRAM: (0..190)
+ FORM: (0..40)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "define"
+ ATMOSPHERE: (7..8) " "
+ SYMBOL: (8..9)
+ IDENTIFIER: (8..9) "x"
+ ATMOSPHERE: (9..10) " "
+ FORM: (10..39)
+ OPEN_PAREN: (10..11) "("
+ SYMBOL: (11..17)
+ IDENTIFIER: (11..17) "lambda"
+ ATMOSPHERE: (17..18) " "
+ SYMBOL: (18..19)
+ IDENTIFIER: (18..19) "y"
+ ATMOSPHERE: (19..24) "\n "
+ FORM: (24..38)
+ OPEN_PAREN: (24..25) "("
+ SYMBOL: (25..31)
+ IDENTIFIER: (25..31) "lambda"
+ ATMOSPHERE: (31..32) " "
+ SYMBOL: (32..33)
+ IDENTIFIER: (32..33) "z"
+ ATMOSPHERE: (33..34) " "
+ CONSTANT: (34..37)
+ NUMBER: (34..37) "100"
+ CLOSE_PAREN: (37..38) ")"
+ CLOSE_PAREN: (38..39) ")"
+ CLOSE_PAREN: (39..40) ")"
+ ATMOSPHERE: (40..41) "\n"
+ FORM: (41..83)
+ OPEN_PAREN: (41..42) "("
+ SYMBOL: (42..48)
+ IDENTIFIER: (42..48) "define"
+ ATMOSPHERE: (48..49) " "
+ SYMBOL: (49..50)
+ IDENTIFIER: (49..50) "y"
+ ATMOSPHERE: (50..51) " "
+ FORM: (51..82)
+ OPEN_PAREN: (51..52) "("
+ SYMBOL: (52..58)
+ IDENTIFIER: (52..58) "lambda"
+ ATMOSPHERE: (58..59) " "
+ SYMBOL: (59..60)
+ IDENTIFIER: (59..60) "y"
+ ATMOSPHERE: (60..65) "\n "
+ FORM: (65..81)
+ OPEN_PAREN: (65..66) "("
+ SYMBOL: (66..72)
+ IDENTIFIER: (66..72) "lambda"
+ ATMOSPHERE: (72..73) " "
+ SYMBOL: (73..74)
+ IDENTIFIER: (73..74) "z"
+ ATMOSPHERE: (74..75) " "
+ CONSTANT: (75..80)
+ NUMBER: (75..80) "23123"
+ CLOSE_PAREN: (80..81) ")"
+ CLOSE_PAREN: (81..82) ")"
+ CLOSE_PAREN: (82..83) ")"
+ ATMOSPHERE: (83..84) "\n"
+ FORM: (84..109)
+ OPEN_PAREN: (84..85) "("
+ SYMBOL: (85..91)
+ IDENTIFIER: (85..91) "define"
+ ATMOSPHERE: (91..92) " "
+ SYMBOL: (92..93)
+ IDENTIFIER: (92..93) "z"
+ ATMOSPHERE: (93..94) " "
+ FORM: (94..108)
+ OPEN_PAREN: (94..95) "("
+ SYMBOL: (95..101)
+ IDENTIFIER: (95..101) "lambda"
+ ATMOSPHERE: (101..102) " "
+ SYMBOL: (102..103)
+ IDENTIFIER: (102..103) "y"
+ ATMOSPHERE: (103..104) " "
+ CONSTANT: (104..107)
+ NUMBER: (104..107) "123"
+ CLOSE_PAREN: (107..108) ")"
+ CLOSE_PAREN: (108..109) ")"
+ ATMOSPHERE: (109..110) "\n"
+ FORM: (110..140)
+ OPEN_PAREN: (110..111) "("
+ SYMBOL: (111..117)
+ IDENTIFIER: (111..117) "define"
+ ATMOSPHERE: (117..118) " "
+ SYMBOL: (118..119)
+ IDENTIFIER: (118..119) "a"
+ ATMOSPHERE: (119..120) " "
+ FORM: (120..139)
+ OPEN_PAREN: (120..121) "("
+ SYMBOL: (121..127)
+ IDENTIFIER: (121..127) "lambda"
+ ATMOSPHERE: (127..128) " "
+ FORM: (128..135)
+ OPEN_PAREN: (128..129) "("
+ SYMBOL: (129..130)
+ IDENTIFIER: (129..130) "a"
+ ATMOSPHERE: (130..131) " "
+ SYMBOL: (131..132)
+ IDENTIFIER: (131..132) "b"
+ ATMOSPHERE: (132..133) " "
+ SYMBOL: (133..134)
+ IDENTIFIER: (133..134) "c"
+ CLOSE_PAREN: (134..135) ")"
+ ATMOSPHERE: (135..136) " "
+ CONSTANT: (136..138)
+ NUMBER: (136..138) "20"
+ CLOSE_PAREN: (138..139) ")"
+ CLOSE_PAREN: (139..140) ")"
+ ATMOSPHERE: (140..141) "\n"
+ FORM: (141..175)
+ OPEN_PAREN: (141..142) "("
+ SYMBOL: (142..148)
+ IDENTIFIER: (142..148) "define"
+ ATMOSPHERE: (148..149) " "
+ SYMBOL: (149..150)
+ IDENTIFIER: (149..150) "b"
+ ATMOSPHERE: (150..151) " "
+ FORM: (151..174)
+ OPEN_PAREN: (151..152) "("
+ SYMBOL: (152..158)
+ IDENTIFIER: (152..158) "lambda"
+ ATMOSPHERE: (158..159) " "
+ FORM: (159..168)
+ OPEN_PAREN: (159..160) "("
+ SYMBOL: (160..161)
+ IDENTIFIER: (160..161) "a"
+ ATMOSPHERE: (161..162) " "
+ SYMBOL: (162..163)
+ IDENTIFIER: (162..163) "b"
+ ATMOSPHERE: (163..164) " "
+ DOTTED_TAIL: (164..167)
+ DOT: (164..165) "."
+ ATMOSPHERE: (165..166) " "
+ SYMBOL: (166..167)
+ IDENTIFIER: (166..167) "c"
+ CLOSE_PAREN: (167..168) ")"
+ ATMOSPHERE: (168..169) " "
+ CONSTANT: (169..173)
+ NUMBER: (169..173) "1234"
+ CLOSE_PAREN: (173..174) ")"
+ CLOSE_PAREN: (174..175) ")"
+ ATMOSPHERE: (175..176) "\n"
+ FORM: (176..181)
+ OPEN_PAREN: (176..177) "("
+ FORM: (177..180)
+ OPEN_PAREN: (177..178) "("
+ SYMBOL: (178..179)
+ IDENTIFIER: (178..179) "x"
+ CLOSE_PAREN: (179..180) ")"
+ CLOSE_PAREN: (180..181) ")"
+ ATMOSPHERE: (181..182) " "
+ ATMOSPHERE: (182..190) "; -> 100"
+ EOF: (190..190) ""
diff --git a/spec/let.ast b/spec/let.ast
new file mode 100644
index 0000000..f0b743f
--- /dev/null
+++ b/spec/let.ast
@@ -0,0 +1,108 @@
+PROGRAM: (0..152)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..134)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..49)
+ IDENTIFIER: (43..49) "define"
+ ATMOSPHERE: (49..50) " "
+ FORM: (50..57)
+ OPEN_PAREN: (50..51) "("
+ SYMBOL: (51..54)
+ IDENTIFIER: (51..54) "foo"
+ ATMOSPHERE: (54..55) " "
+ SYMBOL: (55..56)
+ IDENTIFIER: (55..56) "a"
+ CLOSE_PAREN: (56..57) ")"
+ ATMOSPHERE: (57..62) "\n "
+ FORM: (62..133)
+ OPEN_PAREN: (62..63) "("
+ SYMBOL: (63..66)
+ IDENTIFIER: (63..66) "let"
+ ATMOSPHERE: (66..67) " "
+ FORM: (67..90)
+ OPEN_PAREN: (67..68) "("
+ FORM: (68..73)
+ OPEN_PAREN: (68..69) "("
+ SYMBOL: (69..70)
+ IDENTIFIER: (69..70) "b"
+ ATMOSPHERE: (70..71) " "
+ SYMBOL: (71..72)
+ IDENTIFIER: (71..72) "a"
+ CLOSE_PAREN: (72..73) ")"
+ ATMOSPHERE: (73..82) "\n "
+ FORM: (82..89)
+ OPEN_PAREN: (82..83) "("
+ SYMBOL: (83..84)
+ IDENTIFIER: (83..84) "c"
+ ATMOSPHERE: (84..85) " "
+ CONSTANT: (85..88)
+ NUMBER: (85..88) "100"
+ CLOSE_PAREN: (88..89) ")"
+ CLOSE_PAREN: (89..90) ")"
+ ATMOSPHERE: (90..99) "\n "
+ FORM: (99..116)
+ OPEN_PAREN: (99..100) "("
+ SYMBOL: (100..107)
+ IDENTIFIER: (100..107) "display"
+ ATMOSPHERE: (107..108) " "
+ FORM: (108..115)
+ OPEN_PAREN: (108..109) "("
+ SYMBOL: (109..110)
+ IDENTIFIER: (109..110) "+"
+ ATMOSPHERE: (110..111) " "
+ SYMBOL: (111..112)
+ IDENTIFIER: (111..112) "a"
+ ATMOSPHERE: (112..113) " "
+ SYMBOL: (113..114)
+ IDENTIFIER: (113..114) "b"
+ CLOSE_PAREN: (114..115) ")"
+ CLOSE_PAREN: (115..116) ")"
+ ATMOSPHERE: (116..125) "\n "
+ FORM: (125..132)
+ OPEN_PAREN: (125..126) "("
+ SYMBOL: (126..127)
+ IDENTIFIER: (126..127) "-"
+ ATMOSPHERE: (127..128) " "
+ SYMBOL: (128..129)
+ IDENTIFIER: (128..129) "b"
+ ATMOSPHERE: (129..130) " "
+ SYMBOL: (130..131)
+ IDENTIFIER: (130..131) "c"
+ CLOSE_PAREN: (131..132) ")"
+ CLOSE_PAREN: (132..133) ")"
+ CLOSE_PAREN: (133..134) ")"
+ ATMOSPHERE: (134..135) "\n"
+ FORM: (135..144)
+ OPEN_PAREN: (135..136) "("
+ SYMBOL: (136..139)
+ IDENTIFIER: (136..139) "foo"
+ ATMOSPHERE: (139..140) " "
+ CONSTANT: (140..143)
+ NUMBER: (140..143) "123"
+ CLOSE_PAREN: (143..144) ")"
+ ATMOSPHERE: (144..145) " "
+ ATMOSPHERE: (145..152) "; ~> 23"
+ EOF: (152..152) ""
diff --git a/spec/libcapture.ast b/spec/libcapture.ast
new file mode 100644
index 0000000..55702d9
--- /dev/null
+++ b/spec/libcapture.ast
@@ -0,0 +1,111 @@
+PROGRAM: (0..238)
+ FORM: (0..170)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..15)
+ IDENTIFIER: (1..15) "define-library"
+ ATMOSPHERE: (15..16) " "
+ FORM: (16..29)
+ OPEN_PAREN: (16..17) "("
+ SYMBOL: (17..20)
+ IDENTIFIER: (17..20) "lib"
+ ATMOSPHERE: (20..21) " "
+ SYMBOL: (21..28)
+ IDENTIFIER: (21..28) "capture"
+ CLOSE_PAREN: (28..29) ")"
+ ATMOSPHERE: (29..34) "\n "
+ FORM: (34..49)
+ OPEN_PAREN: (34..35) "("
+ SYMBOL: (35..41)
+ IDENTIFIER: (35..41) "export"
+ ATMOSPHERE: (41..42) " "
+ SYMBOL: (42..48)
+ IDENTIFIER: (42..48) "testit"
+ CLOSE_PAREN: (48..49) ")"
+ ATMOSPHERE: (49..54) "\n "
+ FORM: (54..169)
+ OPEN_PAREN: (54..55) "("
+ SYMBOL: (55..60)
+ IDENTIFIER: (55..60) "begin"
+ ATMOSPHERE: (60..69) "\n "
+ FORM: (69..93)
+ OPEN_PAREN: (69..70) "("
+ SYMBOL: (70..76)
+ IDENTIFIER: (70..76) "define"
+ ATMOSPHERE: (76..77) " "
+ SYMBOL: (77..83)
+ IDENTIFIER: (77..83) "testit"
+ ATMOSPHERE: (83..84) " "
+ CONSTANT: (84..92)
+ STRING: (84..92) "\"broken\""
+ CLOSE_PAREN: (92..93) ")"
+ ATMOSPHERE: (93..102) "\n "
+ FORM: (102..168)
+ OPEN_PAREN: (102..103) "("
+ SYMBOL: (103..106)
+ IDENTIFIER: (103..106) "let"
+ ATMOSPHERE: (106..107) " "
+ FORM: (107..129)
+ OPEN_PAREN: (107..108) "("
+ FORM: (108..128)
+ OPEN_PAREN: (108..109) "("
+ SYMBOL: (109..120)
+ IDENTIFIER: (109..120) "replacement"
+ ATMOSPHERE: (120..121) " "
+ CONSTANT: (121..127)
+ STRING: (121..127) "\"pass\""
+ CLOSE_PAREN: (127..128) ")"
+ CLOSE_PAREN: (128..129) ")"
+ ATMOSPHERE: (129..142) "\n "
+ FORM: (142..167)
+ OPEN_PAREN: (142..143) "("
+ SYMBOL: (143..147)
+ IDENTIFIER: (143..147) "set!"
+ ATMOSPHERE: (147..148) " "
+ SYMBOL: (148..154)
+ IDENTIFIER: (148..154) "testit"
+ ATMOSPHERE: (154..155) " "
+ SYMBOL: (155..166)
+ IDENTIFIER: (155..166) "replacement"
+ CLOSE_PAREN: (166..167) ")"
+ CLOSE_PAREN: (167..168) ")"
+ CLOSE_PAREN: (168..169) ")"
+ CLOSE_PAREN: (169..170) ")"
+ ATMOSPHERE: (170..171) "\n"
+ FORM: (171..212)
+ OPEN_PAREN: (171..172) "("
+ SYMBOL: (172..178)
+ IDENTIFIER: (172..178) "import"
+ ATMOSPHERE: (178..179) " "
+ FORM: (179..192)
+ OPEN_PAREN: (179..180) "("
+ SYMBOL: (180..183)
+ IDENTIFIER: (180..183) "lib"
+ ATMOSPHERE: (183..184) " "
+ SYMBOL: (184..191)
+ IDENTIFIER: (184..191) "capture"
+ CLOSE_PAREN: (191..192) ")"
+ ATMOSPHERE: (192..197) "\n "
+ FORM: (197..211)
+ OPEN_PAREN: (197..198) "("
+ SYMBOL: (198..204)
+ IDENTIFIER: (198..204) "scheme"
+ ATMOSPHERE: (204..205) " "
+ SYMBOL: (205..210)
+ IDENTIFIER: (205..210) "write"
+ CLOSE_PAREN: (210..211) ")"
+ CLOSE_PAREN: (211..212) ")"
+ ATMOSPHERE: (212..213) "\n"
+ FORM: (213..229)
+ OPEN_PAREN: (213..214) "("
+ SYMBOL: (214..221)
+ IDENTIFIER: (214..221) "display"
+ ATMOSPHERE: (221..222) " "
+ SYMBOL: (222..228)
+ IDENTIFIER: (222..228) "testit"
+ CLOSE_PAREN: (228..229) ")"
+ FORM: (229..238)
+ OPEN_PAREN: (229..230) "("
+ SYMBOL: (230..237)
+ IDENTIFIER: (230..237) "newline"
+ CLOSE_PAREN: (237..238) ")"
+ EOF: (238..238) ""
diff --git a/spec/libgreet.ast b/spec/libgreet.ast
new file mode 100644
index 0000000..b4a507e
--- /dev/null
+++ b/spec/libgreet.ast
@@ -0,0 +1,145 @@
+PROGRAM: (0..268)
+ FORM: (0..195)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..15)
+ IDENTIFIER: (1..15) "define-library"
+ ATMOSPHERE: (15..16) " "
+ FORM: (16..30)
+ OPEN_PAREN: (16..17) "("
+ SYMBOL: (17..21)
+ IDENTIFIER: (17..21) "test"
+ ATMOSPHERE: (21..22) " "
+ SYMBOL: (22..29)
+ IDENTIFIER: (22..29) "greeter"
+ CLOSE_PAREN: (29..30) ")"
+ ATMOSPHERE: (30..32) "\n\t"
+ FORM: (32..46)
+ OPEN_PAREN: (32..33) "("
+ SYMBOL: (33..39)
+ IDENTIFIER: (33..39) "export"
+ ATMOSPHERE: (39..40) " "
+ SYMBOL: (40..45)
+ IDENTIFIER: (40..45) "greet"
+ CLOSE_PAREN: (45..46) ")"
+ ATMOSPHERE: (46..48) "\n\t"
+ FORM: (48..87)
+ OPEN_PAREN: (48..49) "("
+ SYMBOL: (49..55)
+ IDENTIFIER: (49..55) "import"
+ ATMOSPHERE: (55..56) " "
+ FORM: (56..69)
+ OPEN_PAREN: (56..57) "("
+ SYMBOL: (57..63)
+ IDENTIFIER: (57..63) "scheme"
+ ATMOSPHERE: (63..64) " "
+ SYMBOL: (64..68)
+ IDENTIFIER: (64..68) "base"
+ CLOSE_PAREN: (68..69) ")"
+ ATMOSPHERE: (69..72) "\n\t\t"
+ FORM: (72..86)
+ OPEN_PAREN: (72..73) "("
+ SYMBOL: (73..79)
+ IDENTIFIER: (73..79) "scheme"
+ ATMOSPHERE: (79..80) " "
+ SYMBOL: (80..85)
+ IDENTIFIER: (80..85) "write"
+ CLOSE_PAREN: (85..86) ")"
+ CLOSE_PAREN: (86..87) ")"
+ ATMOSPHERE: (87..89) "\n\t"
+ FORM: (89..194)
+ OPEN_PAREN: (89..90) "("
+ SYMBOL: (90..95)
+ IDENTIFIER: (90..95) "begin"
+ ATMOSPHERE: (95..98) "\n\t\t"
+ FORM: (98..193)
+ OPEN_PAREN: (98..99) "("
+ SYMBOL: (99..105)
+ IDENTIFIER: (99..105) "define"
+ ATMOSPHERE: (105..106) " "
+ FORM: (106..120)
+ OPEN_PAREN: (106..107) "("
+ SYMBOL: (107..112)
+ IDENTIFIER: (107..112) "greet"
+ ATMOSPHERE: (112..113) " "
+ SYMBOL: (113..119)
+ IDENTIFIER: (113..119) "person"
+ CLOSE_PAREN: (119..120) ")"
+ ATMOSPHERE: (120..124) "\n\t\t\t"
+ FORM: (124..142)
+ OPEN_PAREN: (124..125) "("
+ SYMBOL: (125..132)
+ IDENTIFIER: (125..132) "display"
+ ATMOSPHERE: (132..133) " "
+ CONSTANT: (133..141)
+ STRING: (133..141) "\"Hello \""
+ CLOSE_PAREN: (141..142) ")"
+ ATMOSPHERE: (142..146) "\n\t\t\t"
+ FORM: (146..162)
+ OPEN_PAREN: (146..147) "("
+ SYMBOL: (147..154)
+ IDENTIFIER: (147..154) "display"
+ ATMOSPHERE: (154..155) " "
+ SYMBOL: (155..161)
+ IDENTIFIER: (155..161) "person"
+ CLOSE_PAREN: (161..162) ")"
+ ATMOSPHERE: (162..166) "\n\t\t\t"
+ FORM: (166..179)
+ OPEN_PAREN: (166..167) "("
+ SYMBOL: (167..174)
+ IDENTIFIER: (167..174) "display"
+ ATMOSPHERE: (174..175) " "
+ CONSTANT: (175..178)
+ CHARACTER: (175..178) "#\\!"
+ CLOSE_PAREN: (178..179) ")"
+ ATMOSPHERE: (179..183) "\n\t\t\t"
+ FORM: (183..192)
+ OPEN_PAREN: (183..184) "("
+ SYMBOL: (184..191)
+ IDENTIFIER: (184..191) "newline"
+ CLOSE_PAREN: (191..192) ")"
+ CLOSE_PAREN: (192..193) ")"
+ CLOSE_PAREN: (193..194) ")"
+ CLOSE_PAREN: (194..195) ")"
+ ATMOSPHERE: (195..197) "\n\n"
+ FORM: (197..247)
+ OPEN_PAREN: (197..198) "("
+ SYMBOL: (198..204)
+ IDENTIFIER: (198..204) "import"
+ ATMOSPHERE: (204..205) " "
+ FORM: (205..246)
+ OPEN_PAREN: (205..206) "("
+ SYMBOL: (206..212)
+ IDENTIFIER: (206..212) "prefix"
+ ATMOSPHERE: (212..213) " "
+ FORM: (213..240)
+ OPEN_PAREN: (213..214) "("
+ SYMBOL: (214..218)
+ IDENTIFIER: (214..218) "only"
+ ATMOSPHERE: (218..219) " "
+ FORM: (219..233)
+ OPEN_PAREN: (219..220) "("
+ SYMBOL: (220..224)
+ IDENTIFIER: (220..224) "test"
+ ATMOSPHERE: (224..225) " "
+ SYMBOL: (225..232)
+ IDENTIFIER: (225..232) "greeter"
+ CLOSE_PAREN: (232..233) ")"
+ ATMOSPHERE: (233..234) " "
+ SYMBOL: (234..239)
+ IDENTIFIER: (234..239) "greet"
+ CLOSE_PAREN: (239..240) ")"
+ ATMOSPHERE: (240..241) " "
+ SYMBOL: (241..245)
+ IDENTIFIER: (241..245) "grt/"
+ CLOSE_PAREN: (245..246) ")"
+ CLOSE_PAREN: (246..247) ")"
+ ATMOSPHERE: (247..249) "\n\n"
+ FORM: (249..268)
+ OPEN_PAREN: (249..250) "("
+ SYMBOL: (250..259)
+ IDENTIFIER: (250..259) "grt/greet"
+ ATMOSPHERE: (259..260) " "
+ CONSTANT: (260..267)
+ STRING: (260..267) "\"world\""
+ CLOSE_PAREN: (267..268) ")"
+ EOF: (268..268) ""
diff --git a/spec/libs.ast b/spec/libs.ast
new file mode 100644
index 0000000..366d499
--- /dev/null
+++ b/spec/libs.ast
@@ -0,0 +1,274 @@
+PROGRAM: (0..530)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..94)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..57)
+ IDENTIFIER: (43..57) "define-library"
+ ATMOSPHERE: (57..58) " "
+ FORM: (58..93)
+ OPEN_PAREN: (58..59) "("
+ SYMBOL: (59..61)
+ IDENTIFIER: (59..61) "it"
+ ATMOSPHERE: (61..62) " "
+ SYMBOL: (62..68)
+ IDENTIFIER: (62..68) "should"
+ ATMOSPHERE: (68..69) " "
+ CONSTANT: (69..72)
+ NUMBER: (69..72) "100"
+ ATMOSPHERE: (72..73) " "
+ SYMBOL: (73..80)
+ IDENTIFIER: (73..80) "support"
+ ATMOSPHERE: (80..81) " "
+ CONSTANT: (81..84)
+ NUMBER: (81..84) "202"
+ ATMOSPHERE: (84..85) " "
+ SYMBOL: (85..92)
+ IDENTIFIER: (85..92) "numbers"
+ CLOSE_PAREN: (92..93) ")"
+ CLOSE_PAREN: (93..94) ")"
+ ATMOSPHERE: (94..95) "\n"
+ FORM: (95..129)
+ OPEN_PAREN: (95..96) "("
+ SYMBOL: (96..110)
+ IDENTIFIER: (96..110) "define-library"
+ ATMOSPHERE: (110..111) " "
+ FORM: (111..128)
+ OPEN_PAREN: (111..112) "("
+ SYMBOL: (112..116)
+ IDENTIFIER: (112..116) "test"
+ ATMOSPHERE: (116..117) " "
+ SYMBOL: (117..127)
+ IDENTIFIER: (117..127) "dependency"
+ CLOSE_PAREN: (127..128) ")"
+ CLOSE_PAREN: (128..129) ")"
+ ATMOSPHERE: (129..130) "\n"
+ FORM: (130..346)
+ OPEN_PAREN: (130..131) "("
+ SYMBOL: (131..145)
+ IDENTIFIER: (131..145) "define-library"
+ ATMOSPHERE: (145..146) " "
+ FORM: (146..160)
+ OPEN_PAREN: (146..147) "("
+ SYMBOL: (147..154)
+ IDENTIFIER: (147..154) "example"
+ ATMOSPHERE: (154..155) " "
+ SYMBOL: (155..159)
+ IDENTIFIER: (155..159) "grid"
+ CLOSE_PAREN: (159..160) ")"
+ ATMOSPHERE: (160..162) "\n\t"
+ FORM: (162..215)
+ OPEN_PAREN: (162..163) "("
+ SYMBOL: (163..169)
+ IDENTIFIER: (163..169) "export"
+ ATMOSPHERE: (169..170) " "
+ SYMBOL: (170..173)
+ IDENTIFIER: (170..173) "fiz"
+ ATMOSPHERE: (173..174) " "
+ SYMBOL: (174..177)
+ IDENTIFIER: (174..177) "buz"
+ ATMOSPHERE: (177..180) "\n\t\t"
+ FORM: (180..214)
+ OPEN_PAREN: (180..181) "("
+ SYMBOL: (181..187)
+ IDENTIFIER: (181..187) "rename"
+ ATMOSPHERE: (187..188) " "
+ SYMBOL: (188..199)
+ IDENTIFIER: (188..199) "hidden-name"
+ ATMOSPHERE: (199..200) " "
+ SYMBOL: (200..213)
+ IDENTIFIER: (200..213) "external-name"
+ CLOSE_PAREN: (213..214) ")"
+ CLOSE_PAREN: (214..215) ")"
+ ATMOSPHERE: (215..217) "\n\t"
+ FORM: (217..243)
+ OPEN_PAREN: (217..218) "("
+ SYMBOL: (218..224)
+ IDENTIFIER: (218..224) "import"
+ ATMOSPHERE: (224..225) " "
+ FORM: (225..242)
+ OPEN_PAREN: (225..226) "("
+ SYMBOL: (226..230)
+ IDENTIFIER: (226..230) "test"
+ ATMOSPHERE: (230..231) " "
+ SYMBOL: (231..241)
+ IDENTIFIER: (231..241) "dependency"
+ CLOSE_PAREN: (241..242) ")"
+ CLOSE_PAREN: (242..243) ")"
+ ATMOSPHERE: (243..245) "\n\t"
+ FORM: (245..345)
+ OPEN_PAREN: (245..246) "("
+ SYMBOL: (246..251)
+ IDENTIFIER: (246..251) "begin"
+ ATMOSPHERE: (251..254) "\n\t\t"
+ FORM: (254..270)
+ OPEN_PAREN: (254..255) "("
+ SYMBOL: (255..261)
+ IDENTIFIER: (255..261) "define"
+ ATMOSPHERE: (261..262) " "
+ SYMBOL: (262..265)
+ IDENTIFIER: (262..265) "fiz"
+ ATMOSPHERE: (265..266) " "
+ CONSTANT: (266..269)
+ NUMBER: (266..269) "100"
+ CLOSE_PAREN: (269..270) ")"
+ ATMOSPHERE: (270..273) "\n\t\t"
+ FORM: (273..289)
+ OPEN_PAREN: (273..274) "("
+ SYMBOL: (274..280)
+ IDENTIFIER: (274..280) "define"
+ ATMOSPHERE: (280..281) " "
+ SYMBOL: (281..284)
+ IDENTIFIER: (281..284) "buz"
+ ATMOSPHERE: (284..285) " "
+ CONSTANT: (285..288)
+ NUMBER: (285..288) "100"
+ CLOSE_PAREN: (288..289) ")"
+ ATMOSPHERE: (289..292) "\n\t\t"
+ FORM: (292..316)
+ OPEN_PAREN: (292..293) "("
+ SYMBOL: (293..299)
+ IDENTIFIER: (293..299) "define"
+ ATMOSPHERE: (299..300) " "
+ SYMBOL: (300..311)
+ IDENTIFIER: (300..311) "hidden-name"
+ ATMOSPHERE: (311..312) " "
+ CONSTANT: (312..315)
+ NUMBER: (312..315) "101"
+ CLOSE_PAREN: (315..316) ")"
+ ATMOSPHERE: (316..319) "\n\t\t"
+ FORM: (319..344)
+ OPEN_PAREN: (319..320) "("
+ SYMBOL: (320..326)
+ IDENTIFIER: (320..326) "define"
+ ATMOSPHERE: (326..327) " "
+ SYMBOL: (327..339)
+ IDENTIFIER: (327..339) "not-exported"
+ ATMOSPHERE: (339..340) " "
+ CONSTANT: (340..343)
+ NUMBER: (340..343) "100"
+ CLOSE_PAREN: (343..344) ")"
+ CLOSE_PAREN: (344..345) ")"
+ CLOSE_PAREN: (345..346) ")"
+ ATMOSPHERE: (346..347) "\n"
+ FORM: (347..477)
+ OPEN_PAREN: (347..348) "("
+ SYMBOL: (348..362)
+ IDENTIFIER: (348..362) "define-library"
+ ATMOSPHERE: (362..363) " "
+ FORM: (363..377)
+ OPEN_PAREN: (363..364) "("
+ SYMBOL: (364..368)
+ IDENTIFIER: (364..368) "test"
+ ATMOSPHERE: (368..369) " "
+ SYMBOL: (369..376)
+ IDENTIFIER: (369..376) "greeter"
+ CLOSE_PAREN: (376..377) ")"
+ ATMOSPHERE: (377..379) "\n\t"
+ FORM: (379..417)
+ OPEN_PAREN: (379..380) "("
+ SYMBOL: (380..386)
+ IDENTIFIER: (380..386) "import"
+ ATMOSPHERE: (386..387) " "
+ FORM: (387..416)
+ OPEN_PAREN: (387..388) "("
+ SYMBOL: (388..394)
+ IDENTIFIER: (388..394) "prefix"
+ ATMOSPHERE: (394..395) " "
+ FORM: (395..409)
+ OPEN_PAREN: (395..396) "("
+ SYMBOL: (396..403)
+ IDENTIFIER: (396..403) "example"
+ ATMOSPHERE: (403..404) " "
+ SYMBOL: (404..408)
+ IDENTIFIER: (404..408) "grid"
+ CLOSE_PAREN: (408..409) ")"
+ ATMOSPHERE: (409..410) " "
+ SYMBOL: (410..415)
+ IDENTIFIER: (410..415) "grid/"
+ CLOSE_PAREN: (415..416) ")"
+ CLOSE_PAREN: (416..417) ")"
+ ATMOSPHERE: (417..419) "\n\t"
+ FORM: (419..433)
+ OPEN_PAREN: (419..420) "("
+ SYMBOL: (420..426)
+ IDENTIFIER: (420..426) "export"
+ ATMOSPHERE: (426..427) " "
+ SYMBOL: (427..432)
+ IDENTIFIER: (427..432) "greet"
+ CLOSE_PAREN: (432..433) ")"
+ ATMOSPHERE: (433..435) "\n\t"
+ FORM: (435..476)
+ OPEN_PAREN: (435..436) "("
+ SYMBOL: (436..441)
+ IDENTIFIER: (436..441) "begin"
+ ATMOSPHERE: (441..442) " "
+ FORM: (442..475)
+ OPEN_PAREN: (442..443) "("
+ SYMBOL: (443..449)
+ IDENTIFIER: (443..449) "define"
+ ATMOSPHERE: (449..450) " "
+ SYMBOL: (450..455)
+ IDENTIFIER: (450..455) "greet"
+ ATMOSPHERE: (455..456) " "
+ SYMBOL: (456..474)
+ IDENTIFIER: (456..474) "grid/external-name"
+ CLOSE_PAREN: (474..475) ")"
+ CLOSE_PAREN: (475..476) ")"
+ CLOSE_PAREN: (476..477) ")"
+ ATMOSPHERE: (477..478) "\n"
+ FORM: (478..514)
+ OPEN_PAREN: (478..479) "("
+ SYMBOL: (479..485)
+ IDENTIFIER: (479..485) "import"
+ ATMOSPHERE: (485..486) " "
+ FORM: (486..513)
+ OPEN_PAREN: (486..487) "("
+ SYMBOL: (487..491)
+ IDENTIFIER: (487..491) "only"
+ ATMOSPHERE: (491..492) " "
+ FORM: (492..506)
+ OPEN_PAREN: (492..493) "("
+ SYMBOL: (493..497)
+ IDENTIFIER: (493..497) "test"
+ ATMOSPHERE: (497..498) " "
+ SYMBOL: (498..505)
+ IDENTIFIER: (498..505) "greeter"
+ CLOSE_PAREN: (505..506) ")"
+ ATMOSPHERE: (506..507) " "
+ SYMBOL: (507..512)
+ IDENTIFIER: (507..512) "greet"
+ CLOSE_PAREN: (512..513) ")"
+ CLOSE_PAREN: (513..514) ")"
+ ATMOSPHERE: (514..515) "\n"
+ FORM: (515..530)
+ OPEN_PAREN: (515..516) "("
+ SYMBOL: (516..523)
+ IDENTIFIER: (516..523) "display"
+ ATMOSPHERE: (523..524) " "
+ SYMBOL: (524..529)
+ IDENTIFIER: (524..529) "greet"
+ CLOSE_PAREN: (529..530) ")"
+ EOF: (530..530) ""
diff --git a/spec/lists.ast b/spec/lists.ast
new file mode 100644
index 0000000..9f81217
--- /dev/null
+++ b/spec/lists.ast
@@ -0,0 +1,1770 @@
+PROGRAM: (0..2619)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..43) "\n\n"
+ FORM: (43..239)
+ OPEN_PAREN: (43..44) "("
+ SYMBOL: (44..51)
+ IDENTIFIER: (44..51) "display"
+ ATMOSPHERE: (51..52) " "
+ FORM: (52..238)
+ OPEN_PAREN: (52..53) "("
+ SYMBOL: (53..57)
+ IDENTIFIER: (53..57) "list"
+ ATMOSPHERE: (57..62) "\n "
+ FORM: (62..77)
+ OPEN_PAREN: (62..63) "("
+ SYMBOL: (63..67)
+ IDENTIFIER: (63..67) "list"
+ ATMOSPHERE: (67..68) " "
+ CONSTANT: (68..70)
+ NUMBER: (68..70) "12"
+ ATMOSPHERE: (70..71) " "
+ CONSTANT: (71..73)
+ NUMBER: (71..73) "34"
+ ATMOSPHERE: (73..74) " "
+ CONSTANT: (74..76)
+ NUMBER: (74..76) "56"
+ CLOSE_PAREN: (76..77) ")"
+ ATMOSPHERE: (77..105) " "
+ ATMOSPHERE: (105..117) "; (12 34 56)"
+ ATMOSPHERE: (117..122) "\n "
+ FORM: (122..155)
+ OPEN_PAREN: (122..123) "("
+ SYMBOL: (123..126)
+ IDENTIFIER: (123..126) "cdr"
+ ATMOSPHERE: (126..127) " "
+ FORM: (127..154)
+ OPEN_PAREN: (127..128) "("
+ SYMBOL: (128..131)
+ IDENTIFIER: (128..131) "cdr"
+ ATMOSPHERE: (131..132) " "
+ FORM: (132..153)
+ OPEN_PAREN: (132..133) "("
+ SYMBOL: (133..137)
+ IDENTIFIER: (133..137) "list"
+ ATMOSPHERE: (137..138) " "
+ CONSTANT: (138..141)
+ STRING: (138..141) "\"a\""
+ ATMOSPHERE: (141..142) " "
+ CONSTANT: (142..145)
+ CHARACTER: (142..145) "#\\B"
+ ATMOSPHERE: (145..146) " "
+ CONSTANT: (146..148)
+ BOOLEAN: (146..148) "#f"
+ ATMOSPHERE: (148..149) " "
+ CONSTANT: (149..152)
+ NUMBER: (149..152) "4.0"
+ CLOSE_PAREN: (152..153) ")"
+ CLOSE_PAREN: (153..154) ")"
+ CLOSE_PAREN: (154..155) ")"
+ ATMOSPHERE: (155..165) " "
+ ATMOSPHERE: (165..178) "; -> (#f 4.0)"
+ ATMOSPHERE: (178..183) "\n "
+ FORM: (183..224)
+ OPEN_PAREN: (183..184) "("
+ SYMBOL: (184..187)
+ IDENTIFIER: (184..187) "car"
+ ATMOSPHERE: (187..188) " "
+ FORM: (188..223)
+ OPEN_PAREN: (188..189) "("
+ SYMBOL: (189..192)
+ IDENTIFIER: (189..192) "cdr"
+ ATMOSPHERE: (192..193) " "
+ FORM: (193..222)
+ OPEN_PAREN: (193..194) "("
+ SYMBOL: (194..197)
+ IDENTIFIER: (194..197) "car"
+ ATMOSPHERE: (197..198) " "
+ FORM: (198..221)
+ OPEN_PAREN: (198..199) "("
+ SYMBOL: (199..203)
+ IDENTIFIER: (199..203) "list"
+ ATMOSPHERE: (203..204) " "
+ FORM: (204..216)
+ OPEN_PAREN: (204..205) "("
+ SYMBOL: (205..209)
+ IDENTIFIER: (205..209) "list"
+ ATMOSPHERE: (209..210) " "
+ CONSTANT: (210..211)
+ NUMBER: (210..211) "1"
+ ATMOSPHERE: (211..212) " "
+ CONSTANT: (212..213)
+ NUMBER: (212..213) "2"
+ ATMOSPHERE: (213..214) " "
+ CONSTANT: (214..215)
+ NUMBER: (214..215) "3"
+ CLOSE_PAREN: (215..216) ")"
+ ATMOSPHERE: (216..217) " "
+ CONSTANT: (217..218)
+ NUMBER: (217..218) "4"
+ ATMOSPHERE: (218..219) " "
+ CONSTANT: (219..220)
+ NUMBER: (219..220) "5"
+ CLOSE_PAREN: (220..221) ")"
+ CLOSE_PAREN: (221..222) ")"
+ CLOSE_PAREN: (222..223) ")"
+ CLOSE_PAREN: (223..224) ")"
+ ATMOSPHERE: (224..226) " "
+ ATMOSPHERE: (226..232) "; -> 2"
+ ATMOSPHERE: (232..237) "\n "
+ CLOSE_PAREN: (237..238) ")"
+ CLOSE_PAREN: (238..239) ")"
+ ATMOSPHERE: (239..240) "\n"
+ FORM: (240..249)
+ OPEN_PAREN: (240..241) "("
+ SYMBOL: (241..248)
+ IDENTIFIER: (241..248) "newline"
+ CLOSE_PAREN: (248..249) ")"
+ ATMOSPHERE: (249..251) "\n\n"
+ FORM: (251..436)
+ OPEN_PAREN: (251..252) "("
+ SYMBOL: (252..258)
+ IDENTIFIER: (252..258) "define"
+ ATMOSPHERE: (258..259) " "
+ FORM: (259..269)
+ OPEN_PAREN: (259..260) "("
+ SYMBOL: (260..263)
+ IDENTIFIER: (260..263) "rev"
+ ATMOSPHERE: (263..264) " "
+ SYMBOL: (264..268)
+ IDENTIFIER: (264..268) "list"
+ CLOSE_PAREN: (268..269) ")"
+ ATMOSPHERE: (269..274) "\n "
+ FORM: (274..408)
+ OPEN_PAREN: (274..275) "("
+ SYMBOL: (275..281)
+ IDENTIFIER: (275..281) "define"
+ ATMOSPHERE: (281..282) " "
+ FORM: (282..305)
+ OPEN_PAREN: (282..283) "("
+ SYMBOL: (283..295)
+ IDENTIFIER: (283..295) "rev-with-acc"
+ ATMOSPHERE: (295..296) " "
+ SYMBOL: (296..300)
+ IDENTIFIER: (296..300) "list"
+ ATMOSPHERE: (300..301) " "
+ SYMBOL: (301..304)
+ IDENTIFIER: (301..304) "acc"
+ CLOSE_PAREN: (304..305) ")"
+ ATMOSPHERE: (305..314) "\n "
+ FORM: (314..407)
+ OPEN_PAREN: (314..315) "("
+ SYMBOL: (315..317)
+ IDENTIFIER: (315..317) "if"
+ ATMOSPHERE: (317..318) " "
+ FORM: (318..330)
+ OPEN_PAREN: (318..319) "("
+ SYMBOL: (319..324)
+ IDENTIFIER: (319..324) "null?"
+ ATMOSPHERE: (324..325) " "
+ SYMBOL: (325..329)
+ IDENTIFIER: (325..329) "list"
+ CLOSE_PAREN: (329..330) ")"
+ ATMOSPHERE: (330..343) "\n "
+ SYMBOL: (343..346)
+ IDENTIFIER: (343..346) "acc"
+ ATMOSPHERE: (346..359) "\n "
+ FORM: (359..406)
+ OPEN_PAREN: (359..360) "("
+ SYMBOL: (360..372)
+ IDENTIFIER: (360..372) "rev-with-acc"
+ ATMOSPHERE: (372..373) " "
+ FORM: (373..383)
+ OPEN_PAREN: (373..374) "("
+ SYMBOL: (374..377)
+ IDENTIFIER: (374..377) "cdr"
+ ATMOSPHERE: (377..378) " "
+ SYMBOL: (378..382)
+ IDENTIFIER: (378..382) "list"
+ CLOSE_PAREN: (382..383) ")"
+ ATMOSPHERE: (383..384) " "
+ FORM: (384..405)
+ OPEN_PAREN: (384..385) "("
+ SYMBOL: (385..389)
+ IDENTIFIER: (385..389) "cons"
+ ATMOSPHERE: (389..390) " "
+ FORM: (390..400)
+ OPEN_PAREN: (390..391) "("
+ SYMBOL: (391..394)
+ IDENTIFIER: (391..394) "car"
+ ATMOSPHERE: (394..395) " "
+ SYMBOL: (395..399)
+ IDENTIFIER: (395..399) "list"
+ CLOSE_PAREN: (399..400) ")"
+ ATMOSPHERE: (400..401) " "
+ SYMBOL: (401..404)
+ IDENTIFIER: (401..404) "acc"
+ CLOSE_PAREN: (404..405) ")"
+ CLOSE_PAREN: (405..406) ")"
+ CLOSE_PAREN: (406..407) ")"
+ CLOSE_PAREN: (407..408) ")"
+ ATMOSPHERE: (408..413) "\n "
+ FORM: (413..435)
+ OPEN_PAREN: (413..414) "("
+ SYMBOL: (414..426)
+ IDENTIFIER: (414..426) "rev-with-acc"
+ ATMOSPHERE: (426..427) " "
+ SYMBOL: (427..431)
+ IDENTIFIER: (427..431) "list"
+ ATMOSPHERE: (431..432) " "
+ FORM: (432..434)
+ OPEN_PAREN: (432..433) "("
+ CLOSE_PAREN: (433..434) ")"
+ CLOSE_PAREN: (434..435) ")"
+ CLOSE_PAREN: (435..436) ")"
+ ATMOSPHERE: (436..438) "\n\n"
+ FORM: (438..470)
+ OPEN_PAREN: (438..439) "("
+ SYMBOL: (439..446)
+ IDENTIFIER: (439..446) "display"
+ ATMOSPHERE: (446..447) " "
+ FORM: (447..469)
+ OPEN_PAREN: (447..448) "("
+ SYMBOL: (448..451)
+ IDENTIFIER: (448..451) "rev"
+ ATMOSPHERE: (451..452) " "
+ FORM: (452..468)
+ OPEN_PAREN: (452..453) "("
+ SYMBOL: (453..457)
+ IDENTIFIER: (453..457) "list"
+ ATMOSPHERE: (457..458) " "
+ CONSTANT: (458..459)
+ NUMBER: (458..459) "1"
+ ATMOSPHERE: (459..460) " "
+ CONSTANT: (460..461)
+ NUMBER: (460..461) "2"
+ ATMOSPHERE: (461..462) " "
+ CONSTANT: (462..463)
+ NUMBER: (462..463) "3"
+ ATMOSPHERE: (463..464) " "
+ CONSTANT: (464..465)
+ NUMBER: (464..465) "4"
+ ATMOSPHERE: (465..466) " "
+ CONSTANT: (466..467)
+ NUMBER: (466..467) "5"
+ CLOSE_PAREN: (467..468) ")"
+ CLOSE_PAREN: (468..469) ")"
+ CLOSE_PAREN: (469..470) ")"
+ ATMOSPHERE: (470..471) "\n"
+ FORM: (471..480)
+ OPEN_PAREN: (471..472) "("
+ SYMBOL: (472..479)
+ IDENTIFIER: (472..479) "newline"
+ CLOSE_PAREN: (479..480) ")"
+ ATMOSPHERE: (480..482) "\n\n"
+ FORM: (482..513)
+ OPEN_PAREN: (482..483) "("
+ SYMBOL: (483..490)
+ IDENTIFIER: (483..490) "display"
+ ATMOSPHERE: (490..491) " "
+ FORM: (491..512)
+ OPEN_PAREN: (491..492) "("
+ SYMBOL: (492..497)
+ IDENTIFIER: (492..497) "list?"
+ ATMOSPHERE: (497..498) " "
+ FORM: (498..511)
+ OPEN_PAREN: (498..499) "("
+ SYMBOL: (499..503)
+ IDENTIFIER: (499..503) "cons"
+ ATMOSPHERE: (503..504) " "
+ CONSTANT: (504..507)
+ STRING: (504..507) "\"a\""
+ ATMOSPHERE: (507..508) " "
+ FORM: (508..510)
+ OPEN_PAREN: (508..509) "("
+ CLOSE_PAREN: (509..510) ")"
+ CLOSE_PAREN: (510..511) ")"
+ CLOSE_PAREN: (511..512) ")"
+ CLOSE_PAREN: (512..513) ")"
+ ATMOSPHERE: (513..514) " "
+ ATMOSPHERE: (514..521) "; -> #t"
+ ATMOSPHERE: (521..522) "\n"
+ FORM: (522..557)
+ OPEN_PAREN: (522..523) "("
+ SYMBOL: (523..530)
+ IDENTIFIER: (523..530) "display"
+ ATMOSPHERE: (530..531) " "
+ FORM: (531..556)
+ OPEN_PAREN: (531..532) "("
+ SYMBOL: (532..537)
+ IDENTIFIER: (532..537) "list?"
+ ATMOSPHERE: (537..538) " "
+ FORM: (538..555)
+ OPEN_PAREN: (538..539) "("
+ SYMBOL: (539..543)
+ IDENTIFIER: (539..543) "cons"
+ ATMOSPHERE: (543..544) " "
+ CONSTANT: (544..547)
+ STRING: (544..547) "\"a\""
+ ATMOSPHERE: (547..548) " "
+ FORM: (548..554)
+ OPEN_PAREN: (548..549) "("
+ SYMBOL: (549..553)
+ IDENTIFIER: (549..553) "list"
+ CLOSE_PAREN: (553..554) ")"
+ CLOSE_PAREN: (554..555) ")"
+ CLOSE_PAREN: (555..556) ")"
+ CLOSE_PAREN: (556..557) ")"
+ ATMOSPHERE: (557..558) " "
+ ATMOSPHERE: (558..565) "; -> #t"
+ ATMOSPHERE: (565..566) "\n"
+ FORM: (566..598)
+ OPEN_PAREN: (566..567) "("
+ SYMBOL: (567..574)
+ IDENTIFIER: (567..574) "display"
+ ATMOSPHERE: (574..575) " "
+ FORM: (575..597)
+ OPEN_PAREN: (575..576) "("
+ SYMBOL: (576..581)
+ IDENTIFIER: (576..581) "list?"
+ ATMOSPHERE: (581..582) " "
+ FORM: (582..596)
+ OPEN_PAREN: (582..583) "("
+ SYMBOL: (583..587)
+ IDENTIFIER: (583..587) "cons"
+ ATMOSPHERE: (587..588) " "
+ CONSTANT: (588..591)
+ STRING: (588..591) "\"a\""
+ ATMOSPHERE: (591..592) " "
+ CONSTANT: (592..595)
+ STRING: (592..595) "\"b\""
+ CLOSE_PAREN: (595..596) ")"
+ CLOSE_PAREN: (596..597) ")"
+ CLOSE_PAREN: (597..598) ")"
+ ATMOSPHERE: (598..599) " "
+ ATMOSPHERE: (599..606) "; -> #f"
+ ATMOSPHERE: (606..607) "\n"
+ FORM: (607..616)
+ OPEN_PAREN: (607..608) "("
+ SYMBOL: (608..615)
+ IDENTIFIER: (608..615) "newline"
+ CLOSE_PAREN: (615..616) ")"
+ ATMOSPHERE: (616..618) "\n\n"
+ FORM: (618..649)
+ OPEN_PAREN: (618..619) "("
+ SYMBOL: (619..626)
+ IDENTIFIER: (619..626) "display"
+ ATMOSPHERE: (626..627) " "
+ FORM: (627..648)
+ OPEN_PAREN: (627..628) "("
+ SYMBOL: (628..633)
+ IDENTIFIER: (628..633) "pair?"
+ ATMOSPHERE: (633..634) " "
+ FORM: (634..647)
+ OPEN_PAREN: (634..635) "("
+ SYMBOL: (635..639)
+ IDENTIFIER: (635..639) "cons"
+ ATMOSPHERE: (639..640) " "
+ CONSTANT: (640..643)
+ STRING: (640..643) "\"a\""
+ ATMOSPHERE: (643..644) " "
+ FORM: (644..646)
+ OPEN_PAREN: (644..645) "("
+ CLOSE_PAREN: (645..646) ")"
+ CLOSE_PAREN: (646..647) ")"
+ CLOSE_PAREN: (647..648) ")"
+ CLOSE_PAREN: (648..649) ")"
+ ATMOSPHERE: (649..650) " "
+ ATMOSPHERE: (650..657) "; -> #t"
+ ATMOSPHERE: (657..658) "\n"
+ FORM: (658..693)
+ OPEN_PAREN: (658..659) "("
+ SYMBOL: (659..666)
+ IDENTIFIER: (659..666) "display"
+ ATMOSPHERE: (666..667) " "
+ FORM: (667..692)
+ OPEN_PAREN: (667..668) "("
+ SYMBOL: (668..673)
+ IDENTIFIER: (668..673) "pair?"
+ ATMOSPHERE: (673..674) " "
+ FORM: (674..691)
+ OPEN_PAREN: (674..675) "("
+ SYMBOL: (675..679)
+ IDENTIFIER: (675..679) "cons"
+ ATMOSPHERE: (679..680) " "
+ CONSTANT: (680..683)
+ STRING: (680..683) "\"a\""
+ ATMOSPHERE: (683..684) " "
+ FORM: (684..690)
+ OPEN_PAREN: (684..685) "("
+ SYMBOL: (685..689)
+ IDENTIFIER: (685..689) "list"
+ CLOSE_PAREN: (689..690) ")"
+ CLOSE_PAREN: (690..691) ")"
+ CLOSE_PAREN: (691..692) ")"
+ CLOSE_PAREN: (692..693) ")"
+ ATMOSPHERE: (693..694) " "
+ ATMOSPHERE: (694..701) "; -> #t"
+ ATMOSPHERE: (701..702) "\n"
+ FORM: (702..734)
+ OPEN_PAREN: (702..703) "("
+ SYMBOL: (703..710)
+ IDENTIFIER: (703..710) "display"
+ ATMOSPHERE: (710..711) " "
+ FORM: (711..733)
+ OPEN_PAREN: (711..712) "("
+ SYMBOL: (712..717)
+ IDENTIFIER: (712..717) "pair?"
+ ATMOSPHERE: (717..718) " "
+ FORM: (718..732)
+ OPEN_PAREN: (718..719) "("
+ SYMBOL: (719..723)
+ IDENTIFIER: (719..723) "cons"
+ ATMOSPHERE: (723..724) " "
+ CONSTANT: (724..727)
+ STRING: (724..727) "\"a\""
+ ATMOSPHERE: (727..728) " "
+ CONSTANT: (728..731)
+ STRING: (728..731) "\"b\""
+ CLOSE_PAREN: (731..732) ")"
+ CLOSE_PAREN: (732..733) ")"
+ CLOSE_PAREN: (733..734) ")"
+ ATMOSPHERE: (734..735) " "
+ ATMOSPHERE: (735..742) "; -> #t"
+ ATMOSPHERE: (742..743) "\n"
+ FORM: (743..752)
+ OPEN_PAREN: (743..744) "("
+ SYMBOL: (744..751)
+ IDENTIFIER: (744..751) "newline"
+ CLOSE_PAREN: (751..752) ")"
+ ATMOSPHERE: (752..754) "\n\n"
+ FORM: (754..782)
+ OPEN_PAREN: (754..755) "("
+ SYMBOL: (755..762)
+ IDENTIFIER: (755..762) "display"
+ ATMOSPHERE: (762..763) " "
+ FORM: (763..781)
+ OPEN_PAREN: (763..764) "("
+ SYMBOL: (764..770)
+ IDENTIFIER: (764..770) "append"
+ ATMOSPHERE: (770..771) " "
+ QUOTED_DATUM: (771..776)
+ QUOTE: (771..772) "’"
+ FORM: (772..775)
+ OPEN_PAREN: (772..773) "("
+ SYMBOL: (773..774)
+ IDENTIFIER: (773..774) "x"
+ CLOSE_PAREN: (774..775) ")"
+ ATMOSPHERE: (775..776) " "
+ QUOTED_DATUM: (776..780)
+ QUOTE: (776..777) "’"
+ FORM: (777..780)
+ OPEN_PAREN: (777..778) "("
+ SYMBOL: (778..779)
+ IDENTIFIER: (778..779) "y"
+ CLOSE_PAREN: (779..780) ")"
+ CLOSE_PAREN: (780..781) ")"
+ CLOSE_PAREN: (781..782) ")"
+ FORM: (782..791)
+ OPEN_PAREN: (782..783) "("
+ SYMBOL: (783..790)
+ IDENTIFIER: (783..790) "newline"
+ CLOSE_PAREN: (790..791) ")"
+ ATMOSPHERE: (791..792) " "
+ ATMOSPHERE: (792..802) "; -> (x y)"
+ ATMOSPHERE: (802..803) "\n"
+ FORM: (803..835)
+ OPEN_PAREN: (803..804) "("
+ SYMBOL: (804..811)
+ IDENTIFIER: (804..811) "display"
+ ATMOSPHERE: (811..812) " "
+ FORM: (812..834)
+ OPEN_PAREN: (812..813) "("
+ SYMBOL: (813..819)
+ IDENTIFIER: (813..819) "append"
+ ATMOSPHERE: (819..820) " "
+ QUOTED_DATUM: (820..825)
+ QUOTE: (820..821) "’"
+ FORM: (821..824)
+ OPEN_PAREN: (821..822) "("
+ SYMBOL: (822..823)
+ IDENTIFIER: (822..823) "a"
+ CLOSE_PAREN: (823..824) ")"
+ ATMOSPHERE: (824..825) " "
+ QUOTED_DATUM: (825..833)
+ QUOTE: (825..826) "’"
+ FORM: (826..833)
+ OPEN_PAREN: (826..827) "("
+ SYMBOL: (827..828)
+ IDENTIFIER: (827..828) "b"
+ ATMOSPHERE: (828..829) " "
+ SYMBOL: (829..830)
+ IDENTIFIER: (829..830) "c"
+ ATMOSPHERE: (830..831) " "
+ SYMBOL: (831..832)
+ IDENTIFIER: (831..832) "d"
+ CLOSE_PAREN: (832..833) ")"
+ CLOSE_PAREN: (833..834) ")"
+ CLOSE_PAREN: (834..835) ")"
+ FORM: (835..844)
+ OPEN_PAREN: (835..836) "("
+ SYMBOL: (836..843)
+ IDENTIFIER: (836..843) "newline"
+ CLOSE_PAREN: (843..844) ")"
+ ATMOSPHERE: (844..845) " "
+ ATMOSPHERE: (845..859) "; -> (a b c d)"
+ ATMOSPHERE: (859..860) "\n"
+ FORM: (860..894)
+ OPEN_PAREN: (860..861) "("
+ SYMBOL: (861..868)
+ IDENTIFIER: (861..868) "display"
+ ATMOSPHERE: (868..869) " "
+ FORM: (869..893)
+ OPEN_PAREN: (869..870) "("
+ SYMBOL: (870..876)
+ IDENTIFIER: (870..876) "append"
+ ATMOSPHERE: (876..877) " "
+ QUOTED_DATUM: (877..886)
+ QUOTE: (877..878) "’"
+ FORM: (878..885)
+ OPEN_PAREN: (878..879) "("
+ SYMBOL: (879..880)
+ IDENTIFIER: (879..880) "a"
+ ATMOSPHERE: (880..881) " "
+ FORM: (881..884)
+ OPEN_PAREN: (881..882) "("
+ SYMBOL: (882..883)
+ IDENTIFIER: (882..883) "b"
+ CLOSE_PAREN: (883..884) ")"
+ CLOSE_PAREN: (884..885) ")"
+ ATMOSPHERE: (885..886) " "
+ QUOTED_DATUM: (886..892)
+ QUOTE: (886..887) "’"
+ FORM: (887..892)
+ OPEN_PAREN: (887..888) "("
+ FORM: (888..891)
+ OPEN_PAREN: (888..889) "("
+ SYMBOL: (889..890)
+ IDENTIFIER: (889..890) "c"
+ CLOSE_PAREN: (890..891) ")"
+ CLOSE_PAREN: (891..892) ")"
+ CLOSE_PAREN: (892..893) ")"
+ CLOSE_PAREN: (893..894) ")"
+ FORM: (894..903)
+ OPEN_PAREN: (894..895) "("
+ SYMBOL: (895..902)
+ IDENTIFIER: (895..902) "newline"
+ CLOSE_PAREN: (902..903) ")"
+ ATMOSPHERE: (903..904) " "
+ ATMOSPHERE: (904..920) "; -> (a (b) (c))"
+ ATMOSPHERE: (920..921) "\n"
+ FORM: (921..955)
+ OPEN_PAREN: (921..922) "("
+ SYMBOL: (922..929)
+ IDENTIFIER: (922..929) "display"
+ ATMOSPHERE: (929..930) " "
+ FORM: (930..954)
+ OPEN_PAREN: (930..931) "("
+ SYMBOL: (931..937)
+ IDENTIFIER: (931..937) "append"
+ ATMOSPHERE: (937..938) " "
+ QUOTED_DATUM: (938..945)
+ QUOTE: (938..939) "’"
+ FORM: (939..944)
+ OPEN_PAREN: (939..940) "("
+ SYMBOL: (940..941)
+ IDENTIFIER: (940..941) "a"
+ ATMOSPHERE: (941..942) " "
+ SYMBOL: (942..943)
+ IDENTIFIER: (942..943) "b"
+ CLOSE_PAREN: (943..944) ")"
+ ATMOSPHERE: (944..945) " "
+ QUOTED_DATUM: (945..953)
+ QUOTE: (945..946) "’"
+ FORM: (946..953)
+ OPEN_PAREN: (946..947) "("
+ SYMBOL: (947..948)
+ IDENTIFIER: (947..948) "c"
+ ATMOSPHERE: (948..949) " "
+ DOTTED_TAIL: (949..952)
+ DOT: (949..950) "."
+ ATMOSPHERE: (950..951) " "
+ SYMBOL: (951..952)
+ IDENTIFIER: (951..952) "d"
+ CLOSE_PAREN: (952..953) ")"
+ CLOSE_PAREN: (953..954) ")"
+ CLOSE_PAREN: (954..955) ")"
+ FORM: (955..964)
+ OPEN_PAREN: (955..956) "("
+ SYMBOL: (956..963)
+ IDENTIFIER: (956..963) "newline"
+ CLOSE_PAREN: (963..964) ")"
+ ATMOSPHERE: (964..965) " "
+ ATMOSPHERE: (965..1005) "; -> (a b c . d) ;; FIXME: quoted pairs!"
+ ATMOSPHERE: (1005..1006) "\n"
+ FORM: (1006..1044)
+ OPEN_PAREN: (1006..1007) "("
+ SYMBOL: (1007..1014)
+ IDENTIFIER: (1007..1014) "display"
+ ATMOSPHERE: (1014..1015) " "
+ FORM: (1015..1043)
+ OPEN_PAREN: (1015..1016) "("
+ SYMBOL: (1016..1022)
+ IDENTIFIER: (1016..1022) "append"
+ ATMOSPHERE: (1022..1023) " "
+ QUOTED_DATUM: (1023..1030)
+ QUOTE: (1023..1024) "’"
+ FORM: (1024..1029)
+ OPEN_PAREN: (1024..1025) "("
+ SYMBOL: (1025..1026)
+ IDENTIFIER: (1025..1026) "a"
+ ATMOSPHERE: (1026..1027) " "
+ SYMBOL: (1027..1028)
+ IDENTIFIER: (1027..1028) "b"
+ CLOSE_PAREN: (1028..1029) ")"
+ ATMOSPHERE: (1029..1030) " "
+ FORM: (1030..1042)
+ OPEN_PAREN: (1030..1031) "("
+ SYMBOL: (1031..1035)
+ IDENTIFIER: (1031..1035) "cons"
+ ATMOSPHERE: (1035..1036) " "
+ QUOTED_DATUM: (1036..1039)
+ QUOTE: (1036..1037) "'"
+ SYMBOL: (1037..1038)
+ IDENTIFIER: (1037..1038) "c"
+ ATMOSPHERE: (1038..1039) " "
+ QUOTED_DATUM: (1039..1041)
+ QUOTE: (1039..1040) "'"
+ SYMBOL: (1040..1041)
+ IDENTIFIER: (1040..1041) "d"
+ CLOSE_PAREN: (1041..1042) ")"
+ CLOSE_PAREN: (1042..1043) ")"
+ CLOSE_PAREN: (1043..1044) ")"
+ FORM: (1044..1053)
+ OPEN_PAREN: (1044..1045) "("
+ SYMBOL: (1045..1052)
+ IDENTIFIER: (1045..1052) "newline"
+ CLOSE_PAREN: (1052..1053) ")"
+ ATMOSPHERE: (1053..1054) " "
+ ATMOSPHERE: (1054..1070) "; -> (a b c . d)"
+ ATMOSPHERE: (1070..1071) "\n"
+ FORM: (1071..1096)
+ OPEN_PAREN: (1071..1072) "("
+ SYMBOL: (1072..1079)
+ IDENTIFIER: (1072..1079) "display"
+ ATMOSPHERE: (1079..1080) " "
+ FORM: (1080..1095)
+ OPEN_PAREN: (1080..1081) "("
+ SYMBOL: (1081..1087)
+ IDENTIFIER: (1081..1087) "append"
+ ATMOSPHERE: (1087..1088) " "
+ QUOTED_DATUM: (1088..1092)
+ QUOTE: (1088..1089) "’"
+ FORM: (1089..1091)
+ OPEN_PAREN: (1089..1090) "("
+ CLOSE_PAREN: (1090..1091) ")"
+ ATMOSPHERE: (1091..1092) " "
+ QUOTED_DATUM: (1092..1094)
+ QUOTE: (1092..1093) "’"
+ SYMBOL: (1093..1094)
+ IDENTIFIER: (1093..1094) "a"
+ CLOSE_PAREN: (1094..1095) ")"
+ CLOSE_PAREN: (1095..1096) ")"
+ FORM: (1096..1105)
+ OPEN_PAREN: (1096..1097) "("
+ SYMBOL: (1097..1104)
+ IDENTIFIER: (1097..1104) "newline"
+ CLOSE_PAREN: (1104..1105) ")"
+ ATMOSPHERE: (1105..1106) " "
+ ATMOSPHERE: (1106..1112) "; -> a"
+ ATMOSPHERE: (1112..1114) "\n\n"
+ FORM: (1114..1142)
+ OPEN_PAREN: (1114..1115) "("
+ SYMBOL: (1115..1122)
+ IDENTIFIER: (1115..1122) "display"
+ ATMOSPHERE: (1122..1123) " "
+ FORM: (1123..1141)
+ OPEN_PAREN: (1123..1124) "("
+ SYMBOL: (1124..1131)
+ IDENTIFIER: (1124..1131) "reverse"
+ ATMOSPHERE: (1131..1132) " "
+ QUOTED_DATUM: (1132..1140)
+ QUOTE: (1132..1133) "’"
+ FORM: (1133..1140)
+ OPEN_PAREN: (1133..1134) "("
+ SYMBOL: (1134..1135)
+ IDENTIFIER: (1134..1135) "a"
+ ATMOSPHERE: (1135..1136) " "
+ SYMBOL: (1136..1137)
+ IDENTIFIER: (1136..1137) "b"
+ ATMOSPHERE: (1137..1138) " "
+ SYMBOL: (1138..1139)
+ IDENTIFIER: (1138..1139) "c"
+ CLOSE_PAREN: (1139..1140) ")"
+ CLOSE_PAREN: (1140..1141) ")"
+ CLOSE_PAREN: (1141..1142) ")"
+ FORM: (1142..1151)
+ OPEN_PAREN: (1142..1143) "("
+ SYMBOL: (1143..1150)
+ IDENTIFIER: (1143..1150) "newline"
+ CLOSE_PAREN: (1150..1151) ")"
+ ATMOSPHERE: (1151..1152) " "
+ ATMOSPHERE: (1152..1164) "; -> (c b a)"
+ ATMOSPHERE: (1164..1165) "\n"
+ FORM: (1165..1205)
+ OPEN_PAREN: (1165..1166) "("
+ SYMBOL: (1166..1173)
+ IDENTIFIER: (1166..1173) "display"
+ ATMOSPHERE: (1173..1174) " "
+ FORM: (1174..1204)
+ OPEN_PAREN: (1174..1175) "("
+ SYMBOL: (1175..1182)
+ IDENTIFIER: (1175..1182) "reverse"
+ ATMOSPHERE: (1182..1183) " "
+ QUOTED_DATUM: (1183..1203)
+ QUOTE: (1183..1184) "’"
+ FORM: (1184..1203)
+ OPEN_PAREN: (1184..1185) "("
+ SYMBOL: (1185..1186)
+ IDENTIFIER: (1185..1186) "a"
+ ATMOSPHERE: (1186..1187) " "
+ FORM: (1187..1192)
+ OPEN_PAREN: (1187..1188) "("
+ SYMBOL: (1188..1189)
+ IDENTIFIER: (1188..1189) "b"
+ ATMOSPHERE: (1189..1190) " "
+ SYMBOL: (1190..1191)
+ IDENTIFIER: (1190..1191) "c"
+ CLOSE_PAREN: (1191..1192) ")"
+ ATMOSPHERE: (1192..1193) " "
+ SYMBOL: (1193..1194)
+ IDENTIFIER: (1193..1194) "d"
+ ATMOSPHERE: (1194..1195) " "
+ FORM: (1195..1202)
+ OPEN_PAREN: (1195..1196) "("
+ SYMBOL: (1196..1197)
+ IDENTIFIER: (1196..1197) "e"
+ ATMOSPHERE: (1197..1198) " "
+ FORM: (1198..1201)
+ OPEN_PAREN: (1198..1199) "("
+ SYMBOL: (1199..1200)
+ IDENTIFIER: (1199..1200) "f"
+ CLOSE_PAREN: (1200..1201) ")"
+ CLOSE_PAREN: (1201..1202) ")"
+ CLOSE_PAREN: (1202..1203) ")"
+ CLOSE_PAREN: (1203..1204) ")"
+ CLOSE_PAREN: (1204..1205) ")"
+ FORM: (1205..1214)
+ OPEN_PAREN: (1205..1206) "("
+ SYMBOL: (1206..1213)
+ IDENTIFIER: (1206..1213) "newline"
+ CLOSE_PAREN: (1213..1214) ")"
+ ATMOSPHERE: (1214..1215) " "
+ ATMOSPHERE: (1215..1239) "; -> ((e (f)) d (b c) a)"
+ ATMOSPHERE: (1239..1241) "\n\n"
+ FORM: (1241..1276)
+ OPEN_PAREN: (1241..1242) "("
+ SYMBOL: (1242..1248)
+ IDENTIFIER: (1242..1248) "define"
+ ATMOSPHERE: (1248..1249) " "
+ SYMBOL: (1249..1258)
+ IDENTIFIER: (1249..1258) "test-list"
+ ATMOSPHERE: (1258..1259) " "
+ QUOTED_DATUM: (1259..1275)
+ QUOTE: (1259..1260) "'"
+ FORM: (1260..1275)
+ OPEN_PAREN: (1260..1261) "("
+ SYMBOL: (1261..1262)
+ IDENTIFIER: (1261..1262) "a"
+ ATMOSPHERE: (1262..1263) " "
+ SYMBOL: (1263..1264)
+ IDENTIFIER: (1263..1264) "b"
+ ATMOSPHERE: (1264..1265) " "
+ SYMBOL: (1265..1266)
+ IDENTIFIER: (1265..1266) "c"
+ ATMOSPHERE: (1266..1267) " "
+ SYMBOL: (1267..1268)
+ IDENTIFIER: (1267..1268) "d"
+ ATMOSPHERE: (1268..1269) " "
+ SYMBOL: (1269..1270)
+ IDENTIFIER: (1269..1270) "e"
+ ATMOSPHERE: (1270..1271) " "
+ SYMBOL: (1271..1272)
+ IDENTIFIER: (1271..1272) "f"
+ ATMOSPHERE: (1272..1273) " "
+ SYMBOL: (1273..1274)
+ IDENTIFIER: (1273..1274) "g"
+ CLOSE_PAREN: (1274..1275) ")"
+ CLOSE_PAREN: (1275..1276) ")"
+ ATMOSPHERE: (1276..1277) "\n"
+ FORM: (1277..1310)
+ OPEN_PAREN: (1277..1278) "("
+ SYMBOL: (1278..1285)
+ IDENTIFIER: (1278..1285) "display"
+ ATMOSPHERE: (1285..1286) " "
+ FORM: (1286..1309)
+ OPEN_PAREN: (1286..1287) "("
+ SYMBOL: (1287..1296)
+ IDENTIFIER: (1287..1296) "list-tail"
+ ATMOSPHERE: (1296..1297) " "
+ SYMBOL: (1297..1306)
+ IDENTIFIER: (1297..1306) "test-list"
+ ATMOSPHERE: (1306..1307) " "
+ CONSTANT: (1307..1308)
+ NUMBER: (1307..1308) "1"
+ CLOSE_PAREN: (1308..1309) ")"
+ CLOSE_PAREN: (1309..1310) ")"
+ FORM: (1310..1319)
+ OPEN_PAREN: (1310..1311) "("
+ SYMBOL: (1311..1318)
+ IDENTIFIER: (1311..1318) "newline"
+ CLOSE_PAREN: (1318..1319) ")"
+ ATMOSPHERE: (1319..1320) "\n"
+ FORM: (1320..1353)
+ OPEN_PAREN: (1320..1321) "("
+ SYMBOL: (1321..1328)
+ IDENTIFIER: (1321..1328) "display"
+ ATMOSPHERE: (1328..1329) " "
+ FORM: (1329..1352)
+ OPEN_PAREN: (1329..1330) "("
+ SYMBOL: (1330..1339)
+ IDENTIFIER: (1330..1339) "list-tail"
+ ATMOSPHERE: (1339..1340) " "
+ SYMBOL: (1340..1349)
+ IDENTIFIER: (1340..1349) "test-list"
+ ATMOSPHERE: (1349..1350) " "
+ CONSTANT: (1350..1351)
+ NUMBER: (1350..1351) "0"
+ CLOSE_PAREN: (1351..1352) ")"
+ CLOSE_PAREN: (1352..1353) ")"
+ FORM: (1353..1362)
+ OPEN_PAREN: (1353..1354) "("
+ SYMBOL: (1354..1361)
+ IDENTIFIER: (1354..1361) "newline"
+ CLOSE_PAREN: (1361..1362) ")"
+ ATMOSPHERE: (1362..1363) "\n"
+ FORM: (1363..1396)
+ OPEN_PAREN: (1363..1364) "("
+ SYMBOL: (1364..1371)
+ IDENTIFIER: (1364..1371) "display"
+ ATMOSPHERE: (1371..1372) " "
+ FORM: (1372..1395)
+ OPEN_PAREN: (1372..1373) "("
+ SYMBOL: (1373..1382)
+ IDENTIFIER: (1373..1382) "list-tail"
+ ATMOSPHERE: (1382..1383) " "
+ SYMBOL: (1383..1392)
+ IDENTIFIER: (1383..1392) "test-list"
+ ATMOSPHERE: (1392..1393) " "
+ CONSTANT: (1393..1394)
+ NUMBER: (1393..1394) "6"
+ CLOSE_PAREN: (1394..1395) ")"
+ CLOSE_PAREN: (1395..1396) ")"
+ FORM: (1396..1405)
+ OPEN_PAREN: (1396..1397) "("
+ SYMBOL: (1397..1404)
+ IDENTIFIER: (1397..1404) "newline"
+ CLOSE_PAREN: (1404..1405) ")"
+ ATMOSPHERE: (1405..1407) "\n\n"
+ FORM: (1407..1442)
+ OPEN_PAREN: (1407..1408) "("
+ SYMBOL: (1408..1415)
+ IDENTIFIER: (1408..1415) "display"
+ ATMOSPHERE: (1415..1418) "\n "
+ FORM: (1418..1441)
+ OPEN_PAREN: (1418..1419) "("
+ SYMBOL: (1419..1427)
+ IDENTIFIER: (1419..1427) "list-ref"
+ ATMOSPHERE: (1427..1428) " "
+ QUOTED_DATUM: (1428..1439)
+ QUOTE: (1428..1429) "’"
+ FORM: (1429..1438)
+ OPEN_PAREN: (1429..1430) "("
+ SYMBOL: (1430..1431)
+ IDENTIFIER: (1430..1431) "a"
+ ATMOSPHERE: (1431..1432) " "
+ SYMBOL: (1432..1433)
+ IDENTIFIER: (1432..1433) "b"
+ ATMOSPHERE: (1433..1434) " "
+ SYMBOL: (1434..1435)
+ IDENTIFIER: (1434..1435) "c"
+ ATMOSPHERE: (1435..1436) " "
+ SYMBOL: (1436..1437)
+ IDENTIFIER: (1436..1437) "d"
+ CLOSE_PAREN: (1437..1438) ")"
+ ATMOSPHERE: (1438..1439) " "
+ CONSTANT: (1439..1440)
+ NUMBER: (1439..1440) "2"
+ CLOSE_PAREN: (1440..1441) ")"
+ CLOSE_PAREN: (1441..1442) ")"
+ ATMOSPHERE: (1442..1443) " "
+ ATMOSPHERE: (1443..1449) "; =⇒ c"
+ ATMOSPHERE: (1449..1450) "\n"
+ FORM: (1450..1459)
+ OPEN_PAREN: (1450..1451) "("
+ SYMBOL: (1451..1458)
+ IDENTIFIER: (1451..1458) "newline"
+ CLOSE_PAREN: (1458..1459) ")"
+ ATMOSPHERE: (1459..1461) "\n\n"
+ FORM: (1461..1568)
+ OPEN_PAREN: (1461..1462) "("
+ SYMBOL: (1462..1469)
+ IDENTIFIER: (1462..1469) "display"
+ ATMOSPHERE: (1469..1472) "\n "
+ FORM: (1472..1543)
+ OPEN_PAREN: (1472..1473) "("
+ SYMBOL: (1473..1476)
+ IDENTIFIER: (1473..1476) "let"
+ ATMOSPHERE: (1476..1477) " "
+ FORM: (1477..1507)
+ OPEN_PAREN: (1477..1478) "("
+ FORM: (1478..1506)
+ OPEN_PAREN: (1478..1479) "("
+ SYMBOL: (1479..1481)
+ IDENTIFIER: (1479..1481) "ls"
+ ATMOSPHERE: (1481..1482) " "
+ FORM: (1482..1505)
+ OPEN_PAREN: (1482..1483) "("
+ SYMBOL: (1483..1487)
+ IDENTIFIER: (1483..1487) "list"
+ ATMOSPHERE: (1487..1488) " "
+ QUOTED_DATUM: (1488..1493)
+ QUOTE: (1488..1489) "’"
+ SYMBOL: (1489..1492)
+ IDENTIFIER: (1489..1492) "one"
+ ATMOSPHERE: (1492..1493) " "
+ QUOTED_DATUM: (1493..1498)
+ QUOTE: (1493..1494) "’"
+ SYMBOL: (1494..1497)
+ IDENTIFIER: (1494..1497) "two"
+ ATMOSPHERE: (1497..1498) " "
+ QUOTED_DATUM: (1498..1504)
+ QUOTE: (1498..1499) "’"
+ SYMBOL: (1499..1504)
+ IDENTIFIER: (1499..1504) "five!"
+ CLOSE_PAREN: (1504..1505) ")"
+ CLOSE_PAREN: (1505..1506) ")"
+ CLOSE_PAREN: (1506..1507) ")"
+ ATMOSPHERE: (1507..1512) "\n "
+ FORM: (1512..1535)
+ OPEN_PAREN: (1512..1513) "("
+ SYMBOL: (1513..1522)
+ IDENTIFIER: (1513..1522) "list-set!"
+ ATMOSPHERE: (1522..1523) " "
+ SYMBOL: (1523..1525)
+ IDENTIFIER: (1523..1525) "ls"
+ ATMOSPHERE: (1525..1526) " "
+ CONSTANT: (1526..1527)
+ NUMBER: (1526..1527) "2"
+ ATMOSPHERE: (1527..1528) " "
+ QUOTED_DATUM: (1528..1534)
+ QUOTE: (1528..1529) "’"
+ SYMBOL: (1529..1534)
+ IDENTIFIER: (1529..1534) "three"
+ CLOSE_PAREN: (1534..1535) ")"
+ ATMOSPHERE: (1535..1540) "\n "
+ SYMBOL: (1540..1542)
+ IDENTIFIER: (1540..1542) "ls"
+ CLOSE_PAREN: (1542..1543) ")"
+ ATMOSPHERE: (1543..1544) " "
+ ATMOSPHERE: (1544..1564) "; =⇒ (one two three)"
+ ATMOSPHERE: (1564..1567) "\n "
+ CLOSE_PAREN: (1567..1568) ")"
+ FORM: (1568..1577)
+ OPEN_PAREN: (1568..1569) "("
+ SYMBOL: (1569..1576)
+ IDENTIFIER: (1569..1576) "newline"
+ CLOSE_PAREN: (1576..1577) ")"
+ ATMOSPHERE: (1577..1579) "\n\n"
+ FORM: (1579..1626)
+ OPEN_PAREN: (1579..1580) "("
+ SYMBOL: (1580..1587)
+ IDENTIFIER: (1580..1587) "display"
+ ATMOSPHERE: (1587..1588) " "
+ FORM: (1588..1625)
+ OPEN_PAREN: (1588..1589) "("
+ SYMBOL: (1589..1592)
+ IDENTIFIER: (1589..1592) "eq?"
+ ATMOSPHERE: (1592..1593) " "
+ FORM: (1593..1614)
+ OPEN_PAREN: (1593..1594) "("
+ SYMBOL: (1594..1603)
+ IDENTIFIER: (1594..1603) "list-copy"
+ ATMOSPHERE: (1603..1604) " "
+ SYMBOL: (1604..1613)
+ IDENTIFIER: (1604..1613) "test-list"
+ CLOSE_PAREN: (1613..1614) ")"
+ ATMOSPHERE: (1614..1615) " "
+ SYMBOL: (1615..1624)
+ IDENTIFIER: (1615..1624) "test-list"
+ CLOSE_PAREN: (1624..1625) ")"
+ CLOSE_PAREN: (1625..1626) ")"
+ FORM: (1626..1635)
+ OPEN_PAREN: (1626..1627) "("
+ SYMBOL: (1627..1634)
+ IDENTIFIER: (1627..1634) "newline"
+ CLOSE_PAREN: (1634..1635) ")"
+ ATMOSPHERE: (1635..1636) "\n"
+ FORM: (1636..1659)
+ OPEN_PAREN: (1636..1637) "("
+ SYMBOL: (1637..1644)
+ IDENTIFIER: (1637..1644) "display"
+ ATMOSPHERE: (1644..1645) " "
+ FORM: (1645..1658)
+ OPEN_PAREN: (1645..1646) "("
+ SYMBOL: (1646..1655)
+ IDENTIFIER: (1646..1655) "list-copy"
+ ATMOSPHERE: (1655..1656) " "
+ CONSTANT: (1656..1657)
+ NUMBER: (1656..1657) "2"
+ CLOSE_PAREN: (1657..1658) ")"
+ CLOSE_PAREN: (1658..1659) ")"
+ FORM: (1659..1668)
+ OPEN_PAREN: (1659..1660) "("
+ SYMBOL: (1660..1667)
+ IDENTIFIER: (1660..1667) "newline"
+ CLOSE_PAREN: (1667..1668) ")"
+ ATMOSPHERE: (1668..1671) "\n\n\n"
+ FORM: (1671..1699)
+ OPEN_PAREN: (1671..1672) "("
+ SYMBOL: (1672..1679)
+ IDENTIFIER: (1672..1679) "display"
+ ATMOSPHERE: (1679..1680) " "
+ FORM: (1680..1698)
+ OPEN_PAREN: (1680..1681) "("
+ SYMBOL: (1681..1685)
+ IDENTIFIER: (1681..1685) "memq"
+ ATMOSPHERE: (1685..1686) " "
+ QUOTED_DATUM: (1686..1689)
+ QUOTE: (1686..1687) "’"
+ SYMBOL: (1687..1688)
+ IDENTIFIER: (1687..1688) "a"
+ ATMOSPHERE: (1688..1689) " "
+ QUOTED_DATUM: (1689..1697)
+ QUOTE: (1689..1690) "’"
+ FORM: (1690..1697)
+ OPEN_PAREN: (1690..1691) "("
+ SYMBOL: (1691..1692)
+ IDENTIFIER: (1691..1692) "a"
+ ATMOSPHERE: (1692..1693) " "
+ SYMBOL: (1693..1694)
+ IDENTIFIER: (1693..1694) "b"
+ ATMOSPHERE: (1694..1695) " "
+ SYMBOL: (1695..1696)
+ IDENTIFIER: (1695..1696) "c"
+ CLOSE_PAREN: (1696..1697) ")"
+ CLOSE_PAREN: (1697..1698) ")"
+ CLOSE_PAREN: (1698..1699) ")"
+ FORM: (1699..1708)
+ OPEN_PAREN: (1699..1700) "("
+ SYMBOL: (1700..1707)
+ IDENTIFIER: (1700..1707) "newline"
+ CLOSE_PAREN: (1707..1708) ")"
+ ATMOSPHERE: (1708..1709) " "
+ ATMOSPHERE: (1709..1721) "; -> (a b c)"
+ ATMOSPHERE: (1721..1722) "\n"
+ FORM: (1722..1750)
+ OPEN_PAREN: (1722..1723) "("
+ SYMBOL: (1723..1730)
+ IDENTIFIER: (1723..1730) "display"
+ ATMOSPHERE: (1730..1731) " "
+ FORM: (1731..1749)
+ OPEN_PAREN: (1731..1732) "("
+ SYMBOL: (1732..1736)
+ IDENTIFIER: (1732..1736) "memq"
+ ATMOSPHERE: (1736..1737) " "
+ QUOTED_DATUM: (1737..1740)
+ QUOTE: (1737..1738) "’"
+ SYMBOL: (1738..1739)
+ IDENTIFIER: (1738..1739) "b"
+ ATMOSPHERE: (1739..1740) " "
+ QUOTED_DATUM: (1740..1748)
+ QUOTE: (1740..1741) "’"
+ FORM: (1741..1748)
+ OPEN_PAREN: (1741..1742) "("
+ SYMBOL: (1742..1743)
+ IDENTIFIER: (1742..1743) "a"
+ ATMOSPHERE: (1743..1744) " "
+ SYMBOL: (1744..1745)
+ IDENTIFIER: (1744..1745) "b"
+ ATMOSPHERE: (1745..1746) " "
+ SYMBOL: (1746..1747)
+ IDENTIFIER: (1746..1747) "c"
+ CLOSE_PAREN: (1747..1748) ")"
+ CLOSE_PAREN: (1748..1749) ")"
+ CLOSE_PAREN: (1749..1750) ")"
+ FORM: (1750..1759)
+ OPEN_PAREN: (1750..1751) "("
+ SYMBOL: (1751..1758)
+ IDENTIFIER: (1751..1758) "newline"
+ CLOSE_PAREN: (1758..1759) ")"
+ ATMOSPHERE: (1759..1760) " "
+ ATMOSPHERE: (1760..1770) "; -> (b c)"
+ ATMOSPHERE: (1770..1771) "\n"
+ FORM: (1771..1799)
+ OPEN_PAREN: (1771..1772) "("
+ SYMBOL: (1772..1779)
+ IDENTIFIER: (1772..1779) "display"
+ ATMOSPHERE: (1779..1780) " "
+ FORM: (1780..1798)
+ OPEN_PAREN: (1780..1781) "("
+ SYMBOL: (1781..1785)
+ IDENTIFIER: (1781..1785) "memq"
+ ATMOSPHERE: (1785..1786) " "
+ QUOTED_DATUM: (1786..1789)
+ QUOTE: (1786..1787) "’"
+ SYMBOL: (1787..1788)
+ IDENTIFIER: (1787..1788) "a"
+ ATMOSPHERE: (1788..1789) " "
+ QUOTED_DATUM: (1789..1797)
+ QUOTE: (1789..1790) "’"
+ FORM: (1790..1797)
+ OPEN_PAREN: (1790..1791) "("
+ SYMBOL: (1791..1792)
+ IDENTIFIER: (1791..1792) "b"
+ ATMOSPHERE: (1792..1793) " "
+ SYMBOL: (1793..1794)
+ IDENTIFIER: (1793..1794) "c"
+ ATMOSPHERE: (1794..1795) " "
+ SYMBOL: (1795..1796)
+ IDENTIFIER: (1795..1796) "d"
+ CLOSE_PAREN: (1796..1797) ")"
+ CLOSE_PAREN: (1797..1798) ")"
+ CLOSE_PAREN: (1798..1799) ")"
+ FORM: (1799..1808)
+ OPEN_PAREN: (1799..1800) "("
+ SYMBOL: (1800..1807)
+ IDENTIFIER: (1800..1807) "newline"
+ CLOSE_PAREN: (1807..1808) ")"
+ ATMOSPHERE: (1808..1809) " "
+ ATMOSPHERE: (1809..1816) "; -> #f"
+ ATMOSPHERE: (1816..1817) "\n"
+ FORM: (1817..1854)
+ OPEN_PAREN: (1817..1818) "("
+ SYMBOL: (1818..1825)
+ IDENTIFIER: (1818..1825) "display"
+ ATMOSPHERE: (1825..1826) " "
+ FORM: (1826..1853)
+ OPEN_PAREN: (1826..1827) "("
+ SYMBOL: (1827..1831)
+ IDENTIFIER: (1827..1831) "memq"
+ ATMOSPHERE: (1831..1832) " "
+ FORM: (1832..1841)
+ OPEN_PAREN: (1832..1833) "("
+ SYMBOL: (1833..1837)
+ IDENTIFIER: (1833..1837) "list"
+ ATMOSPHERE: (1837..1838) " "
+ QUOTED_DATUM: (1838..1840)
+ QUOTE: (1838..1839) "’"
+ SYMBOL: (1839..1840)
+ IDENTIFIER: (1839..1840) "a"
+ CLOSE_PAREN: (1840..1841) ")"
+ ATMOSPHERE: (1841..1842) " "
+ QUOTED_DATUM: (1842..1852)
+ QUOTE: (1842..1843) "’"
+ FORM: (1843..1852)
+ OPEN_PAREN: (1843..1844) "("
+ SYMBOL: (1844..1845)
+ IDENTIFIER: (1844..1845) "b"
+ ATMOSPHERE: (1845..1846) " "
+ FORM: (1846..1849)
+ OPEN_PAREN: (1846..1847) "("
+ SYMBOL: (1847..1848)
+ IDENTIFIER: (1847..1848) "a"
+ CLOSE_PAREN: (1848..1849) ")"
+ ATMOSPHERE: (1849..1850) " "
+ SYMBOL: (1850..1851)
+ IDENTIFIER: (1850..1851) "c"
+ CLOSE_PAREN: (1851..1852) ")"
+ CLOSE_PAREN: (1852..1853) ")"
+ CLOSE_PAREN: (1853..1854) ")"
+ FORM: (1854..1863)
+ OPEN_PAREN: (1854..1855) "("
+ SYMBOL: (1855..1862)
+ IDENTIFIER: (1855..1862) "newline"
+ CLOSE_PAREN: (1862..1863) ")"
+ ATMOSPHERE: (1863..1864) " "
+ ATMOSPHERE: (1864..1871) "; -> #f"
+ ATMOSPHERE: (1871..1872) "\n"
+ FORM: (1872..1913)
+ OPEN_PAREN: (1872..1873) "("
+ SYMBOL: (1873..1880)
+ IDENTIFIER: (1873..1880) "display"
+ ATMOSPHERE: (1880..1881) " "
+ FORM: (1881..1912)
+ OPEN_PAREN: (1881..1882) "("
+ SYMBOL: (1882..1888)
+ IDENTIFIER: (1882..1888) "member"
+ ATMOSPHERE: (1888..1889) " "
+ FORM: (1889..1898)
+ OPEN_PAREN: (1889..1890) "("
+ SYMBOL: (1890..1894)
+ IDENTIFIER: (1890..1894) "list"
+ ATMOSPHERE: (1894..1895) " "
+ QUOTED_DATUM: (1895..1897)
+ QUOTE: (1895..1896) "’"
+ SYMBOL: (1896..1897)
+ IDENTIFIER: (1896..1897) "a"
+ CLOSE_PAREN: (1897..1898) ")"
+ ATMOSPHERE: (1898..1901) "\n "
+ QUOTED_DATUM: (1901..1911)
+ QUOTE: (1901..1902) "’"
+ FORM: (1902..1911)
+ OPEN_PAREN: (1902..1903) "("
+ SYMBOL: (1903..1904)
+ IDENTIFIER: (1903..1904) "b"
+ ATMOSPHERE: (1904..1905) " "
+ FORM: (1905..1908)
+ OPEN_PAREN: (1905..1906) "("
+ SYMBOL: (1906..1907)
+ IDENTIFIER: (1906..1907) "a"
+ CLOSE_PAREN: (1907..1908) ")"
+ ATMOSPHERE: (1908..1909) " "
+ SYMBOL: (1909..1910)
+ IDENTIFIER: (1909..1910) "c"
+ CLOSE_PAREN: (1910..1911) ")"
+ CLOSE_PAREN: (1911..1912) ")"
+ CLOSE_PAREN: (1912..1913) ")"
+ FORM: (1913..1922)
+ OPEN_PAREN: (1913..1914) "("
+ SYMBOL: (1914..1921)
+ IDENTIFIER: (1914..1921) "newline"
+ CLOSE_PAREN: (1921..1922) ")"
+ ATMOSPHERE: (1922..1923) " "
+ ATMOSPHERE: (1923..1935) "; -> ((a) c)"
+ ATMOSPHERE: (1935..1936) "\n"
+ FORM: (1936..1987)
+ OPEN_PAREN: (1936..1937) "("
+ SYMBOL: (1937..1944)
+ IDENTIFIER: (1937..1944) "display"
+ ATMOSPHERE: (1944..1945) " "
+ FORM: (1945..1986)
+ OPEN_PAREN: (1945..1946) "("
+ SYMBOL: (1946..1952)
+ IDENTIFIER: (1946..1952) "member"
+ ATMOSPHERE: (1952..1953) " "
+ CONSTANT: (1953..1956)
+ CHARACTER: (1953..1956) "#\\B"
+ ATMOSPHERE: (1956..1959) "\n "
+ QUOTED_DATUM: (1959..1976)
+ QUOTE: (1959..1960) "’"
+ FORM: (1960..1973)
+ OPEN_PAREN: (1960..1961) "("
+ CONSTANT: (1961..1964)
+ CHARACTER: (1961..1964) "#\\a"
+ ATMOSPHERE: (1964..1965) " "
+ CONSTANT: (1965..1968)
+ CHARACTER: (1965..1968) "#\\b"
+ ATMOSPHERE: (1968..1969) " "
+ CONSTANT: (1969..1972)
+ CHARACTER: (1969..1972) "#\\c"
+ CLOSE_PAREN: (1972..1973) ")"
+ ATMOSPHERE: (1973..1976) "\n "
+ SYMBOL: (1976..1985)
+ IDENTIFIER: (1976..1985) "char-ci=?"
+ CLOSE_PAREN: (1985..1986) ")"
+ CLOSE_PAREN: (1986..1987) ")"
+ FORM: (1987..1996)
+ OPEN_PAREN: (1987..1988) "("
+ SYMBOL: (1988..1995)
+ IDENTIFIER: (1988..1995) "newline"
+ CLOSE_PAREN: (1995..1996) ")"
+ ATMOSPHERE: (1996..1997) " "
+ ATMOSPHERE: (1997..2011) "; -> (#\\b #\\c)"
+ ATMOSPHERE: (2011..2012) "\n"
+ FORM: (2012..2047)
+ OPEN_PAREN: (2012..2013) "("
+ SYMBOL: (2013..2020)
+ IDENTIFIER: (2013..2020) "display"
+ ATMOSPHERE: (2020..2021) " "
+ FORM: (2021..2046)
+ OPEN_PAREN: (2021..2022) "("
+ SYMBOL: (2022..2026)
+ IDENTIFIER: (2022..2026) "memq"
+ ATMOSPHERE: (2026..2027) " "
+ CONSTANT: (2027..2030)
+ NUMBER: (2027..2030) "101"
+ ATMOSPHERE: (2030..2031) " "
+ QUOTED_DATUM: (2031..2045)
+ QUOTE: (2031..2032) "’"
+ FORM: (2032..2045)
+ OPEN_PAREN: (2032..2033) "("
+ CONSTANT: (2033..2036)
+ NUMBER: (2033..2036) "100"
+ ATMOSPHERE: (2036..2037) " "
+ CONSTANT: (2037..2040)
+ NUMBER: (2037..2040) "101"
+ ATMOSPHERE: (2040..2041) " "
+ CONSTANT: (2041..2044)
+ NUMBER: (2041..2044) "102"
+ CLOSE_PAREN: (2044..2045) ")"
+ CLOSE_PAREN: (2045..2046) ")"
+ CLOSE_PAREN: (2046..2047) ")"
+ FORM: (2047..2056)
+ OPEN_PAREN: (2047..2048) "("
+ SYMBOL: (2048..2055)
+ IDENTIFIER: (2048..2055) "newline"
+ CLOSE_PAREN: (2055..2056) ")"
+ ATMOSPHERE: (2056..2057) " "
+ ATMOSPHERE: (2057..2073) "; -> unspecified"
+ ATMOSPHERE: (2073..2074) "\n"
+ FORM: (2074..2109)
+ OPEN_PAREN: (2074..2075) "("
+ SYMBOL: (2075..2082)
+ IDENTIFIER: (2075..2082) "display"
+ ATMOSPHERE: (2082..2083) " "
+ FORM: (2083..2108)
+ OPEN_PAREN: (2083..2084) "("
+ SYMBOL: (2084..2088)
+ IDENTIFIER: (2084..2088) "memv"
+ ATMOSPHERE: (2088..2089) " "
+ CONSTANT: (2089..2092)
+ NUMBER: (2089..2092) "101"
+ ATMOSPHERE: (2092..2093) " "
+ QUOTED_DATUM: (2093..2107)
+ QUOTE: (2093..2094) "’"
+ FORM: (2094..2107)
+ OPEN_PAREN: (2094..2095) "("
+ CONSTANT: (2095..2098)
+ NUMBER: (2095..2098) "100"
+ ATMOSPHERE: (2098..2099) " "
+ CONSTANT: (2099..2102)
+ NUMBER: (2099..2102) "101"
+ ATMOSPHERE: (2102..2103) " "
+ CONSTANT: (2103..2106)
+ NUMBER: (2103..2106) "102"
+ CLOSE_PAREN: (2106..2107) ")"
+ CLOSE_PAREN: (2107..2108) ")"
+ CLOSE_PAREN: (2108..2109) ")"
+ FORM: (2109..2118)
+ OPEN_PAREN: (2109..2110) "("
+ SYMBOL: (2110..2117)
+ IDENTIFIER: (2110..2117) "newline"
+ CLOSE_PAREN: (2117..2118) ")"
+ ATMOSPHERE: (2118..2119) " "
+ ATMOSPHERE: (2119..2133) "; -> (101 102)"
+ ATMOSPHERE: (2133..2135) "\n\n"
+ FORM: (2135..2166)
+ OPEN_PAREN: (2135..2136) "("
+ SYMBOL: (2136..2142)
+ IDENTIFIER: (2136..2142) "define"
+ ATMOSPHERE: (2142..2143) " "
+ SYMBOL: (2143..2144)
+ IDENTIFIER: (2143..2144) "e"
+ ATMOSPHERE: (2144..2145) " "
+ QUOTED_DATUM: (2145..2165)
+ QUOTE: (2145..2146) "’"
+ FORM: (2146..2165)
+ OPEN_PAREN: (2146..2147) "("
+ FORM: (2147..2152)
+ OPEN_PAREN: (2147..2148) "("
+ SYMBOL: (2148..2149)
+ IDENTIFIER: (2148..2149) "a"
+ ATMOSPHERE: (2149..2150) " "
+ CONSTANT: (2150..2151)
+ NUMBER: (2150..2151) "1"
+ CLOSE_PAREN: (2151..2152) ")"
+ ATMOSPHERE: (2152..2153) " "
+ FORM: (2153..2158)
+ OPEN_PAREN: (2153..2154) "("
+ SYMBOL: (2154..2155)
+ IDENTIFIER: (2154..2155) "b"
+ ATMOSPHERE: (2155..2156) " "
+ CONSTANT: (2156..2157)
+ NUMBER: (2156..2157) "2"
+ CLOSE_PAREN: (2157..2158) ")"
+ ATMOSPHERE: (2158..2159) " "
+ FORM: (2159..2164)
+ OPEN_PAREN: (2159..2160) "("
+ SYMBOL: (2160..2161)
+ IDENTIFIER: (2160..2161) "c"
+ ATMOSPHERE: (2161..2162) " "
+ CONSTANT: (2162..2163)
+ NUMBER: (2162..2163) "3"
+ CLOSE_PAREN: (2163..2164) ")"
+ CLOSE_PAREN: (2164..2165) ")"
+ CLOSE_PAREN: (2165..2166) ")"
+ ATMOSPHERE: (2166..2167) "\n"
+ FORM: (2167..2188)
+ OPEN_PAREN: (2167..2168) "("
+ SYMBOL: (2168..2175)
+ IDENTIFIER: (2168..2175) "display"
+ ATMOSPHERE: (2175..2176) " "
+ FORM: (2176..2187)
+ OPEN_PAREN: (2176..2177) "("
+ SYMBOL: (2177..2181)
+ IDENTIFIER: (2177..2181) "assq"
+ ATMOSPHERE: (2181..2182) " "
+ QUOTED_DATUM: (2182..2185)
+ QUOTE: (2182..2183) "’"
+ SYMBOL: (2183..2184)
+ IDENTIFIER: (2183..2184) "a"
+ ATMOSPHERE: (2184..2185) " "
+ SYMBOL: (2185..2186)
+ IDENTIFIER: (2185..2186) "e"
+ CLOSE_PAREN: (2186..2187) ")"
+ CLOSE_PAREN: (2187..2188) ")"
+ FORM: (2188..2197)
+ OPEN_PAREN: (2188..2189) "("
+ SYMBOL: (2189..2196)
+ IDENTIFIER: (2189..2196) "newline"
+ CLOSE_PAREN: (2196..2197) ")"
+ ATMOSPHERE: (2197..2198) " "
+ ATMOSPHERE: (2198..2208) "; -> (a 1)"
+ ATMOSPHERE: (2208..2209) "\n"
+ FORM: (2209..2230)
+ OPEN_PAREN: (2209..2210) "("
+ SYMBOL: (2210..2217)
+ IDENTIFIER: (2210..2217) "display"
+ ATMOSPHERE: (2217..2218) " "
+ FORM: (2218..2229)
+ OPEN_PAREN: (2218..2219) "("
+ SYMBOL: (2219..2223)
+ IDENTIFIER: (2219..2223) "assq"
+ ATMOSPHERE: (2223..2224) " "
+ QUOTED_DATUM: (2224..2227)
+ QUOTE: (2224..2225) "’"
+ SYMBOL: (2225..2226)
+ IDENTIFIER: (2225..2226) "b"
+ ATMOSPHERE: (2226..2227) " "
+ SYMBOL: (2227..2228)
+ IDENTIFIER: (2227..2228) "e"
+ CLOSE_PAREN: (2228..2229) ")"
+ CLOSE_PAREN: (2229..2230) ")"
+ FORM: (2230..2239)
+ OPEN_PAREN: (2230..2231) "("
+ SYMBOL: (2231..2238)
+ IDENTIFIER: (2231..2238) "newline"
+ CLOSE_PAREN: (2238..2239) ")"
+ ATMOSPHERE: (2239..2240) " "
+ ATMOSPHERE: (2240..2250) "; -> (b 2)"
+ ATMOSPHERE: (2250..2251) "\n"
+ FORM: (2251..2272)
+ OPEN_PAREN: (2251..2252) "("
+ SYMBOL: (2252..2259)
+ IDENTIFIER: (2252..2259) "display"
+ ATMOSPHERE: (2259..2260) " "
+ FORM: (2260..2271)
+ OPEN_PAREN: (2260..2261) "("
+ SYMBOL: (2261..2265)
+ IDENTIFIER: (2261..2265) "assq"
+ ATMOSPHERE: (2265..2266) " "
+ QUOTED_DATUM: (2266..2269)
+ QUOTE: (2266..2267) "’"
+ SYMBOL: (2267..2268)
+ IDENTIFIER: (2267..2268) "d"
+ ATMOSPHERE: (2268..2269) " "
+ SYMBOL: (2269..2270)
+ IDENTIFIER: (2269..2270) "e"
+ CLOSE_PAREN: (2270..2271) ")"
+ CLOSE_PAREN: (2271..2272) ")"
+ FORM: (2272..2281)
+ OPEN_PAREN: (2272..2273) "("
+ SYMBOL: (2273..2280)
+ IDENTIFIER: (2273..2280) "newline"
+ CLOSE_PAREN: (2280..2281) ")"
+ ATMOSPHERE: (2281..2282) " "
+ ATMOSPHERE: (2282..2289) "; -> #f"
+ ATMOSPHERE: (2289..2290) "\n"
+ FORM: (2290..2337)
+ OPEN_PAREN: (2290..2291) "("
+ SYMBOL: (2291..2298)
+ IDENTIFIER: (2291..2298) "display"
+ ATMOSPHERE: (2298..2299) " "
+ FORM: (2299..2336)
+ OPEN_PAREN: (2299..2300) "("
+ SYMBOL: (2300..2304)
+ IDENTIFIER: (2300..2304) "assq"
+ ATMOSPHERE: (2304..2305) " "
+ FORM: (2305..2314)
+ OPEN_PAREN: (2305..2306) "("
+ SYMBOL: (2306..2310)
+ IDENTIFIER: (2306..2310) "list"
+ ATMOSPHERE: (2310..2311) " "
+ QUOTED_DATUM: (2311..2313)
+ QUOTE: (2311..2312) "’"
+ SYMBOL: (2312..2313)
+ IDENTIFIER: (2312..2313) "a"
+ CLOSE_PAREN: (2313..2314) ")"
+ ATMOSPHERE: (2314..2315) " "
+ QUOTED_DATUM: (2315..2335)
+ QUOTE: (2315..2316) "’"
+ FORM: (2316..2335)
+ OPEN_PAREN: (2316..2317) "("
+ FORM: (2317..2322)
+ OPEN_PAREN: (2317..2318) "("
+ FORM: (2318..2321)
+ OPEN_PAREN: (2318..2319) "("
+ SYMBOL: (2319..2320)
+ IDENTIFIER: (2319..2320) "a"
+ CLOSE_PAREN: (2320..2321) ")"
+ CLOSE_PAREN: (2321..2322) ")"
+ ATMOSPHERE: (2322..2323) " "
+ FORM: (2323..2328)
+ OPEN_PAREN: (2323..2324) "("
+ FORM: (2324..2327)
+ OPEN_PAREN: (2324..2325) "("
+ SYMBOL: (2325..2326)
+ IDENTIFIER: (2325..2326) "b"
+ CLOSE_PAREN: (2326..2327) ")"
+ CLOSE_PAREN: (2327..2328) ")"
+ ATMOSPHERE: (2328..2329) " "
+ FORM: (2329..2334)
+ OPEN_PAREN: (2329..2330) "("
+ FORM: (2330..2333)
+ OPEN_PAREN: (2330..2331) "("
+ SYMBOL: (2331..2332)
+ IDENTIFIER: (2331..2332) "c"
+ CLOSE_PAREN: (2332..2333) ")"
+ CLOSE_PAREN: (2333..2334) ")"
+ CLOSE_PAREN: (2334..2335) ")"
+ CLOSE_PAREN: (2335..2336) ")"
+ CLOSE_PAREN: (2336..2337) ")"
+ FORM: (2337..2346)
+ OPEN_PAREN: (2337..2338) "("
+ SYMBOL: (2338..2345)
+ IDENTIFIER: (2338..2345) "newline"
+ CLOSE_PAREN: (2345..2346) ")"
+ ATMOSPHERE: (2346..2347) " "
+ ATMOSPHERE: (2347..2354) "; -> #f"
+ ATMOSPHERE: (2354..2355) "\n"
+ FORM: (2355..2403)
+ OPEN_PAREN: (2355..2356) "("
+ SYMBOL: (2356..2363)
+ IDENTIFIER: (2356..2363) "display"
+ ATMOSPHERE: (2363..2364) " "
+ FORM: (2364..2402)
+ OPEN_PAREN: (2364..2365) "("
+ SYMBOL: (2365..2370)
+ IDENTIFIER: (2365..2370) "assoc"
+ ATMOSPHERE: (2370..2371) " "
+ FORM: (2371..2380)
+ OPEN_PAREN: (2371..2372) "("
+ SYMBOL: (2372..2376)
+ IDENTIFIER: (2372..2376) "list"
+ ATMOSPHERE: (2376..2377) " "
+ QUOTED_DATUM: (2377..2379)
+ QUOTE: (2377..2378) "’"
+ SYMBOL: (2378..2379)
+ IDENTIFIER: (2378..2379) "a"
+ CLOSE_PAREN: (2379..2380) ")"
+ ATMOSPHERE: (2380..2381) " "
+ QUOTED_DATUM: (2381..2401)
+ QUOTE: (2381..2382) "’"
+ FORM: (2382..2401)
+ OPEN_PAREN: (2382..2383) "("
+ FORM: (2383..2388)
+ OPEN_PAREN: (2383..2384) "("
+ FORM: (2384..2387)
+ OPEN_PAREN: (2384..2385) "("
+ SYMBOL: (2385..2386)
+ IDENTIFIER: (2385..2386) "a"
+ CLOSE_PAREN: (2386..2387) ")"
+ CLOSE_PAREN: (2387..2388) ")"
+ ATMOSPHERE: (2388..2389) " "
+ FORM: (2389..2394)
+ OPEN_PAREN: (2389..2390) "("
+ FORM: (2390..2393)
+ OPEN_PAREN: (2390..2391) "("
+ SYMBOL: (2391..2392)
+ IDENTIFIER: (2391..2392) "b"
+ CLOSE_PAREN: (2392..2393) ")"
+ CLOSE_PAREN: (2393..2394) ")"
+ ATMOSPHERE: (2394..2395) " "
+ FORM: (2395..2400)
+ OPEN_PAREN: (2395..2396) "("
+ FORM: (2396..2399)
+ OPEN_PAREN: (2396..2397) "("
+ SYMBOL: (2397..2398)
+ IDENTIFIER: (2397..2398) "c"
+ CLOSE_PAREN: (2398..2399) ")"
+ CLOSE_PAREN: (2399..2400) ")"
+ CLOSE_PAREN: (2400..2401) ")"
+ CLOSE_PAREN: (2401..2402) ")"
+ CLOSE_PAREN: (2402..2403) ")"
+ FORM: (2403..2412)
+ OPEN_PAREN: (2403..2404) "("
+ SYMBOL: (2404..2411)
+ IDENTIFIER: (2404..2411) "newline"
+ CLOSE_PAREN: (2411..2412) ")"
+ ATMOSPHERE: (2412..2413) " "
+ ATMOSPHERE: (2413..2423) "; -> ((a))"
+ ATMOSPHERE: (2423..2424) "\n"
+ FORM: (2424..2468)
+ OPEN_PAREN: (2424..2425) "("
+ SYMBOL: (2425..2432)
+ IDENTIFIER: (2425..2432) "display"
+ ATMOSPHERE: (2432..2433) " "
+ FORM: (2433..2467)
+ OPEN_PAREN: (2433..2434) "("
+ SYMBOL: (2434..2439)
+ IDENTIFIER: (2434..2439) "assoc"
+ ATMOSPHERE: (2439..2440) " "
+ CONSTANT: (2440..2443)
+ NUMBER: (2440..2443) "2.0"
+ ATMOSPHERE: (2443..2444) " "
+ QUOTED_DATUM: (2444..2465)
+ QUOTE: (2444..2445) "’"
+ FORM: (2445..2464)
+ OPEN_PAREN: (2445..2446) "("
+ FORM: (2446..2451)
+ OPEN_PAREN: (2446..2447) "("
+ CONSTANT: (2447..2448)
+ NUMBER: (2447..2448) "1"
+ ATMOSPHERE: (2448..2449) " "
+ CONSTANT: (2449..2450)
+ NUMBER: (2449..2450) "1"
+ CLOSE_PAREN: (2450..2451) ")"
+ ATMOSPHERE: (2451..2452) " "
+ FORM: (2452..2457)
+ OPEN_PAREN: (2452..2453) "("
+ CONSTANT: (2453..2454)
+ NUMBER: (2453..2454) "2"
+ ATMOSPHERE: (2454..2455) " "
+ CONSTANT: (2455..2456)
+ NUMBER: (2455..2456) "4"
+ CLOSE_PAREN: (2456..2457) ")"
+ ATMOSPHERE: (2457..2458) " "
+ FORM: (2458..2463)
+ OPEN_PAREN: (2458..2459) "("
+ CONSTANT: (2459..2460)
+ NUMBER: (2459..2460) "3"
+ ATMOSPHERE: (2460..2461) " "
+ CONSTANT: (2461..2462)
+ NUMBER: (2461..2462) "9"
+ CLOSE_PAREN: (2462..2463) ")"
+ CLOSE_PAREN: (2463..2464) ")"
+ ATMOSPHERE: (2464..2465) " "
+ SYMBOL: (2465..2466)
+ IDENTIFIER: (2465..2466) "="
+ CLOSE_PAREN: (2466..2467) ")"
+ CLOSE_PAREN: (2467..2468) ")"
+ FORM: (2468..2477)
+ OPEN_PAREN: (2468..2469) "("
+ SYMBOL: (2469..2476)
+ IDENTIFIER: (2469..2476) "newline"
+ CLOSE_PAREN: (2476..2477) ")"
+ ATMOSPHERE: (2477..2478) " "
+ ATMOSPHERE: (2478..2488) "; -> (2 4)"
+ ATMOSPHERE: (2488..2489) "\n"
+ FORM: (2489..2530)
+ OPEN_PAREN: (2489..2490) "("
+ SYMBOL: (2490..2497)
+ IDENTIFIER: (2490..2497) "display"
+ ATMOSPHERE: (2497..2498) " "
+ FORM: (2498..2529)
+ OPEN_PAREN: (2498..2499) "("
+ SYMBOL: (2499..2503)
+ IDENTIFIER: (2499..2503) "assq"
+ ATMOSPHERE: (2503..2504) " "
+ CONSTANT: (2504..2505)
+ NUMBER: (2504..2505) "5"
+ ATMOSPHERE: (2505..2506) " "
+ QUOTED_DATUM: (2506..2528)
+ QUOTE: (2506..2507) "’"
+ FORM: (2507..2528)
+ OPEN_PAREN: (2507..2508) "("
+ FORM: (2508..2513)
+ OPEN_PAREN: (2508..2509) "("
+ CONSTANT: (2509..2510)
+ NUMBER: (2509..2510) "2"
+ ATMOSPHERE: (2510..2511) " "
+ CONSTANT: (2511..2512)
+ NUMBER: (2511..2512) "3"
+ CLOSE_PAREN: (2512..2513) ")"
+ ATMOSPHERE: (2513..2514) " "
+ FORM: (2514..2519)
+ OPEN_PAREN: (2514..2515) "("
+ CONSTANT: (2515..2516)
+ NUMBER: (2515..2516) "5"
+ ATMOSPHERE: (2516..2517) " "
+ CONSTANT: (2517..2518)
+ NUMBER: (2517..2518) "7"
+ CLOSE_PAREN: (2518..2519) ")"
+ ATMOSPHERE: (2519..2520) " "
+ FORM: (2520..2527)
+ OPEN_PAREN: (2520..2521) "("
+ CONSTANT: (2521..2523)
+ NUMBER: (2521..2523) "11"
+ ATMOSPHERE: (2523..2524) " "
+ CONSTANT: (2524..2526)
+ NUMBER: (2524..2526) "13"
+ CLOSE_PAREN: (2526..2527) ")"
+ CLOSE_PAREN: (2527..2528) ")"
+ CLOSE_PAREN: (2528..2529) ")"
+ CLOSE_PAREN: (2529..2530) ")"
+ FORM: (2530..2539)
+ OPEN_PAREN: (2530..2531) "("
+ SYMBOL: (2531..2538)
+ IDENTIFIER: (2531..2538) "newline"
+ CLOSE_PAREN: (2538..2539) ")"
+ ATMOSPHERE: (2539..2540) " "
+ ATMOSPHERE: (2540..2556) "; -> unspecified"
+ ATMOSPHERE: (2556..2557) "\n"
+ FORM: (2557..2598)
+ OPEN_PAREN: (2557..2558) "("
+ SYMBOL: (2558..2565)
+ IDENTIFIER: (2558..2565) "display"
+ ATMOSPHERE: (2565..2566) " "
+ FORM: (2566..2597)
+ OPEN_PAREN: (2566..2567) "("
+ SYMBOL: (2567..2571)
+ IDENTIFIER: (2567..2571) "assv"
+ ATMOSPHERE: (2571..2572) " "
+ CONSTANT: (2572..2573)
+ NUMBER: (2572..2573) "5"
+ ATMOSPHERE: (2573..2574) " "
+ QUOTED_DATUM: (2574..2596)
+ QUOTE: (2574..2575) "’"
+ FORM: (2575..2596)
+ OPEN_PAREN: (2575..2576) "("
+ FORM: (2576..2581)
+ OPEN_PAREN: (2576..2577) "("
+ CONSTANT: (2577..2578)
+ NUMBER: (2577..2578) "2"
+ ATMOSPHERE: (2578..2579) " "
+ CONSTANT: (2579..2580)
+ NUMBER: (2579..2580) "3"
+ CLOSE_PAREN: (2580..2581) ")"
+ ATMOSPHERE: (2581..2582) " "
+ FORM: (2582..2587)
+ OPEN_PAREN: (2582..2583) "("
+ CONSTANT: (2583..2584)
+ NUMBER: (2583..2584) "5"
+ ATMOSPHERE: (2584..2585) " "
+ CONSTANT: (2585..2586)
+ NUMBER: (2585..2586) "7"
+ CLOSE_PAREN: (2586..2587) ")"
+ ATMOSPHERE: (2587..2588) " "
+ FORM: (2588..2595)
+ OPEN_PAREN: (2588..2589) "("
+ CONSTANT: (2589..2591)
+ NUMBER: (2589..2591) "11"
+ ATMOSPHERE: (2591..2592) " "
+ CONSTANT: (2592..2594)
+ NUMBER: (2592..2594) "13"
+ CLOSE_PAREN: (2594..2595) ")"
+ CLOSE_PAREN: (2595..2596) ")"
+ CLOSE_PAREN: (2596..2597) ")"
+ CLOSE_PAREN: (2597..2598) ")"
+ FORM: (2598..2607)
+ OPEN_PAREN: (2598..2599) "("
+ SYMBOL: (2599..2606)
+ IDENTIFIER: (2599..2606) "newline"
+ CLOSE_PAREN: (2606..2607) ")"
+ ATMOSPHERE: (2607..2608) " "
+ ATMOSPHERE: (2608..2618) "; -> (5 7)"
+ ATMOSPHERE: (2618..2619) "\n"
+ EOF: (2619..2619) ""
diff --git a/spec/literals.ast b/spec/literals.ast
new file mode 100644
index 0000000..1218cb9
--- /dev/null
+++ b/spec/literals.ast
@@ -0,0 +1,16 @@
+PROGRAM: (0..25)
+ CONSTANT: (0..1)
+ NUMBER: (0..1) "1"
+ ATMOSPHERE: (1..2) "\n"
+ CONSTANT: (2..15)
+ STRING: (2..15) "\"hello world\""
+ ATMOSPHERE: (15..16) "\n"
+ CONSTANT: (16..18)
+ BOOLEAN: (16..18) "#t"
+ ATMOSPHERE: (18..19) "\n"
+ CONSTANT: (19..21)
+ BOOLEAN: (19..21) "#f"
+ ATMOSPHERE: (21..22) "\n"
+ CONSTANT: (22..25)
+ NUMBER: (22..25) "123"
+ EOF: (25..25) ""
diff --git a/spec/load_and_store.ast b/spec/load_and_store.ast
new file mode 100644
index 0000000..3060a18
--- /dev/null
+++ b/spec/load_and_store.ast
@@ -0,0 +1,32 @@
+PROGRAM: (0..46)
+ FORM: (0..16)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "define"
+ ATMOSPHERE: (7..8) " "
+ SYMBOL: (8..11)
+ IDENTIFIER: (8..11) "foo"
+ ATMOSPHERE: (11..12) " "
+ CONSTANT: (12..15)
+ NUMBER: (12..15) "100"
+ CLOSE_PAREN: (15..16) ")"
+ ATMOSPHERE: (16..17) "\n"
+ FORM: (17..37)
+ OPEN_PAREN: (17..18) "("
+ SYMBOL: (18..24)
+ IDENTIFIER: (18..24) "define"
+ ATMOSPHERE: (24..25) " "
+ SYMBOL: (25..28)
+ IDENTIFIER: (25..28) "bar"
+ ATMOSPHERE: (28..29) " "
+ CONSTANT: (29..36)
+ STRING: (29..36) "\"hello\""
+ CLOSE_PAREN: (36..37) ")"
+ ATMOSPHERE: (37..38) "\n"
+ SYMBOL: (38..41)
+ IDENTIFIER: (38..41) "foo"
+ ATMOSPHERE: (41..42) "\n"
+ SYMBOL: (42..45)
+ IDENTIFIER: (42..45) "bar"
+ ATMOSPHERE: (45..46) "\n"
+ EOF: (46..46) ""
diff --git a/spec/locals.ast b/spec/locals.ast
new file mode 100644
index 0000000..62cfae0
--- /dev/null
+++ b/spec/locals.ast
@@ -0,0 +1,122 @@
+PROGRAM: (0..182)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..43) "\n\n"
+ FORM: (43..161)
+ OPEN_PAREN: (43..44) "("
+ SYMBOL: (44..50)
+ IDENTIFIER: (44..50) "define"
+ ATMOSPHERE: (50..51) " "
+ FORM: (51..59)
+ OPEN_PAREN: (51..52) "("
+ SYMBOL: (52..56)
+ IDENTIFIER: (52..56) "fact"
+ ATMOSPHERE: (56..57) " "
+ SYMBOL: (57..58)
+ IDENTIFIER: (57..58) "n"
+ CLOSE_PAREN: (58..59) ")"
+ ATMOSPHERE: (59..64) "\n "
+ FORM: (64..160)
+ OPEN_PAREN: (64..65) "("
+ SYMBOL: (65..67)
+ IDENTIFIER: (65..67) "if"
+ ATMOSPHERE: (67..68) " "
+ FORM: (68..75)
+ OPEN_PAREN: (68..69) "("
+ SYMBOL: (69..70)
+ IDENTIFIER: (69..70) "="
+ ATMOSPHERE: (70..71) " "
+ SYMBOL: (71..72)
+ IDENTIFIER: (71..72) "n"
+ ATMOSPHERE: (72..73) " "
+ CONSTANT: (73..74)
+ NUMBER: (73..74) "0"
+ CLOSE_PAREN: (74..75) ")"
+ ATMOSPHERE: (75..84) "\n "
+ CONSTANT: (84..85)
+ NUMBER: (84..85) "1"
+ ATMOSPHERE: (85..94) "\n "
+ FORM: (94..159)
+ OPEN_PAREN: (94..95) "("
+ SYMBOL: (95..100)
+ IDENTIFIER: (95..100) "begin"
+ ATMOSPHERE: (100..113) "\n "
+ FORM: (113..131)
+ OPEN_PAREN: (113..114) "("
+ SYMBOL: (114..120)
+ IDENTIFIER: (114..120) "define"
+ ATMOSPHERE: (120..121) " "
+ SYMBOL: (121..122)
+ IDENTIFIER: (121..122) "m"
+ ATMOSPHERE: (122..123) " "
+ FORM: (123..130)
+ OPEN_PAREN: (123..124) "("
+ SYMBOL: (124..125)
+ IDENTIFIER: (124..125) "-"
+ ATMOSPHERE: (125..126) " "
+ SYMBOL: (126..127)
+ IDENTIFIER: (126..127) "n"
+ ATMOSPHERE: (127..128) " "
+ CONSTANT: (128..129)
+ NUMBER: (128..129) "1"
+ CLOSE_PAREN: (129..130) ")"
+ CLOSE_PAREN: (130..131) ")"
+ ATMOSPHERE: (131..144) "\n "
+ FORM: (144..158)
+ OPEN_PAREN: (144..145) "("
+ SYMBOL: (145..146)
+ IDENTIFIER: (145..146) "*"
+ ATMOSPHERE: (146..147) " "
+ SYMBOL: (147..148)
+ IDENTIFIER: (147..148) "n"
+ ATMOSPHERE: (148..149) " "
+ FORM: (149..157)
+ OPEN_PAREN: (149..150) "("
+ SYMBOL: (150..154)
+ IDENTIFIER: (150..154) "fact"
+ ATMOSPHERE: (154..155) " "
+ SYMBOL: (155..156)
+ IDENTIFIER: (155..156) "m"
+ CLOSE_PAREN: (156..157) ")"
+ CLOSE_PAREN: (157..158) ")"
+ CLOSE_PAREN: (158..159) ")"
+ CLOSE_PAREN: (159..160) ")"
+ CLOSE_PAREN: (160..161) ")"
+ ATMOSPHERE: (161..163) "\n\n"
+ FORM: (163..181)
+ OPEN_PAREN: (163..164) "("
+ SYMBOL: (164..171)
+ IDENTIFIER: (164..171) "display"
+ ATMOSPHERE: (171..172) " "
+ FORM: (172..180)
+ OPEN_PAREN: (172..173) "("
+ SYMBOL: (173..177)
+ IDENTIFIER: (173..177) "fact"
+ ATMOSPHERE: (177..178) " "
+ CONSTANT: (178..179)
+ NUMBER: (178..179) "5"
+ CLOSE_PAREN: (179..180) ")"
+ CLOSE_PAREN: (180..181) ")"
+ ATMOSPHERE: (181..182) " "
+ EOF: (182..182) ""
diff --git a/spec/norun/forever.ast b/spec/norun/forever.ast
new file mode 100644
index 0000000..81faefc
--- /dev/null
+++ b/spec/norun/forever.ast
@@ -0,0 +1,60 @@
+PROGRAM: (0..81)
+ FORM: (0..14)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "define"
+ ATMOSPHERE: (7..8) " "
+ SYMBOL: (8..13)
+ IDENTIFIER: (8..13) "world"
+ CLOSE_PAREN: (13..14) ")"
+ ATMOSPHERE: (14..15) "\n"
+ FORM: (15..39)
+ OPEN_PAREN: (15..16) "("
+ SYMBOL: (16..22)
+ IDENTIFIER: (16..22) "define"
+ ATMOSPHERE: (22..23) " "
+ FORM: (23..30)
+ OPEN_PAREN: (23..24) "("
+ SYMBOL: (24..29)
+ IDENTIFIER: (24..29) "hello"
+ CLOSE_PAREN: (29..30) ")"
+ ATMOSPHERE: (30..31) " "
+ FORM: (31..38)
+ OPEN_PAREN: (31..32) "("
+ SYMBOL: (32..37)
+ IDENTIFIER: (32..37) "world"
+ CLOSE_PAREN: (37..38) ")"
+ CLOSE_PAREN: (38..39) ")"
+ ATMOSPHERE: (39..40) "\n"
+ FORM: (40..72)
+ OPEN_PAREN: (40..41) "("
+ SYMBOL: (41..45)
+ IDENTIFIER: (41..45) "set!"
+ ATMOSPHERE: (45..46) " "
+ SYMBOL: (46..51)
+ IDENTIFIER: (46..51) "world"
+ ATMOSPHERE: (51..52) " "
+ FORM: (52..71)
+ OPEN_PAREN: (52..53) "("
+ SYMBOL: (53..59)
+ IDENTIFIER: (53..59) "lambda"
+ ATMOSPHERE: (59..60) " "
+ FORM: (60..62)
+ OPEN_PAREN: (60..61) "("
+ CLOSE_PAREN: (61..62) ")"
+ ATMOSPHERE: (62..63) " "
+ FORM: (63..70)
+ OPEN_PAREN: (63..64) "("
+ SYMBOL: (64..69)
+ IDENTIFIER: (64..69) "hello"
+ CLOSE_PAREN: (69..70) ")"
+ CLOSE_PAREN: (70..71) ")"
+ CLOSE_PAREN: (71..72) ")"
+ ATMOSPHERE: (72..73) "\n"
+ FORM: (73..80)
+ OPEN_PAREN: (73..74) "("
+ SYMBOL: (74..79)
+ IDENTIFIER: (74..79) "hello"
+ CLOSE_PAREN: (79..80) ")"
+ ATMOSPHERE: (80..81) "\n"
+ EOF: (81..81) ""
diff --git a/spec/null.ast b/spec/null.ast
new file mode 100644
index 0000000..c78ea9a
--- /dev/null
+++ b/spec/null.ast
@@ -0,0 +1,5 @@
+PROGRAM: (0..2)
+ FORM: (0..2)
+ OPEN_PAREN: (0..1) "("
+ CLOSE_PAREN: (1..2) ")"
+ EOF: (2..2) ""
diff --git a/spec/parameters.ast b/spec/parameters.ast
new file mode 100644
index 0000000..6864c3c
--- /dev/null
+++ b/spec/parameters.ast
@@ -0,0 +1,72 @@
+PROGRAM: (0..97)
+ FORM: (0..24)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "define"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..17)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..12)
+ IDENTIFIER: (9..12) "foo"
+ ATMOSPHERE: (12..13) " "
+ SYMBOL: (13..14)
+ IDENTIFIER: (13..14) "a"
+ ATMOSPHERE: (14..15) " "
+ SYMBOL: (15..16)
+ IDENTIFIER: (15..16) "b"
+ CLOSE_PAREN: (16..17) ")"
+ ATMOSPHERE: (17..22) "\n "
+ SYMBOL: (22..23)
+ IDENTIFIER: (22..23) "b"
+ CLOSE_PAREN: (23..24) ")"
+ ATMOSPHERE: (24..25) "\n"
+ FORM: (25..51)
+ OPEN_PAREN: (25..26) "("
+ SYMBOL: (26..32)
+ IDENTIFIER: (26..32) "define"
+ ATMOSPHERE: (32..33) " "
+ FORM: (33..44)
+ OPEN_PAREN: (33..34) "("
+ SYMBOL: (34..37)
+ IDENTIFIER: (34..37) "bar"
+ ATMOSPHERE: (37..38) " "
+ SYMBOL: (38..39)
+ IDENTIFIER: (38..39) "a"
+ ATMOSPHERE: (39..40) " "
+ SYMBOL: (40..41)
+ IDENTIFIER: (40..41) "b"
+ ATMOSPHERE: (41..42) " "
+ SYMBOL: (42..43)
+ IDENTIFIER: (42..43) "c"
+ CLOSE_PAREN: (43..44) ")"
+ ATMOSPHERE: (44..49) "\n "
+ SYMBOL: (49..50)
+ IDENTIFIER: (49..50) "a"
+ CLOSE_PAREN: (50..51) ")"
+ ATMOSPHERE: (51..52) "\n"
+ ATMOSPHERE: (52..71) "; should return 101"
+ ATMOSPHERE: (71..72) "\n"
+ FORM: (72..97)
+ OPEN_PAREN: (72..73) "("
+ SYMBOL: (73..76)
+ IDENTIFIER: (73..76) "bar"
+ ATMOSPHERE: (76..77) " "
+ FORM: (77..90)
+ OPEN_PAREN: (77..78) "("
+ SYMBOL: (78..81)
+ IDENTIFIER: (78..81) "foo"
+ ATMOSPHERE: (81..82) " "
+ CONSTANT: (82..85)
+ NUMBER: (82..85) "123"
+ ATMOSPHERE: (85..86) " "
+ CONSTANT: (86..89)
+ NUMBER: (86..89) "101"
+ CLOSE_PAREN: (89..90) ")"
+ ATMOSPHERE: (90..91) " "
+ CONSTANT: (91..93)
+ NUMBER: (91..93) "78"
+ ATMOSPHERE: (93..94) " "
+ CONSTANT: (94..96)
+ NUMBER: (94..96) "90"
+ CLOSE_PAREN: (96..97) ")"
+ EOF: (97..97) ""
diff --git a/spec/process-context.ast b/spec/process-context.ast
new file mode 100644
index 0000000..59b0c58
--- /dev/null
+++ b/spec/process-context.ast
@@ -0,0 +1,80 @@
+PROGRAM: (0..199)
+ FORM: (0..66)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..32)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..31)
+ IDENTIFIER: (16..31) "process-context"
+ CLOSE_PAREN: (31..32) ")"
+ ATMOSPHERE: (32..35) "\n "
+ FORM: (35..48)
+ OPEN_PAREN: (35..36) "("
+ SYMBOL: (36..42)
+ IDENTIFIER: (36..42) "scheme"
+ ATMOSPHERE: (42..43) " "
+ SYMBOL: (43..47)
+ IDENTIFIER: (43..47) "base"
+ CLOSE_PAREN: (47..48) ")"
+ ATMOSPHERE: (48..51) "\n "
+ FORM: (51..65)
+ OPEN_PAREN: (51..52) "("
+ SYMBOL: (52..58)
+ IDENTIFIER: (52..58) "scheme"
+ ATMOSPHERE: (58..59) " "
+ SYMBOL: (59..64)
+ IDENTIFIER: (59..64) "write"
+ CLOSE_PAREN: (64..65) ")"
+ CLOSE_PAREN: (65..66) ")"
+ ATMOSPHERE: (66..68) "\n\n"
+ FORM: (68..122)
+ OPEN_PAREN: (68..69) "("
+ SYMBOL: (69..76)
+ IDENTIFIER: (69..76) "display"
+ ATMOSPHERE: (76..77) " "
+ FORM: (77..121)
+ OPEN_PAREN: (77..78) "("
+ SYMBOL: (78..102)
+ IDENTIFIER: (78..102) "get-environment-variable"
+ ATMOSPHERE: (102..103) " "
+ CONSTANT: (103..120)
+ STRING: (103..120) "\"FEERSUM_TESTING\""
+ CLOSE_PAREN: (120..121) ")"
+ CLOSE_PAREN: (121..122) ")"
+ ATMOSPHERE: (122..123) "\n"
+ FORM: (123..186)
+ OPEN_PAREN: (123..124) "("
+ SYMBOL: (124..131)
+ IDENTIFIER: (124..131) "display"
+ ATMOSPHERE: (131..132) " "
+ FORM: (132..185)
+ OPEN_PAREN: (132..133) "("
+ SYMBOL: (133..138)
+ IDENTIFIER: (133..138) "assoc"
+ ATMOSPHERE: (138..139) " "
+ CONSTANT: (139..156)
+ STRING: (139..156) "\"FEERSUM_TESTING\""
+ ATMOSPHERE: (156..157) " "
+ FORM: (157..184)
+ OPEN_PAREN: (157..158) "("
+ SYMBOL: (158..183)
+ IDENTIFIER: (158..183) "get-environment-variables"
+ CLOSE_PAREN: (183..184) ")"
+ CLOSE_PAREN: (184..185) ")"
+ CLOSE_PAREN: (185..186) ")"
+ ATMOSPHERE: (186..188) "\n\n"
+ FORM: (188..198)
+ OPEN_PAREN: (188..189) "("
+ SYMBOL: (189..193)
+ IDENTIFIER: (189..193) "exit"
+ ATMOSPHERE: (193..194) " "
+ CONSTANT: (194..197)
+ NUMBER: (194..197) "123"
+ CLOSE_PAREN: (197..198) ")"
+ ATMOSPHERE: (198..199) "\n"
+ EOF: (199..199) ""
diff --git a/spec/qsort.ast b/spec/qsort.ast
new file mode 100644
index 0000000..db6ddff
--- /dev/null
+++ b/spec/qsort.ast
@@ -0,0 +1,782 @@
+PROGRAM: (0..2752)
+ ATMOSPHERE: (0..26) ";; Sorting library example"
+ ATMOSPHERE: (26..27) "\n"
+ FORM: (27..2545)
+ OPEN_PAREN: (27..28) "("
+ SYMBOL: (28..42)
+ IDENTIFIER: (28..42) "define-library"
+ ATMOSPHERE: (42..43) " "
+ FORM: (43..49)
+ OPEN_PAREN: (43..44) "("
+ SYMBOL: (44..48)
+ IDENTIFIER: (44..48) "sort"
+ CLOSE_PAREN: (48..49) ")"
+ ATMOSPHERE: (49..54) "\n "
+ FORM: (54..258)
+ OPEN_PAREN: (54..55) "("
+ SYMBOL: (55..61)
+ IDENTIFIER: (55..61) "import"
+ ATMOSPHERE: (61..62) " "
+ FORM: (62..75)
+ OPEN_PAREN: (62..63) "("
+ SYMBOL: (63..69)
+ IDENTIFIER: (63..69) "scheme"
+ ATMOSPHERE: (69..70) " "
+ SYMBOL: (70..74)
+ IDENTIFIER: (70..74) "base"
+ CLOSE_PAREN: (74..75) ")"
+ ATMOSPHERE: (75..84) "\n "
+ ATMOSPHERE: (84..151) ";; FIXME: we shouldn't _need_ to import this, but we have no way of"
+ ATMOSPHERE: (151..160) "\n "
+ ATMOSPHERE: (160..224) ";; exporting or re-exporting macro definitions currently."
+ ATMOSPHERE: (224..233) "\n "
+ FORM: (233..257)
+ OPEN_PAREN: (233..234) "("
+ SYMBOL: (234..241)
+ IDENTIFIER: (234..241) "feersum"
+ ATMOSPHERE: (241..242) " "
+ SYMBOL: (242..249)
+ IDENTIFIER: (242..249) "builtin"
+ ATMOSPHERE: (249..250) " "
+ SYMBOL: (250..256)
+ IDENTIFIER: (250..256) "macros"
+ CLOSE_PAREN: (256..257) ")"
+ CLOSE_PAREN: (257..258) ")"
+ ATMOSPHERE: (258..263) "\n "
+ FORM: (263..291)
+ OPEN_PAREN: (263..264) "("
+ SYMBOL: (264..270)
+ IDENTIFIER: (264..270) "export"
+ ATMOSPHERE: (270..271) " "
+ FORM: (271..290)
+ OPEN_PAREN: (271..272) "("
+ SYMBOL: (272..278)
+ IDENTIFIER: (272..278) "rename"
+ ATMOSPHERE: (278..279) " "
+ SYMBOL: (279..284)
+ IDENTIFIER: (279..284) "qsort"
+ ATMOSPHERE: (284..285) " "
+ SYMBOL: (285..289)
+ IDENTIFIER: (285..289) "sort"
+ CLOSE_PAREN: (289..290) ")"
+ CLOSE_PAREN: (290..291) ")"
+ ATMOSPHERE: (291..296) "\n "
+ FORM: (296..2544)
+ OPEN_PAREN: (296..297) "("
+ SYMBOL: (297..302)
+ IDENTIFIER: (297..302) "begin"
+ ATMOSPHERE: (302..311) "\n "
+ ATMOSPHERE: (311..332) ";; Partition Utitlity"
+ ATMOSPHERE: (332..341) "\n "
+ ATMOSPHERE: (341..342) ";"
+ ATMOSPHERE: (342..351) "\n "
+ ATMOSPHERE: (351..422) "; This function takes a given `lst` and partitions it around a `pivot`."
+ ATMOSPHERE: (422..431) "\n "
+ ATMOSPHERE: (431..503) "; The result is a list who's `car` is a list containing the numbers less"
+ ATMOSPHERE: (503..512) "\n "
+ ATMOSPHERE: (512..583) "; than the pivot, and `cdr` is a list containing those greater than the"
+ ATMOSPHERE: (583..592) "\n "
+ ATMOSPHERE: (592..600) "; pivot."
+ ATMOSPHERE: (600..609) "\n "
+ FORM: (609..1024)
+ OPEN_PAREN: (609..610) "("
+ SYMBOL: (610..616)
+ IDENTIFIER: (610..616) "define"
+ ATMOSPHERE: (616..617) " "
+ FORM: (617..638)
+ OPEN_PAREN: (617..618) "("
+ SYMBOL: (618..627)
+ IDENTIFIER: (618..627) "partition"
+ ATMOSPHERE: (627..628) " "
+ SYMBOL: (628..633)
+ IDENTIFIER: (628..633) "pivot"
+ ATMOSPHERE: (633..634) " "
+ SYMBOL: (634..637)
+ IDENTIFIER: (634..637) "lst"
+ CLOSE_PAREN: (637..638) ")"
+ ATMOSPHERE: (638..651) "\n "
+ FORM: (651..1023)
+ OPEN_PAREN: (651..652) "("
+ SYMBOL: (652..654)
+ IDENTIFIER: (652..654) "if"
+ ATMOSPHERE: (654..655) " "
+ FORM: (655..666)
+ OPEN_PAREN: (655..656) "("
+ SYMBOL: (656..661)
+ IDENTIFIER: (656..661) "null?"
+ ATMOSPHERE: (661..662) " "
+ SYMBOL: (662..665)
+ IDENTIFIER: (662..665) "lst"
+ CLOSE_PAREN: (665..666) ")"
+ ATMOSPHERE: (666..683) "\n "
+ QUOTED_DATUM: (683..705)
+ QUOTE: (683..684) "'"
+ FORM: (684..688)
+ OPEN_PAREN: (684..685) "("
+ FORM: (685..687)
+ OPEN_PAREN: (685..686) "("
+ CLOSE_PAREN: (686..687) ")"
+ CLOSE_PAREN: (687..688) ")"
+ ATMOSPHERE: (688..705) "\n "
+ FORM: (705..1022)
+ OPEN_PAREN: (705..706) "("
+ SYMBOL: (706..709)
+ IDENTIFIER: (706..709) "let"
+ ATMOSPHERE: (709..710) " "
+ FORM: (710..786)
+ OPEN_PAREN: (710..711) "("
+ FORM: (711..730)
+ OPEN_PAREN: (711..712) "("
+ SYMBOL: (712..719)
+ IDENTIFIER: (712..719) "current"
+ ATMOSPHERE: (719..720) " "
+ FORM: (720..729)
+ OPEN_PAREN: (720..721) "("
+ SYMBOL: (721..724)
+ IDENTIFIER: (721..724) "car"
+ ATMOSPHERE: (724..725) " "
+ SYMBOL: (725..728)
+ IDENTIFIER: (725..728) "lst"
+ CLOSE_PAREN: (728..729) ")"
+ CLOSE_PAREN: (729..730) ")"
+ ATMOSPHERE: (730..751) "\n "
+ FORM: (751..785)
+ OPEN_PAREN: (751..752) "("
+ SYMBOL: (752..756)
+ IDENTIFIER: (752..756) "rest"
+ ATMOSPHERE: (756..757) " "
+ FORM: (757..784)
+ OPEN_PAREN: (757..758) "("
+ SYMBOL: (758..767)
+ IDENTIFIER: (758..767) "partition"
+ ATMOSPHERE: (767..768) " "
+ SYMBOL: (768..773)
+ IDENTIFIER: (768..773) "pivot"
+ ATMOSPHERE: (773..774) " "
+ FORM: (774..783)
+ OPEN_PAREN: (774..775) "("
+ SYMBOL: (775..778)
+ IDENTIFIER: (775..778) "cdr"
+ ATMOSPHERE: (778..779) " "
+ SYMBOL: (779..782)
+ IDENTIFIER: (779..782) "lst"
+ CLOSE_PAREN: (782..783) ")"
+ CLOSE_PAREN: (783..784) ")"
+ CLOSE_PAREN: (784..785) ")"
+ CLOSE_PAREN: (785..786) ")"
+ ATMOSPHERE: (786..807) "\n "
+ FORM: (807..1021)
+ OPEN_PAREN: (807..808) "("
+ SYMBOL: (808..810)
+ IDENTIFIER: (808..810) "if"
+ ATMOSPHERE: (810..811) " "
+ FORM: (811..828)
+ OPEN_PAREN: (811..812) "("
+ SYMBOL: (812..813)
+ IDENTIFIER: (812..813) "<"
+ ATMOSPHERE: (813..814) " "
+ SYMBOL: (814..821)
+ IDENTIFIER: (814..821) "current"
+ ATMOSPHERE: (821..822) " "
+ SYMBOL: (822..827)
+ IDENTIFIER: (822..827) "pivot"
+ CLOSE_PAREN: (827..828) ")"
+ ATMOSPHERE: (828..853) "\n "
+ FORM: (853..924)
+ OPEN_PAREN: (853..854) "("
+ SYMBOL: (854..858)
+ IDENTIFIER: (854..858) "cons"
+ ATMOSPHERE: (858..859) " "
+ FORM: (859..884)
+ OPEN_PAREN: (859..860) "("
+ SYMBOL: (860..864)
+ IDENTIFIER: (860..864) "cons"
+ ATMOSPHERE: (864..865) " "
+ SYMBOL: (865..872)
+ IDENTIFIER: (865..872) "current"
+ ATMOSPHERE: (872..873) " "
+ FORM: (873..883)
+ OPEN_PAREN: (873..874) "("
+ SYMBOL: (874..877)
+ IDENTIFIER: (874..877) "car"
+ ATMOSPHERE: (877..878) " "
+ SYMBOL: (878..882)
+ IDENTIFIER: (878..882) "rest"
+ CLOSE_PAREN: (882..883) ")"
+ CLOSE_PAREN: (883..884) ")"
+ ATMOSPHERE: (884..913) "\n "
+ FORM: (913..923)
+ OPEN_PAREN: (913..914) "("
+ SYMBOL: (914..917)
+ IDENTIFIER: (914..917) "cdr"
+ ATMOSPHERE: (917..918) " "
+ SYMBOL: (918..922)
+ IDENTIFIER: (918..922) "rest"
+ CLOSE_PAREN: (922..923) ")"
+ CLOSE_PAREN: (923..924) ")"
+ ATMOSPHERE: (924..949) "\n "
+ FORM: (949..1020)
+ OPEN_PAREN: (949..950) "("
+ SYMBOL: (950..954)
+ IDENTIFIER: (950..954) "cons"
+ ATMOSPHERE: (954..955) " "
+ FORM: (955..965)
+ OPEN_PAREN: (955..956) "("
+ SYMBOL: (956..959)
+ IDENTIFIER: (956..959) "car"
+ ATMOSPHERE: (959..960) " "
+ SYMBOL: (960..964)
+ IDENTIFIER: (960..964) "rest"
+ CLOSE_PAREN: (964..965) ")"
+ ATMOSPHERE: (965..994) "\n "
+ FORM: (994..1019)
+ OPEN_PAREN: (994..995) "("
+ SYMBOL: (995..999)
+ IDENTIFIER: (995..999) "cons"
+ ATMOSPHERE: (999..1000) " "
+ SYMBOL: (1000..1007)
+ IDENTIFIER: (1000..1007) "current"
+ ATMOSPHERE: (1007..1008) " "
+ FORM: (1008..1018)
+ OPEN_PAREN: (1008..1009) "("
+ SYMBOL: (1009..1012)
+ IDENTIFIER: (1009..1012) "cdr"
+ ATMOSPHERE: (1012..1013) " "
+ SYMBOL: (1013..1017)
+ IDENTIFIER: (1013..1017) "rest"
+ CLOSE_PAREN: (1017..1018) ")"
+ CLOSE_PAREN: (1018..1019) ")"
+ CLOSE_PAREN: (1019..1020) ")"
+ CLOSE_PAREN: (1020..1021) ")"
+ CLOSE_PAREN: (1021..1022) ")"
+ CLOSE_PAREN: (1022..1023) ")"
+ CLOSE_PAREN: (1023..1024) ")"
+ ATMOSPHERE: (1024..1034) "\n\n "
+ ATMOSPHERE: (1034..1079) ";; Append the `right` list to the `left` one."
+ ATMOSPHERE: (1079..1088) "\n "
+ ATMOSPHERE: (1088..1089) ";"
+ ATMOSPHERE: (1089..1098) "\n "
+ ATMOSPHERE: (1098..1170) "; This function uses two helpers to tail-recursively reconstruct a list."
+ ATMOSPHERE: (1170..1179) "\n "
+ ATMOSPHERE: (1179..1247) "; The `append-helper` first recurses moving elements from the `left`"
+ ATMOSPHERE: (1247..1256) "\n "
+ ATMOSPHERE: (1256..1327) "; list into the accumuulator. Once the left list is empty the base case"
+ ATMOSPHERE: (1327..1336) "\n "
+ ATMOSPHERE: (1336..1398) "; uses `rebuild` to tail-recursively construct the final list."
+ ATMOSPHERE: (1398..1407) "\n "
+ FORM: (1407..1890)
+ OPEN_PAREN: (1407..1408) "("
+ SYMBOL: (1408..1414)
+ IDENTIFIER: (1408..1414) "define"
+ ATMOSPHERE: (1414..1415) " "
+ FORM: (1415..1434)
+ OPEN_PAREN: (1415..1416) "("
+ SYMBOL: (1416..1422)
+ IDENTIFIER: (1416..1422) "append"
+ ATMOSPHERE: (1422..1423) " "
+ SYMBOL: (1423..1427)
+ IDENTIFIER: (1423..1427) "left"
+ ATMOSPHERE: (1427..1428) " "
+ SYMBOL: (1428..1433)
+ IDENTIFIER: (1428..1433) "right"
+ CLOSE_PAREN: (1433..1434) ")"
+ ATMOSPHERE: (1434..1447) "\n "
+ FORM: (1447..1597)
+ OPEN_PAREN: (1447..1448) "("
+ SYMBOL: (1448..1454)
+ IDENTIFIER: (1448..1454) "define"
+ ATMOSPHERE: (1454..1455) " "
+ FORM: (1455..1474)
+ OPEN_PAREN: (1455..1456) "("
+ SYMBOL: (1456..1463)
+ IDENTIFIER: (1456..1463) "rebuild"
+ ATMOSPHERE: (1463..1464) " "
+ SYMBOL: (1464..1467)
+ IDENTIFIER: (1464..1467) "acc"
+ ATMOSPHERE: (1467..1468) " "
+ SYMBOL: (1468..1473)
+ IDENTIFIER: (1468..1473) "right"
+ CLOSE_PAREN: (1473..1474) ")"
+ ATMOSPHERE: (1474..1491) "\n "
+ FORM: (1491..1596)
+ OPEN_PAREN: (1491..1492) "("
+ SYMBOL: (1492..1494)
+ IDENTIFIER: (1492..1494) "if"
+ ATMOSPHERE: (1494..1495) " "
+ FORM: (1495..1506)
+ OPEN_PAREN: (1495..1496) "("
+ SYMBOL: (1496..1501)
+ IDENTIFIER: (1496..1501) "null?"
+ ATMOSPHERE: (1501..1502) " "
+ SYMBOL: (1502..1505)
+ IDENTIFIER: (1502..1505) "acc"
+ CLOSE_PAREN: (1505..1506) ")"
+ ATMOSPHERE: (1506..1527) "\n "
+ SYMBOL: (1527..1532)
+ IDENTIFIER: (1527..1532) "right"
+ ATMOSPHERE: (1532..1553) "\n "
+ FORM: (1553..1595)
+ OPEN_PAREN: (1553..1554) "("
+ SYMBOL: (1554..1561)
+ IDENTIFIER: (1554..1561) "rebuild"
+ ATMOSPHERE: (1561..1562) " "
+ FORM: (1562..1571)
+ OPEN_PAREN: (1562..1563) "("
+ SYMBOL: (1563..1566)
+ IDENTIFIER: (1563..1566) "cdr"
+ ATMOSPHERE: (1566..1567) " "
+ SYMBOL: (1567..1570)
+ IDENTIFIER: (1567..1570) "acc"
+ CLOSE_PAREN: (1570..1571) ")"
+ ATMOSPHERE: (1571..1572) " "
+ FORM: (1572..1594)
+ OPEN_PAREN: (1572..1573) "("
+ SYMBOL: (1573..1577)
+ IDENTIFIER: (1573..1577) "cons"
+ ATMOSPHERE: (1577..1578) " "
+ FORM: (1578..1587)
+ OPEN_PAREN: (1578..1579) "("
+ SYMBOL: (1579..1582)
+ IDENTIFIER: (1579..1582) "car"
+ ATMOSPHERE: (1582..1583) " "
+ SYMBOL: (1583..1586)
+ IDENTIFIER: (1583..1586) "acc"
+ CLOSE_PAREN: (1586..1587) ")"
+ ATMOSPHERE: (1587..1588) " "
+ SYMBOL: (1588..1593)
+ IDENTIFIER: (1588..1593) "right"
+ CLOSE_PAREN: (1593..1594) ")"
+ CLOSE_PAREN: (1594..1595) ")"
+ CLOSE_PAREN: (1595..1596) ")"
+ CLOSE_PAREN: (1596..1597) ")"
+ ATMOSPHERE: (1597..1610) "\n "
+ FORM: (1610..1846)
+ OPEN_PAREN: (1610..1611) "("
+ SYMBOL: (1611..1617)
+ IDENTIFIER: (1611..1617) "define"
+ ATMOSPHERE: (1617..1618) " "
+ FORM: (1618..1648)
+ OPEN_PAREN: (1618..1619) "("
+ SYMBOL: (1619..1632)
+ IDENTIFIER: (1619..1632) "append-helper"
+ ATMOSPHERE: (1632..1633) " "
+ SYMBOL: (1633..1636)
+ IDENTIFIER: (1633..1636) "acc"
+ ATMOSPHERE: (1636..1637) " "
+ SYMBOL: (1637..1641)
+ IDENTIFIER: (1637..1641) "left"
+ ATMOSPHERE: (1641..1642) " "
+ SYMBOL: (1642..1647)
+ IDENTIFIER: (1642..1647) "right"
+ CLOSE_PAREN: (1647..1648) ")"
+ ATMOSPHERE: (1648..1665) "\n "
+ FORM: (1665..1845)
+ OPEN_PAREN: (1665..1666) "("
+ SYMBOL: (1666..1668)
+ IDENTIFIER: (1666..1668) "if"
+ ATMOSPHERE: (1668..1669) " "
+ FORM: (1669..1681)
+ OPEN_PAREN: (1669..1670) "("
+ SYMBOL: (1670..1675)
+ IDENTIFIER: (1670..1675) "null?"
+ ATMOSPHERE: (1675..1676) " "
+ SYMBOL: (1676..1680)
+ IDENTIFIER: (1676..1680) "left"
+ CLOSE_PAREN: (1680..1681) ")"
+ ATMOSPHERE: (1681..1702) "\n "
+ FORM: (1702..1721)
+ OPEN_PAREN: (1702..1703) "("
+ SYMBOL: (1703..1710)
+ IDENTIFIER: (1703..1710) "rebuild"
+ ATMOSPHERE: (1710..1711) " "
+ SYMBOL: (1711..1714)
+ IDENTIFIER: (1711..1714) "acc"
+ ATMOSPHERE: (1714..1715) " "
+ SYMBOL: (1715..1720)
+ IDENTIFIER: (1715..1720) "right"
+ CLOSE_PAREN: (1720..1721) ")"
+ ATMOSPHERE: (1721..1742) "\n "
+ FORM: (1742..1844)
+ OPEN_PAREN: (1742..1743) "("
+ SYMBOL: (1743..1756)
+ IDENTIFIER: (1743..1756) "append-helper"
+ ATMOSPHERE: (1756..1757) " "
+ FORM: (1757..1778)
+ OPEN_PAREN: (1757..1758) "("
+ SYMBOL: (1758..1762)
+ IDENTIFIER: (1758..1762) "cons"
+ ATMOSPHERE: (1762..1763) " "
+ FORM: (1763..1773)
+ OPEN_PAREN: (1763..1764) "("
+ SYMBOL: (1764..1767)
+ IDENTIFIER: (1764..1767) "car"
+ ATMOSPHERE: (1767..1768) " "
+ SYMBOL: (1768..1772)
+ IDENTIFIER: (1768..1772) "left"
+ CLOSE_PAREN: (1772..1773) ")"
+ ATMOSPHERE: (1773..1774) " "
+ SYMBOL: (1774..1777)
+ IDENTIFIER: (1774..1777) "acc"
+ CLOSE_PAREN: (1777..1778) ")"
+ ATMOSPHERE: (1778..1803) "\n "
+ FORM: (1803..1813)
+ OPEN_PAREN: (1803..1804) "("
+ SYMBOL: (1804..1807)
+ IDENTIFIER: (1804..1807) "cdr"
+ ATMOSPHERE: (1807..1808) " "
+ SYMBOL: (1808..1812)
+ IDENTIFIER: (1808..1812) "left"
+ CLOSE_PAREN: (1812..1813) ")"
+ ATMOSPHERE: (1813..1838) "\n "
+ SYMBOL: (1838..1843)
+ IDENTIFIER: (1838..1843) "right"
+ CLOSE_PAREN: (1843..1844) ")"
+ CLOSE_PAREN: (1844..1845) ")"
+ CLOSE_PAREN: (1845..1846) ")"
+ ATMOSPHERE: (1846..1859) "\n "
+ FORM: (1859..1889)
+ OPEN_PAREN: (1859..1860) "("
+ SYMBOL: (1860..1873)
+ IDENTIFIER: (1860..1873) "append-helper"
+ ATMOSPHERE: (1873..1874) " "
+ QUOTED_DATUM: (1874..1878)
+ QUOTE: (1874..1875) "'"
+ FORM: (1875..1877)
+ OPEN_PAREN: (1875..1876) "("
+ CLOSE_PAREN: (1876..1877) ")"
+ ATMOSPHERE: (1877..1878) " "
+ SYMBOL: (1878..1882)
+ IDENTIFIER: (1878..1882) "left"
+ ATMOSPHERE: (1882..1883) " "
+ SYMBOL: (1883..1888)
+ IDENTIFIER: (1883..1888) "right"
+ CLOSE_PAREN: (1888..1889) ")"
+ CLOSE_PAREN: (1889..1890) ")"
+ ATMOSPHERE: (1890..1900) "\n\n "
+ ATMOSPHERE: (1900..1938) ";; Recursive quicksort implementation."
+ ATMOSPHERE: (1938..1947) "\n "
+ ATMOSPHERE: (1947..1948) ";"
+ ATMOSPHERE: (1948..1957) "\n "
+ ATMOSPHERE: (1957..2026) "; Takes a list of numbers and returns a sorted list. Trivially sorted"
+ ATMOSPHERE: (2026..2035) "\n "
+ ATMOSPHERE: (2035..2106) "; lists are immediately returned. Complex lists are split using a token"
+ ATMOSPHERE: (2106..2115) "\n "
+ ATMOSPHERE: (2115..2177) "; pivot and the high and low sub-lists are individually sorted"
+ ATMOSPHERE: (2177..2186) "\n "
+ ATMOSPHERE: (2186..2200) "; recurisvely."
+ ATMOSPHERE: (2200..2209) "\n "
+ FORM: (2209..2534)
+ OPEN_PAREN: (2209..2210) "("
+ SYMBOL: (2210..2216)
+ IDENTIFIER: (2210..2216) "define"
+ ATMOSPHERE: (2216..2217) " "
+ FORM: (2217..2229)
+ OPEN_PAREN: (2217..2218) "("
+ SYMBOL: (2218..2223)
+ IDENTIFIER: (2218..2223) "qsort"
+ ATMOSPHERE: (2223..2224) " "
+ SYMBOL: (2224..2228)
+ IDENTIFIER: (2224..2228) "nums"
+ CLOSE_PAREN: (2228..2229) ")"
+ ATMOSPHERE: (2229..2242) "\n "
+ FORM: (2242..2533)
+ OPEN_PAREN: (2242..2243) "("
+ SYMBOL: (2243..2245)
+ IDENTIFIER: (2243..2245) "if"
+ ATMOSPHERE: (2245..2246) " "
+ FORM: (2246..2282)
+ OPEN_PAREN: (2246..2247) "("
+ SYMBOL: (2247..2249)
+ IDENTIFIER: (2247..2249) "or"
+ ATMOSPHERE: (2249..2250) " "
+ FORM: (2250..2262)
+ OPEN_PAREN: (2250..2251) "("
+ SYMBOL: (2251..2256)
+ IDENTIFIER: (2251..2256) "null?"
+ ATMOSPHERE: (2256..2257) " "
+ SYMBOL: (2257..2261)
+ IDENTIFIER: (2257..2261) "nums"
+ CLOSE_PAREN: (2261..2262) ")"
+ ATMOSPHERE: (2262..2263) " "
+ FORM: (2263..2281)
+ OPEN_PAREN: (2263..2264) "("
+ SYMBOL: (2264..2269)
+ IDENTIFIER: (2264..2269) "null?"
+ ATMOSPHERE: (2269..2270) " "
+ FORM: (2270..2280)
+ OPEN_PAREN: (2270..2271) "("
+ SYMBOL: (2271..2274)
+ IDENTIFIER: (2271..2274) "cdr"
+ ATMOSPHERE: (2274..2275) " "
+ SYMBOL: (2275..2279)
+ IDENTIFIER: (2275..2279) "nums"
+ CLOSE_PAREN: (2279..2280) ")"
+ CLOSE_PAREN: (2280..2281) ")"
+ CLOSE_PAREN: (2281..2282) ")"
+ ATMOSPHERE: (2282..2299) "\n "
+ SYMBOL: (2299..2303)
+ IDENTIFIER: (2299..2303) "nums"
+ ATMOSPHERE: (2303..2320) "\n "
+ FORM: (2320..2532)
+ OPEN_PAREN: (2320..2321) "("
+ SYMBOL: (2321..2325)
+ IDENTIFIER: (2321..2325) "let*"
+ ATMOSPHERE: (2325..2326) " "
+ FORM: (2326..2413)
+ OPEN_PAREN: (2326..2327) "("
+ FORM: (2327..2345)
+ OPEN_PAREN: (2327..2328) "("
+ SYMBOL: (2328..2333)
+ IDENTIFIER: (2328..2333) "pivot"
+ ATMOSPHERE: (2333..2334) " "
+ FORM: (2334..2344)
+ OPEN_PAREN: (2334..2335) "("
+ SYMBOL: (2335..2338)
+ IDENTIFIER: (2335..2338) "car"
+ ATMOSPHERE: (2338..2339) " "
+ SYMBOL: (2339..2343)
+ IDENTIFIER: (2339..2343) "nums"
+ CLOSE_PAREN: (2343..2344) ")"
+ CLOSE_PAREN: (2344..2345) ")"
+ ATMOSPHERE: (2345..2370) "\n "
+ FORM: (2370..2412)
+ OPEN_PAREN: (2370..2371) "("
+ SYMBOL: (2371..2382)
+ IDENTIFIER: (2371..2382) "partitioned"
+ ATMOSPHERE: (2382..2383) " "
+ FORM: (2383..2411)
+ OPEN_PAREN: (2383..2384) "("
+ SYMBOL: (2384..2393)
+ IDENTIFIER: (2384..2393) "partition"
+ ATMOSPHERE: (2393..2394) " "
+ SYMBOL: (2394..2399)
+ IDENTIFIER: (2394..2399) "pivot"
+ ATMOSPHERE: (2399..2400) " "
+ FORM: (2400..2410)
+ OPEN_PAREN: (2400..2401) "("
+ SYMBOL: (2401..2404)
+ IDENTIFIER: (2401..2404) "cdr"
+ ATMOSPHERE: (2404..2405) " "
+ SYMBOL: (2405..2409)
+ IDENTIFIER: (2405..2409) "nums"
+ CLOSE_PAREN: (2409..2410) ")"
+ CLOSE_PAREN: (2410..2411) ")"
+ CLOSE_PAREN: (2411..2412) ")"
+ CLOSE_PAREN: (2412..2413) ")"
+ ATMOSPHERE: (2413..2434) "\n "
+ FORM: (2434..2531)
+ OPEN_PAREN: (2434..2435) "("
+ SYMBOL: (2435..2441)
+ IDENTIFIER: (2435..2441) "append"
+ ATMOSPHERE: (2441..2442) " "
+ FORM: (2442..2467)
+ OPEN_PAREN: (2442..2443) "("
+ SYMBOL: (2443..2448)
+ IDENTIFIER: (2443..2448) "qsort"
+ ATMOSPHERE: (2448..2449) " "
+ FORM: (2449..2466)
+ OPEN_PAREN: (2449..2450) "("
+ SYMBOL: (2450..2453)
+ IDENTIFIER: (2450..2453) "car"
+ ATMOSPHERE: (2453..2454) " "
+ SYMBOL: (2454..2465)
+ IDENTIFIER: (2454..2465) "partitioned"
+ CLOSE_PAREN: (2465..2466) ")"
+ CLOSE_PAREN: (2466..2467) ")"
+ ATMOSPHERE: (2467..2492) "\n "
+ FORM: (2492..2530)
+ OPEN_PAREN: (2492..2493) "("
+ SYMBOL: (2493..2497)
+ IDENTIFIER: (2493..2497) "cons"
+ ATMOSPHERE: (2497..2498) " "
+ SYMBOL: (2498..2503)
+ IDENTIFIER: (2498..2503) "pivot"
+ ATMOSPHERE: (2503..2504) " "
+ FORM: (2504..2529)
+ OPEN_PAREN: (2504..2505) "("
+ SYMBOL: (2505..2510)
+ IDENTIFIER: (2505..2510) "qsort"
+ ATMOSPHERE: (2510..2511) " "
+ FORM: (2511..2528)
+ OPEN_PAREN: (2511..2512) "("
+ SYMBOL: (2512..2515)
+ IDENTIFIER: (2512..2515) "cdr"
+ ATMOSPHERE: (2515..2516) " "
+ SYMBOL: (2516..2527)
+ IDENTIFIER: (2516..2527) "partitioned"
+ CLOSE_PAREN: (2527..2528) ")"
+ CLOSE_PAREN: (2528..2529) ")"
+ CLOSE_PAREN: (2529..2530) ")"
+ CLOSE_PAREN: (2530..2531) ")"
+ CLOSE_PAREN: (2531..2532) ")"
+ CLOSE_PAREN: (2532..2533) ")"
+ CLOSE_PAREN: (2533..2534) ")"
+ ATMOSPHERE: (2534..2543) "\n "
+ CLOSE_PAREN: (2543..2544) ")"
+ CLOSE_PAREN: (2544..2545) ")"
+ ATMOSPHERE: (2545..2547) "\n\n"
+ FORM: (2547..2629)
+ OPEN_PAREN: (2547..2548) "("
+ SYMBOL: (2548..2554)
+ IDENTIFIER: (2548..2554) "import"
+ ATMOSPHERE: (2554..2559) "\n "
+ FORM: (2559..2572)
+ OPEN_PAREN: (2559..2560) "("
+ SYMBOL: (2560..2566)
+ IDENTIFIER: (2560..2566) "scheme"
+ ATMOSPHERE: (2566..2567) " "
+ SYMBOL: (2567..2571)
+ IDENTIFIER: (2567..2571) "base"
+ CLOSE_PAREN: (2571..2572) ")"
+ ATMOSPHERE: (2572..2577) "\n "
+ FORM: (2577..2591)
+ OPEN_PAREN: (2577..2578) "("
+ SYMBOL: (2578..2584)
+ IDENTIFIER: (2578..2584) "scheme"
+ ATMOSPHERE: (2584..2585) " "
+ SYMBOL: (2585..2590)
+ IDENTIFIER: (2585..2590) "write"
+ CLOSE_PAREN: (2590..2591) ")"
+ ATMOSPHERE: (2591..2596) "\n "
+ FORM: (2596..2628)
+ OPEN_PAREN: (2596..2597) "("
+ SYMBOL: (2597..2603)
+ IDENTIFIER: (2597..2603) "rename"
+ ATMOSPHERE: (2603..2604) " "
+ FORM: (2604..2610)
+ OPEN_PAREN: (2604..2605) "("
+ SYMBOL: (2605..2609)
+ IDENTIFIER: (2605..2609) "sort"
+ CLOSE_PAREN: (2609..2610) ")"
+ ATMOSPHERE: (2610..2611) " "
+ FORM: (2611..2627)
+ OPEN_PAREN: (2611..2612) "("
+ SYMBOL: (2612..2616)
+ IDENTIFIER: (2612..2616) "sort"
+ ATMOSPHERE: (2616..2617) " "
+ SYMBOL: (2617..2626)
+ IDENTIFIER: (2617..2626) "quicksort"
+ CLOSE_PAREN: (2626..2627) ")"
+ CLOSE_PAREN: (2627..2628) ")"
+ CLOSE_PAREN: (2628..2629) ")"
+ ATMOSPHERE: (2629..2631) "\n\n"
+ FORM: (2631..2668)
+ OPEN_PAREN: (2631..2632) "("
+ SYMBOL: (2632..2639)
+ IDENTIFIER: (2632..2639) "display"
+ ATMOSPHERE: (2639..2640) " "
+ FORM: (2640..2667)
+ OPEN_PAREN: (2640..2641) "("
+ SYMBOL: (2641..2650)
+ IDENTIFIER: (2641..2650) "quicksort"
+ ATMOSPHERE: (2650..2651) " "
+ QUOTED_DATUM: (2651..2666)
+ QUOTE: (2651..2652) "'"
+ FORM: (2652..2666)
+ OPEN_PAREN: (2652..2653) "("
+ CONSTANT: (2653..2655)
+ NUMBER: (2653..2655) "79"
+ ATMOSPHERE: (2655..2656) " "
+ CONSTANT: (2656..2658)
+ NUMBER: (2656..2658) "23"
+ ATMOSPHERE: (2658..2659) " "
+ CONSTANT: (2659..2661)
+ NUMBER: (2659..2661) "45"
+ ATMOSPHERE: (2661..2662) " "
+ CONSTANT: (2662..2663)
+ NUMBER: (2662..2663) "6"
+ ATMOSPHERE: (2663..2664) " "
+ CONSTANT: (2664..2665)
+ NUMBER: (2664..2665) "9"
+ CLOSE_PAREN: (2665..2666) ")"
+ CLOSE_PAREN: (2666..2667) ")"
+ CLOSE_PAREN: (2667..2668) ")"
+ FORM: (2668..2677)
+ OPEN_PAREN: (2668..2669) "("
+ SYMBOL: (2669..2676)
+ IDENTIFIER: (2669..2676) "newline"
+ CLOSE_PAREN: (2676..2677) ")"
+ ATMOSPHERE: (2677..2678) "\n"
+ FORM: (2678..2742)
+ OPEN_PAREN: (2678..2679) "("
+ SYMBOL: (2679..2686)
+ IDENTIFIER: (2679..2686) "display"
+ ATMOSPHERE: (2686..2687) " "
+ FORM: (2687..2741)
+ OPEN_PAREN: (2687..2688) "("
+ SYMBOL: (2688..2697)
+ IDENTIFIER: (2688..2697) "quicksort"
+ ATMOSPHERE: (2697..2698) " "
+ QUOTED_DATUM: (2698..2740)
+ QUOTE: (2698..2699) "'"
+ FORM: (2699..2740)
+ OPEN_PAREN: (2699..2700) "("
+ CONSTANT: (2700..2701)
+ NUMBER: (2700..2701) "9"
+ ATMOSPHERE: (2701..2702) " "
+ CONSTANT: (2702..2703)
+ NUMBER: (2702..2703) "8"
+ ATMOSPHERE: (2703..2704) " "
+ CONSTANT: (2704..2705)
+ NUMBER: (2704..2705) "7"
+ ATMOSPHERE: (2705..2706) " "
+ CONSTANT: (2706..2707)
+ NUMBER: (2706..2707) "6"
+ ATMOSPHERE: (2707..2708) " "
+ CONSTANT: (2708..2709)
+ NUMBER: (2708..2709) "5"
+ ATMOSPHERE: (2709..2710) " "
+ CONSTANT: (2710..2711)
+ NUMBER: (2710..2711) "4"
+ ATMOSPHERE: (2711..2712) " "
+ CONSTANT: (2712..2713)
+ NUMBER: (2712..2713) "3"
+ ATMOSPHERE: (2713..2714) " "
+ CONSTANT: (2714..2715)
+ NUMBER: (2714..2715) "2"
+ ATMOSPHERE: (2715..2716) " "
+ CONSTANT: (2716..2717)
+ NUMBER: (2716..2717) "1"
+ ATMOSPHERE: (2717..2718) " "
+ CONSTANT: (2718..2719)
+ NUMBER: (2718..2719) "0"
+ ATMOSPHERE: (2719..2720) " "
+ CONSTANT: (2720..2721)
+ NUMBER: (2720..2721) "0"
+ ATMOSPHERE: (2721..2722) " "
+ CONSTANT: (2722..2723)
+ NUMBER: (2722..2723) "1"
+ ATMOSPHERE: (2723..2724) " "
+ CONSTANT: (2724..2725)
+ NUMBER: (2724..2725) "2"
+ ATMOSPHERE: (2725..2726) " "
+ CONSTANT: (2726..2727)
+ NUMBER: (2726..2727) "3"
+ ATMOSPHERE: (2727..2728) " "
+ CONSTANT: (2728..2729)
+ NUMBER: (2728..2729) "4"
+ ATMOSPHERE: (2729..2730) " "
+ CONSTANT: (2730..2731)
+ NUMBER: (2730..2731) "5"
+ ATMOSPHERE: (2731..2732) " "
+ CONSTANT: (2732..2733)
+ NUMBER: (2732..2733) "6"
+ ATMOSPHERE: (2733..2734) " "
+ CONSTANT: (2734..2735)
+ NUMBER: (2734..2735) "7"
+ ATMOSPHERE: (2735..2736) " "
+ CONSTANT: (2736..2737)
+ NUMBER: (2736..2737) "8"
+ ATMOSPHERE: (2737..2738) " "
+ CONSTANT: (2738..2739)
+ NUMBER: (2738..2739) "9"
+ CLOSE_PAREN: (2739..2740) ")"
+ CLOSE_PAREN: (2740..2741) ")"
+ CLOSE_PAREN: (2741..2742) ")"
+ FORM: (2742..2751)
+ OPEN_PAREN: (2742..2743) "("
+ SYMBOL: (2743..2750)
+ IDENTIFIER: (2743..2750) "newline"
+ CLOSE_PAREN: (2750..2751) ")"
+ ATMOSPHERE: (2751..2752) "\n"
+ EOF: (2752..2752) ""
diff --git a/spec/quotes.ast b/spec/quotes.ast
new file mode 100644
index 0000000..d3d48e6
--- /dev/null
+++ b/spec/quotes.ast
@@ -0,0 +1,318 @@
+PROGRAM: (0..502)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..54)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..50)
+ IDENTIFIER: (43..50) "display"
+ ATMOSPHERE: (50..51) " "
+ QUOTED_DATUM: (51..53)
+ QUOTE: (51..52) "'"
+ CONSTANT: (52..53)
+ NUMBER: (52..53) "1"
+ CLOSE_PAREN: (53..54) ")"
+ FORM: (54..63)
+ OPEN_PAREN: (54..55) "("
+ SYMBOL: (55..62)
+ IDENTIFIER: (55..62) "newline"
+ CLOSE_PAREN: (62..63) ")"
+ ATMOSPHERE: (63..64) "\n"
+ FORM: (64..88)
+ OPEN_PAREN: (64..65) "("
+ SYMBOL: (65..72)
+ IDENTIFIER: (65..72) "display"
+ ATMOSPHERE: (72..73) " "
+ QUOTED_DATUM: (73..87)
+ QUOTE: (73..74) "'"
+ CONSTANT: (74..87)
+ STRING: (74..87) "\"hello world\""
+ CLOSE_PAREN: (87..88) ")"
+ FORM: (88..97)
+ OPEN_PAREN: (88..89) "("
+ SYMBOL: (89..96)
+ IDENTIFIER: (89..96) "newline"
+ CLOSE_PAREN: (96..97) ")"
+ ATMOSPHERE: (97..98) "\n"
+ FORM: (98..111)
+ OPEN_PAREN: (98..99) "("
+ SYMBOL: (99..106)
+ IDENTIFIER: (99..106) "display"
+ ATMOSPHERE: (106..107) " "
+ QUOTED_DATUM: (107..110)
+ QUOTE: (107..108) "'"
+ FORM: (108..110)
+ OPEN_PAREN: (108..109) "("
+ CLOSE_PAREN: (109..110) ")"
+ CLOSE_PAREN: (110..111) ")"
+ FORM: (111..120)
+ OPEN_PAREN: (111..112) "("
+ SYMBOL: (112..119)
+ IDENTIFIER: (112..119) "newline"
+ CLOSE_PAREN: (119..120) ")"
+ ATMOSPHERE: (120..121) "\n"
+ FORM: (121..139)
+ OPEN_PAREN: (121..122) "("
+ SYMBOL: (122..129)
+ IDENTIFIER: (122..129) "display"
+ ATMOSPHERE: (129..130) " "
+ QUOTED_DATUM: (130..138)
+ QUOTE: (130..131) "'"
+ FORM: (131..138)
+ OPEN_PAREN: (131..132) "("
+ CONSTANT: (132..133)
+ NUMBER: (132..133) "1"
+ ATMOSPHERE: (133..134) " "
+ CONSTANT: (134..135)
+ NUMBER: (134..135) "2"
+ ATMOSPHERE: (135..136) " "
+ CONSTANT: (136..137)
+ NUMBER: (136..137) "3"
+ CLOSE_PAREN: (137..138) ")"
+ CLOSE_PAREN: (138..139) ")"
+ FORM: (139..148)
+ OPEN_PAREN: (139..140) "("
+ SYMBOL: (140..147)
+ IDENTIFIER: (140..147) "newline"
+ CLOSE_PAREN: (147..148) ")"
+ ATMOSPHERE: (148..149) "\n"
+ FORM: (149..168)
+ OPEN_PAREN: (149..150) "("
+ SYMBOL: (150..157)
+ IDENTIFIER: (150..157) "display"
+ ATMOSPHERE: (157..158) " "
+ FORM: (158..167)
+ OPEN_PAREN: (158..159) "("
+ SYMBOL: (159..164)
+ IDENTIFIER: (159..164) "quote"
+ ATMOSPHERE: (164..165) " "
+ CONSTANT: (165..166)
+ NUMBER: (165..166) "1"
+ CLOSE_PAREN: (166..167) ")"
+ CLOSE_PAREN: (167..168) ")"
+ FORM: (168..177)
+ OPEN_PAREN: (168..169) "("
+ SYMBOL: (169..176)
+ IDENTIFIER: (169..176) "newline"
+ CLOSE_PAREN: (176..177) ")"
+ ATMOSPHERE: (177..178) "\n"
+ FORM: (178..209)
+ OPEN_PAREN: (178..179) "("
+ SYMBOL: (179..186)
+ IDENTIFIER: (179..186) "display"
+ ATMOSPHERE: (186..187) " "
+ FORM: (187..208)
+ OPEN_PAREN: (187..188) "("
+ SYMBOL: (188..193)
+ IDENTIFIER: (188..193) "quote"
+ ATMOSPHERE: (193..194) " "
+ CONSTANT: (194..207)
+ STRING: (194..207) "\"hello world\""
+ CLOSE_PAREN: (207..208) ")"
+ CLOSE_PAREN: (208..209) ")"
+ FORM: (209..218)
+ OPEN_PAREN: (209..210) "("
+ SYMBOL: (210..217)
+ IDENTIFIER: (210..217) "newline"
+ CLOSE_PAREN: (217..218) ")"
+ ATMOSPHERE: (218..219) "\n"
+ FORM: (219..239)
+ OPEN_PAREN: (219..220) "("
+ SYMBOL: (220..227)
+ IDENTIFIER: (220..227) "display"
+ ATMOSPHERE: (227..228) " "
+ FORM: (228..238)
+ OPEN_PAREN: (228..229) "("
+ SYMBOL: (229..234)
+ IDENTIFIER: (229..234) "quote"
+ ATMOSPHERE: (234..235) " "
+ FORM: (235..237)
+ OPEN_PAREN: (235..236) "("
+ CLOSE_PAREN: (236..237) ")"
+ CLOSE_PAREN: (237..238) ")"
+ CLOSE_PAREN: (238..239) ")"
+ FORM: (239..248)
+ OPEN_PAREN: (239..240) "("
+ SYMBOL: (240..247)
+ IDENTIFIER: (240..247) "newline"
+ CLOSE_PAREN: (247..248) ")"
+ ATMOSPHERE: (248..249) "\n"
+ FORM: (249..274)
+ OPEN_PAREN: (249..250) "("
+ SYMBOL: (250..257)
+ IDENTIFIER: (250..257) "display"
+ ATMOSPHERE: (257..258) " "
+ FORM: (258..273)
+ OPEN_PAREN: (258..259) "("
+ SYMBOL: (259..264)
+ IDENTIFIER: (259..264) "quote"
+ ATMOSPHERE: (264..265) " "
+ FORM: (265..272)
+ OPEN_PAREN: (265..266) "("
+ CONSTANT: (266..267)
+ NUMBER: (266..267) "1"
+ ATMOSPHERE: (267..268) " "
+ CONSTANT: (268..269)
+ NUMBER: (268..269) "2"
+ ATMOSPHERE: (269..270) " "
+ CONSTANT: (270..271)
+ NUMBER: (270..271) "3"
+ CLOSE_PAREN: (271..272) ")"
+ CLOSE_PAREN: (272..273) ")"
+ CLOSE_PAREN: (273..274) ")"
+ FORM: (274..283)
+ OPEN_PAREN: (274..275) "("
+ SYMBOL: (275..282)
+ IDENTIFIER: (275..282) "newline"
+ CLOSE_PAREN: (282..283) ")"
+ ATMOSPHERE: (283..284) "\n"
+ FORM: (284..313)
+ OPEN_PAREN: (284..285) "("
+ SYMBOL: (285..292)
+ IDENTIFIER: (285..292) "display"
+ ATMOSPHERE: (292..293) " "
+ FORM: (293..312)
+ OPEN_PAREN: (293..294) "("
+ SYMBOL: (294..297)
+ IDENTIFIER: (294..297) "car"
+ ATMOSPHERE: (297..298) " "
+ FORM: (298..311)
+ OPEN_PAREN: (298..299) "("
+ SYMBOL: (299..302)
+ IDENTIFIER: (299..302) "cdr"
+ ATMOSPHERE: (302..303) " "
+ QUOTED_DATUM: (303..310)
+ QUOTE: (303..304) "'"
+ QUOTED_DATUM: (304..310)
+ QUOTE: (304..305) "'"
+ QUOTED_DATUM: (305..310)
+ QUOTE: (305..306) "'"
+ QUOTED_DATUM: (306..310)
+ QUOTE: (306..307) "'"
+ CONSTANT: (307..310)
+ NUMBER: (307..310) "123"
+ CLOSE_PAREN: (310..311) ")"
+ CLOSE_PAREN: (311..312) ")"
+ CLOSE_PAREN: (312..313) ")"
+ FORM: (313..322)
+ OPEN_PAREN: (313..314) "("
+ SYMBOL: (314..321)
+ IDENTIFIER: (314..321) "newline"
+ CLOSE_PAREN: (321..322) ")"
+ ATMOSPHERE: (322..323) "\n"
+ FORM: (323..335)
+ OPEN_PAREN: (323..324) "("
+ SYMBOL: (324..331)
+ IDENTIFIER: (324..331) "display"
+ ATMOSPHERE: (331..332) " "
+ QUOTED_DATUM: (332..334)
+ QUOTE: (332..333) "'"
+ SYMBOL: (333..334)
+ IDENTIFIER: (333..334) "d"
+ CLOSE_PAREN: (334..335) ")"
+ FORM: (335..344)
+ OPEN_PAREN: (335..336) "("
+ SYMBOL: (336..343)
+ IDENTIFIER: (336..343) "newline"
+ CLOSE_PAREN: (343..344) ")"
+ ATMOSPHERE: (344..345) "\n"
+ FORM: (345..363)
+ OPEN_PAREN: (345..346) "("
+ SYMBOL: (346..353)
+ IDENTIFIER: (346..353) "display"
+ ATMOSPHERE: (353..354) " "
+ QUOTED_DATUM: (354..362)
+ QUOTE: (354..355) "'"
+ SYMBOL: (355..362)
+ IDENTIFIER: (355..362) "|\\x20;|"
+ CLOSE_PAREN: (362..363) ")"
+ FORM: (363..372)
+ OPEN_PAREN: (363..364) "("
+ SYMBOL: (364..371)
+ IDENTIFIER: (364..371) "newline"
+ CLOSE_PAREN: (371..372) ")"
+ ATMOSPHERE: (372..373) "\n"
+ FORM: (373..397)
+ OPEN_PAREN: (373..374) "("
+ SYMBOL: (374..381)
+ IDENTIFIER: (374..381) "display"
+ ATMOSPHERE: (381..382) " "
+ QUOTED_DATUM: (382..396)
+ QUOTE: (382..383) "'"
+ SYMBOL: (383..396)
+ IDENTIFIER: (383..396) "|test\\tident|"
+ CLOSE_PAREN: (396..397) ")"
+ FORM: (397..406)
+ OPEN_PAREN: (397..398) "("
+ SYMBOL: (398..405)
+ IDENTIFIER: (398..405) "newline"
+ CLOSE_PAREN: (405..406) ")"
+ ATMOSPHERE: (406..407) "\n"
+ FORM: (407..431)
+ OPEN_PAREN: (407..408) "("
+ SYMBOL: (408..415)
+ IDENTIFIER: (408..415) "display"
+ ATMOSPHERE: (415..416) " "
+ QUOTED_DATUM: (416..430)
+ QUOTE: (416..417) "'"
+ SYMBOL: (417..430)
+ IDENTIFIER: (417..430) "|hello world|"
+ CLOSE_PAREN: (430..431) ")"
+ FORM: (431..440)
+ OPEN_PAREN: (431..432) "("
+ SYMBOL: (432..439)
+ IDENTIFIER: (432..439) "newline"
+ CLOSE_PAREN: (439..440) ")"
+ ATMOSPHERE: (440..441) "\n"
+ FORM: (441..453)
+ OPEN_PAREN: (441..442) "("
+ SYMBOL: (442..449)
+ IDENTIFIER: (442..449) "display"
+ ATMOSPHERE: (449..450) " "
+ CONSTANT: (450..452)
+ BOOLEAN: (450..452) "#t"
+ CLOSE_PAREN: (452..453) ")"
+ FORM: (453..462)
+ OPEN_PAREN: (453..454) "("
+ SYMBOL: (454..461)
+ IDENTIFIER: (454..461) "newline"
+ CLOSE_PAREN: (461..462) ")"
+ ATMOSPHERE: (462..463) "\n"
+ FORM: (463..492)
+ OPEN_PAREN: (463..464) "("
+ SYMBOL: (464..471)
+ IDENTIFIER: (464..471) "display"
+ ATMOSPHERE: (471..472) " "
+ QUOTED_DATUM: (472..491)
+ QUOTE: (472..473) "’"
+ CONSTANT: (473..491)
+ STRING: (473..491) "\"funky-quote-char\""
+ CLOSE_PAREN: (491..492) ")"
+ FORM: (492..501)
+ OPEN_PAREN: (492..493) "("
+ SYMBOL: (493..500)
+ IDENTIFIER: (493..500) "newline"
+ CLOSE_PAREN: (500..501) ")"
+ ATMOSPHERE: (501..502) "\n"
+ EOF: (502..502) ""
diff --git a/spec/self-capture.ast b/spec/self-capture.ast
new file mode 100644
index 0000000..f8993ea
--- /dev/null
+++ b/spec/self-capture.ast
@@ -0,0 +1,152 @@
+PROGRAM: (0..818)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..43) "\n\n"
+ ATMOSPHERE: (43..92) ";; Captured Local Compaction (shadow locals) Test"
+ ATMOSPHERE: (92..93) "\n"
+ ATMOSPHERE: (93..94) ";"
+ ATMOSPHERE: (94..95) "\n"
+ ATMOSPHERE: (95..174) "; In this example `foo` has two locals. The first is the function `bar` and the"
+ ATMOSPHERE: (174..175) "\n"
+ ATMOSPHERE: (175..248) "; second is the initial value `baz`. Once we have performed free variable"
+ ATMOSPHERE: (248..249) "\n"
+ ATMOSPHERE: (249..324) "; analysis on the function we identify that `Local 0` (bar) is captured. We"
+ ATMOSPHERE: (324..325) "\n"
+ ATMOSPHERE: (325..405) "; want the Lower pass to re-write `baz` from `Local 1` down to `Local 0` in this"
+ ATMOSPHERE: (405..406) "\n"
+ ATMOSPHERE: (406..484) "; case, as well as re-writing the references to the captured value to the env."
+ ATMOSPHERE: (484..485) "\n"
+ ATMOSPHERE: (485..486) ";"
+ ATMOSPHERE: (486..487) "\n"
+ ATMOSPHERE: (487..572) "; captures, locals -- Lower --> captures, locals "
+ ATMOSPHERE: (572..573) "\n"
+ FORM: (573..791)
+ OPEN_PAREN: (573..574) "("
+ SYMBOL: (574..580)
+ IDENTIFIER: (574..580) "define"
+ ATMOSPHERE: (580..581) " "
+ FORM: (581..586)
+ OPEN_PAREN: (581..582) "("
+ SYMBOL: (582..585)
+ IDENTIFIER: (582..585) "foo"
+ CLOSE_PAREN: (585..586) ")"
+ ATMOSPHERE: (586..592) " "
+ ATMOSPHERE: (592..637) "; [], [Local 0; Local 1] -> [], [Local 0]"
+ ATMOSPHERE: (637..640) "\n "
+ FORM: (640..760)
+ OPEN_PAREN: (640..641) "("
+ SYMBOL: (641..647)
+ IDENTIFIER: (641..647) "define"
+ ATMOSPHERE: (647..648) " "
+ FORM: (648..655)
+ OPEN_PAREN: (648..649) "("
+ SYMBOL: (649..652)
+ IDENTIFIER: (649..652) "bar"
+ ATMOSPHERE: (652..653) " "
+ SYMBOL: (653..654)
+ IDENTIFIER: (653..654) "x"
+ CLOSE_PAREN: (654..655) ")"
+ ATMOSPHERE: (655..657) " "
+ ATMOSPHERE: (657..713) "; [Local 0], [Arg 0] -> [Environment 0], [Arg 0]"
+ ATMOSPHERE: (713..718) "\n "
+ FORM: (718..759)
+ OPEN_PAREN: (718..719) "("
+ SYMBOL: (719..721)
+ IDENTIFIER: (719..721) "if"
+ ATMOSPHERE: (721..722) " "
+ FORM: (722..730)
+ OPEN_PAREN: (722..723) "("
+ SYMBOL: (723..724)
+ IDENTIFIER: (723..724) "<"
+ ATMOSPHERE: (724..725) " "
+ SYMBOL: (725..726)
+ IDENTIFIER: (725..726) "x"
+ ATMOSPHERE: (726..727) " "
+ CONSTANT: (727..729)
+ NUMBER: (727..729) "10"
+ CLOSE_PAREN: (729..730) ")"
+ ATMOSPHERE: (730..737) "\n "
+ SYMBOL: (737..738)
+ IDENTIFIER: (737..738) "x"
+ ATMOSPHERE: (738..745) "\n "
+ FORM: (745..758)
+ OPEN_PAREN: (745..746) "("
+ SYMBOL: (746..749)
+ IDENTIFIER: (746..749) "bar"
+ ATMOSPHERE: (749..750) " "
+ FORM: (750..757)
+ OPEN_PAREN: (750..751) "("
+ SYMBOL: (751..752)
+ IDENTIFIER: (751..752) "-"
+ ATMOSPHERE: (752..753) " "
+ SYMBOL: (753..754)
+ IDENTIFIER: (753..754) "x"
+ ATMOSPHERE: (754..755) " "
+ CONSTANT: (755..756)
+ NUMBER: (755..756) "1"
+ CLOSE_PAREN: (756..757) ")"
+ CLOSE_PAREN: (757..758) ")"
+ CLOSE_PAREN: (758..759) ")"
+ CLOSE_PAREN: (759..760) ")"
+ ATMOSPHERE: (760..763) "\n "
+ FORM: (763..778)
+ OPEN_PAREN: (763..764) "("
+ SYMBOL: (764..770)
+ IDENTIFIER: (764..770) "define"
+ ATMOSPHERE: (770..771) " "
+ SYMBOL: (771..774)
+ IDENTIFIER: (771..774) "baz"
+ ATMOSPHERE: (774..775) " "
+ CONSTANT: (775..777)
+ NUMBER: (775..777) "10"
+ CLOSE_PAREN: (777..778) ")"
+ ATMOSPHERE: (778..781) "\n "
+ FORM: (781..790)
+ OPEN_PAREN: (781..782) "("
+ SYMBOL: (782..785)
+ IDENTIFIER: (782..785) "bar"
+ ATMOSPHERE: (785..786) " "
+ SYMBOL: (786..789)
+ IDENTIFIER: (786..789) "baz"
+ CLOSE_PAREN: (789..790) ")"
+ CLOSE_PAREN: (790..791) ")"
+ ATMOSPHERE: (791..793) "\n\n"
+ FORM: (793..808)
+ OPEN_PAREN: (793..794) "("
+ SYMBOL: (794..801)
+ IDENTIFIER: (794..801) "display"
+ ATMOSPHERE: (801..802) " "
+ FORM: (802..807)
+ OPEN_PAREN: (802..803) "("
+ SYMBOL: (803..806)
+ IDENTIFIER: (803..806) "foo"
+ CLOSE_PAREN: (806..807) ")"
+ CLOSE_PAREN: (807..808) ")"
+ FORM: (808..817)
+ OPEN_PAREN: (808..809) "("
+ SYMBOL: (809..816)
+ IDENTIFIER: (809..816) "newline"
+ CLOSE_PAREN: (816..817) ")"
+ ATMOSPHERE: (817..818) "\n"
+ EOF: (818..818) ""
diff --git a/spec/string-join.ast b/spec/string-join.ast
new file mode 100644
index 0000000..2bfa155
--- /dev/null
+++ b/spec/string-join.ast
@@ -0,0 +1,265 @@
+PROGRAM: (0..483)
+ FORM: (0..39)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..24) "\n "
+ FORM: (24..38)
+ OPEN_PAREN: (24..25) "("
+ SYMBOL: (25..31)
+ IDENTIFIER: (25..31) "scheme"
+ ATMOSPHERE: (31..32) " "
+ SYMBOL: (32..37)
+ IDENTIFIER: (32..37) "write"
+ CLOSE_PAREN: (37..38) ")"
+ CLOSE_PAREN: (38..39) ")"
+ ATMOSPHERE: (39..40) "\n"
+ FORM: (40..300)
+ OPEN_PAREN: (40..41) "("
+ SYMBOL: (41..47)
+ IDENTIFIER: (41..47) "define"
+ ATMOSPHERE: (47..48) " "
+ FORM: (48..76)
+ OPEN_PAREN: (48..49) "("
+ SYMBOL: (49..60)
+ IDENTIFIER: (49..60) "string-join"
+ ATMOSPHERE: (60..61) " "
+ SYMBOL: (61..65)
+ IDENTIFIER: (61..65) "list"
+ ATMOSPHERE: (65..66) " "
+ SYMBOL: (66..75)
+ IDENTIFIER: (66..75) "delimiter"
+ CLOSE_PAREN: (75..76) ")"
+ ATMOSPHERE: (76..79) "\n "
+ FORM: (79..229)
+ OPEN_PAREN: (79..80) "("
+ SYMBOL: (80..86)
+ IDENTIFIER: (80..86) "define"
+ ATMOSPHERE: (86..87) " "
+ FORM: (87..115)
+ OPEN_PAREN: (87..88) "("
+ SYMBOL: (88..102)
+ IDENTIFIER: (88..102) "string-join-to"
+ ATMOSPHERE: (102..103) " "
+ SYMBOL: (103..109)
+ IDENTIFIER: (103..109) "result"
+ ATMOSPHERE: (109..110) " "
+ SYMBOL: (110..114)
+ IDENTIFIER: (110..114) "list"
+ CLOSE_PAREN: (114..115) ")"
+ ATMOSPHERE: (115..120) "\n "
+ FORM: (120..228)
+ OPEN_PAREN: (120..121) "("
+ SYMBOL: (121..123)
+ IDENTIFIER: (121..123) "if"
+ ATMOSPHERE: (123..124) " "
+ FORM: (124..136)
+ OPEN_PAREN: (124..125) "("
+ SYMBOL: (125..130)
+ IDENTIFIER: (125..130) "null?"
+ ATMOSPHERE: (130..131) " "
+ SYMBOL: (131..135)
+ IDENTIFIER: (131..135) "list"
+ CLOSE_PAREN: (135..136) ")"
+ ATMOSPHERE: (136..143) "\n "
+ SYMBOL: (143..149)
+ IDENTIFIER: (143..149) "result"
+ ATMOSPHERE: (149..156) "\n "
+ FORM: (156..227)
+ OPEN_PAREN: (156..157) "("
+ SYMBOL: (157..171)
+ IDENTIFIER: (157..171) "string-join-to"
+ ATMOSPHERE: (171..172) " "
+ FORM: (172..215)
+ OPEN_PAREN: (172..173) "("
+ SYMBOL: (173..186)
+ IDENTIFIER: (173..186) "string-append"
+ ATMOSPHERE: (186..187) " "
+ SYMBOL: (187..193)
+ IDENTIFIER: (187..193) "result"
+ ATMOSPHERE: (193..194) " "
+ SYMBOL: (194..203)
+ IDENTIFIER: (194..203) "delimiter"
+ ATMOSPHERE: (203..204) " "
+ FORM: (204..214)
+ OPEN_PAREN: (204..205) "("
+ SYMBOL: (205..208)
+ IDENTIFIER: (205..208) "car"
+ ATMOSPHERE: (208..209) " "
+ SYMBOL: (209..213)
+ IDENTIFIER: (209..213) "list"
+ CLOSE_PAREN: (213..214) ")"
+ CLOSE_PAREN: (214..215) ")"
+ ATMOSPHERE: (215..216) " "
+ FORM: (216..226)
+ OPEN_PAREN: (216..217) "("
+ SYMBOL: (217..220)
+ IDENTIFIER: (217..220) "cdr"
+ ATMOSPHERE: (220..221) " "
+ SYMBOL: (221..225)
+ IDENTIFIER: (221..225) "list"
+ CLOSE_PAREN: (225..226) ")"
+ CLOSE_PAREN: (226..227) ")"
+ CLOSE_PAREN: (227..228) ")"
+ CLOSE_PAREN: (228..229) ")"
+ ATMOSPHERE: (229..232) "\n "
+ FORM: (232..299)
+ OPEN_PAREN: (232..233) "("
+ SYMBOL: (233..235)
+ IDENTIFIER: (233..235) "if"
+ ATMOSPHERE: (235..236) " "
+ FORM: (236..248)
+ OPEN_PAREN: (236..237) "("
+ SYMBOL: (237..242)
+ IDENTIFIER: (237..242) "null?"
+ ATMOSPHERE: (242..243) " "
+ SYMBOL: (243..247)
+ IDENTIFIER: (243..247) "list"
+ CLOSE_PAREN: (247..248) ")"
+ ATMOSPHERE: (248..253) "\n "
+ CONSTANT: (253..255)
+ STRING: (253..255) "\"\""
+ ATMOSPHERE: (255..260) "\n "
+ FORM: (260..298)
+ OPEN_PAREN: (260..261) "("
+ SYMBOL: (261..275)
+ IDENTIFIER: (261..275) "string-join-to"
+ ATMOSPHERE: (275..276) " "
+ FORM: (276..286)
+ OPEN_PAREN: (276..277) "("
+ SYMBOL: (277..280)
+ IDENTIFIER: (277..280) "car"
+ ATMOSPHERE: (280..281) " "
+ SYMBOL: (281..285)
+ IDENTIFIER: (281..285) "list"
+ CLOSE_PAREN: (285..286) ")"
+ ATMOSPHERE: (286..287) " "
+ FORM: (287..297)
+ OPEN_PAREN: (287..288) "("
+ SYMBOL: (288..291)
+ IDENTIFIER: (288..291) "cdr"
+ ATMOSPHERE: (291..292) " "
+ SYMBOL: (292..296)
+ IDENTIFIER: (292..296) "list"
+ CLOSE_PAREN: (296..297) ")"
+ CLOSE_PAREN: (297..298) ")"
+ CLOSE_PAREN: (298..299) ")"
+ CLOSE_PAREN: (299..300) ")"
+ ATMOSPHERE: (300..301) "\n"
+ FORM: (301..360)
+ OPEN_PAREN: (301..302) "("
+ SYMBOL: (302..309)
+ IDENTIFIER: (302..309) "display"
+ ATMOSPHERE: (309..310) " "
+ FORM: (310..359)
+ OPEN_PAREN: (310..311) "("
+ SYMBOL: (311..324)
+ IDENTIFIER: (311..324) "string-append"
+ ATMOSPHERE: (324..325) " "
+ CONSTANT: (325..330)
+ STRING: (325..330) "\"<<{\""
+ ATMOSPHERE: (330..331) " "
+ FORM: (331..352)
+ OPEN_PAREN: (331..332) "("
+ SYMBOL: (332..343)
+ IDENTIFIER: (332..343) "string-join"
+ ATMOSPHERE: (343..344) " "
+ QUOTED_DATUM: (344..348)
+ QUOTE: (344..345) "'"
+ FORM: (345..347)
+ OPEN_PAREN: (345..346) "("
+ CLOSE_PAREN: (346..347) ")"
+ ATMOSPHERE: (347..348) " "
+ CONSTANT: (348..351)
+ STRING: (348..351) "\"-\""
+ CLOSE_PAREN: (351..352) ")"
+ ATMOSPHERE: (352..353) " "
+ CONSTANT: (353..358)
+ STRING: (353..358) "\"}>>\""
+ CLOSE_PAREN: (358..359) ")"
+ CLOSE_PAREN: (359..360) ")"
+ FORM: (360..369)
+ OPEN_PAREN: (360..361) "("
+ SYMBOL: (361..368)
+ IDENTIFIER: (361..368) "newline"
+ CLOSE_PAREN: (368..369) ")"
+ ATMOSPHERE: (369..370) "\n"
+ FORM: (370..415)
+ OPEN_PAREN: (370..371) "("
+ SYMBOL: (371..378)
+ IDENTIFIER: (371..378) "display"
+ ATMOSPHERE: (378..379) " "
+ FORM: (379..414)
+ OPEN_PAREN: (379..380) "("
+ SYMBOL: (380..391)
+ IDENTIFIER: (380..391) "string-join"
+ ATMOSPHERE: (391..392) " "
+ FORM: (392..408)
+ OPEN_PAREN: (392..393) "("
+ SYMBOL: (393..397)
+ IDENTIFIER: (393..397) "cons"
+ ATMOSPHERE: (397..398) " "
+ CONSTANT: (398..403)
+ STRING: (398..403) "\"foo\""
+ ATMOSPHERE: (403..404) " "
+ QUOTED_DATUM: (404..407)
+ QUOTE: (404..405) "'"
+ FORM: (405..407)
+ OPEN_PAREN: (405..406) "("
+ CLOSE_PAREN: (406..407) ")"
+ CLOSE_PAREN: (407..408) ")"
+ ATMOSPHERE: (408..409) " "
+ CONSTANT: (409..413)
+ STRING: (409..413) "\"||\""
+ CLOSE_PAREN: (413..414) ")"
+ CLOSE_PAREN: (414..415) ")"
+ FORM: (415..424)
+ OPEN_PAREN: (415..416) "("
+ SYMBOL: (416..423)
+ IDENTIFIER: (416..423) "newline"
+ CLOSE_PAREN: (423..424) ")"
+ ATMOSPHERE: (424..425) "\n"
+ FORM: (425..473)
+ OPEN_PAREN: (425..426) "("
+ SYMBOL: (426..433)
+ IDENTIFIER: (426..433) "display"
+ ATMOSPHERE: (433..434) " "
+ FORM: (434..472)
+ OPEN_PAREN: (434..435) "("
+ SYMBOL: (435..446)
+ IDENTIFIER: (435..446) "string-join"
+ ATMOSPHERE: (446..447) " "
+ QUOTED_DATUM: (447..468)
+ QUOTE: (447..448) "'"
+ FORM: (448..467)
+ OPEN_PAREN: (448..449) "("
+ CONSTANT: (449..454)
+ STRING: (449..454) "\"foo\""
+ ATMOSPHERE: (454..455) " "
+ CONSTANT: (455..460)
+ STRING: (455..460) "\"bar\""
+ ATMOSPHERE: (460..461) " "
+ CONSTANT: (461..466)
+ STRING: (461..466) "\"baz\""
+ CLOSE_PAREN: (466..467) ")"
+ ATMOSPHERE: (467..468) " "
+ CONSTANT: (468..471)
+ STRING: (468..471) "\":\""
+ CLOSE_PAREN: (471..472) ")"
+ CLOSE_PAREN: (472..473) ")"
+ FORM: (473..482)
+ OPEN_PAREN: (473..474) "("
+ SYMBOL: (474..481)
+ IDENTIFIER: (474..481) "newline"
+ CLOSE_PAREN: (481..482) ")"
+ ATMOSPHERE: (482..483) "\n"
+ EOF: (483..483) ""
diff --git a/spec/strings.ast b/spec/strings.ast
new file mode 100644
index 0000000..0a6af8b
--- /dev/null
+++ b/spec/strings.ast
@@ -0,0 +1,8 @@
+PROGRAM: (0..33)
+ CONSTANT: (0..13)
+ STRING: (0..13) "\"hello world\""
+ ATMOSPHERE: (13..14) "\n"
+ CONSTANT: (14..32)
+ STRING: (14..32) "\"stuff and things\""
+ ATMOSPHERE: (32..33) "\n"
+ EOF: (33..33) ""
diff --git a/spec/swapit.ast b/spec/swapit.ast
new file mode 100644
index 0000000..25a5050
--- /dev/null
+++ b/spec/swapit.ast
@@ -0,0 +1,245 @@
+PROGRAM: (0..403)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..43) "\n\n"
+ FORM: (43..115)
+ OPEN_PAREN: (43..44) "("
+ SYMBOL: (44..50)
+ IDENTIFIER: (44..50) "define"
+ ATMOSPHERE: (50..51) " "
+ FORM: (51..64)
+ OPEN_PAREN: (51..52) "("
+ SYMBOL: (52..56)
+ IDENTIFIER: (52..56) "swap"
+ ATMOSPHERE: (56..57) " "
+ SYMBOL: (57..59)
+ IDENTIFIER: (57..59) "me"
+ ATMOSPHERE: (59..60) " "
+ SYMBOL: (60..63)
+ IDENTIFIER: (60..63) "you"
+ CLOSE_PAREN: (63..64) ")"
+ ATMOSPHERE: (64..69) "\n "
+ FORM: (69..114)
+ OPEN_PAREN: (69..70) "("
+ SYMBOL: (70..73)
+ IDENTIFIER: (70..73) "let"
+ ATMOSPHERE: (73..74) " "
+ FORM: (74..101)
+ OPEN_PAREN: (74..75) "("
+ FORM: (75..83)
+ OPEN_PAREN: (75..76) "("
+ SYMBOL: (76..78)
+ IDENTIFIER: (76..78) "me"
+ ATMOSPHERE: (78..79) " "
+ SYMBOL: (79..82)
+ IDENTIFIER: (79..82) "you"
+ CLOSE_PAREN: (82..83) ")"
+ ATMOSPHERE: (83..92) "\n "
+ FORM: (92..100)
+ OPEN_PAREN: (92..93) "("
+ SYMBOL: (93..96)
+ IDENTIFIER: (93..96) "you"
+ ATMOSPHERE: (96..97) " "
+ SYMBOL: (97..99)
+ IDENTIFIER: (97..99) "me"
+ CLOSE_PAREN: (99..100) ")"
+ CLOSE_PAREN: (100..101) ")"
+ ATMOSPHERE: (101..110) "\n "
+ SYMBOL: (110..113)
+ IDENTIFIER: (110..113) "you"
+ CLOSE_PAREN: (113..114) ")"
+ CLOSE_PAREN: (114..115) ")"
+ ATMOSPHERE: (115..117) "\n\n"
+ FORM: (117..340)
+ OPEN_PAREN: (117..118) "("
+ SYMBOL: (118..121)
+ IDENTIFIER: (118..121) "let"
+ ATMOSPHERE: (121..122) " "
+ FORM: (122..135)
+ OPEN_PAREN: (122..123) "("
+ FORM: (123..128)
+ OPEN_PAREN: (123..124) "("
+ SYMBOL: (124..125)
+ IDENTIFIER: (124..125) "x"
+ ATMOSPHERE: (125..126) " "
+ CONSTANT: (126..127)
+ NUMBER: (126..127) "1"
+ CLOSE_PAREN: (127..128) ")"
+ ATMOSPHERE: (128..129) " "
+ FORM: (129..134)
+ OPEN_PAREN: (129..130) "("
+ SYMBOL: (130..131)
+ IDENTIFIER: (130..131) "y"
+ ATMOSPHERE: (131..132) " "
+ CONSTANT: (132..133)
+ NUMBER: (132..133) "2"
+ CLOSE_PAREN: (133..134) ")"
+ CLOSE_PAREN: (134..135) ")"
+ ATMOSPHERE: (135..140) "\n "
+ FORM: (140..298)
+ OPEN_PAREN: (140..141) "("
+ SYMBOL: (141..154)
+ IDENTIFIER: (141..154) "define-syntax"
+ ATMOSPHERE: (154..155) " "
+ SYMBOL: (155..160)
+ IDENTIFIER: (155..160) "swap!"
+ ATMOSPHERE: (160..169) "\n "
+ FORM: (169..297)
+ OPEN_PAREN: (169..170) "("
+ SYMBOL: (170..182)
+ IDENTIFIER: (170..182) "syntax-rules"
+ ATMOSPHERE: (182..183) " "
+ FORM: (183..185)
+ OPEN_PAREN: (183..184) "("
+ CLOSE_PAREN: (184..185) ")"
+ ATMOSPHERE: (185..198) "\n "
+ FORM: (198..296)
+ OPEN_PAREN: (198..199) "("
+ FORM: (199..210)
+ OPEN_PAREN: (199..200) "("
+ SYMBOL: (200..205)
+ IDENTIFIER: (200..205) "swap!"
+ ATMOSPHERE: (205..206) " "
+ SYMBOL: (206..207)
+ IDENTIFIER: (206..207) "a"
+ ATMOSPHERE: (207..208) " "
+ SYMBOL: (208..209)
+ IDENTIFIER: (208..209) "b"
+ CLOSE_PAREN: (209..210) ")"
+ ATMOSPHERE: (210..224) "\n "
+ FORM: (224..295)
+ OPEN_PAREN: (224..225) "("
+ SYMBOL: (225..228)
+ IDENTIFIER: (225..228) "let"
+ ATMOSPHERE: (228..229) " "
+ FORM: (229..238)
+ OPEN_PAREN: (229..230) "("
+ FORM: (230..237)
+ OPEN_PAREN: (230..231) "("
+ SYMBOL: (231..234)
+ IDENTIFIER: (231..234) "tmp"
+ ATMOSPHERE: (234..235) " "
+ SYMBOL: (235..236)
+ IDENTIFIER: (235..236) "a"
+ CLOSE_PAREN: (236..237) ")"
+ CLOSE_PAREN: (237..238) ")"
+ ATMOSPHERE: (238..255) "\n "
+ FORM: (255..265)
+ OPEN_PAREN: (255..256) "("
+ SYMBOL: (256..260)
+ IDENTIFIER: (256..260) "set!"
+ ATMOSPHERE: (260..261) " "
+ SYMBOL: (261..262)
+ IDENTIFIER: (261..262) "a"
+ ATMOSPHERE: (262..263) " "
+ SYMBOL: (263..264)
+ IDENTIFIER: (263..264) "b"
+ CLOSE_PAREN: (264..265) ")"
+ ATMOSPHERE: (265..282) "\n "
+ FORM: (282..294)
+ OPEN_PAREN: (282..283) "("
+ SYMBOL: (283..287)
+ IDENTIFIER: (283..287) "set!"
+ ATMOSPHERE: (287..288) " "
+ SYMBOL: (288..289)
+ IDENTIFIER: (288..289) "b"
+ ATMOSPHERE: (289..290) " "
+ SYMBOL: (290..293)
+ IDENTIFIER: (290..293) "tmp"
+ CLOSE_PAREN: (293..294) ")"
+ CLOSE_PAREN: (294..295) ")"
+ CLOSE_PAREN: (295..296) ")"
+ CLOSE_PAREN: (296..297) ")"
+ CLOSE_PAREN: (297..298) ")"
+ ATMOSPHERE: (298..303) "\n "
+ FORM: (303..314)
+ OPEN_PAREN: (303..304) "("
+ SYMBOL: (304..309)
+ IDENTIFIER: (304..309) "swap!"
+ ATMOSPHERE: (309..310) " "
+ SYMBOL: (310..311)
+ IDENTIFIER: (310..311) "x"
+ ATMOSPHERE: (311..312) " "
+ SYMBOL: (312..313)
+ IDENTIFIER: (312..313) "y"
+ CLOSE_PAREN: (313..314) ")"
+ ATMOSPHERE: (314..319) "\n "
+ FORM: (319..339)
+ OPEN_PAREN: (319..320) "("
+ SYMBOL: (320..327)
+ IDENTIFIER: (320..327) "display"
+ ATMOSPHERE: (327..328) " "
+ FORM: (328..338)
+ OPEN_PAREN: (328..329) "("
+ SYMBOL: (329..333)
+ IDENTIFIER: (329..333) "list"
+ ATMOSPHERE: (333..334) " "
+ SYMBOL: (334..335)
+ IDENTIFIER: (334..335) "x"
+ ATMOSPHERE: (335..336) " "
+ SYMBOL: (336..337)
+ IDENTIFIER: (336..337) "y"
+ CLOSE_PAREN: (337..338) ")"
+ CLOSE_PAREN: (338..339) ")"
+ CLOSE_PAREN: (339..340) ")"
+ ATMOSPHERE: (340..342) "\n\n"
+ FORM: (342..376)
+ OPEN_PAREN: (342..343) "("
+ SYMBOL: (343..350)
+ IDENTIFIER: (343..350) "display"
+ ATMOSPHERE: (350..351) " "
+ FORM: (351..375)
+ OPEN_PAREN: (351..352) "("
+ SYMBOL: (352..356)
+ IDENTIFIER: (352..356) "swap"
+ ATMOSPHERE: (356..357) " "
+ CONSTANT: (357..365)
+ STRING: (357..365) "\"Fooble\""
+ ATMOSPHERE: (365..366) " "
+ CONSTANT: (366..374)
+ STRING: (366..374) "\"Barble\""
+ CLOSE_PAREN: (374..375) ")"
+ CLOSE_PAREN: (375..376) ")"
+ ATMOSPHERE: (376..378) "\n\n"
+ FORM: (378..403)
+ OPEN_PAREN: (378..379) "("
+ SYMBOL: (379..380)
+ IDENTIFIER: (379..380) "="
+ ATMOSPHERE: (380..381) " "
+ FORM: (381..398)
+ OPEN_PAREN: (381..382) "("
+ SYMBOL: (382..386)
+ IDENTIFIER: (382..386) "swap"
+ ATMOSPHERE: (386..387) " "
+ CONSTANT: (387..390)
+ NUMBER: (387..390) "123"
+ ATMOSPHERE: (390..391) " "
+ CONSTANT: (391..397)
+ STRING: (391..397) "\"Test\""
+ CLOSE_PAREN: (397..398) ")"
+ ATMOSPHERE: (398..399) " "
+ CONSTANT: (399..402)
+ NUMBER: (399..402) "123"
+ CLOSE_PAREN: (402..403) ")"
+ EOF: (403..403) ""
diff --git a/spec/symbols.ast b/spec/symbols.ast
new file mode 100644
index 0000000..3d0c386
--- /dev/null
+++ b/spec/symbols.ast
@@ -0,0 +1,329 @@
+PROGRAM: (0..792)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..231)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..50)
+ IDENTIFIER: (43..50) "display"
+ ATMOSPHERE: (50..51) " "
+ FORM: (51..230)
+ OPEN_PAREN: (51..52) "("
+ SYMBOL: (52..56)
+ IDENTIFIER: (52..56) "list"
+ ATMOSPHERE: (56..61) "\n "
+ FORM: (61..75)
+ OPEN_PAREN: (61..62) "("
+ SYMBOL: (62..69)
+ IDENTIFIER: (62..69) "symbol?"
+ ATMOSPHERE: (69..70) " "
+ QUOTED_DATUM: (70..74)
+ QUOTE: (70..71) "’"
+ SYMBOL: (71..74)
+ IDENTIFIER: (71..74) "foo"
+ CLOSE_PAREN: (74..75) ")"
+ ATMOSPHERE: (75..76) " "
+ ATMOSPHERE: (76..83) "; -> #t"
+ ATMOSPHERE: (83..88) "\n "
+ FORM: (88..110)
+ OPEN_PAREN: (88..89) "("
+ SYMBOL: (89..96)
+ IDENTIFIER: (89..96) "symbol?"
+ ATMOSPHERE: (96..97) " "
+ FORM: (97..109)
+ OPEN_PAREN: (97..98) "("
+ SYMBOL: (98..101)
+ IDENTIFIER: (98..101) "car"
+ ATMOSPHERE: (101..102) " "
+ QUOTED_DATUM: (102..108)
+ QUOTE: (102..103) "’"
+ FORM: (103..108)
+ OPEN_PAREN: (103..104) "("
+ SYMBOL: (104..105)
+ IDENTIFIER: (104..105) "a"
+ ATMOSPHERE: (105..106) " "
+ SYMBOL: (106..107)
+ IDENTIFIER: (106..107) "b"
+ CLOSE_PAREN: (107..108) ")"
+ CLOSE_PAREN: (108..109) ")"
+ CLOSE_PAREN: (109..110) ")"
+ ATMOSPHERE: (110..111) " "
+ ATMOSPHERE: (111..118) "; -> #t"
+ ATMOSPHERE: (118..123) "\n "
+ FORM: (123..138)
+ OPEN_PAREN: (123..124) "("
+ SYMBOL: (124..131)
+ IDENTIFIER: (124..131) "symbol?"
+ ATMOSPHERE: (131..132) " "
+ CONSTANT: (132..137)
+ STRING: (132..137) "\"bar\""
+ CLOSE_PAREN: (137..138) ")"
+ ATMOSPHERE: (138..139) " "
+ ATMOSPHERE: (139..146) "; -> #f"
+ ATMOSPHERE: (146..151) "\n "
+ FORM: (151..165)
+ OPEN_PAREN: (151..152) "("
+ SYMBOL: (152..159)
+ IDENTIFIER: (152..159) "symbol?"
+ ATMOSPHERE: (159..160) " "
+ QUOTED_DATUM: (160..164)
+ QUOTE: (160..161) "’"
+ SYMBOL: (161..164)
+ IDENTIFIER: (161..164) "nil"
+ CLOSE_PAREN: (164..165) ")"
+ ATMOSPHERE: (165..166) " "
+ ATMOSPHERE: (166..173) "; -> #t"
+ ATMOSPHERE: (173..178) "\n "
+ FORM: (178..191)
+ OPEN_PAREN: (178..179) "("
+ SYMBOL: (179..186)
+ IDENTIFIER: (179..186) "symbol?"
+ ATMOSPHERE: (186..187) " "
+ QUOTED_DATUM: (187..190)
+ QUOTE: (187..188) "’"
+ FORM: (188..190)
+ OPEN_PAREN: (188..189) "("
+ CLOSE_PAREN: (189..190) ")"
+ CLOSE_PAREN: (190..191) ")"
+ ATMOSPHERE: (191..192) " "
+ ATMOSPHERE: (192..199) "; -> #f"
+ ATMOSPHERE: (199..204) "\n "
+ FORM: (204..216)
+ OPEN_PAREN: (204..205) "("
+ SYMBOL: (205..212)
+ IDENTIFIER: (205..212) "symbol?"
+ ATMOSPHERE: (212..213) " "
+ CONSTANT: (213..215)
+ BOOLEAN: (213..215) "#f"
+ CLOSE_PAREN: (215..216) ")"
+ ATMOSPHERE: (216..217) " "
+ ATMOSPHERE: (217..224) "; -> #f"
+ ATMOSPHERE: (224..229) "\n "
+ CLOSE_PAREN: (229..230) ")"
+ CLOSE_PAREN: (230..231) ")"
+ FORM: (231..240)
+ OPEN_PAREN: (231..232) "("
+ SYMBOL: (232..239)
+ IDENTIFIER: (232..239) "newline"
+ CLOSE_PAREN: (239..240) ")"
+ ATMOSPHERE: (240..241) "\n"
+ FORM: (241..326)
+ OPEN_PAREN: (241..242) "("
+ SYMBOL: (242..249)
+ IDENTIFIER: (242..249) "display"
+ ATMOSPHERE: (249..250) " "
+ FORM: (250..325)
+ OPEN_PAREN: (250..251) "("
+ SYMBOL: (251..255)
+ IDENTIFIER: (251..255) "list"
+ ATMOSPHERE: (255..260) "\n "
+ FORM: (260..291)
+ OPEN_PAREN: (260..261) "("
+ SYMBOL: (261..269)
+ IDENTIFIER: (261..269) "symbol=?"
+ ATMOSPHERE: (269..270) " "
+ QUOTED_DATUM: (270..277)
+ QUOTE: (270..271) "'"
+ SYMBOL: (271..276)
+ IDENTIFIER: (271..276) "hello"
+ ATMOSPHERE: (276..277) " "
+ QUOTED_DATUM: (277..284)
+ QUOTE: (277..278) "'"
+ SYMBOL: (278..283)
+ IDENTIFIER: (278..283) "hello"
+ ATMOSPHERE: (283..284) " "
+ QUOTED_DATUM: (284..290)
+ QUOTE: (284..285) "'"
+ SYMBOL: (285..290)
+ IDENTIFIER: (285..290) "hello"
+ CLOSE_PAREN: (290..291) ")"
+ ATMOSPHERE: (291..296) "\n "
+ FORM: (296..319)
+ OPEN_PAREN: (296..297) "("
+ SYMBOL: (297..305)
+ IDENTIFIER: (297..305) "symbol=?"
+ ATMOSPHERE: (305..306) " "
+ CONSTANT: (306..312)
+ STRING: (306..312) "\"nope\""
+ ATMOSPHERE: (312..313) " "
+ QUOTED_DATUM: (313..318)
+ QUOTE: (313..314) "'"
+ SYMBOL: (314..318)
+ IDENTIFIER: (314..318) "nope"
+ CLOSE_PAREN: (318..319) ")"
+ ATMOSPHERE: (319..324) "\n "
+ CLOSE_PAREN: (324..325) ")"
+ CLOSE_PAREN: (325..326) ")"
+ FORM: (326..335)
+ OPEN_PAREN: (326..327) "("
+ SYMBOL: (327..334)
+ IDENTIFIER: (327..334) "newline"
+ CLOSE_PAREN: (334..335) ")"
+ ATMOSPHERE: (335..336) "\n"
+ FORM: (336..783)
+ OPEN_PAREN: (336..337) "("
+ SYMBOL: (337..344)
+ IDENTIFIER: (337..344) "display"
+ ATMOSPHERE: (344..345) " "
+ FORM: (345..782)
+ OPEN_PAREN: (345..346) "("
+ SYMBOL: (346..350)
+ IDENTIFIER: (346..350) "list"
+ ATMOSPHERE: (350..355) "\n "
+ FORM: (355..384)
+ OPEN_PAREN: (355..356) "("
+ SYMBOL: (356..370)
+ IDENTIFIER: (356..370) "symbol->string"
+ ATMOSPHERE: (370..371) " "
+ QUOTED_DATUM: (371..383)
+ QUOTE: (371..372) "’"
+ SYMBOL: (372..383)
+ IDENTIFIER: (372..383) "flying-fish"
+ CLOSE_PAREN: (383..384) ")"
+ ATMOSPHERE: (384..385) " "
+ ATMOSPHERE: (385..403) "; -> \"flying-fish\""
+ ATMOSPHERE: (403..408) "\n "
+ FORM: (408..432)
+ OPEN_PAREN: (408..409) "("
+ SYMBOL: (409..423)
+ IDENTIFIER: (409..423) "symbol->string"
+ ATMOSPHERE: (423..424) " "
+ QUOTED_DATUM: (424..431)
+ QUOTE: (424..425) "’"
+ SYMBOL: (425..431)
+ IDENTIFIER: (425..431) "Martin"
+ CLOSE_PAREN: (431..432) ")"
+ ATMOSPHERE: (432..433) " "
+ ATMOSPHERE: (433..446) "; -> \"Martin\""
+ ATMOSPHERE: (446..451) "\n "
+ FORM: (451..494)
+ OPEN_PAREN: (451..452) "("
+ SYMBOL: (452..466)
+ IDENTIFIER: (452..466) "symbol->string"
+ ATMOSPHERE: (466..467) " "
+ FORM: (467..493)
+ OPEN_PAREN: (467..468) "("
+ SYMBOL: (468..482)
+ IDENTIFIER: (468..482) "string->symbol"
+ ATMOSPHERE: (482..483) " "
+ CONSTANT: (483..492)
+ STRING: (483..492) "\"Malvina\""
+ CLOSE_PAREN: (492..493) ")"
+ CLOSE_PAREN: (493..494) ")"
+ ATMOSPHERE: (494..495) " "
+ ATMOSPHERE: (495..509) "; -> \"Malvina\""
+ ATMOSPHERE: (509..514) "\n "
+ FORM: (514..544)
+ OPEN_PAREN: (514..515) "("
+ SYMBOL: (515..529)
+ IDENTIFIER: (515..529) "string->symbol"
+ ATMOSPHERE: (529..530) " "
+ CONSTANT: (530..543)
+ STRING: (530..543) "\"mISSISSIppi\""
+ CLOSE_PAREN: (543..544) ")"
+ ATMOSPHERE: (544..545) " "
+ ATMOSPHERE: (545..561) "; -> mISSISSIppi"
+ ATMOSPHERE: (561..566) "\n "
+ FORM: (566..606)
+ OPEN_PAREN: (566..567) "("
+ SYMBOL: (567..571)
+ IDENTIFIER: (567..571) "eqv?"
+ ATMOSPHERE: (571..572) " "
+ QUOTED_DATUM: (572..580)
+ QUOTE: (572..573) "’"
+ SYMBOL: (573..579)
+ IDENTIFIER: (573..579) "bitBlt"
+ ATMOSPHERE: (579..580) " "
+ FORM: (580..605)
+ OPEN_PAREN: (580..581) "("
+ SYMBOL: (581..595)
+ IDENTIFIER: (581..595) "string->symbol"
+ ATMOSPHERE: (595..596) " "
+ CONSTANT: (596..604)
+ STRING: (596..604) "\"bitBlt\""
+ CLOSE_PAREN: (604..605) ")"
+ CLOSE_PAREN: (605..606) ")"
+ ATMOSPHERE: (606..607) " "
+ ATMOSPHERE: (607..614) "; -> #t"
+ ATMOSPHERE: (614..619) "\n "
+ FORM: (619..677)
+ OPEN_PAREN: (619..620) "("
+ SYMBOL: (620..624)
+ IDENTIFIER: (620..624) "eqv?"
+ ATMOSPHERE: (624..625) " "
+ QUOTED_DATUM: (625..634)
+ QUOTE: (625..626) "’"
+ SYMBOL: (626..634)
+ IDENTIFIER: (626..634) "LollyPop"
+ FORM: (634..676)
+ OPEN_PAREN: (634..635) "("
+ SYMBOL: (635..649)
+ IDENTIFIER: (635..649) "string->symbol"
+ FORM: (649..675)
+ OPEN_PAREN: (649..650) "("
+ SYMBOL: (650..664)
+ IDENTIFIER: (650..664) "symbol->string"
+ ATMOSPHERE: (664..665) " "
+ QUOTED_DATUM: (665..674)
+ QUOTE: (665..666) "’"
+ SYMBOL: (666..674)
+ IDENTIFIER: (666..674) "LollyPop"
+ CLOSE_PAREN: (674..675) ")"
+ CLOSE_PAREN: (675..676) ")"
+ CLOSE_PAREN: (676..677) ")"
+ ATMOSPHERE: (677..678) " "
+ ATMOSPHERE: (678..685) "; -> #t"
+ ATMOSPHERE: (685..690) "\n "
+ FORM: (690..768)
+ OPEN_PAREN: (690..691) "("
+ SYMBOL: (691..699)
+ IDENTIFIER: (691..699) "string=?"
+ ATMOSPHERE: (699..700) " "
+ CONSTANT: (700..717)
+ STRING: (700..717) "\"K. Harper, M.D.\""
+ FORM: (717..767)
+ OPEN_PAREN: (717..718) "("
+ SYMBOL: (718..732)
+ IDENTIFIER: (718..732) "symbol->string"
+ FORM: (732..766)
+ OPEN_PAREN: (732..733) "("
+ SYMBOL: (733..747)
+ IDENTIFIER: (733..747) "string->symbol"
+ ATMOSPHERE: (747..748) " "
+ CONSTANT: (748..765)
+ STRING: (748..765) "\"K. Harper, M.D.\""
+ CLOSE_PAREN: (765..766) ")"
+ CLOSE_PAREN: (766..767) ")"
+ CLOSE_PAREN: (767..768) ")"
+ ATMOSPHERE: (768..769) " "
+ ATMOSPHERE: (769..776) "; -> #t"
+ ATMOSPHERE: (776..781) "\n "
+ CLOSE_PAREN: (781..782) ")"
+ CLOSE_PAREN: (782..783) ")"
+ FORM: (783..792)
+ OPEN_PAREN: (783..784) "("
+ SYMBOL: (784..791)
+ IDENTIFIER: (784..791) "newline"
+ CLOSE_PAREN: (791..792) ")"
+ EOF: (792..792) ""
diff --git a/spec/tail.ast b/spec/tail.ast
new file mode 100644
index 0000000..e5f2140
--- /dev/null
+++ b/spec/tail.ast
@@ -0,0 +1,277 @@
+PROGRAM: (0..986)
+ FORM: (0..211)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ ATMOSPHERE: (26..93) ";; FIXME: we shouldn't _need_ to import this, but we have no way of"
+ ATMOSPHERE: (93..98) "\n "
+ ATMOSPHERE: (98..162) ";; exporting or re-exporting macro definitions currently."
+ ATMOSPHERE: (162..167) "\n "
+ FORM: (167..191)
+ OPEN_PAREN: (167..168) "("
+ SYMBOL: (168..175)
+ IDENTIFIER: (168..175) "feersum"
+ ATMOSPHERE: (175..176) " "
+ SYMBOL: (176..183)
+ IDENTIFIER: (176..183) "builtin"
+ ATMOSPHERE: (183..184) " "
+ SYMBOL: (184..190)
+ IDENTIFIER: (184..190) "macros"
+ CLOSE_PAREN: (190..191) ")"
+ ATMOSPHERE: (191..196) "\n "
+ FORM: (196..210)
+ OPEN_PAREN: (196..197) "("
+ SYMBOL: (197..203)
+ IDENTIFIER: (197..203) "scheme"
+ ATMOSPHERE: (203..204) " "
+ SYMBOL: (204..209)
+ IDENTIFIER: (204..209) "write"
+ CLOSE_PAREN: (209..210) ")"
+ CLOSE_PAREN: (210..211) ")"
+ ATMOSPHERE: (211..213) "\n\n"
+ ATMOSPHERE: (213..275) ";; Without proper tail recursion this will overflow the stack:"
+ ATMOSPHERE: (275..276) "\n"
+ ATMOSPHERE: (276..277) ";"
+ ATMOSPHERE: (277..278) "\n"
+ ATMOSPHERE: (278..296) "; ! stack overflow"
+ ATMOSPHERE: (296..297) "\n"
+ ATMOSPHERE: (297..343) "; [ping] -> [ping] -> [ping] -> ... -> [ping]"
+ ATMOSPHERE: (343..344) "\n"
+ ATMOSPHERE: (344..350) "; ...."
+ ATMOSPHERE: (350..351) "\n"
+ ATMOSPHERE: (351..397) "; -> [ping] -> ... -> [ping]"
+ ATMOSPHERE: (397..398) "\n"
+ ATMOSPHERE: (398..444) "; -> [pong] -> [pong] -> ... -> [pong]"
+ ATMOSPHERE: (444..445) "\n"
+ ATMOSPHERE: (445..491) "; [ping] -> [ping] -> [ping] -> ... -> [ping]"
+ ATMOSPHERE: (491..493) "\n\n"
+ ATMOSPHERE: (493..552) ";; With proper tail recursive calls stack use is constant: "
+ ATMOSPHERE: (552..553) "\n"
+ ATMOSPHERE: (553..591) "; [ping] -> [pong] -> [ping] -> [pong]"
+ ATMOSPHERE: (591..593) "\n\n"
+ FORM: (593..756)
+ OPEN_PAREN: (593..594) "("
+ SYMBOL: (594..601)
+ IDENTIFIER: (594..601) "display"
+ ATMOSPHERE: (601..605) " \n "
+ FORM: (605..755)
+ OPEN_PAREN: (605..606) "("
+ SYMBOL: (606..612)
+ IDENTIFIER: (606..612) "letrec"
+ ATMOSPHERE: (612..613) " "
+ FORM: (613..738)
+ OPEN_PAREN: (613..614) "("
+ FORM: (614..644)
+ OPEN_PAREN: (614..615) "("
+ SYMBOL: (615..619)
+ IDENTIFIER: (615..619) "ping"
+ ATMOSPHERE: (619..620) " "
+ FORM: (620..643)
+ OPEN_PAREN: (620..621) "("
+ SYMBOL: (621..627)
+ IDENTIFIER: (621..627) "lambda"
+ ATMOSPHERE: (627..628) " "
+ FORM: (628..631)
+ OPEN_PAREN: (628..629) "("
+ SYMBOL: (629..630)
+ IDENTIFIER: (629..630) "x"
+ CLOSE_PAREN: (630..631) ")"
+ ATMOSPHERE: (631..634) "\n "
+ FORM: (634..642)
+ OPEN_PAREN: (634..635) "("
+ SYMBOL: (635..639)
+ IDENTIFIER: (635..639) "pong"
+ ATMOSPHERE: (639..640) " "
+ SYMBOL: (640..641)
+ IDENTIFIER: (640..641) "x"
+ CLOSE_PAREN: (641..642) ")"
+ CLOSE_PAREN: (642..643) ")"
+ CLOSE_PAREN: (643..644) ")"
+ ATMOSPHERE: (644..654) "\n "
+ FORM: (654..737)
+ OPEN_PAREN: (654..655) "("
+ SYMBOL: (655..659)
+ IDENTIFIER: (655..659) "pong"
+ ATMOSPHERE: (659..660) " "
+ FORM: (660..736)
+ OPEN_PAREN: (660..661) "("
+ SYMBOL: (661..667)
+ IDENTIFIER: (661..667) "lambda"
+ ATMOSPHERE: (667..668) " "
+ FORM: (668..671)
+ OPEN_PAREN: (668..669) "("
+ SYMBOL: (669..670)
+ IDENTIFIER: (669..670) "x"
+ CLOSE_PAREN: (670..671) ")"
+ ATMOSPHERE: (671..682) "\n "
+ FORM: (682..735)
+ OPEN_PAREN: (682..683) "("
+ SYMBOL: (683..685)
+ IDENTIFIER: (683..685) "if"
+ ATMOSPHERE: (685..686) " "
+ FORM: (686..693)
+ OPEN_PAREN: (686..687) "("
+ SYMBOL: (687..688)
+ IDENTIFIER: (687..688) ">"
+ ATMOSPHERE: (688..689) " "
+ CONSTANT: (689..690)
+ NUMBER: (689..690) "0"
+ ATMOSPHERE: (690..691) " "
+ SYMBOL: (691..692)
+ IDENTIFIER: (691..692) "x"
+ CLOSE_PAREN: (692..693) ")"
+ ATMOSPHERE: (693..706) "\n "
+ SYMBOL: (706..707)
+ IDENTIFIER: (706..707) "x"
+ ATMOSPHERE: (707..720) "\n "
+ FORM: (720..734)
+ OPEN_PAREN: (720..721) "("
+ SYMBOL: (721..725)
+ IDENTIFIER: (721..725) "ping"
+ ATMOSPHERE: (725..726) " "
+ FORM: (726..733)
+ OPEN_PAREN: (726..727) "("
+ SYMBOL: (727..728)
+ IDENTIFIER: (727..728) "-"
+ ATMOSPHERE: (728..729) " "
+ SYMBOL: (729..730)
+ IDENTIFIER: (729..730) "x"
+ ATMOSPHERE: (730..731) " "
+ CONSTANT: (731..732)
+ NUMBER: (731..732) "1"
+ CLOSE_PAREN: (732..733) ")"
+ CLOSE_PAREN: (733..734) ")"
+ CLOSE_PAREN: (734..735) ")"
+ CLOSE_PAREN: (735..736) ")"
+ CLOSE_PAREN: (736..737) ")"
+ CLOSE_PAREN: (737..738) ")"
+ ATMOSPHERE: (738..741) "\n "
+ FORM: (741..754)
+ OPEN_PAREN: (741..742) "("
+ SYMBOL: (742..746)
+ IDENTIFIER: (742..746) "ping"
+ ATMOSPHERE: (746..747) " "
+ CONSTANT: (747..753)
+ NUMBER: (747..753) "100000"
+ CLOSE_PAREN: (753..754) ")"
+ CLOSE_PAREN: (754..755) ")"
+ CLOSE_PAREN: (755..756) ")"
+ ATMOSPHERE: (756..759) "\n\n\n"
+ FORM: (759..768)
+ OPEN_PAREN: (759..760) "("
+ SYMBOL: (760..767)
+ IDENTIFIER: (760..767) "newline"
+ CLOSE_PAREN: (767..768) ")"
+ ATMOSPHERE: (768..770) "\n\n"
+ ATMOSPHERE: (770..823) "; Tail context should flow into `and` and `or` macros"
+ ATMOSPHERE: (823..824) "\n"
+ FORM: (824..985)
+ OPEN_PAREN: (824..825) "("
+ SYMBOL: (825..832)
+ IDENTIFIER: (825..832) "display"
+ ATMOSPHERE: (832..835) "\n "
+ FORM: (835..984)
+ OPEN_PAREN: (835..836) "("
+ SYMBOL: (836..842)
+ IDENTIFIER: (836..842) "letrec"
+ ATMOSPHERE: (842..847) "\n "
+ FORM: (847..967)
+ OPEN_PAREN: (847..848) "("
+ FORM: (848..966)
+ OPEN_PAREN: (848..849) "("
+ SYMBOL: (849..852)
+ IDENTIFIER: (849..852) "foo"
+ ATMOSPHERE: (852..853) " "
+ FORM: (853..965)
+ OPEN_PAREN: (853..854) "("
+ SYMBOL: (854..860)
+ IDENTIFIER: (854..860) "lambda"
+ ATMOSPHERE: (860..861) " "
+ FORM: (861..864)
+ OPEN_PAREN: (861..862) "("
+ SYMBOL: (862..863)
+ IDENTIFIER: (862..863) "x"
+ CLOSE_PAREN: (863..864) ")"
+ ATMOSPHERE: (864..872) "\n "
+ FORM: (872..964)
+ OPEN_PAREN: (872..873) "("
+ SYMBOL: (873..876)
+ IDENTIFIER: (873..876) "and"
+ ATMOSPHERE: (876..877) " "
+ CONSTANT: (877..879)
+ BOOLEAN: (877..879) "#t"
+ ATMOSPHERE: (879..889) "\n "
+ FORM: (889..963)
+ OPEN_PAREN: (889..890) "("
+ SYMBOL: (890..892)
+ IDENTIFIER: (890..892) "or"
+ ATMOSPHERE: (892..893) " "
+ CONSTANT: (893..895)
+ BOOLEAN: (893..895) "#f"
+ ATMOSPHERE: (895..907) "\n "
+ FORM: (907..962)
+ OPEN_PAREN: (907..908) "("
+ SYMBOL: (908..910)
+ IDENTIFIER: (908..910) "if"
+ ATMOSPHERE: (910..911) " "
+ FORM: (911..918)
+ OPEN_PAREN: (911..912) "("
+ SYMBOL: (912..913)
+ IDENTIFIER: (912..913) ">"
+ ATMOSPHERE: (913..914) " "
+ CONSTANT: (914..915)
+ NUMBER: (914..915) "0"
+ ATMOSPHERE: (915..916) " "
+ SYMBOL: (916..917)
+ IDENTIFIER: (916..917) "x"
+ CLOSE_PAREN: (917..918) ")"
+ ATMOSPHERE: (918..932) "\n "
+ CONSTANT: (932..934)
+ BOOLEAN: (932..934) "#t"
+ ATMOSPHERE: (934..948) "\n "
+ FORM: (948..961)
+ OPEN_PAREN: (948..949) "("
+ SYMBOL: (949..952)
+ IDENTIFIER: (949..952) "foo"
+ ATMOSPHERE: (952..953) " "
+ FORM: (953..960)
+ OPEN_PAREN: (953..954) "("
+ SYMBOL: (954..955)
+ IDENTIFIER: (954..955) "-"
+ ATMOSPHERE: (955..956) " "
+ SYMBOL: (956..957)
+ IDENTIFIER: (956..957) "x"
+ ATMOSPHERE: (957..958) " "
+ CONSTANT: (958..959)
+ NUMBER: (958..959) "1"
+ CLOSE_PAREN: (959..960) ")"
+ CLOSE_PAREN: (960..961) ")"
+ CLOSE_PAREN: (961..962) ")"
+ CLOSE_PAREN: (962..963) ")"
+ CLOSE_PAREN: (963..964) ")"
+ CLOSE_PAREN: (964..965) ")"
+ CLOSE_PAREN: (965..966) ")"
+ CLOSE_PAREN: (966..967) ")"
+ ATMOSPHERE: (967..971) "\n "
+ FORM: (971..983)
+ OPEN_PAREN: (971..972) "("
+ SYMBOL: (972..975)
+ IDENTIFIER: (972..975) "foo"
+ ATMOSPHERE: (975..976) " "
+ CONSTANT: (976..982)
+ NUMBER: (976..982) "100000"
+ CLOSE_PAREN: (982..983) ")"
+ CLOSE_PAREN: (983..984) ")"
+ CLOSE_PAREN: (984..985) ")"
+ ATMOSPHERE: (985..986) "\n"
+ EOF: (986..986) ""
diff --git a/spec/time.ast b/spec/time.ast
new file mode 100644
index 0000000..23a66a6
--- /dev/null
+++ b/spec/time.ast
@@ -0,0 +1,143 @@
+PROGRAM: (0..265)
+ FORM: (0..55)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..24) "\n "
+ FORM: (24..38)
+ OPEN_PAREN: (24..25) "("
+ SYMBOL: (25..31)
+ IDENTIFIER: (25..31) "scheme"
+ ATMOSPHERE: (31..32) " "
+ SYMBOL: (32..37)
+ IDENTIFIER: (32..37) "write"
+ CLOSE_PAREN: (37..38) ")"
+ ATMOSPHERE: (38..41) "\n "
+ FORM: (41..54)
+ OPEN_PAREN: (41..42) "("
+ SYMBOL: (42..48)
+ IDENTIFIER: (42..48) "scheme"
+ ATMOSPHERE: (48..49) " "
+ SYMBOL: (49..53)
+ IDENTIFIER: (49..53) "time"
+ CLOSE_PAREN: (53..54) ")"
+ CLOSE_PAREN: (54..55) ")"
+ ATMOSPHERE: (55..57) "\n\n"
+ FORM: (57..224)
+ OPEN_PAREN: (57..58) "("
+ SYMBOL: (58..64)
+ IDENTIFIER: (58..64) "define"
+ ATMOSPHERE: (64..65) " "
+ FORM: (65..80)
+ OPEN_PAREN: (65..66) "("
+ SYMBOL: (66..77)
+ IDENTIFIER: (66..77) "time-length"
+ ATMOSPHERE: (77..78) " "
+ SYMBOL: (78..79)
+ IDENTIFIER: (78..79) "x"
+ CLOSE_PAREN: (79..80) ")"
+ ATMOSPHERE: (80..83) "\n "
+ FORM: (83..223)
+ OPEN_PAREN: (83..84) "("
+ SYMBOL: (84..87)
+ IDENTIFIER: (84..87) "let"
+ ATMOSPHERE: (87..88) " "
+ FORM: (88..142)
+ OPEN_PAREN: (88..89) "("
+ FORM: (89..109)
+ OPEN_PAREN: (89..90) "("
+ SYMBOL: (90..94)
+ IDENTIFIER: (90..94) "list"
+ ATMOSPHERE: (94..95) " "
+ FORM: (95..108)
+ OPEN_PAREN: (95..96) "("
+ SYMBOL: (96..105)
+ IDENTIFIER: (96..105) "make-list"
+ ATMOSPHERE: (105..106) " "
+ SYMBOL: (106..107)
+ IDENTIFIER: (106..107) "x"
+ CLOSE_PAREN: (107..108) ")"
+ CLOSE_PAREN: (108..109) ")"
+ ATMOSPHERE: (109..118) "\n "
+ FORM: (118..141)
+ OPEN_PAREN: (118..119) "("
+ SYMBOL: (119..124)
+ IDENTIFIER: (119..124) "start"
+ ATMOSPHERE: (124..125) " "
+ FORM: (125..140)
+ OPEN_PAREN: (125..126) "("
+ SYMBOL: (126..139)
+ IDENTIFIER: (126..139) "current-jiffy"
+ CLOSE_PAREN: (139..140) ")"
+ CLOSE_PAREN: (140..141) ")"
+ CLOSE_PAREN: (141..142) ")"
+ ATMOSPHERE: (142..147) "\n "
+ FORM: (147..160)
+ OPEN_PAREN: (147..148) "("
+ SYMBOL: (148..154)
+ IDENTIFIER: (148..154) "length"
+ ATMOSPHERE: (154..155) " "
+ SYMBOL: (155..159)
+ IDENTIFIER: (155..159) "list"
+ CLOSE_PAREN: (159..160) ")"
+ ATMOSPHERE: (160..165) "\n "
+ FORM: (165..222)
+ OPEN_PAREN: (165..166) "("
+ SYMBOL: (166..167)
+ IDENTIFIER: (166..167) "/"
+ ATMOSPHERE: (167..168) " "
+ FORM: (168..193)
+ OPEN_PAREN: (168..169) "("
+ SYMBOL: (169..170)
+ IDENTIFIER: (169..170) "-"
+ ATMOSPHERE: (170..171) " "
+ FORM: (171..186)
+ OPEN_PAREN: (171..172) "("
+ SYMBOL: (172..185)
+ IDENTIFIER: (172..185) "current-jiffy"
+ CLOSE_PAREN: (185..186) ")"
+ ATMOSPHERE: (186..187) " "
+ SYMBOL: (187..192)
+ IDENTIFIER: (187..192) "start"
+ CLOSE_PAREN: (192..193) ")"
+ ATMOSPHERE: (193..201) "\n "
+ FORM: (201..221)
+ OPEN_PAREN: (201..202) "("
+ SYMBOL: (202..220)
+ IDENTIFIER: (202..220) "jiffies-per-second"
+ CLOSE_PAREN: (220..221) ")"
+ CLOSE_PAREN: (221..222) ")"
+ CLOSE_PAREN: (222..223) ")"
+ CLOSE_PAREN: (223..224) ")"
+ ATMOSPHERE: (224..226) "\n\n"
+ FORM: (226..242)
+ OPEN_PAREN: (226..227) "("
+ SYMBOL: (227..238)
+ IDENTIFIER: (227..238) "time-length"
+ ATMOSPHERE: (238..239) " "
+ CONSTANT: (239..241)
+ NUMBER: (239..241) "10"
+ CLOSE_PAREN: (241..242) ")"
+ ATMOSPHERE: (242..243) "\n"
+ FORM: (243..261)
+ OPEN_PAREN: (243..244) "("
+ SYMBOL: (244..255)
+ IDENTIFIER: (244..255) "time-length"
+ ATMOSPHERE: (255..256) " "
+ CONSTANT: (256..260)
+ NUMBER: (256..260) "1000"
+ CLOSE_PAREN: (260..261) ")"
+ ATMOSPHERE: (261..263) "\n\n"
+ CONSTANT: (263..264)
+ NUMBER: (263..264) "0"
+ ATMOSPHERE: (264..265) "\n"
+ EOF: (265..265) ""
diff --git a/spec/user-macros.ast b/spec/user-macros.ast
new file mode 100644
index 0000000..7737e43
--- /dev/null
+++ b/spec/user-macros.ast
@@ -0,0 +1,303 @@
+PROGRAM: (0..555)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..43) "\n\n"
+ FORM: (43..131)
+ OPEN_PAREN: (43..44) "("
+ SYMBOL: (44..57)
+ IDENTIFIER: (44..57) "define-syntax"
+ ATMOSPHERE: (57..58) " "
+ SYMBOL: (58..61)
+ IDENTIFIER: (58..61) "foo"
+ ATMOSPHERE: (61..66) "\n "
+ FORM: (66..130)
+ OPEN_PAREN: (66..67) "("
+ SYMBOL: (67..79)
+ IDENTIFIER: (67..79) "syntax-rules"
+ ATMOSPHERE: (79..80) " "
+ FORM: (80..82)
+ OPEN_PAREN: (80..81) "("
+ CLOSE_PAREN: (81..82) ")"
+ ATMOSPHERE: (82..91) "\n "
+ FORM: (91..109)
+ OPEN_PAREN: (91..92) "("
+ FORM: (92..99)
+ OPEN_PAREN: (92..93) "("
+ SYMBOL: (93..94)
+ IDENTIFIER: (93..94) "_"
+ ATMOSPHERE: (94..95) " "
+ CONSTANT: (95..98)
+ NUMBER: (95..98) "123"
+ CLOSE_PAREN: (98..99) ")"
+ ATMOSPHERE: (99..100) " "
+ QUOTED_DATUM: (100..108)
+ QUOTE: (100..101) "'"
+ FORM: (101..108)
+ OPEN_PAREN: (101..102) "("
+ CONSTANT: (102..103)
+ NUMBER: (102..103) "1"
+ ATMOSPHERE: (103..104) " "
+ CONSTANT: (104..105)
+ NUMBER: (104..105) "2"
+ ATMOSPHERE: (105..106) " "
+ CONSTANT: (106..107)
+ NUMBER: (106..107) "3"
+ CLOSE_PAREN: (107..108) ")"
+ CLOSE_PAREN: (108..109) ")"
+ ATMOSPHERE: (109..118) "\n "
+ FORM: (118..129)
+ OPEN_PAREN: (118..119) "("
+ FORM: (119..122)
+ OPEN_PAREN: (119..120) "("
+ SYMBOL: (120..121)
+ IDENTIFIER: (120..121) "_"
+ CLOSE_PAREN: (121..122) ")"
+ ATMOSPHERE: (122..123) " "
+ CONSTANT: (123..128)
+ STRING: (123..128) "\"bar\""
+ CLOSE_PAREN: (128..129) ")"
+ CLOSE_PAREN: (129..130) ")"
+ CLOSE_PAREN: (130..131) ")"
+ ATMOSPHERE: (131..132) "\n"
+ FORM: (132..172)
+ OPEN_PAREN: (132..133) "("
+ SYMBOL: (133..140)
+ IDENTIFIER: (133..140) "display"
+ ATMOSPHERE: (140..141) " "
+ FORM: (141..171)
+ OPEN_PAREN: (141..142) "("
+ SYMBOL: (142..146)
+ IDENTIFIER: (142..146) "list"
+ ATMOSPHERE: (146..151) "\n "
+ FORM: (151..160)
+ OPEN_PAREN: (151..152) "("
+ SYMBOL: (152..155)
+ IDENTIFIER: (152..155) "foo"
+ ATMOSPHERE: (155..156) " "
+ CONSTANT: (156..159)
+ NUMBER: (156..159) "123"
+ CLOSE_PAREN: (159..160) ")"
+ ATMOSPHERE: (160..165) "\n "
+ FORM: (165..170)
+ OPEN_PAREN: (165..166) "("
+ SYMBOL: (166..169)
+ IDENTIFIER: (166..169) "foo"
+ CLOSE_PAREN: (169..170) ")"
+ CLOSE_PAREN: (170..171) ")"
+ CLOSE_PAREN: (171..172) ")"
+ ATMOSPHERE: (172..173) "\n"
+ FORM: (173..182)
+ OPEN_PAREN: (173..174) "("
+ SYMBOL: (174..181)
+ IDENTIFIER: (174..181) "newline"
+ CLOSE_PAREN: (181..182) ")"
+ ATMOSPHERE: (182..184) "\n\n"
+ FORM: (184..360)
+ OPEN_PAREN: (184..185) "("
+ SYMBOL: (185..188)
+ IDENTIFIER: (185..188) "let"
+ ATMOSPHERE: (188..189) " "
+ FORM: (189..191)
+ OPEN_PAREN: (189..190) "("
+ CLOSE_PAREN: (190..191) ")"
+ ATMOSPHERE: (191..196) "\n "
+ FORM: (196..306)
+ OPEN_PAREN: (196..197) "("
+ SYMBOL: (197..210)
+ IDENTIFIER: (197..210) "define-syntax"
+ ATMOSPHERE: (210..211) " "
+ SYMBOL: (211..214)
+ IDENTIFIER: (211..214) "foo"
+ ATMOSPHERE: (214..223) "\n "
+ FORM: (223..305)
+ OPEN_PAREN: (223..224) "("
+ SYMBOL: (224..236)
+ IDENTIFIER: (224..236) "syntax-rules"
+ ATMOSPHERE: (236..237) " "
+ FORM: (237..242)
+ OPEN_PAREN: (237..238) "("
+ SYMBOL: (238..241)
+ IDENTIFIER: (238..241) "bar"
+ CLOSE_PAREN: (241..242) ")"
+ ATMOSPHERE: (242..255) "\n "
+ FORM: (255..273)
+ OPEN_PAREN: (255..256) "("
+ FORM: (256..263)
+ OPEN_PAREN: (256..257) "("
+ SYMBOL: (257..258)
+ IDENTIFIER: (257..258) "_"
+ ATMOSPHERE: (258..259) " "
+ SYMBOL: (259..262)
+ IDENTIFIER: (259..262) "bar"
+ CLOSE_PAREN: (262..263) ")"
+ ATMOSPHERE: (263..264) " "
+ CONSTANT: (264..272)
+ STRING: (264..272) "\"foobar\""
+ CLOSE_PAREN: (272..273) ")"
+ ATMOSPHERE: (273..286) "\n "
+ FORM: (286..304)
+ OPEN_PAREN: (286..287) "("
+ FORM: (287..294)
+ OPEN_PAREN: (287..288) "("
+ SYMBOL: (288..289)
+ IDENTIFIER: (288..289) "_"
+ ATMOSPHERE: (289..290) " "
+ SYMBOL: (290..293)
+ IDENTIFIER: (290..293) "baz"
+ CLOSE_PAREN: (293..294) ")"
+ ATMOSPHERE: (294..295) " "
+ CONSTANT: (295..303)
+ STRING: (295..303) "\"bizbaz\""
+ CLOSE_PAREN: (303..304) ")"
+ CLOSE_PAREN: (304..305) ")"
+ CLOSE_PAREN: (305..306) ")"
+ ATMOSPHERE: (306..311) "\n "
+ FORM: (311..345)
+ OPEN_PAREN: (311..312) "("
+ SYMBOL: (312..319)
+ IDENTIFIER: (312..319) "display"
+ ATMOSPHERE: (319..320) " "
+ FORM: (320..344)
+ OPEN_PAREN: (320..321) "("
+ SYMBOL: (321..325)
+ IDENTIFIER: (321..325) "list"
+ ATMOSPHERE: (325..326) " "
+ FORM: (326..335)
+ OPEN_PAREN: (326..327) "("
+ SYMBOL: (327..330)
+ IDENTIFIER: (327..330) "foo"
+ ATMOSPHERE: (330..331) " "
+ SYMBOL: (331..334)
+ IDENTIFIER: (331..334) "bar"
+ CLOSE_PAREN: (334..335) ")"
+ ATMOSPHERE: (335..336) " "
+ FORM: (336..343)
+ OPEN_PAREN: (336..337) "("
+ SYMBOL: (337..340)
+ IDENTIFIER: (337..340) "foo"
+ ATMOSPHERE: (340..341) " "
+ SYMBOL: (341..342)
+ IDENTIFIER: (341..342) "b"
+ CLOSE_PAREN: (342..343) ")"
+ CLOSE_PAREN: (343..344) ")"
+ CLOSE_PAREN: (344..345) ")"
+ ATMOSPHERE: (345..350) "\n "
+ FORM: (350..359)
+ OPEN_PAREN: (350..351) "("
+ SYMBOL: (351..358)
+ IDENTIFIER: (351..358) "newline"
+ CLOSE_PAREN: (358..359) ")"
+ CLOSE_PAREN: (359..360) ")"
+ ATMOSPHERE: (360..362) "\n\n"
+ FORM: (362..477)
+ OPEN_PAREN: (362..363) "("
+ SYMBOL: (363..370)
+ IDENTIFIER: (363..370) "display"
+ ATMOSPHERE: (370..375) "\n "
+ FORM: (375..476)
+ OPEN_PAREN: (375..376) "("
+ SYMBOL: (376..386)
+ IDENTIFIER: (376..386) "let-syntax"
+ ATMOSPHERE: (386..395) "\n "
+ FORM: (395..455)
+ OPEN_PAREN: (395..396) "("
+ FORM: (396..454)
+ OPEN_PAREN: (396..397) "("
+ SYMBOL: (397..400)
+ IDENTIFIER: (397..400) "foo"
+ ATMOSPHERE: (400..401) " "
+ FORM: (401..453)
+ OPEN_PAREN: (401..402) "("
+ SYMBOL: (402..414)
+ IDENTIFIER: (402..414) "syntax-rules"
+ ATMOSPHERE: (414..415) " "
+ FORM: (415..417)
+ OPEN_PAREN: (415..416) "("
+ CLOSE_PAREN: (416..417) ")"
+ ATMOSPHERE: (417..430) "\n "
+ FORM: (430..452)
+ OPEN_PAREN: (430..431) "("
+ FORM: (431..438)
+ OPEN_PAREN: (431..432) "("
+ SYMBOL: (432..435)
+ IDENTIFIER: (432..435) "foo"
+ ATMOSPHERE: (435..436) " "
+ SYMBOL: (436..437)
+ IDENTIFIER: (436..437) "_"
+ CLOSE_PAREN: (437..438) ")"
+ ATMOSPHERE: (438..439) " "
+ QUOTED_DATUM: (439..451)
+ QUOTE: (439..440) "'"
+ FORM: (440..451)
+ OPEN_PAREN: (440..441) "("
+ SYMBOL: (441..446)
+ IDENTIFIER: (441..446) "inner"
+ ATMOSPHERE: (446..447) " "
+ SYMBOL: (447..450)
+ IDENTIFIER: (447..450) "foo"
+ CLOSE_PAREN: (450..451) ")"
+ CLOSE_PAREN: (451..452) ")"
+ CLOSE_PAREN: (452..453) ")"
+ CLOSE_PAREN: (453..454) ")"
+ CLOSE_PAREN: (454..455) ")"
+ ATMOSPHERE: (455..464) "\n "
+ FORM: (464..475)
+ OPEN_PAREN: (464..465) "("
+ SYMBOL: (465..468)
+ IDENTIFIER: (465..468) "foo"
+ ATMOSPHERE: (468..469) " "
+ CONSTANT: (469..474)
+ STRING: (469..474) "\"123\""
+ CLOSE_PAREN: (474..475) ")"
+ CLOSE_PAREN: (475..476) ")"
+ CLOSE_PAREN: (476..477) ")"
+ FORM: (477..486)
+ OPEN_PAREN: (477..478) "("
+ SYMBOL: (478..485)
+ IDENTIFIER: (478..485) "newline"
+ CLOSE_PAREN: (485..486) ")"
+ ATMOSPHERE: (486..488) "\n\n"
+ ATMOSPHERE: (488..524) "; Should be the first `foo` again..."
+ ATMOSPHERE: (524..525) "\n"
+ FORM: (525..544)
+ OPEN_PAREN: (525..526) "("
+ SYMBOL: (526..533)
+ IDENTIFIER: (526..533) "display"
+ ATMOSPHERE: (533..534) " "
+ FORM: (534..543)
+ OPEN_PAREN: (534..535) "("
+ SYMBOL: (535..538)
+ IDENTIFIER: (535..538) "foo"
+ ATMOSPHERE: (538..539) " "
+ CONSTANT: (539..542)
+ NUMBER: (539..542) "123"
+ CLOSE_PAREN: (542..543) ")"
+ CLOSE_PAREN: (543..544) ")"
+ FORM: (544..553)
+ OPEN_PAREN: (544..545) "("
+ SYMBOL: (545..552)
+ IDENTIFIER: (545..552) "newline"
+ CLOSE_PAREN: (552..553) ")"
+ ATMOSPHERE: (553..555) "\n\n"
+ EOF: (555..555) ""
diff --git a/spec/vectors.ast b/spec/vectors.ast
new file mode 100644
index 0000000..fd0c7da
--- /dev/null
+++ b/spec/vectors.ast
@@ -0,0 +1,281 @@
+PROGRAM: (0..511)
+ FORM: (0..41)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..26) "\n "
+ FORM: (26..40)
+ OPEN_PAREN: (26..27) "("
+ SYMBOL: (27..33)
+ IDENTIFIER: (27..33) "scheme"
+ ATMOSPHERE: (33..34) " "
+ SYMBOL: (34..39)
+ IDENTIFIER: (34..39) "write"
+ CLOSE_PAREN: (39..40) ")"
+ CLOSE_PAREN: (40..41) ")"
+ ATMOSPHERE: (41..42) "\n"
+ FORM: (42..511)
+ OPEN_PAREN: (42..43) "("
+ SYMBOL: (43..50)
+ IDENTIFIER: (43..50) "display"
+ ATMOSPHERE: (50..51) " "
+ FORM: (51..510)
+ OPEN_PAREN: (51..52) "("
+ SYMBOL: (52..56)
+ IDENTIFIER: (52..56) "list"
+ ATMOSPHERE: (56..66) "\n \n "
+ ATMOSPHERE: (66..79) ";; vector new"
+ ATMOSPHERE: (79..84) "\n "
+ FORM: (84..98)
+ OPEN_PAREN: (84..85) "("
+ SYMBOL: (85..91)
+ IDENTIFIER: (85..91) "vector"
+ ATMOSPHERE: (91..92) " "
+ CONSTANT: (92..93)
+ NUMBER: (92..93) "1"
+ ATMOSPHERE: (93..94) " "
+ CONSTANT: (94..95)
+ NUMBER: (94..95) "2"
+ ATMOSPHERE: (95..96) " "
+ CONSTANT: (96..97)
+ NUMBER: (96..97) "3"
+ CLOSE_PAREN: (97..98) ")"
+ ATMOSPHERE: (98..103) "\n "
+ FORM: (103..123)
+ OPEN_PAREN: (103..104) "("
+ SYMBOL: (104..115)
+ IDENTIFIER: (104..115) "make-vector"
+ ATMOSPHERE: (115..116) " "
+ CONSTANT: (116..118)
+ NUMBER: (116..118) "10"
+ ATMOSPHERE: (118..119) " "
+ CONSTANT: (119..122)
+ CHARACTER: (119..122) "#\\a"
+ CLOSE_PAREN: (122..123) ")"
+ ATMOSPHERE: (123..129) "\n\n "
+ ATMOSPHERE: (129..147) ";; Vector literals"
+ ATMOSPHERE: (147..152) "\n "
+ VEC: (152..173)
+ OPEN_PAREN: (152..154) "#("
+ CONSTANT: (154..155)
+ NUMBER: (154..155) "0"
+ ATMOSPHERE: (155..156) " "
+ FORM: (156..165)
+ OPEN_PAREN: (156..157) "("
+ CONSTANT: (157..158)
+ NUMBER: (157..158) "2"
+ ATMOSPHERE: (158..159) " "
+ CONSTANT: (159..160)
+ NUMBER: (159..160) "2"
+ ATMOSPHERE: (160..161) " "
+ CONSTANT: (161..162)
+ NUMBER: (161..162) "2"
+ ATMOSPHERE: (162..163) " "
+ CONSTANT: (163..164)
+ NUMBER: (163..164) "2"
+ CLOSE_PAREN: (164..165) ")"
+ ATMOSPHERE: (165..166) " "
+ CONSTANT: (166..172)
+ STRING: (166..172) "\"Anna\""
+ CLOSE_PAREN: (172..173) ")"
+ ATMOSPHERE: (173..179) "\n\n "
+ ATMOSPHERE: (179..199) ";; Vector type check"
+ ATMOSPHERE: (199..204) "\n "
+ FORM: (204..217)
+ OPEN_PAREN: (204..205) "("
+ SYMBOL: (205..212)
+ IDENTIFIER: (205..212) "vector?"
+ ATMOSPHERE: (212..213) " "
+ VEC: (213..216)
+ OPEN_PAREN: (213..215) "#("
+ CLOSE_PAREN: (215..216) ")"
+ CLOSE_PAREN: (216..217) ")"
+ ATMOSPHERE: (217..222) "\n "
+ FORM: (222..240)
+ OPEN_PAREN: (222..223) "("
+ SYMBOL: (223..230)
+ IDENTIFIER: (223..230) "vector?"
+ ATMOSPHERE: (230..231) " "
+ VEC: (231..239)
+ OPEN_PAREN: (231..233) "#("
+ CONSTANT: (233..234)
+ NUMBER: (233..234) "1"
+ ATMOSPHERE: (234..235) " "
+ CONSTANT: (235..236)
+ NUMBER: (235..236) "2"
+ ATMOSPHERE: (236..237) " "
+ CONSTANT: (237..238)
+ NUMBER: (237..238) "3"
+ CLOSE_PAREN: (238..239) ")"
+ CLOSE_PAREN: (239..240) ")"
+ ATMOSPHERE: (240..245) "\n "
+ FORM: (245..261)
+ OPEN_PAREN: (245..246) "("
+ SYMBOL: (246..253)
+ IDENTIFIER: (246..253) "vector?"
+ ATMOSPHERE: (253..254) " "
+ CONSTANT: (254..260)
+ STRING: (254..260) "\"Test\""
+ CLOSE_PAREN: (260..261) ")"
+ ATMOSPHERE: (261..267) "\n\n "
+ ATMOSPHERE: (267..291) ";; General vector method"
+ ATMOSPHERE: (291..296) "\n "
+ FORM: (296..326)
+ OPEN_PAREN: (296..297) "("
+ SYMBOL: (297..310)
+ IDENTIFIER: (297..310) "vector-length"
+ ATMOSPHERE: (310..311) " "
+ VEC: (311..325)
+ OPEN_PAREN: (311..313) "#("
+ CONSTANT: (313..316)
+ CHARACTER: (313..316) "#\\a"
+ ATMOSPHERE: (316..317) " "
+ CONSTANT: (317..320)
+ CHARACTER: (317..320) "#\\b"
+ ATMOSPHERE: (320..321) " "
+ CONSTANT: (321..324)
+ CHARACTER: (321..324) "#\\c"
+ CLOSE_PAREN: (324..325) ")"
+ CLOSE_PAREN: (325..326) ")"
+ ATMOSPHERE: (326..331) "\n "
+ FORM: (331..360)
+ OPEN_PAREN: (331..332) "("
+ SYMBOL: (332..342)
+ IDENTIFIER: (332..342) "vector-ref"
+ ATMOSPHERE: (342..343) " "
+ VEC: (343..357)
+ OPEN_PAREN: (343..345) "#("
+ SYMBOL: (345..346)
+ IDENTIFIER: (345..346) "a"
+ ATMOSPHERE: (346..347) " "
+ CONSTANT: (347..349)
+ BOOLEAN: (347..349) "#f"
+ ATMOSPHERE: (349..350) " "
+ CONSTANT: (350..356)
+ STRING: (350..356) "\"test\""
+ CLOSE_PAREN: (356..357) ")"
+ ATMOSPHERE: (357..358) " "
+ CONSTANT: (358..359)
+ NUMBER: (358..359) "2"
+ CLOSE_PAREN: (359..360) ")"
+ ATMOSPHERE: (360..365) "\n "
+ FORM: (365..401)
+ OPEN_PAREN: (365..366) "("
+ SYMBOL: (366..376)
+ IDENTIFIER: (366..376) "vector-ref"
+ ATMOSPHERE: (376..377) " "
+ QUOTED_DATUM: (377..399)
+ QUOTE: (377..378) "'"
+ VEC: (378..398)
+ OPEN_PAREN: (378..380) "#("
+ CONSTANT: (380..381)
+ NUMBER: (380..381) "1"
+ ATMOSPHERE: (381..382) " "
+ CONSTANT: (382..383)
+ NUMBER: (382..383) "1"
+ ATMOSPHERE: (383..384) " "
+ CONSTANT: (384..385)
+ NUMBER: (384..385) "2"
+ ATMOSPHERE: (385..386) " "
+ CONSTANT: (386..387)
+ NUMBER: (386..387) "3"
+ ATMOSPHERE: (387..388) " "
+ CONSTANT: (388..389)
+ NUMBER: (388..389) "5"
+ ATMOSPHERE: (389..390) " "
+ CONSTANT: (390..391)
+ NUMBER: (390..391) "8"
+ ATMOSPHERE: (391..392) " "
+ CONSTANT: (392..394)
+ NUMBER: (392..394) "13"
+ ATMOSPHERE: (394..395) " "
+ CONSTANT: (395..397)
+ NUMBER: (395..397) "21"
+ CLOSE_PAREN: (397..398) ")"
+ ATMOSPHERE: (398..399) " "
+ CONSTANT: (399..400)
+ NUMBER: (399..400) "5"
+ CLOSE_PAREN: (400..401) ")"
+ ATMOSPHERE: (401..406) "\n "
+ FORM: (406..503)
+ OPEN_PAREN: (406..407) "("
+ SYMBOL: (407..410)
+ IDENTIFIER: (407..410) "let"
+ ATMOSPHERE: (410..411) " "
+ FORM: (411..447)
+ OPEN_PAREN: (411..412) "("
+ FORM: (412..446)
+ OPEN_PAREN: (412..413) "("
+ SYMBOL: (413..416)
+ IDENTIFIER: (413..416) "vec"
+ ATMOSPHERE: (416..417) " "
+ FORM: (417..445)
+ OPEN_PAREN: (417..418) "("
+ SYMBOL: (418..424)
+ IDENTIFIER: (418..424) "vector"
+ ATMOSPHERE: (424..425) " "
+ CONSTANT: (425..426)
+ NUMBER: (425..426) "0"
+ ATMOSPHERE: (426..427) " "
+ QUOTED_DATUM: (427..438)
+ QUOTE: (427..428) "'"
+ FORM: (428..437)
+ OPEN_PAREN: (428..429) "("
+ CONSTANT: (429..430)
+ NUMBER: (429..430) "2"
+ ATMOSPHERE: (430..431) " "
+ CONSTANT: (431..432)
+ NUMBER: (431..432) "2"
+ ATMOSPHERE: (432..433) " "
+ CONSTANT: (433..434)
+ NUMBER: (433..434) "2"
+ ATMOSPHERE: (434..435) " "
+ CONSTANT: (435..436)
+ NUMBER: (435..436) "2"
+ CLOSE_PAREN: (436..437) ")"
+ ATMOSPHERE: (437..438) " "
+ CONSTANT: (438..444)
+ STRING: (438..444) "\"Anna\""
+ CLOSE_PAREN: (444..445) ")"
+ CLOSE_PAREN: (445..446) ")"
+ CLOSE_PAREN: (446..447) ")"
+ ATMOSPHERE: (447..456) "\n "
+ FORM: (456..490)
+ OPEN_PAREN: (456..457) "("
+ SYMBOL: (457..468)
+ IDENTIFIER: (457..468) "vector-set!"
+ ATMOSPHERE: (468..469) " "
+ SYMBOL: (469..472)
+ IDENTIFIER: (469..472) "vec"
+ ATMOSPHERE: (472..473) " "
+ CONSTANT: (473..474)
+ NUMBER: (473..474) "1"
+ ATMOSPHERE: (474..475) " "
+ QUOTED_DATUM: (475..489)
+ QUOTE: (475..476) "'"
+ FORM: (476..489)
+ OPEN_PAREN: (476..477) "("
+ CONSTANT: (477..482)
+ STRING: (477..482) "\"Sue\""
+ ATMOSPHERE: (482..483) " "
+ CONSTANT: (483..488)
+ STRING: (483..488) "\"Sue\""
+ CLOSE_PAREN: (488..489) ")"
+ CLOSE_PAREN: (489..490) ")"
+ ATMOSPHERE: (490..499) "\n "
+ SYMBOL: (499..502)
+ IDENTIFIER: (499..502) "vec"
+ CLOSE_PAREN: (502..503) ")"
+ ATMOSPHERE: (503..509) "\n\n "
+ CLOSE_PAREN: (509..510) ")"
+ CLOSE_PAREN: (510..511) ")"
+ EOF: (511..511) ""
diff --git a/spec/zed.ast b/spec/zed.ast
new file mode 100644
index 0000000..abe298e
--- /dev/null
+++ b/spec/zed.ast
@@ -0,0 +1,406 @@
+PROGRAM: (0..725)
+ FORM: (0..39)
+ OPEN_PAREN: (0..1) "("
+ SYMBOL: (1..7)
+ IDENTIFIER: (1..7) "import"
+ ATMOSPHERE: (7..8) " "
+ FORM: (8..21)
+ OPEN_PAREN: (8..9) "("
+ SYMBOL: (9..15)
+ IDENTIFIER: (9..15) "scheme"
+ ATMOSPHERE: (15..16) " "
+ SYMBOL: (16..20)
+ IDENTIFIER: (16..20) "base"
+ CLOSE_PAREN: (20..21) ")"
+ ATMOSPHERE: (21..24) "\n "
+ FORM: (24..38)
+ OPEN_PAREN: (24..25) "("
+ SYMBOL: (25..31)
+ IDENTIFIER: (25..31) "scheme"
+ ATMOSPHERE: (31..32) " "
+ SYMBOL: (32..37)
+ IDENTIFIER: (32..37) "write"
+ CLOSE_PAREN: (37..38) ")"
+ CLOSE_PAREN: (38..39) ")"
+ ATMOSPHERE: (39..41) "\n\n"
+ ATMOSPHERE: (41..92) ";; This is the zed combinator from lambda calculus."
+ ATMOSPHERE: (92..93) "\n"
+ FORM: (93..181)
+ OPEN_PAREN: (93..94) "("
+ SYMBOL: (94..100)
+ IDENTIFIER: (94..100) "define"
+ ATMOSPHERE: (100..101) " "
+ FORM: (101..106)
+ OPEN_PAREN: (101..102) "("
+ SYMBOL: (102..103)
+ IDENTIFIER: (102..103) "Z"
+ ATMOSPHERE: (103..104) " "
+ SYMBOL: (104..105)
+ IDENTIFIER: (104..105) "f"
+ CLOSE_PAREN: (105..106) ")"
+ ATMOSPHERE: (106..109) "\n "
+ FORM: (109..180)
+ OPEN_PAREN: (109..110) "("
+ FORM: (110..128)
+ OPEN_PAREN: (110..111) "("
+ SYMBOL: (111..117)
+ IDENTIFIER: (111..117) "lambda"
+ ATMOSPHERE: (117..118) " "
+ FORM: (118..121)
+ OPEN_PAREN: (118..119) "("
+ SYMBOL: (119..120)
+ IDENTIFIER: (119..120) "g"
+ CLOSE_PAREN: (120..121) ")"
+ ATMOSPHERE: (121..122) " "
+ FORM: (122..127)
+ OPEN_PAREN: (122..123) "("
+ SYMBOL: (123..124)
+ IDENTIFIER: (123..124) "g"
+ ATMOSPHERE: (124..125) " "
+ SYMBOL: (125..126)
+ IDENTIFIER: (125..126) "g"
+ CLOSE_PAREN: (126..127) ")"
+ CLOSE_PAREN: (127..128) ")"
+ ATMOSPHERE: (128..132) "\n "
+ FORM: (132..179)
+ OPEN_PAREN: (132..133) "("
+ SYMBOL: (133..139)
+ IDENTIFIER: (133..139) "lambda"
+ ATMOSPHERE: (139..140) " "
+ FORM: (140..143)
+ OPEN_PAREN: (140..141) "("
+ SYMBOL: (141..142)
+ IDENTIFIER: (141..142) "g"
+ CLOSE_PAREN: (142..143) ")"
+ ATMOSPHERE: (143..148) "\n "
+ FORM: (148..178)
+ OPEN_PAREN: (148..149) "("
+ SYMBOL: (149..150)
+ IDENTIFIER: (149..150) "f"
+ ATMOSPHERE: (150..151) " "
+ FORM: (151..177)
+ OPEN_PAREN: (151..152) "("
+ SYMBOL: (152..158)
+ IDENTIFIER: (152..158) "lambda"
+ ATMOSPHERE: (158..159) " "
+ SYMBOL: (159..160)
+ IDENTIFIER: (159..160) "a"
+ ATMOSPHERE: (160..161) " "
+ FORM: (161..176)
+ OPEN_PAREN: (161..162) "("
+ SYMBOL: (162..167)
+ IDENTIFIER: (162..167) "apply"
+ ATMOSPHERE: (167..168) " "
+ FORM: (168..173)
+ OPEN_PAREN: (168..169) "("
+ SYMBOL: (169..170)
+ IDENTIFIER: (169..170) "g"
+ ATMOSPHERE: (170..171) " "
+ SYMBOL: (171..172)
+ IDENTIFIER: (171..172) "g"
+ CLOSE_PAREN: (172..173) ")"
+ ATMOSPHERE: (173..174) " "
+ SYMBOL: (174..175)
+ IDENTIFIER: (174..175) "a"
+ CLOSE_PAREN: (175..176) ")"
+ CLOSE_PAREN: (176..177) ")"
+ CLOSE_PAREN: (177..178) ")"
+ CLOSE_PAREN: (178..179) ")"
+ CLOSE_PAREN: (179..180) ")"
+ CLOSE_PAREN: (180..181) ")"
+ ATMOSPHERE: (181..183) "\n\n"
+ ATMOSPHERE: (183..220) ";; Echo just prints out its arguments"
+ ATMOSPHERE: (220..221) "\n"
+ FORM: (221..295)
+ OPEN_PAREN: (221..222) "("
+ SYMBOL: (222..228)
+ IDENTIFIER: (222..228) "define"
+ ATMOSPHERE: (228..229) " "
+ SYMBOL: (229..233)
+ IDENTIFIER: (229..233) "echo"
+ ATMOSPHERE: (233..236) "\n "
+ FORM: (236..294)
+ OPEN_PAREN: (236..237) "("
+ SYMBOL: (237..238)
+ IDENTIFIER: (237..238) "Z"
+ ATMOSPHERE: (238..239) " "
+ FORM: (239..293)
+ OPEN_PAREN: (239..240) "("
+ SYMBOL: (240..246)
+ IDENTIFIER: (240..246) "lambda"
+ ATMOSPHERE: (246..247) " "
+ FORM: (247..253)
+ OPEN_PAREN: (247..248) "("
+ SYMBOL: (248..252)
+ IDENTIFIER: (248..252) "echo"
+ CLOSE_PAREN: (252..253) ")"
+ ATMOSPHERE: (253..258) "\n "
+ FORM: (258..292)
+ OPEN_PAREN: (258..259) "("
+ SYMBOL: (259..265)
+ IDENTIFIER: (259..265) "lambda"
+ ATMOSPHERE: (265..266) " "
+ SYMBOL: (266..270)
+ IDENTIFIER: (266..270) "args"
+ ATMOSPHERE: (270..277) "\n "
+ FORM: (277..291)
+ OPEN_PAREN: (277..278) "("
+ SYMBOL: (278..285)
+ IDENTIFIER: (278..285) "display"
+ ATMOSPHERE: (285..286) " "
+ SYMBOL: (286..290)
+ IDENTIFIER: (286..290) "args"
+ CLOSE_PAREN: (290..291) ")"
+ CLOSE_PAREN: (291..292) ")"
+ CLOSE_PAREN: (292..293) ")"
+ CLOSE_PAREN: (293..294) ")"
+ CLOSE_PAREN: (294..295) ")"
+ ATMOSPHERE: (295..297) "\n\n"
+ FORM: (297..317)
+ OPEN_PAREN: (297..298) "("
+ SYMBOL: (298..302)
+ IDENTIFIER: (298..302) "echo"
+ ATMOSPHERE: (302..303) " "
+ CONSTANT: (303..316)
+ STRING: (303..316) "\"hello world\""
+ CLOSE_PAREN: (316..317) ")"
+ FORM: (317..326)
+ OPEN_PAREN: (317..318) "("
+ SYMBOL: (318..325)
+ IDENTIFIER: (318..325) "newline"
+ CLOSE_PAREN: (325..326) ")"
+ ATMOSPHERE: (326..328) "\n\n"
+ ATMOSPHERE: (328..380) ";; Recursive fibonacci defined using the combinator."
+ ATMOSPHERE: (380..381) "\n"
+ FORM: (381..501)
+ OPEN_PAREN: (381..382) "("
+ SYMBOL: (382..388)
+ IDENTIFIER: (382..388) "define"
+ ATMOSPHERE: (388..389) " "
+ SYMBOL: (389..392)
+ IDENTIFIER: (389..392) "fib"
+ ATMOSPHERE: (392..395) "\n "
+ FORM: (395..500)
+ OPEN_PAREN: (395..396) "("
+ SYMBOL: (396..397)
+ IDENTIFIER: (396..397) "Z"
+ ATMOSPHERE: (397..398) " "
+ FORM: (398..499)
+ OPEN_PAREN: (398..399) "("
+ SYMBOL: (399..405)
+ IDENTIFIER: (399..405) "lambda"
+ ATMOSPHERE: (405..406) " "
+ FORM: (406..411)
+ OPEN_PAREN: (406..407) "("
+ SYMBOL: (407..410)
+ IDENTIFIER: (407..410) "fib"
+ CLOSE_PAREN: (410..411) ")"
+ ATMOSPHERE: (411..416) "\n "
+ FORM: (416..498)
+ OPEN_PAREN: (416..417) "("
+ SYMBOL: (417..423)
+ IDENTIFIER: (417..423) "lambda"
+ ATMOSPHERE: (423..424) " "
+ FORM: (424..427)
+ OPEN_PAREN: (424..425) "("
+ SYMBOL: (425..426)
+ IDENTIFIER: (425..426) "n"
+ CLOSE_PAREN: (426..427) ")"
+ ATMOSPHERE: (427..434) "\n "
+ FORM: (434..497)
+ OPEN_PAREN: (434..435) "("
+ SYMBOL: (435..437)
+ IDENTIFIER: (435..437) "if"
+ ATMOSPHERE: (437..438) " "
+ FORM: (438..446)
+ OPEN_PAREN: (438..439) "("
+ SYMBOL: (439..441)
+ IDENTIFIER: (439..441) "<="
+ ATMOSPHERE: (441..442) " "
+ SYMBOL: (442..443)
+ IDENTIFIER: (442..443) "n"
+ ATMOSPHERE: (443..444) " "
+ CONSTANT: (444..445)
+ NUMBER: (444..445) "2"
+ CLOSE_PAREN: (445..446) ")"
+ ATMOSPHERE: (446..455) "\n "
+ CONSTANT: (455..456)
+ NUMBER: (455..456) "1"
+ ATMOSPHERE: (456..465) "\n "
+ FORM: (465..496)
+ OPEN_PAREN: (465..466) "("
+ SYMBOL: (466..467)
+ IDENTIFIER: (466..467) "+"
+ ATMOSPHERE: (467..468) " "
+ FORM: (468..481)
+ OPEN_PAREN: (468..469) "("
+ SYMBOL: (469..472)
+ IDENTIFIER: (469..472) "fib"
+ ATMOSPHERE: (472..473) " "
+ FORM: (473..480)
+ OPEN_PAREN: (473..474) "("
+ SYMBOL: (474..475)
+ IDENTIFIER: (474..475) "-"
+ ATMOSPHERE: (475..476) " "
+ SYMBOL: (476..477)
+ IDENTIFIER: (476..477) "n"
+ ATMOSPHERE: (477..478) " "
+ CONSTANT: (478..479)
+ NUMBER: (478..479) "1"
+ CLOSE_PAREN: (479..480) ")"
+ CLOSE_PAREN: (480..481) ")"
+ ATMOSPHERE: (481..482) " "
+ FORM: (482..495)
+ OPEN_PAREN: (482..483) "("
+ SYMBOL: (483..486)
+ IDENTIFIER: (483..486) "fib"
+ ATMOSPHERE: (486..487) " "
+ FORM: (487..494)
+ OPEN_PAREN: (487..488) "("
+ SYMBOL: (488..489)
+ IDENTIFIER: (488..489) "-"
+ ATMOSPHERE: (489..490) " "
+ SYMBOL: (490..491)
+ IDENTIFIER: (490..491) "n"
+ ATMOSPHERE: (491..492) " "
+ CONSTANT: (492..493)
+ NUMBER: (492..493) "2"
+ CLOSE_PAREN: (493..494) ")"
+ CLOSE_PAREN: (494..495) ")"
+ CLOSE_PAREN: (495..496) ")"
+ CLOSE_PAREN: (496..497) ")"
+ CLOSE_PAREN: (497..498) ")"
+ CLOSE_PAREN: (498..499) ")"
+ CLOSE_PAREN: (499..500) ")"
+ CLOSE_PAREN: (500..501) ")"
+ ATMOSPHERE: (501..503) "\n\n"
+ FORM: (503..520)
+ OPEN_PAREN: (503..504) "("
+ SYMBOL: (504..511)
+ IDENTIFIER: (504..511) "display"
+ ATMOSPHERE: (511..512) " "
+ FORM: (512..519)
+ OPEN_PAREN: (512..513) "("
+ SYMBOL: (513..516)
+ IDENTIFIER: (513..516) "fib"
+ ATMOSPHERE: (516..517) " "
+ CONSTANT: (517..518)
+ NUMBER: (517..518) "5"
+ CLOSE_PAREN: (518..519) ")"
+ CLOSE_PAREN: (519..520) ")"
+ FORM: (520..529)
+ OPEN_PAREN: (520..521) "("
+ SYMBOL: (521..528)
+ IDENTIFIER: (521..528) "newline"
+ CLOSE_PAREN: (528..529) ")"
+ ATMOSPHERE: (529..531) "\n\n"
+ ATMOSPHERE: (531..583) ";; Recursive factorial defined using the combinator."
+ ATMOSPHERE: (583..584) "\n"
+ FORM: (584..694)
+ OPEN_PAREN: (584..585) "("
+ SYMBOL: (585..591)
+ IDENTIFIER: (585..591) "define"
+ ATMOSPHERE: (591..592) " "
+ SYMBOL: (592..596)
+ IDENTIFIER: (592..596) "fact"
+ ATMOSPHERE: (596..599) "\n "
+ FORM: (599..693)
+ OPEN_PAREN: (599..600) "("
+ SYMBOL: (600..601)
+ IDENTIFIER: (600..601) "Z"
+ ATMOSPHERE: (601..602) " "
+ FORM: (602..692)
+ OPEN_PAREN: (602..603) "("
+ SYMBOL: (603..609)
+ IDENTIFIER: (603..609) "lambda"
+ ATMOSPHERE: (609..610) " "
+ FORM: (610..616)
+ OPEN_PAREN: (610..611) "("
+ SYMBOL: (611..615)
+ IDENTIFIER: (611..615) "fact"
+ CLOSE_PAREN: (615..616) ")"
+ ATMOSPHERE: (616..621) "\n "
+ FORM: (621..691)
+ OPEN_PAREN: (621..622) "("
+ SYMBOL: (622..628)
+ IDENTIFIER: (622..628) "lambda"
+ ATMOSPHERE: (628..629) " "
+ FORM: (629..632)
+ OPEN_PAREN: (629..630) "("
+ SYMBOL: (630..631)
+ IDENTIFIER: (630..631) "n"
+ CLOSE_PAREN: (631..632) ")"
+ ATMOSPHERE: (632..639) "\n "
+ FORM: (639..690)
+ OPEN_PAREN: (639..640) "("
+ SYMBOL: (640..642)
+ IDENTIFIER: (640..642) "if"
+ ATMOSPHERE: (642..643) " "
+ FORM: (643..650)
+ OPEN_PAREN: (643..644) "("
+ SYMBOL: (644..645)
+ IDENTIFIER: (644..645) "="
+ ATMOSPHERE: (645..646) " "
+ SYMBOL: (646..647)
+ IDENTIFIER: (646..647) "n"
+ ATMOSPHERE: (647..648) " "
+ CONSTANT: (648..649)
+ NUMBER: (648..649) "0"
+ CLOSE_PAREN: (649..650) ")"
+ ATMOSPHERE: (650..659) "\n "
+ CONSTANT: (659..660)
+ NUMBER: (659..660) "1"
+ ATMOSPHERE: (660..669) "\n "
+ FORM: (669..689)
+ OPEN_PAREN: (669..670) "("
+ SYMBOL: (670..671)
+ IDENTIFIER: (670..671) "*"
+ ATMOSPHERE: (671..672) " "
+ SYMBOL: (672..673)
+ IDENTIFIER: (672..673) "n"
+ ATMOSPHERE: (673..674) " "
+ FORM: (674..688)
+ OPEN_PAREN: (674..675) "("
+ SYMBOL: (675..679)
+ IDENTIFIER: (675..679) "fact"
+ ATMOSPHERE: (679..680) " "
+ FORM: (680..687)
+ OPEN_PAREN: (680..681) "("
+ SYMBOL: (681..682)
+ IDENTIFIER: (681..682) "-"
+ ATMOSPHERE: (682..683) " "
+ SYMBOL: (683..684)
+ IDENTIFIER: (683..684) "n"
+ ATMOSPHERE: (684..685) " "
+ CONSTANT: (685..686)
+ NUMBER: (685..686) "1"
+ CLOSE_PAREN: (686..687) ")"
+ CLOSE_PAREN: (687..688) ")"
+ CLOSE_PAREN: (688..689) ")"
+ CLOSE_PAREN: (689..690) ")"
+ CLOSE_PAREN: (690..691) ")"
+ CLOSE_PAREN: (691..692) ")"
+ CLOSE_PAREN: (692..693) ")"
+ CLOSE_PAREN: (693..694) ")"
+ ATMOSPHERE: (694..696) "\n\n"
+ FORM: (696..715)
+ OPEN_PAREN: (696..697) "("
+ SYMBOL: (697..704)
+ IDENTIFIER: (697..704) "display"
+ ATMOSPHERE: (704..705) " "
+ FORM: (705..714)
+ OPEN_PAREN: (705..706) "("
+ SYMBOL: (706..710)
+ IDENTIFIER: (706..710) "fact"
+ ATMOSPHERE: (710..711) " "
+ CONSTANT: (711..713)
+ NUMBER: (711..713) "12"
+ CLOSE_PAREN: (713..714) ")"
+ CLOSE_PAREN: (714..715) ")"
+ FORM: (715..724)
+ OPEN_PAREN: (715..716) "("
+ SYMBOL: (716..723)
+ IDENTIFIER: (716..723) "newline"
+ CLOSE_PAREN: (723..724) ")"
+ ATMOSPHERE: (724..725) "\n"
+ EOF: (725..725) ""
diff --git a/src/Feersum.CompilerServices/Compile/Compiler.fs b/src/Feersum.CompilerServices/Compile/Compiler.fs
index 9b6e8dd..1648e7c 100644
--- a/src/Feersum.CompilerServices/Compile/Compiler.fs
+++ b/src/Feersum.CompilerServices/Compile/Compiler.fs
@@ -16,6 +16,7 @@ open Feersum.CompilerServices.Syntax
open Feersum.CompilerServices.Compile.MonoHelpers
open Feersum.CompilerServices.Targets
open Feersum.CompilerServices.Utils
+open Feersum.CompilerServices.Syntax.Tree
/// Capture Environment Kind
///
@@ -74,6 +75,11 @@ type CompileResult =
{ Diagnostics: Diagnostic list
EmittedAssemblyName: AssemblyNameDefinition option }
+[]
+type CompileInput =
+ | Program of (TextDocument * Program) list
+ | Script of TextDocument * ScriptProgram
+
[]
module private Utils =
@@ -382,26 +388,29 @@ module private Utils =
| BoundExpr.Load storage -> readFrom ctx storage
| BoundExpr.If(cond, ifTrue, maybeIfFalse) ->
let lblTrue = ctx.IL.Create(OpCodes.Nop)
- let lblNotBool = ctx.IL.Create(OpCodes.Nop)
let lblEnd = ctx.IL.Create(OpCodes.Nop)
+ let condTemp = makeTemp ctx ctx.Assm.MainModule.TypeSystem.Object
// ILAAA :
- // ILBBB : dup
+ // ILAAA : stloc condTemp
+ // ILBBB : ldloc condTemp
// ILBBB : isinst bool
- // ILBBB : brfalse ILlblNotBool
- // ILBBB : brtrue ILlblTrue
- // ILCCC :
+ // ILBBB : brfalse ILlblTrue
+ // ILCCC : ldloc condTemp
+ // ILCCC : brtrue ILlblTrue
+ // ILDDD :
// ILXXX : br ILlblEnd ; or just `ret` for tail calls
- // ILlblNotBool: pop
// ILlblTrue :
// ILlblEnd : nop ; only if not tail call
emitExpression ctx false cond
- ctx.IL.Emit(OpCodes.Dup)
+ ctx.IL.Emit(OpCodes.Stloc, condTemp)
+ ctx.IL.Emit(OpCodes.Ldloc, condTemp)
ctx.IL.Emit(OpCodes.Isinst, ctx.Assm.MainModule.TypeSystem.Boolean)
- ctx.IL.Emit(OpCodes.Brfalse, lblNotBool)
+ ctx.IL.Emit(OpCodes.Brfalse, lblTrue)
+ ctx.IL.Emit(OpCodes.Ldloc, condTemp)
ctx.IL.Emit(OpCodes.Unbox_Any, ctx.Assm.MainModule.TypeSystem.Boolean)
ctx.IL.Emit(OpCodes.Brtrue, lblTrue)
@@ -423,8 +432,6 @@ module private Utils =
else
ctx.IL.Emit(OpCodes.Br, lblEnd)
- ctx.IL.Append(lblNotBool)
- ctx.IL.Emit(OpCodes.Pop)
ctx.IL.Append(lblTrue)
recurse ifTrue
@@ -1022,6 +1029,7 @@ module private Utils =
il.Emit(OpCodes.Ret)
module Compilation =
+ open Feersum.CompilerServices.Syntax.Parse
/// Emit a Bound Expression to .NET
///
@@ -1147,7 +1155,7 @@ module Compilation =
/// the expression and writes out the corresponding .NET IL to an `Assembly`
/// at `outputStream`. The `outputName` controls the root namespace and assembly
/// name of the output.
- let compile options outputStream outputName symbolStream node =
+ let compile options outputStream outputName symbolStream (input: CompileInput) =
let target =
match options.FrameworkAssmPaths with
| [] -> TargetResolve.fromCurrentRuntime
@@ -1165,7 +1173,17 @@ module Compilation =
else
Binder.emptyScope
- let bound = Binder.bind scope allLibs node
+ let progs =
+ match input with
+ | CompileInput.Program progs -> List.map (fun (doc, prog) -> SyntaxShim.transformProgram doc prog) progs
+ | CompileInput.Script(doc, script) ->
+ script.Body |> Option.toList |> List.map (SyntaxShim.transformExpr doc)
+
+ let input =
+ { Kind = LegacyNodeKind.Seq progs
+ Location = TextLocation.Missing }
+
+ let bound = Binder.bind scope allLibs input
let assmName =
if hasErrors bound.Diagnostics |> not then
@@ -1214,17 +1232,16 @@ module Compilation =
else
output
- let ast, diagnostics =
- let nodes, diagnostics =
- List.map LegacyParse.parseFile sources
- |> List.fold (fun (nodes, diags) (n, d) -> (List.append nodes [ n ], List.append d diags)) ([], [])
-
- { Location = TextLocation.Missing
- Kind = LegacyNodeKind.Seq(nodes) },
- diagnostics
+ let result =
+ sources
+ |> Seq.map (fun path ->
+ let contents = File.ReadAllText(path)
+ let doc = TextDocument.fromParts path contents
+ Parse.readProgram path contents |> ParseResult.map (fun r -> doc, r))
+ |> ParseResult.fold (fun (progs) (p) -> List.append progs [ p ]) []
- if Diagnostics.hasErrors diagnostics then
- diagnostics
+ if Diagnostics.hasErrors result.Diagnostics then
+ result.Diagnostics
else
// Open the output streams. We don't use an `Option` directly here for
@@ -1238,7 +1255,12 @@ module Compilation =
| BuildConfiguration.Release -> null
let result =
- compile options outputStream (Path.GetFileName(output)) (symbols |> Option.ofObj) ast
+ compile
+ options
+ outputStream
+ (Path.GetFileName(output))
+ (symbols |> Option.ofObj)
+ (CompileInput.Program result.Root)
if result.Diagnostics.IsEmpty && options.OutputType = OutputType.Exe then
match result.EmittedAssemblyName with
diff --git a/src/Feersum.CompilerServices/Eval.fs b/src/Feersum.CompilerServices/Eval.fs
index b464960..8483264 100644
--- a/src/Feersum.CompilerServices/Eval.fs
+++ b/src/Feersum.CompilerServices/Eval.fs
@@ -24,10 +24,10 @@ let cilExternalRepr (object: Object) = Write.GetExternalRepresentation(object)
/// main method on that.
///
/// The script is compiled using `options`
-let evalWith options ast =
+let evalWith options input =
use memStream = new MemoryStream()
- let result = Compilation.compile options memStream "evalCtx" None ast
+ let result = Compilation.compile options memStream "evalCtx" None input
if not result.Diagnostics.IsEmpty then
Error(result.Diagnostics)
diff --git a/src/Feersum.CompilerServices/Feersum.CompilerServices.fsproj b/src/Feersum.CompilerServices/Feersum.CompilerServices.fsproj
index 5515238..e9e92e8 100644
--- a/src/Feersum.CompilerServices/Feersum.CompilerServices.fsproj
+++ b/src/Feersum.CompilerServices/Feersum.CompilerServices.fsproj
@@ -18,6 +18,7 @@
+
@@ -35,8 +36,8 @@
-
+
-
+
diff --git a/src/Feersum.CompilerServices/Syntax/Factories.fs b/src/Feersum.CompilerServices/Syntax/Factories.fs
new file mode 100644
index 0000000..f981637
--- /dev/null
+++ b/src/Feersum.CompilerServices/Syntax/Factories.fs
@@ -0,0 +1,114 @@
+module Feersum.CompilerServices.Syntax.Factories
+
+open Feersum.CompilerServices.Syntax.Tree
+open Firethorn.Green
+open Firethorn.Red
+open Serehfa
+
+let private tok kind text =
+ GreenToken.Create(kind |> SyntaxUtils.astToGreen, text) |> GreenElement.Token
+
+let private atmosphere = tok AstKind.ATMOSPHERE
+let private space = atmosphere " "
+
+let private constant kind value =
+ new Constant(
+ SyntaxNode.CreateRoot(
+ GreenNode.Create(
+ AstKind.CONSTANT |> SyntaxUtils.astToGreen,
+ [ tok kind (Write.GetExternalRepresentation(value)) ]
+ )
+ )
+ )
+
+/// Create a Numeric Value Constant
+///
+/// Emits a syntax tree representing a single number
+let numVal (n: double) = constant AstKind.NUMBER n
+
+/// Create a Boolean Value Constant
+///
+/// Emit a syntax tree reprsenting a single boolean value
+let boolVal (b: bool) = constant AstKind.BOOLEAN b
+
+/// Create a Character Value Constant
+///
+/// Emit a syntax tree representing a single character value
+let charVal (c: char) = constant AstKind.CHARACTER c
+
+/// Create aString Value Constant
+///
+/// Emit a syntax tree reperesenting a single string value
+let strVal (s: string) = constant AstKind.STRING s
+
+/// Wrap an Expression with a Quotation
+///
+/// Creates a new `Quotation`, wrapping the innter `Expression` to convert it
+/// into a datum.
+let quoted (e: Expression) =
+ new Quoted(
+ SyntaxNode.CreateRoot(
+ GreenNode.Create(
+ AstKind.QUOTED_DATUM |> SyntaxUtils.astToGreen,
+ [ tok AstKind.QUOTE "'"; e.RawNode.Green |> GreenElement.Node ]
+ )
+ )
+ )
+
+/// Wrap a String as an Identifier Node
+///
+/// Produces a single well-formed symbol node contianing a single identifier.
+let symbol ident =
+ new Symbol(
+ SyntaxNode.CreateRoot(
+ GreenNode.Create(
+ AstKind.SYMBOL |> SyntaxUtils.astToGreen,
+ [ tok AstKind.IDENTIFIER (Write.GetExternalRepresentation(new Ident(ident))) ]
+ )
+ )
+ )
+
+/// Wrap a List of Expressions as a Form
+///
+/// Produces a simple well-formed form expression from a list of containing expressions.
+let form (exprs: Expression list) =
+ let close = tok AstKind.CLOSE_PAREN ")"
+ let toNode (x: Expression) = x.RawNode.Green |> GreenElement.Node
+
+ let rec mapTail (exprs: Expression list) =
+ match exprs with
+ | [] -> [ close ]
+ | [ single ] -> [ single |> toNode; close ]
+ | head :: tail -> (head |> toNode) :: (space :: (mapTail tail))
+
+ new Form(
+ SyntaxNode.CreateRoot(
+ GreenNode.Create(AstKind.FORM |> SyntaxUtils.astToGreen, tok AstKind.OPEN_PAREN "(" :: mapTail exprs)
+ )
+ )
+
+/// Wrap Expression as Script
+///
+/// Creates a new root `ScriptProgram` from the given `Expression`
+let scriptProgram (expr: Expression) : ScriptProgram =
+ new ScriptProgram(
+ SyntaxNode.CreateRoot(
+ GreenNode.Create(
+ AstKind.SCRIPT_PROGRAM |> SyntaxUtils.astToGreen,
+ [ expr.RawNode.Green |> GreenElement.Node ]
+ )
+ )
+ )
+
+/// Wrap Expressions as Full Program
+///
+/// Creates a new root `Program` from the given `Expression` sequence
+let program (exprs: seq) : Program =
+ new Program(
+ SyntaxNode.CreateRoot(
+ GreenNode.Create(
+ AstKind.PROGRAM |> SyntaxUtils.astToGreen,
+ exprs |> Seq.map ((_.RawNode.Green) >> GreenElement.Node) |> List.ofSeq
+ )
+ )
+ )
diff --git a/src/Feersum.CompilerServices/Syntax/Legacy.fs b/src/Feersum.CompilerServices/Syntax/Legacy.fs
index ace2481..547a763 100644
--- a/src/Feersum.CompilerServices/Syntax/Legacy.fs
+++ b/src/Feersum.CompilerServices/Syntax/Legacy.fs
@@ -96,7 +96,6 @@ module SyntaxShim =
module LegacyParse =
open Feersum.CompilerServices.Syntax.Parse
- open System.IO
let private runParserOnString name source =
let doc = TextDocument.fromParts name source
@@ -112,8 +111,3 @@ module LegacyParse =
/// Read a single expression from the input text
let readExpr = readExpr1 "repl"
-
- /// Read an expression from source code on disk
- let parseFile path : (LegacyNode * Diagnostic list) =
- let source = File.ReadAllText(path)
- runParserOnString path source
diff --git a/src/Feersum.CompilerServices/Syntax/Parse.fs b/src/Feersum.CompilerServices/Syntax/Parse.fs
index bce2d6f..229fcea 100644
--- a/src/Feersum.CompilerServices/Syntax/Parse.fs
+++ b/src/Feersum.CompilerServices/Syntax/Parse.fs
@@ -44,6 +44,13 @@ module ParseResult =
{ Diagnostics = result.Diagnostics
Root = result.Root |> mapper }
+ /// Fold a set of parse results into a signle result
+ let public fold folder seed results =
+ let (state, diags) =
+ Seq.fold (fun (state, diags) r -> (folder state r.Root, List.append diags r.Diagnostics)) (seed, []) results
+
+ { Diagnostics = diags; Root = state }
+
/// Convert a parser response into a plain result type
///
/// This drops any tree from the error, but opens up parser responses to
@@ -288,6 +295,7 @@ and private parseExprSeq builder endKinds state =
let private parseProgram (builder: GreenNodeBuilder) state : ParseResult =
skipAtmosphere builder state
|> parseExprSeq builder [ TokenKind.EndOfFile ]
+ |> expect builder TokenKind.EndOfFile AstKind.EOF
|> ParserState.finalise builder AstKind.PROGRAM
/// Parse Expression
@@ -296,6 +304,7 @@ let private parseProgram (builder: GreenNodeBuilder) state : ParseResult =
skipAtmosphere builder state
|> parseExpr builder
+ |> expect builder TokenKind.EndOfFile AstKind.EOF
|> ParserState.finalise builder AstKind.SCRIPT_PROGRAM
// =============================== Public API ==================================
diff --git a/src/Feersum.CompilerServices/Syntax/Tree.fs b/src/Feersum.CompilerServices/Syntax/Tree.fs
index 015bd51..c053ff1 100644
--- a/src/Feersum.CompilerServices/Syntax/Tree.fs
+++ b/src/Feersum.CompilerServices/Syntax/Tree.fs
@@ -147,16 +147,24 @@ module private Utils =
type AstItem internal (red: NodeOrToken) =
/// Get the Syntax range of the item
- member public _.SyntaxRange =
- red |> NodeOrToken.consolidate (fun n -> n.Range) (fun t -> t.Range)
+ member public _.SyntaxRange = red |> NodeOrToken.consolidate (_.Range) (_.Range)
member _.Text =
red
- |> NodeOrToken.consolidate (fun n -> n.Green.ToString()) (fun t -> t.Green.Text)
+ |> NodeOrToken.consolidate
+ (fun n ->
+ Walk.walk n
+ |> Seq.fold
+ (fun (sb: StringBuilder) ev ->
+ match ev with
+ | OnToken t -> sb.Append(t.Green.Text)
+ | _ -> sb)
+ (new StringBuilder())
+ |> _.ToString())
+ _.Green.Text
override _.ToString() =
- red |> NodeOrToken.consolidate (fun n -> n.ToString()) (fun t -> t.ToString())
-
+ red |> NodeOrToken.consolidate (_.ToString()) (_.ToString())
// *********** TOKENS
diff --git a/src/Feersum.Stage1/Feersum.Stage1.fsproj b/src/Feersum.Stage1/Feersum.Stage1.fsproj
index ff3b3c2..eb7dc4f 100644
--- a/src/Feersum.Stage1/Feersum.Stage1.fsproj
+++ b/src/Feersum.Stage1/Feersum.Stage1.fsproj
@@ -12,7 +12,7 @@
-
+
diff --git a/src/Feersum/Feersum.fsproj b/src/Feersum/Feersum.fsproj
index 7d97e67..54f70b1 100644
--- a/src/Feersum/Feersum.fsproj
+++ b/src/Feersum/Feersum.fsproj
@@ -22,7 +22,7 @@
-
+
diff --git a/src/Feersum/Repl.fs b/src/Feersum/Repl.fs
index 84ec9dc..a69aba8 100644
--- a/src/Feersum/Repl.fs
+++ b/src/Feersum/Repl.fs
@@ -7,16 +7,33 @@ open Feersum.CompilerServices.Syntax
open Feersum.CompilerServices.Eval
open Feersum.CompilerServices.Diagnostics
open Feersum.Core
+open Feersum.CompilerServices.Compile
+open Feersum.CompilerServices.Text
+open Feersum.CompilerServices.Syntax.Parse
/// Read a single line of user input and parse it into a
/// syntax tree. If the input can't be parsed then read
/// again.
-let rec private read () : LegacyNode =
- let line = ReadLine.Read("§> ")
+let rec private read () : CompileInput =
+ let rec readWithState prompt previous =
+ let line = ReadLine.Read(prompt)
- match LegacyParse.readExpr line with
- | (node, []) -> node
- | (_, diagnostics) ->
+ let source =
+ match previous with
+ | Some prefix -> prefix + "\n" + line
+ | None -> line
+
+ match Parse.readExpr1 "repl" source |> ParseResult.toResult with
+ | Result.Ok tree -> CompileInput.Script(TextDocument.fromParts "repl" source, tree) |> Ok
+ | Result.Error diagnostics ->
+ if line = "" && source.EndsWith("\n\n") then
+ Result.Error(diagnostics)
+ else
+ readWithState "+> " (Some(source))
+
+ match readWithState "§> " None with
+ | Result.Ok input -> input
+ | Result.Error diagnostics ->
diagnostics |> dumpDiagnostics
read ()
diff --git a/src/Serehfa/Ident.cs b/src/Serehfa/Ident.cs
index 1b9ff6a..cbef3b3 100644
--- a/src/Serehfa/Ident.cs
+++ b/src/Serehfa/Ident.cs
@@ -13,7 +13,7 @@ public Ident(string id)
_id = string.Intern(id);
}
- public bool IsSimple => _id.All(c => char.IsLetterOrDigit(c));
+ public bool IsSimple => _id.All(c => char.IsLetterOrDigit(c)) && _id.Length > 0;
public string Raw => _id;
diff --git a/test/Feersum.Tests/EvalTests.fs b/test/Feersum.Tests/EvalTests.fs
index e801853..95c15fe 100644
--- a/test/Feersum.Tests/EvalTests.fs
+++ b/test/Feersum.Tests/EvalTests.fs
@@ -3,101 +3,82 @@ module EvalTests
open Xunit
open Feersum.CompilerServices.Eval
-open Feersum.CompilerServices.Syntax
-open Feersum.CompilerServices.Syntax.LegacyParse
-open SyntaxUtils
-open SyntaxFactory
open Feersum.CompilerServices.Utils
+open Feersum.CompilerServices.Syntax.Parse
+open Feersum.CompilerServices.Compile
+open Feersum.CompilerServices.Text
+open Feersum.CompilerServices.Syntax.Factories
+open Feersum.CompilerServices.Syntax.Tree
-let feeri = eval >> Result.unwrap >> cilExternalRepr
+let private feeri = eval >> Result.unwrap >> cilExternalRepr
+let private interpProg (prog: Program) =
+ let doc = TextDocument.fromParts "test" prog.Text
+ CompileInput.Program [ (doc, prog) ] |> feeri
+
+let private interpScr (scr: ScriptProgram) =
+ let doc = TextDocument.fromParts "test" scr.Text
+ CompileInput.Script(doc, scr) |> feeri
let private tryReadSingle expr =
- match readExpr expr with
- | (o, []) -> o
- | (_, diagnostics) -> failwithf "parse error %A" diagnostics
+ let script = readExpr expr |> ParseResult.toResult |> Result.unwrap
+ let doc = TextDocument.fromParts "test" expr
+ CompileInput.Script(doc, script)
[]
-let ``Evaluate atoms`` () =
- Assert.Equal("#t", feeri (Boolean true |> constant))
- Assert.Equal("#f", feeri (Boolean false |> constant))
- Assert.Equal(@"""hello""", feeri (Str "hello" |> constant))
- Assert.Equal("1337", feeri (Number 1337.0 |> constant))
- Assert.Equal("123.456", feeri (Number 123.456 |> constant))
+let ``evaluate atoms`` () =
+ Assert.Equal("#t", interpScr (boolVal true |> scriptProgram))
+ Assert.Equal("#f", interpScr (boolVal false |> scriptProgram))
+ Assert.Equal(@"""hello""", interpScr (strVal "hello" |> scriptProgram))
+ Assert.Equal("1337", interpScr (numVal 1337.0 |> scriptProgram))
+ Assert.Equal("123.456", interpScr (numVal 123.456 |> scriptProgram))
[]
-let ``Evaluate lists`` () =
- Assert.Equal("132", feeri (Seq [ Boolean false |> constant; Number 132.0 |> constant ] |> node))
+let ``evaluate quoted atoms`` () =
+ Assert.Equal("#t", interpScr (boolVal true |> quoted |> scriptProgram))
+ Assert.Equal("#f", interpScr (boolVal false |> quoted |> scriptProgram))
+ Assert.Equal(@"""hello""", interpScr (strVal "hello" |> quoted |> scriptProgram))
+ Assert.Equal("1337", interpScr (numVal 1337.0 |> quoted |> scriptProgram))
+ Assert.Equal("123.456", interpScr (numVal 123.456 |> quoted |> scriptProgram))
- Assert.Equal("#t", feeri (Seq [ Boolean true |> constant ] |> node))
+[]
+let ``evaluate seqs`` () =
+ Assert.Equal("132", interpProg (program [ boolVal false; numVal 132.0 ]))
+ Assert.Equal("#t", interpProg (program [ boolVal true ]))
[]
let ``Evaluate empty program`` () =
- Assert.Equal("; Unspecified value", feeri (Seq [] |> node))
+ Assert.Equal("; Unspecified value", interpProg ([] |> program))
[]
let ``Evaluate lambdas returns`` () =
Assert.Equal(
"123",
- feeri (
- Form
- [ Form
- [ Ident "lambda" |> node
- Form [ Ident "x" |> node ] |> node
- Ident "x" |> node ]
- |> node
- Number 123.0 |> constant ]
- |> node
+ interpScr (
+ form [ form [ symbol "lambda"; form [ symbol "x" ]; symbol "x" ]; numVal 123.0 ]
+ |> scriptProgram
)
)
[]
let ``Evaluate builtins`` () =
- Assert.Equal(
- "19",
- feeri (
- Form [ Ident "+" |> node; Number 10.0 |> constant; Number 9.0 |> constant ]
- |> node
- )
- )
+ Assert.Equal("19", interpScr (form [ symbol "+"; numVal 10.0; numVal 9.0 ] |> scriptProgram))
- Assert.Equal("901", feeri (Form [ Ident "+" |> node; Number 901.0 |> constant ] |> node))
+ Assert.Equal("901", interpScr (form [ symbol "+"; numVal 901.0 ] |> scriptProgram))
- Assert.Equal(
- "90",
- feeri (
- Form [ Ident "*" |> node; Number 10.0 |> constant; Number 9.0 |> constant ]
- |> node
- )
- )
+ Assert.Equal("90", interpScr (form [ symbol "*"; numVal 10.0; numVal 9.0 ] |> scriptProgram))
Assert.Equal(
"901",
- feeri (
- Form
- [ Ident "+" |> node
- Form [ Ident "*" |> node; Number 100.0 |> constant; Number 9.0 |> constant ]
- |> node
- Number 1.0 |> constant ]
- |> node
+ interpScr (
+ form [ symbol "+"; form [ symbol "*"; numVal 100.0; numVal 9.0 ]; numVal 1.0 ]
+ |> scriptProgram
)
)
- Assert.Equal(
- "1",
- feeri (
- Form [ Ident "-" |> node; Number 10.0 |> constant; Number 9.0 |> constant ]
- |> node
- )
- )
+ Assert.Equal("1", interpScr (form [ symbol "-"; numVal 10.0; numVal 9.0 ] |> scriptProgram))
- Assert.Equal(
- "2",
- feeri (
- Form [ Ident "/" |> node; Number 16.0 |> constant; Number 8.0 |> constant ]
- |> node
- )
- )
+ Assert.Equal("2", interpScr (form [ symbol "/"; numVal 16.0; numVal 8.0 ] |> scriptProgram))
[]
[]
@@ -131,9 +112,9 @@ let ``evaluate artithemtic ops`` expr result =
[=")>]
[]
let ``comp ops return true for simple cases`` op =
- Assert.Equal("#t", feeri (Form [ Ident op |> node ] |> node))
+ Assert.Equal("#t", interpScr (form [ symbol op ] |> scriptProgram))
- Assert.Equal("#t", feeri (Form [ Ident op |> node; Number 123.456 |> constant ] |> node))
+ Assert.Equal("#t", interpScr (form [ symbol op; numVal 123.456 ] |> scriptProgram))
[]
[]
diff --git a/test/Feersum.Tests/Feersum.Tests.fsproj b/test/Feersum.Tests/Feersum.Tests.fsproj
index 4921183..e390062 100644
--- a/test/Feersum.Tests/Feersum.Tests.fsproj
+++ b/test/Feersum.Tests/Feersum.Tests.fsproj
@@ -14,6 +14,7 @@
+
@@ -21,16 +22,16 @@
-
-
-
-
+
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
\ No newline at end of file
diff --git a/test/Feersum.Tests/LexTests.fs b/test/Feersum.Tests/LexTests.fs
index ff93c6b..83e97ec 100644
--- a/test/Feersum.Tests/LexTests.fs
+++ b/test/Feersum.Tests/LexTests.fs
@@ -4,10 +4,6 @@ open Xunit
open Feersum.CompilerServices.Syntax
open Feersum.CompilerServices.Syntax.Lex
-open Feersum.CompilerServices.Text
-
-let private p name line col =
- TextPoint.FromParts(name, line, col) |> TextLocation.Point
[]
let ``Empty input text contains no tokens`` () =
diff --git a/test/Feersum.Tests/SpecTests.fs b/test/Feersum.Tests/SpecTests.fs
index c26b99d..387ea3a 100644
--- a/test/Feersum.Tests/SpecTests.fs
+++ b/test/Feersum.Tests/SpecTests.fs
@@ -16,6 +16,9 @@ open System.Threading.Tasks
open Feersum.CompilerServices.Syntax.Parse
open Feersum.CompilerServices.Syntax.Tree
+let private shouldUpdateSnapshots =
+ System.Environment.GetEnvironmentVariable("UpdateSnapshots") = "true"
+
// This type has to be public so `Snapper` can see it.
type TestExecutionResult =
{ Output: string
@@ -182,7 +185,7 @@ let public getParseTestData () =
[]
[]
-let ``spec tests parse result`` s =
+let rec ``spec tests parse result`` s =
let sourcePath = Path.Join(specDir, s)
let root =
@@ -192,13 +195,21 @@ let ``spec tests parse result`` s =
{ r with
Diagnostics = diagSanitiser r.Diagnostics })
+ let astPath = Path.ChangeExtension(sourcePath, "ast")
+ if shouldUpdateSnapshots then
+ File.WriteAllText(astPath, root.Root)
+ else
+ Assert.Equal(File.ReadAllText(astPath), root.Root)
+
let snapSettings =
SnapshotSettings
.New()
- .SnapshotClassName("Parse")
- .SnapshotTestName(s |> normalisePath)
+ .SnapshotDirectory(snapDir)
+ .SnapshotClassName("ParseDiagnostics")
+ .SnapshotTestName(nameof (``spec tests parse result``))
+ .StoreSnapshotsPerClass(false)
- root.ShouldMatchSnapshot(snapSettings)
+ root.Diagnostics.ShouldMatchChildSnapshot(s, snapSettings)
[]
[]
diff --git a/test/Feersum.Tests/SyntaxFactoriesTests.fs b/test/Feersum.Tests/SyntaxFactoriesTests.fs
new file mode 100644
index 0000000..b4ff862
--- /dev/null
+++ b/test/Feersum.Tests/SyntaxFactoriesTests.fs
@@ -0,0 +1,120 @@
+module SyntaxFactoriesTests
+
+open Feersum.CompilerServices.Syntax.Factories
+open Xunit
+open Feersum.CompilerServices.Syntax
+open Feersum.CompilerServices.Syntax.Tree
+open Firethorn.Red
+
+/// Validate that a node when re-parsed from the `.Text` will result in an
+/// identical expression tree.
+let private checkReparse (node: Expression) =
+ let reparsed = Parse.readExpr1 "testparse" node.Text
+ let node2 = reparsed.Root.Body.Value
+ Assert.Empty(reparsed.Diagnostics)
+ Assert.Equal(node2.RawNode.Kind, node.RawNode.Kind)
+ Assert.Equal(node2.SyntaxRange, node.SyntaxRange)
+ Assert.Equal(Debug.debugToStringRaw node2.RawNode, Debug.debugToStringRaw node.RawNode)
+
+[]
+let ``number constants`` () =
+ let node = numVal 123
+
+ Assert.Equal("123", node.Text)
+
+ match node with
+ | Constant(Some(NumVal 123.0)) -> ()
+ | _ -> failwith "Node structure invalid"
+
+ checkReparse node
+
+[]
+let ``boolean constants`` () =
+ let tNode = boolVal true
+ let fNode = boolVal false
+
+ Assert.Equal("#t", tNode.Text)
+ Assert.Equal("#f", fNode.Text)
+
+ match tNode with
+ | Constant(Some(BoolVal true)) -> ()
+ | _ -> failwith "Node structure invalid"
+
+ match fNode with
+ | Constant(Some(BoolVal false)) -> ()
+ | _ -> failwith "Node structure invalid"
+
+ checkReparse tNode
+ checkReparse fNode
+
+[]
+[]
+[]
+[]
+[]
+[]
+[]
+let ``character constants`` ch exp =
+ let node = charVal ch
+
+ Assert.Equal(exp, node.Text)
+
+ match node with
+ | Constant(Some(CharVal(Some(c)))) -> Assert.Equal(ch, c)
+ | _ -> failwith "Node structure invalid"
+
+ checkReparse node
+
+[]
+[]
+[]
+[]
+[]
+let ``string constants`` str =
+ let node = strVal str
+
+ match node with
+ | Constant(Some(StrVal s)) -> Assert.Equal(str, s)
+ | _ -> failwith "Node structure invalid"
+
+ checkReparse node
+
+[]
+let ``quotation exprs`` () =
+ let node = numVal 101 |> quoted
+
+ match node with
+ | Quoted(Some(Constant(Some(NumVal 101.0)))) -> ()
+ | _ -> failwith "Node strucutre invalid"
+
+ checkReparse node
+
+[]
+let ``simple forms`` () =
+ let node = form [ numVal 123; boolVal false ]
+
+ Assert.Equal("(123 #f)", node.Text)
+
+ Assert.True(node.DottedTail.IsNone)
+
+ match node with
+ | Form([ Constant(Some(NumVal 123.0)); Constant(Some(BoolVal false)) ]) -> ()
+ | _ -> failwith "Node structure invalid"
+
+ checkReparse node
+
+[]
+[]
+[]
+[]
+[]
+let ``identifier symbol exprs`` ident expected =
+ let node = symbol ident
+
+ Assert.Equal(expected, node.Text)
+
+ match node with
+ | Symbol id -> Assert.Equal(ident, id)
+ | _ -> failwith "Node strucutre invalid"
+
+ checkReparse node
diff --git a/test/Feersum.Tests/_snapshots/ParseDiagnostics_spec tests parse result.json b/test/Feersum.Tests/_snapshots/ParseDiagnostics_spec tests parse result.json
new file mode 100644
index 0000000..3760233
--- /dev/null
+++ b/test/Feersum.Tests/_snapshots/ParseDiagnostics_spec tests parse result.json
@@ -0,0 +1,239 @@
+{
+ "define-and-assign.scm": {
+ "AutoGenerated": []
+ },
+ "fib.scm": {
+ "AutoGenerated": []
+ },
+ "fail/bad-library-names-parsefail.scm": {
+ "AutoGenerated": [
+ {
+ "Kind": {
+ "Level": {
+ "Case": "Error"
+ },
+ "Code": 10,
+ "Title": "Parse error"
+ },
+ "Location": {
+ "Case": "Point",
+ "Fields": [
+ {
+ "Source": "fail/bad-library-names-parsefail.scm",
+ "Line": 2,
+ "Col": 1
+ }
+ ]
+ },
+ "Message": "Expected expression after `.`"
+ }
+ ]
+ },
+ "zed.scm": {
+ "AutoGenerated": []
+ },
+ "dragons.scm": {
+ "AutoGenerated": []
+ },
+ "tail.scm": {
+ "AutoGenerated": []
+ },
+ "booleans.scm": {
+ "AutoGenerated": []
+ },
+ "iterfact.scm": {
+ "AutoGenerated": []
+ },
+ "cxr.scm": {
+ "AutoGenerated": []
+ },
+ "load_and_store.scm": {
+ "AutoGenerated": []
+ },
+ "greatest_diff.scm": {
+ "AutoGenerated": []
+ },
+ "swapit.scm": {
+ "AutoGenerated": []
+ },
+ "fail/macrofails.scm": {
+ "AutoGenerated": []
+ },
+ "libgreet.scm": {
+ "AutoGenerated": []
+ },
+ "collatz.scm": {
+ "AutoGenerated": []
+ },
+ "equivalence.scm": {
+ "AutoGenerated": []
+ },
+ "locals.scm": {
+ "AutoGenerated": []
+ },
+ "process-context.scm": {
+ "AutoGenerated": []
+ },
+ "eratosthenes.scm": {
+ "AutoGenerated": []
+ },
+ "time.scm": {
+ "AutoGenerated": []
+ },
+ "lists.scm": {
+ "AutoGenerated": []
+ },
+ "fail/bad-strings-and-idents.scm": {
+ "AutoGenerated": [
+ {
+ "Kind": {
+ "Level": {
+ "Case": "Error"
+ },
+ "Code": 10,
+ "Title": "Parse error"
+ },
+ "Location": {
+ "Case": "Point",
+ "Fields": [
+ {
+ "Source": "fail/bad-strings-and-idents.scm",
+ "Line": 11,
+ "Col": 1
+ }
+ ]
+ },
+ "Message": "Unexpected token Error '|\\x\n'"
+ }
+ ]
+ },
+ "false.scm": {
+ "AutoGenerated": []
+ },
+ "fail/bad-imports.scm": {
+ "AutoGenerated": []
+ },
+ "fact.scm": {
+ "AutoGenerated": []
+ },
+ "qsort.scm": {
+ "AutoGenerated": []
+ },
+ "issue-5_a.scm": {
+ "AutoGenerated": []
+ },
+ "chibi-r7rs-tests.scm": {
+ "AutoGenerated": []
+ },
+ "null.scm": {
+ "AutoGenerated": []
+ },
+ "symbols.scm": {
+ "AutoGenerated": []
+ },
+ "self-capture.scm": {
+ "AutoGenerated": []
+ },
+ "alist.scm": {
+ "AutoGenerated": []
+ },
+ "lambdas.scm": {
+ "AutoGenerated": []
+ },
+ "libcapture.scm": {
+ "AutoGenerated": []
+ },
+ "issue-5_b.scm": {
+ "AutoGenerated": []
+ },
+ "begin.scm": {
+ "AutoGenerated": []
+ },
+ "capturetest.scm": {
+ "AutoGenerated": []
+ },
+ "libs.scm": {
+ "AutoGenerated": []
+ },
+ "comment.scm": {
+ "AutoGenerated": []
+ },
+ "builtins.scm": {
+ "AutoGenerated": []
+ },
+ "string-join.scm": {
+ "AutoGenerated": []
+ },
+ "user-macros.scm": {
+ "AutoGenerated": []
+ },
+ "vectors.scm": {
+ "AutoGenerated": []
+ },
+ "gcd.scm": {
+ "AutoGenerated": []
+ },
+ "parameters.scm": {
+ "AutoGenerated": []
+ },
+ "strings.scm": {
+ "AutoGenerated": []
+ },
+ "envtest.scm": {
+ "AutoGenerated": []
+ },
+ "comments_extended.scm": {
+ "AutoGenerated": []
+ },
+ "display.scm": {
+ "AutoGenerated": []
+ },
+ "importtest.scm": {
+ "AutoGenerated": []
+ },
+ "display-utils.sld": {
+ "AutoGenerated": []
+ },
+ "hello.scm": {
+ "AutoGenerated": []
+ },
+ "builtin-macros.scm": {
+ "AutoGenerated": []
+ },
+ "issue-4.scm": {
+ "AutoGenerated": []
+ },
+ "characters.scm": {
+ "AutoGenerated": []
+ },
+ "byte-vectors.scm": {
+ "AutoGenerated": []
+ },
+ "fail/bad-library-names.scm": {
+ "AutoGenerated": []
+ },
+ "quotes.scm": {
+ "AutoGenerated": []
+ },
+ "norun/forever.scm": {
+ "AutoGenerated": []
+ },
+ "conditions.scm": {
+ "AutoGenerated": []
+ },
+ "fail/bad-letrecs.scm": {
+ "AutoGenerated": []
+ },
+ "literals.scm": {
+ "AutoGenerated": []
+ },
+ "fail/3.scm": {
+ "AutoGenerated": []
+ },
+ "let.scm": {
+ "AutoGenerated": []
+ },
+ "issue-45.scm": {
+ "AutoGenerated": []
+ }
+}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_begin.scm.json b/test/Feersum.Tests/_snapshots/Parse_begin.scm.json
deleted file mode 100644
index e91bf1c..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_begin.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..272)\n ATMOSPHERE: (0..66) \";; The `begin` special form takes a sequence and returns the value\"\n ATMOSPHERE: (66..67) \"\n\"\n ATMOSPHERE: (67..93) \";; of the last expression.\"\n ATMOSPHERE: (93..94) \"\n\"\n FORM: (94..262)\n OPEN_PAREN: (94..95) \"(\"\n SYMBOL: (95..100)\n IDENTIFIER: (95..100) \"begin\"\n ATMOSPHERE: (100..105) \"\n \"\n CONSTANT: (105..107)\n NUMBER: (105..107) \"12\"\n ATMOSPHERE: (107..112) \"\n \"\n FORM: (112..164)\n OPEN_PAREN: (112..113) \"(\"\n SYMBOL: (113..118)\n IDENTIFIER: (113..118) \"begin\"\n ATMOSPHERE: (118..128) \" \n \"\n CONSTANT: (128..135)\n STRING: (128..135) \"\"hello\"\"\n ATMOSPHERE: (135..144) \"\n \"\n CONSTANT: (144..147)\n NUMBER: (144..147) \"123\"\n ATMOSPHERE: (147..156) \"\n \"\n CONSTANT: (156..163)\n STRING: (156..163) \"\"world\"\"\n CLOSE_PAREN: (163..164) \")\"\n ATMOSPHERE: (164..169) \"\n \"\n CONSTANT: (169..182)\n STRING: (169..182) \"\"hello world\"\"\n ATMOSPHERE: (182..187) \"\n \"\n FORM: (187..261)\n OPEN_PAREN: (187..188) \"(\"\n SYMBOL: (188..190)\n IDENTIFIER: (188..190) \"if\"\n ATMOSPHERE: (190..191) \" \"\n FORM: (191..210)\n OPEN_PAREN: (191..192) \"(\"\n SYMBOL: (192..197)\n IDENTIFIER: (192..197) \"begin\"\n ATMOSPHERE: (197..198) \" \"\n CONSTANT: (198..200)\n BOOLEAN: (198..200) \"#f\"\n ATMOSPHERE: (200..201) \" \"\n CONSTANT: (201..203)\n BOOLEAN: (201..203) \"#t\"\n ATMOSPHERE: (203..204) \" \"\n CONSTANT: (204..206)\n BOOLEAN: (204..206) \"#f\"\n ATMOSPHERE: (206..207) \" \"\n CONSTANT: (207..209)\n BOOLEAN: (207..209) \"#t\"\n CLOSE_PAREN: (209..210) \")\"\n ATMOSPHERE: (210..219) \"\n \"\n FORM: (219..235)\n OPEN_PAREN: (219..220) \"(\"\n SYMBOL: (220..225)\n IDENTIFIER: (220..225) \"begin\"\n ATMOSPHERE: (225..226) \" \"\n CONSTANT: (226..227)\n NUMBER: (226..227) \"1\"\n ATMOSPHERE: (227..228) \" \"\n CONSTANT: (228..229)\n NUMBER: (228..229) \"2\"\n ATMOSPHERE: (229..230) \" \"\n CONSTANT: (230..231)\n NUMBER: (230..231) \"3\"\n ATMOSPHERE: (231..232) \" \"\n CONSTANT: (232..234)\n NUMBER: (232..234) \"45\"\n CLOSE_PAREN: (234..235) \")\"\n ATMOSPHERE: (235..244) \"\n \"\n FORM: (244..260)\n OPEN_PAREN: (244..245) \"(\"\n SYMBOL: (245..250)\n IDENTIFIER: (245..250) \"begin\"\n ATMOSPHERE: (250..251) \" \"\n CONSTANT: (251..253)\n NUMBER: (251..253) \"-2\"\n ATMOSPHERE: (253..254) \" \"\n CONSTANT: (254..256)\n NUMBER: (254..256) \"-3\"\n ATMOSPHERE: (256..257) \" \"\n CONSTANT: (257..259)\n NUMBER: (257..259) \"-9\"\n CLOSE_PAREN: (259..260) \")\"\n CLOSE_PAREN: (260..261) \")\"\n CLOSE_PAREN: (261..262) \")\"\n ATMOSPHERE: (262..265) \" \"\n ATMOSPHERE: (265..272) \"; ~> 45\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_booleans.scm.json b/test/Feersum.Tests/_snapshots/Parse_booleans.scm.json
deleted file mode 100644
index e2b8327..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_booleans.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..1176)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n ATMOSPHERE: (42..76) \";; Boolean literals and truthiness\"\n ATMOSPHERE: (76..77) \"\n\"\n FORM: (77..531)\n OPEN_PAREN: (77..78) \"(\"\n SYMBOL: (78..85)\n IDENTIFIER: (78..85) \"display\"\n ATMOSPHERE: (85..86) \" \"\n FORM: (86..530)\n OPEN_PAREN: (86..87) \"(\"\n SYMBOL: (87..91)\n IDENTIFIER: (87..91) \"list\"\n ATMOSPHERE: (91..96) \"\n \"\n CONSTANT: (96..98)\n BOOLEAN: (96..98) \"#f\"\n ATMOSPHERE: (98..103) \"\n \"\n CONSTANT: (103..109)\n BOOLEAN: (103..109) \"#false\"\n ATMOSPHERE: (109..114) \"\n \"\n CONSTANT: (114..116)\n BOOLEAN: (114..116) \"#t\"\n ATMOSPHERE: (116..121) \"\n \"\n CONSTANT: (121..126)\n BOOLEAN: (121..126) \"#true\"\n ATMOSPHERE: (126..131) \"\n \"\n FORM: (131..145)\n OPEN_PAREN: (131..132) \"(\"\n SYMBOL: (132..135)\n IDENTIFIER: (132..135) \"eq?\"\n ATMOSPHERE: (135..136) \" \"\n CONSTANT: (136..138)\n BOOLEAN: (136..138) \"#t\"\n ATMOSPHERE: (138..139) \" \"\n CONSTANT: (139..144)\n BOOLEAN: (139..144) \"#true\"\n CLOSE_PAREN: (144..145) \")\"\n ATMOSPHERE: (145..150) \"\n \"\n FORM: (150..165)\n OPEN_PAREN: (150..151) \"(\"\n SYMBOL: (151..155)\n IDENTIFIER: (151..155) \"eqv?\"\n ATMOSPHERE: (155..156) \" \"\n CONSTANT: (156..158)\n BOOLEAN: (156..158) \"#t\"\n ATMOSPHERE: (158..159) \" \"\n CONSTANT: (159..164)\n BOOLEAN: (159..164) \"#true\"\n CLOSE_PAREN: (164..165) \")\"\n ATMOSPHERE: (165..170) \"\n \"\n FORM: (170..187)\n OPEN_PAREN: (170..171) \"(\"\n SYMBOL: (171..177)\n IDENTIFIER: (171..177) \"equal?\"\n ATMOSPHERE: (177..178) \" \"\n CONSTANT: (178..180)\n BOOLEAN: (178..180) \"#t\"\n ATMOSPHERE: (180..181) \" \"\n CONSTANT: (181..186)\n BOOLEAN: (181..186) \"#true\"\n CLOSE_PAREN: (186..187) \")\"\n ATMOSPHERE: (187..192) \"\n \"\n FORM: (192..207)\n OPEN_PAREN: (192..193) \"(\"\n SYMBOL: (193..196)\n IDENTIFIER: (193..196) \"eq?\"\n ATMOSPHERE: (196..197) \" \"\n CONSTANT: (197..199)\n BOOLEAN: (197..199) \"#f\"\n ATMOSPHERE: (199..200) \" \"\n CONSTANT: (200..206)\n BOOLEAN: (200..206) \"#false\"\n CLOSE_PAREN: (206..207) \")\"\n ATMOSPHERE: (207..212) \"\n \"\n FORM: (212..228)\n OPEN_PAREN: (212..213) \"(\"\n SYMBOL: (213..217)\n IDENTIFIER: (213..217) \"eqv?\"\n ATMOSPHERE: (217..218) \" \"\n CONSTANT: (218..220)\n BOOLEAN: (218..220) \"#f\"\n ATMOSPHERE: (220..221) \" \"\n CONSTANT: (221..227)\n BOOLEAN: (221..227) \"#false\"\n CLOSE_PAREN: (227..228) \")\"\n ATMOSPHERE: (228..233) \"\n \"\n FORM: (233..251)\n OPEN_PAREN: (233..234) \"(\"\n SYMBOL: (234..240)\n IDENTIFIER: (234..240) \"equal?\"\n ATMOSPHERE: (240..241) \" \"\n CONSTANT: (241..243)\n BOOLEAN: (241..243) \"#f\"\n ATMOSPHERE: (243..244) \" \"\n CONSTANT: (244..250)\n BOOLEAN: (244..250) \"#false\"\n CLOSE_PAREN: (250..251) \")\"\n ATMOSPHERE: (251..256) \"\n \"\n FORM: (256..303)\n OPEN_PAREN: (256..257) \"(\"\n SYMBOL: (257..259)\n IDENTIFIER: (257..259) \"if\"\n ATMOSPHERE: (259..260) \" \"\n FORM: (260..274)\n OPEN_PAREN: (260..261) \"(\"\n SYMBOL: (261..264)\n IDENTIFIER: (261..264) \"eq?\"\n ATMOSPHERE: (264..265) \" \"\n CONSTANT: (265..267)\n BOOLEAN: (265..267) \"#f\"\n ATMOSPHERE: (267..268) \" \"\n CONSTANT: (268..273)\n BOOLEAN: (268..273) \"#true\"\n CLOSE_PAREN: (273..274) \")\"\n ATMOSPHERE: (274..283) \"\n \"\n QUOTED_DATUM: (283..297)\n QUOTE: (283..284) \"'\"\n SYMBOL: (284..288)\n IDENTIFIER: (284..288) \"fail\"\n ATMOSPHERE: (288..297) \"\n \"\n QUOTED_DATUM: (297..302)\n QUOTE: (297..298) \"'\"\n SYMBOL: (298..302)\n IDENTIFIER: (298..302) \"pass\"\n CLOSE_PAREN: (302..303) \")\"\n ATMOSPHERE: (303..308) \"\n \"\n FORM: (308..355)\n OPEN_PAREN: (308..309) \"(\"\n SYMBOL: (309..311)\n IDENTIFIER: (309..311) \"if\"\n ATMOSPHERE: (311..312) \" \"\n FORM: (312..326)\n OPEN_PAREN: (312..313) \"(\"\n SYMBOL: (313..319)\n IDENTIFIER: (313..319) \"equal?\"\n ATMOSPHERE: (319..320) \" \"\n CONSTANT: (320..322)\n BOOLEAN: (320..322) \"#t\"\n ATMOSPHERE: (322..323) \" \"\n CONSTANT: (323..325)\n BOOLEAN: (323..325) \"#f\"\n CLOSE_PAREN: (325..326) \")\"\n ATMOSPHERE: (326..335) \"\n \"\n QUOTED_DATUM: (335..349)\n QUOTE: (335..336) \"'\"\n SYMBOL: (336..340)\n IDENTIFIER: (336..340) \"fail\"\n ATMOSPHERE: (340..349) \"\n \"\n QUOTED_DATUM: (349..354)\n QUOTE: (349..350) \"'\"\n SYMBOL: (350..354)\n IDENTIFIER: (350..354) \"pass\"\n CLOSE_PAREN: (354..355) \")\"\n ATMOSPHERE: (355..360) \"\n \"\n FORM: (360..395)\n OPEN_PAREN: (360..361) \"(\"\n SYMBOL: (361..363)\n IDENTIFIER: (361..363) \"if\"\n ATMOSPHERE: (363..364) \" \"\n CONSTANT: (364..366)\n BOOLEAN: (364..366) \"#f\"\n ATMOSPHERE: (366..375) \"\n \"\n QUOTED_DATUM: (375..389)\n QUOTE: (375..376) \"'\"\n SYMBOL: (376..380)\n IDENTIFIER: (376..380) \"fail\"\n ATMOSPHERE: (380..389) \"\n \"\n QUOTED_DATUM: (389..394)\n QUOTE: (389..390) \"'\"\n SYMBOL: (390..394)\n IDENTIFIER: (390..394) \"pass\"\n CLOSE_PAREN: (394..395) \")\"\n ATMOSPHERE: (395..400) \"\n \"\n FORM: (400..435)\n OPEN_PAREN: (400..401) \"(\"\n SYMBOL: (401..403)\n IDENTIFIER: (401..403) \"if\"\n ATMOSPHERE: (403..404) \" \"\n CONSTANT: (404..406)\n BOOLEAN: (404..406) \"#t\"\n ATMOSPHERE: (406..415) \"\n \"\n QUOTED_DATUM: (415..429)\n QUOTE: (415..416) \"'\"\n SYMBOL: (416..420)\n IDENTIFIER: (416..420) \"pass\"\n ATMOSPHERE: (420..429) \"\n \"\n QUOTED_DATUM: (429..434)\n QUOTE: (429..430) \"'\"\n SYMBOL: (430..434)\n IDENTIFIER: (430..434) \"fail\"\n CLOSE_PAREN: (434..435) \")\"\n ATMOSPHERE: (435..440) \"\n \"\n FORM: (440..476)\n OPEN_PAREN: (440..441) \"(\"\n SYMBOL: (441..443)\n IDENTIFIER: (441..443) \"if\"\n ATMOSPHERE: (443..444) \" \"\n QUOTED_DATUM: (444..456)\n QUOTE: (444..445) \"'\"\n FORM: (445..447)\n OPEN_PAREN: (445..446) \"(\"\n CLOSE_PAREN: (446..447) \")\"\n ATMOSPHERE: (447..456) \"\n \"\n QUOTED_DATUM: (456..470)\n QUOTE: (456..457) \"'\"\n SYMBOL: (457..461)\n IDENTIFIER: (457..461) \"pass\"\n ATMOSPHERE: (461..470) \"\n \"\n QUOTED_DATUM: (470..475)\n QUOTE: (470..471) \"'\"\n SYMBOL: (471..475)\n IDENTIFIER: (471..475) \"fail\"\n CLOSE_PAREN: (475..476) \")\"\n ATMOSPHERE: (476..481) \"\n \"\n FORM: (481..524)\n OPEN_PAREN: (481..482) \"(\"\n SYMBOL: (482..484)\n IDENTIFIER: (482..484) \"if\"\n ATMOSPHERE: (484..485) \" \"\n QUOTED_DATUM: (485..504)\n QUOTE: (485..486) \"'\"\n SYMBOL: (486..495)\n IDENTIFIER: (486..495) \"something\"\n ATMOSPHERE: (495..504) \"\n \"\n QUOTED_DATUM: (504..518)\n QUOTE: (504..505) \"'\"\n SYMBOL: (505..509)\n IDENTIFIER: (505..509) \"pass\"\n ATMOSPHERE: (509..518) \"\n \"\n QUOTED_DATUM: (518..523)\n QUOTE: (518..519) \"'\"\n SYMBOL: (519..523)\n IDENTIFIER: (519..523) \"fail\"\n CLOSE_PAREN: (523..524) \")\"\n ATMOSPHERE: (524..529) \"\n \"\n CLOSE_PAREN: (529..530) \")\"\n CLOSE_PAREN: (530..531) \")\"\n FORM: (531..540)\n OPEN_PAREN: (531..532) \"(\"\n SYMBOL: (532..539)\n IDENTIFIER: (532..539) \"newline\"\n CLOSE_PAREN: (539..540) \")\"\n ATMOSPHERE: (540..541) \"\n\"\n ATMOSPHERE: (541..590) \";; Quoting of boolean values does nothing to them\"\n ATMOSPHERE: (590..591) \"\n\"\n FORM: (591..626)\n OPEN_PAREN: (591..592) \"(\"\n SYMBOL: (592..599)\n IDENTIFIER: (592..599) \"display\"\n ATMOSPHERE: (599..600) \" \"\n FORM: (600..625)\n OPEN_PAREN: (600..601) \"(\"\n SYMBOL: (601..605)\n IDENTIFIER: (601..605) \"list\"\n ATMOSPHERE: (605..610) \"\n \"\n QUOTED_DATUM: (610..618)\n QUOTE: (610..611) \"'\"\n CONSTANT: (611..613)\n BOOLEAN: (611..613) \"#f\"\n ATMOSPHERE: (613..618) \"\n \"\n QUOTED_DATUM: (618..624)\n QUOTE: (618..619) \"'\"\n CONSTANT: (619..624)\n BOOLEAN: (619..624) \"#true\"\n CLOSE_PAREN: (624..625) \")\"\n CLOSE_PAREN: (625..626) \")\"\n FORM: (626..635)\n OPEN_PAREN: (626..627) \"(\"\n SYMBOL: (627..634)\n IDENTIFIER: (627..634) \"newline\"\n CLOSE_PAREN: (634..635) \")\"\n ATMOSPHERE: (635..636) \"\n\"\n ATMOSPHERE: (636..693) \";; Boolean procedures, we don't have many of them builtin\"\n ATMOSPHERE: (693..694) \"\n\"\n FORM: (694..1167)\n OPEN_PAREN: (694..695) \"(\"\n SYMBOL: (695..702)\n IDENTIFIER: (695..702) \"display\"\n ATMOSPHERE: (702..703) \" \"\n FORM: (703..1166)\n OPEN_PAREN: (703..704) \"(\"\n SYMBOL: (704..708)\n IDENTIFIER: (704..708) \"list\"\n ATMOSPHERE: (708..713) \"\n \"\n FORM: (713..721)\n OPEN_PAREN: (713..714) \"(\"\n SYMBOL: (714..717)\n IDENTIFIER: (714..717) \"not\"\n ATMOSPHERE: (717..718) \" \"\n CONSTANT: (718..720)\n BOOLEAN: (718..720) \"#t\"\n CLOSE_PAREN: (720..721) \")\"\n ATMOSPHERE: (721..722) \" \"\n ATMOSPHERE: (722..729) \"; -> #f\"\n ATMOSPHERE: (729..734) \"\n \"\n FORM: (734..741)\n OPEN_PAREN: (734..735) \"(\"\n SYMBOL: (735..738)\n IDENTIFIER: (735..738) \"not\"\n ATMOSPHERE: (738..739) \" \"\n CONSTANT: (739..740)\n NUMBER: (739..740) \"3\"\n CLOSE_PAREN: (740..741) \")\"\n ATMOSPHERE: (741..742) \" \"\n ATMOSPHERE: (742..749) \"; -> #f\"\n ATMOSPHERE: (749..754) \"\n \"\n FORM: (754..768)\n OPEN_PAREN: (754..755) \"(\"\n SYMBOL: (755..758)\n IDENTIFIER: (755..758) \"not\"\n ATMOSPHERE: (758..759) \" \"\n FORM: (759..767)\n OPEN_PAREN: (759..760) \"(\"\n SYMBOL: (760..764)\n IDENTIFIER: (760..764) \"list\"\n ATMOSPHERE: (764..765) \" \"\n CONSTANT: (765..766)\n NUMBER: (765..766) \"3\"\n CLOSE_PAREN: (766..767) \")\"\n CLOSE_PAREN: (767..768) \")\"\n ATMOSPHERE: (768..769) \" \"\n ATMOSPHERE: (769..776) \"; -> #f\"\n ATMOSPHERE: (776..781) \"\n \"\n FORM: (781..789)\n OPEN_PAREN: (781..782) \"(\"\n SYMBOL: (782..785)\n IDENTIFIER: (782..785) \"not\"\n ATMOSPHERE: (785..786) \" \"\n CONSTANT: (786..788)\n BOOLEAN: (786..788) \"#f\"\n CLOSE_PAREN: (788..789) \")\"\n ATMOSPHERE: (789..790) \" \"\n ATMOSPHERE: (790..797) \"; -> #t\"\n ATMOSPHERE: (797..802) \"\n \"\n FORM: (802..811)\n OPEN_PAREN: (802..803) \"(\"\n SYMBOL: (803..806)\n IDENTIFIER: (803..806) \"not\"\n ATMOSPHERE: (806..807) \" \"\n QUOTED_DATUM: (807..810)\n QUOTE: (807..808) \"’\"\n FORM: (808..810)\n OPEN_PAREN: (808..809) \"(\"\n CLOSE_PAREN: (809..810) \")\"\n CLOSE_PAREN: (810..811) \")\"\n ATMOSPHERE: (811..812) \" \"\n ATMOSPHERE: (812..819) \"; -> #f\"\n ATMOSPHERE: (819..824) \"\n \"\n FORM: (824..836)\n OPEN_PAREN: (824..825) \"(\"\n SYMBOL: (825..828)\n IDENTIFIER: (825..828) \"not\"\n ATMOSPHERE: (828..829) \" \"\n FORM: (829..835)\n OPEN_PAREN: (829..830) \"(\"\n SYMBOL: (830..834)\n IDENTIFIER: (830..834) \"list\"\n CLOSE_PAREN: (834..835) \")\"\n CLOSE_PAREN: (835..836) \")\"\n ATMOSPHERE: (836..837) \" \"\n ATMOSPHERE: (837..844) \"; -> #f\"\n ATMOSPHERE: (844..849) \"\n \"\n FORM: (849..859)\n OPEN_PAREN: (849..850) \"(\"\n SYMBOL: (850..853)\n IDENTIFIER: (850..853) \"not\"\n ATMOSPHERE: (853..854) \" \"\n QUOTED_DATUM: (854..858)\n QUOTE: (854..855) \"’\"\n SYMBOL: (855..858)\n IDENTIFIER: (855..858) \"nil\"\n CLOSE_PAREN: (858..859) \")\"\n ATMOSPHERE: (859..860) \" \"\n ATMOSPHERE: (860..867) \"; -> #f\"\n ATMOSPHERE: (867..873) \"\n\n \"\n FORM: (873..886)\n OPEN_PAREN: (873..874) \"(\"\n SYMBOL: (874..882)\n IDENTIFIER: (874..882) \"boolean?\"\n ATMOSPHERE: (882..883) \" \"\n CONSTANT: (883..885)\n BOOLEAN: (883..885) \"#f\"\n CLOSE_PAREN: (885..886) \")\"\n ATMOSPHERE: (886..887) \" \"\n ATMOSPHERE: (887..894) \"; -> #t\"\n ATMOSPHERE: (894..899) \"\n \"\n FORM: (899..911)\n OPEN_PAREN: (899..900) \"(\"\n SYMBOL: (900..908)\n IDENTIFIER: (900..908) \"boolean?\"\n ATMOSPHERE: (908..909) \" \"\n CONSTANT: (909..910)\n NUMBER: (909..910) \"0\"\n CLOSE_PAREN: (910..911) \")\"\n ATMOSPHERE: (911..912) \" \"\n ATMOSPHERE: (912..919) \"; -> #f\"\n ATMOSPHERE: (919..924) \"\n \"\n FORM: (924..938)\n OPEN_PAREN: (924..925) \"(\"\n SYMBOL: (925..933)\n IDENTIFIER: (925..933) \"boolean?\"\n ATMOSPHERE: (933..934) \" \"\n QUOTED_DATUM: (934..937)\n QUOTE: (934..935) \"’\"\n FORM: (935..937)\n OPEN_PAREN: (935..936) \"(\"\n CLOSE_PAREN: (936..937) \")\"\n CLOSE_PAREN: (937..938) \")\"\n ATMOSPHERE: (938..939) \" \"\n ATMOSPHERE: (939..946) \"; -> #f\"\n ATMOSPHERE: (946..956) \"\n \n \"\n FORM: (956..976)\n OPEN_PAREN: (956..957) \"(\"\n SYMBOL: (957..966)\n IDENTIFIER: (957..966) \"boolean=?\"\n ATMOSPHERE: (966..967) \" \"\n CONSTANT: (967..969)\n BOOLEAN: (967..969) \"#t\"\n ATMOSPHERE: (969..970) \" \"\n CONSTANT: (970..972)\n BOOLEAN: (970..972) \"#t\"\n ATMOSPHERE: (972..973) \" \"\n CONSTANT: (973..975)\n BOOLEAN: (973..975) \"#t\"\n CLOSE_PAREN: (975..976) \")\"\n ATMOSPHERE: (976..981) \"\n \"\n FORM: (981..1001)\n OPEN_PAREN: (981..982) \"(\"\n SYMBOL: (982..991)\n IDENTIFIER: (982..991) \"boolean=?\"\n ATMOSPHERE: (991..992) \" \"\n CONSTANT: (992..994)\n BOOLEAN: (992..994) \"#t\"\n ATMOSPHERE: (994..995) \" \"\n CONSTANT: (995..997)\n BOOLEAN: (995..997) \"#f\"\n ATMOSPHERE: (997..998) \" \"\n CONSTANT: (998..1000)\n BOOLEAN: (998..1000) \"#t\"\n CLOSE_PAREN: (1000..1001) \")\"\n ATMOSPHERE: (1001..1006) \"\n \"\n FORM: (1006..1032)\n OPEN_PAREN: (1006..1007) \"(\"\n SYMBOL: (1007..1016)\n IDENTIFIER: (1007..1016) \"boolean=?\"\n ATMOSPHERE: (1016..1017) \" \"\n CONSTANT: (1017..1019)\n BOOLEAN: (1017..1019) \"#f\"\n ATMOSPHERE: (1019..1020) \" \"\n CONSTANT: (1020..1022)\n BOOLEAN: (1020..1022) \"#f\"\n ATMOSPHERE: (1022..1023) \" \"\n CONSTANT: (1023..1025)\n BOOLEAN: (1023..1025) \"#f\"\n ATMOSPHERE: (1025..1026) \" \"\n CONSTANT: (1026..1028)\n BOOLEAN: (1026..1028) \"#f\"\n ATMOSPHERE: (1028..1029) \" \"\n CONSTANT: (1029..1031)\n BOOLEAN: (1029..1031) \"#t\"\n CLOSE_PAREN: (1031..1032) \")\"\n ATMOSPHERE: (1032..1037) \"\n \"\n FORM: (1037..1060)\n OPEN_PAREN: (1037..1038) \"(\"\n SYMBOL: (1038..1047)\n IDENTIFIER: (1038..1047) \"boolean=?\"\n ATMOSPHERE: (1047..1048) \" \"\n CONSTANT: (1048..1050)\n BOOLEAN: (1048..1050) \"#f\"\n ATMOSPHERE: (1050..1051) \" \"\n CONSTANT: (1051..1053)\n BOOLEAN: (1051..1053) \"#f\"\n ATMOSPHERE: (1053..1054) \" \"\n CONSTANT: (1054..1056)\n BOOLEAN: (1054..1056) \"#f\"\n ATMOSPHERE: (1056..1057) \" \"\n CONSTANT: (1057..1059)\n BOOLEAN: (1057..1059) \"#f\"\n CLOSE_PAREN: (1059..1060) \")\"\n ATMOSPHERE: (1060..1065) \"\n \"\n FORM: (1065..1082)\n OPEN_PAREN: (1065..1066) \"(\"\n SYMBOL: (1066..1075)\n IDENTIFIER: (1066..1075) \"boolean=?\"\n ATMOSPHERE: (1075..1076) \" \"\n CONSTANT: (1076..1078)\n BOOLEAN: (1076..1078) \"#f\"\n ATMOSPHERE: (1078..1079) \" \"\n CONSTANT: (1079..1081)\n BOOLEAN: (1079..1081) \"#f\"\n CLOSE_PAREN: (1081..1082) \")\"\n ATMOSPHERE: (1082..1087) \"\n \"\n FORM: (1087..1103)\n OPEN_PAREN: (1087..1088) \"(\"\n SYMBOL: (1088..1097)\n IDENTIFIER: (1088..1097) \"boolean=?\"\n ATMOSPHERE: (1097..1098) \" \"\n CONSTANT: (1098..1100)\n BOOLEAN: (1098..1100) \"#f\"\n ATMOSPHERE: (1100..1101) \" \"\n CONSTANT: (1101..1102)\n NUMBER: (1101..1102) \"0\"\n CLOSE_PAREN: (1102..1103) \")\"\n ATMOSPHERE: (1103..1108) \"\n \"\n FORM: (1108..1126)\n OPEN_PAREN: (1108..1109) \"(\"\n SYMBOL: (1109..1118)\n IDENTIFIER: (1109..1118) \"boolean=?\"\n ATMOSPHERE: (1118..1119) \" \"\n CONSTANT: (1119..1121)\n BOOLEAN: (1119..1121) \"#f\"\n ATMOSPHERE: (1121..1122) \" \"\n QUOTED_DATUM: (1122..1125)\n QUOTE: (1122..1123) \"'\"\n FORM: (1123..1125)\n OPEN_PAREN: (1123..1124) \"(\"\n CLOSE_PAREN: (1124..1125) \")\"\n CLOSE_PAREN: (1125..1126) \")\"\n ATMOSPHERE: (1126..1131) \"\n \"\n FORM: (1131..1159)\n OPEN_PAREN: (1131..1132) \"(\"\n SYMBOL: (1132..1141)\n IDENTIFIER: (1132..1141) \"boolean=?\"\n ATMOSPHERE: (1141..1142) \" \"\n FORM: (1142..1152)\n OPEN_PAREN: (1142..1143) \"(\"\n SYMBOL: (1143..1147)\n IDENTIFIER: (1143..1147) \"list\"\n ATMOSPHERE: (1147..1148) \" \"\n CONSTANT: (1148..1151)\n NUMBER: (1148..1151) \"123\"\n CLOSE_PAREN: (1151..1152) \")\"\n ATMOSPHERE: (1152..1153) \" \"\n CONSTANT: (1153..1155)\n NUMBER: (1153..1155) \"21\"\n ATMOSPHERE: (1155..1156) \" \"\n CONSTANT: (1156..1158)\n BOOLEAN: (1156..1158) \"#t\"\n CLOSE_PAREN: (1158..1159) \")\"\n ATMOSPHERE: (1159..1165) \"\n\n \"\n CLOSE_PAREN: (1165..1166) \")\"\n CLOSE_PAREN: (1166..1167) \")\"\n FORM: (1167..1176)\n OPEN_PAREN: (1167..1168) \"(\"\n SYMBOL: (1168..1175)\n IDENTIFIER: (1168..1175) \"newline\"\n CLOSE_PAREN: (1175..1176) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_builtin-macros.scm.json b/test/Feersum.Tests/_snapshots/Parse_builtin-macros.scm.json
deleted file mode 100644
index 8ab6538..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_builtin-macros.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..499)\n FORM: (0..211)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n ATMOSPHERE: (26..93) \";; FIXME: we shouldn't _need_ to import this, but we have no way of\"\n ATMOSPHERE: (93..98) \"\n \"\n ATMOSPHERE: (98..162) \";; exporting or re-exporting macro definitions currently.\"\n ATMOSPHERE: (162..167) \"\n \"\n FORM: (167..191)\n OPEN_PAREN: (167..168) \"(\"\n SYMBOL: (168..175)\n IDENTIFIER: (168..175) \"feersum\"\n ATMOSPHERE: (175..176) \" \"\n SYMBOL: (176..183)\n IDENTIFIER: (176..183) \"builtin\"\n ATMOSPHERE: (183..184) \" \"\n SYMBOL: (184..190)\n IDENTIFIER: (184..190) \"macros\"\n CLOSE_PAREN: (190..191) \")\"\n ATMOSPHERE: (191..196) \"\n \"\n FORM: (196..210)\n OPEN_PAREN: (196..197) \"(\"\n SYMBOL: (197..203)\n IDENTIFIER: (197..203) \"scheme\"\n ATMOSPHERE: (203..204) \" \"\n SYMBOL: (204..209)\n IDENTIFIER: (204..209) \"write\"\n CLOSE_PAREN: (209..210) \")\"\n CLOSE_PAREN: (210..211) \")\"\n ATMOSPHERE: (211..212) \"\n\"\n FORM: (212..498)\n OPEN_PAREN: (212..213) \"(\"\n SYMBOL: (213..220)\n IDENTIFIER: (213..220) \"display\"\n ATMOSPHERE: (220..225) \"\n \"\n FORM: (225..497)\n OPEN_PAREN: (225..226) \"(\"\n SYMBOL: (226..230)\n IDENTIFIER: (226..230) \"list\"\n ATMOSPHERE: (230..239) \"\n \"\n FORM: (239..260)\n OPEN_PAREN: (239..240) \"(\"\n SYMBOL: (240..243)\n IDENTIFIER: (240..243) \"and\"\n ATMOSPHERE: (243..244) \" \"\n FORM: (244..251)\n OPEN_PAREN: (244..245) \"(\"\n SYMBOL: (245..246)\n IDENTIFIER: (245..246) \"=\"\n ATMOSPHERE: (246..247) \" \"\n CONSTANT: (247..248)\n NUMBER: (247..248) \"2\"\n ATMOSPHERE: (248..249) \" \"\n CONSTANT: (249..250)\n NUMBER: (249..250) \"2\"\n CLOSE_PAREN: (250..251) \")\"\n ATMOSPHERE: (251..252) \" \"\n FORM: (252..259)\n OPEN_PAREN: (252..253) \"(\"\n SYMBOL: (253..254)\n IDENTIFIER: (253..254) \">\"\n ATMOSPHERE: (254..255) \" \"\n CONSTANT: (255..256)\n NUMBER: (255..256) \"2\"\n ATMOSPHERE: (256..257) \" \"\n CONSTANT: (257..258)\n NUMBER: (257..258) \"1\"\n CLOSE_PAREN: (258..259) \")\"\n CLOSE_PAREN: (259..260) \")\"\n ATMOSPHERE: (260..261) \" \"\n ATMOSPHERE: (261..268) \"; -> #t\"\n ATMOSPHERE: (268..277) \"\n \"\n FORM: (277..298)\n OPEN_PAREN: (277..278) \"(\"\n SYMBOL: (278..281)\n IDENTIFIER: (278..281) \"and\"\n ATMOSPHERE: (281..282) \" \"\n FORM: (282..289)\n OPEN_PAREN: (282..283) \"(\"\n SYMBOL: (283..284)\n IDENTIFIER: (283..284) \"=\"\n ATMOSPHERE: (284..285) \" \"\n CONSTANT: (285..286)\n NUMBER: (285..286) \"2\"\n ATMOSPHERE: (286..287) \" \"\n CONSTANT: (287..288)\n NUMBER: (287..288) \"2\"\n CLOSE_PAREN: (288..289) \")\"\n ATMOSPHERE: (289..290) \" \"\n FORM: (290..297)\n OPEN_PAREN: (290..291) \"(\"\n SYMBOL: (291..292)\n IDENTIFIER: (291..292) \"<\"\n ATMOSPHERE: (292..293) \" \"\n CONSTANT: (293..294)\n NUMBER: (293..294) \"2\"\n ATMOSPHERE: (294..295) \" \"\n CONSTANT: (295..296)\n NUMBER: (295..296) \"1\"\n CLOSE_PAREN: (296..297) \")\"\n CLOSE_PAREN: (297..298) \")\"\n ATMOSPHERE: (298..299) \" \"\n ATMOSPHERE: (299..306) \"; -> #f\"\n ATMOSPHERE: (306..315) \"\n \"\n FORM: (315..334)\n OPEN_PAREN: (315..316) \"(\"\n SYMBOL: (316..319)\n IDENTIFIER: (316..319) \"and\"\n ATMOSPHERE: (319..320) \" \"\n CONSTANT: (320..321)\n NUMBER: (320..321) \"1\"\n ATMOSPHERE: (321..322) \" \"\n CONSTANT: (322..323)\n NUMBER: (322..323) \"2\"\n ATMOSPHERE: (323..324) \" \"\n QUOTED_DATUM: (324..327)\n QUOTE: (324..325) \"'\"\n SYMBOL: (325..326)\n IDENTIFIER: (325..326) \"c\"\n ATMOSPHERE: (326..327) \" \"\n QUOTED_DATUM: (327..333)\n QUOTE: (327..328) \"'\"\n FORM: (328..333)\n OPEN_PAREN: (328..329) \"(\"\n SYMBOL: (329..330)\n IDENTIFIER: (329..330) \"f\"\n ATMOSPHERE: (330..331) \" \"\n SYMBOL: (331..332)\n IDENTIFIER: (331..332) \"g\"\n CLOSE_PAREN: (332..333) \")\"\n CLOSE_PAREN: (333..334) \")\"\n ATMOSPHERE: (334..335) \" \"\n ATMOSPHERE: (335..346) \"; -> '(f g)\"\n ATMOSPHERE: (346..355) \"\n \"\n FORM: (355..360)\n OPEN_PAREN: (355..356) \"(\"\n SYMBOL: (356..359)\n IDENTIFIER: (356..359) \"and\"\n CLOSE_PAREN: (359..360) \")\"\n ATMOSPHERE: (360..361) \" \"\n ATMOSPHERE: (361..368) \"; -> #t\"\n ATMOSPHERE: (368..377) \"\n \"\n FORM: (377..387)\n OPEN_PAREN: (377..378) \"(\"\n SYMBOL: (378..380)\n IDENTIFIER: (378..380) \"or\"\n ATMOSPHERE: (380..381) \" \"\n CONSTANT: (381..383)\n BOOLEAN: (381..383) \"#t\"\n ATMOSPHERE: (383..384) \" \"\n CONSTANT: (384..386)\n BOOLEAN: (384..386) \"#t\"\n CLOSE_PAREN: (386..387) \")\"\n ATMOSPHERE: (387..388) \" \"\n ATMOSPHERE: (388..395) \"; -> #t\"\n ATMOSPHERE: (395..404) \"\n \"\n FORM: (404..429)\n OPEN_PAREN: (404..405) \"(\"\n SYMBOL: (405..407)\n IDENTIFIER: (405..407) \"or\"\n ATMOSPHERE: (407..408) \" \"\n CONSTANT: (408..410)\n BOOLEAN: (408..410) \"#f\"\n ATMOSPHERE: (410..411) \" \"\n CONSTANT: (411..413)\n BOOLEAN: (411..413) \"#f\"\n ATMOSPHERE: (413..414) \" \"\n CONSTANT: (414..416)\n BOOLEAN: (414..416) \"#f\"\n ATMOSPHERE: (416..417) \" \"\n CONSTANT: (417..419)\n BOOLEAN: (417..419) \"#f\"\n ATMOSPHERE: (419..420) \" \"\n CONSTANT: (420..422)\n BOOLEAN: (420..422) \"#t\"\n ATMOSPHERE: (422..423) \" \"\n CONSTANT: (423..425)\n BOOLEAN: (423..425) \"#f\"\n ATMOSPHERE: (425..426) \" \"\n CONSTANT: (426..428)\n BOOLEAN: (426..428) \"#f\"\n CLOSE_PAREN: (428..429) \")\"\n ATMOSPHERE: (429..430) \" \"\n ATMOSPHERE: (430..437) \"; -> #t\"\n ATMOSPHERE: (437..446) \"\n \"\n FORM: (446..464)\n OPEN_PAREN: (446..447) \"(\"\n SYMBOL: (447..449)\n IDENTIFIER: (447..449) \"or\"\n ATMOSPHERE: (449..450) \" \"\n CONSTANT: (450..452)\n BOOLEAN: (450..452) \"#f\"\n ATMOSPHERE: (452..453) \" \"\n CONSTANT: (453..456)\n NUMBER: (453..456) \"100\"\n ATMOSPHERE: (456..457) \" \"\n CONSTANT: (457..459)\n BOOLEAN: (457..459) \"#f\"\n ATMOSPHERE: (459..460) \" \"\n CONSTANT: (460..463)\n NUMBER: (460..463) \"101\"\n CLOSE_PAREN: (463..464) \")\"\n ATMOSPHERE: (464..465) \" \"\n ATMOSPHERE: (465..470) \"; 100\"\n ATMOSPHERE: (470..479) \"\n \"\n FORM: (479..483)\n OPEN_PAREN: (479..480) \"(\"\n SYMBOL: (480..482)\n IDENTIFIER: (480..482) \"or\"\n CLOSE_PAREN: (482..483) \")\"\n ATMOSPHERE: (483..484) \" \"\n ATMOSPHERE: (484..491) \"; -> #f\"\n ATMOSPHERE: (491..496) \"\n \"\n CLOSE_PAREN: (496..497) \")\"\n CLOSE_PAREN: (497..498) \")\"\n ATMOSPHERE: (498..499) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_builtins.scm.json b/test/Feersum.Tests/_snapshots/Parse_builtins.scm.json
deleted file mode 100644
index 931e19b..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_builtins.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..317)\n FORM: (0..22)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n CLOSE_PAREN: (21..22) \")\"\n ATMOSPHERE: (22..23) \"\n\"\n FORM: (23..26)\n OPEN_PAREN: (23..24) \"(\"\n SYMBOL: (24..25)\n IDENTIFIER: (24..25) \"=\"\n CLOSE_PAREN: (25..26) \")\"\n ATMOSPHERE: (26..28) \" \"\n ATMOSPHERE: (28..35) \"; => #t\"\n ATMOSPHERE: (35..36) \"\n\"\n FORM: (36..43)\n OPEN_PAREN: (36..37) \"(\"\n SYMBOL: (37..38)\n IDENTIFIER: (37..38) \">\"\n ATMOSPHERE: (38..39) \" \"\n CONSTANT: (39..40)\n NUMBER: (39..40) \"5\"\n ATMOSPHERE: (40..41) \" \"\n CONSTANT: (41..42)\n NUMBER: (41..42) \"4\"\n CLOSE_PAREN: (42..43) \")\"\n ATMOSPHERE: (43..44) \" \"\n ATMOSPHERE: (44..51) \"; => #t\"\n ATMOSPHERE: (51..52) \"\n\"\n FORM: (52..59)\n OPEN_PAREN: (52..53) \"(\"\n SYMBOL: (53..54)\n IDENTIFIER: (53..54) \"<\"\n ATMOSPHERE: (54..55) \" \"\n CONSTANT: (55..56)\n NUMBER: (55..56) \"5\"\n ATMOSPHERE: (56..57) \" \"\n CONSTANT: (57..58)\n NUMBER: (57..58) \"4\"\n CLOSE_PAREN: (58..59) \")\"\n ATMOSPHERE: (59..60) \" \"\n ATMOSPHERE: (60..67) \"; => #f\"\n ATMOSPHERE: (67..68) \"\n\"\n FORM: (68..317)\n OPEN_PAREN: (68..69) \"(\"\n SYMBOL: (69..71)\n IDENTIFIER: (69..71) \"if\"\n ATMOSPHERE: (71..77) \" \n \"\n FORM: (77..83)\n OPEN_PAREN: (77..78) \"(\"\n SYMBOL: (78..80)\n IDENTIFIER: (78..80) \">=\"\n ATMOSPHERE: (80..81) \" \"\n CONSTANT: (81..82)\n NUMBER: (81..82) \"1\"\n CLOSE_PAREN: (82..83) \")\"\n ATMOSPHERE: (83..84) \" \"\n ATMOSPHERE: (84..91) \"; => #t\"\n ATMOSPHERE: (91..96) \"\n \"\n FORM: (96..295)\n OPEN_PAREN: (96..97) \"(\"\n SYMBOL: (97..98)\n IDENTIFIER: (97..98) \"+\"\n ATMOSPHERE: (98..107) \"\n \"\n FORM: (107..119)\n OPEN_PAREN: (107..108) \"(\"\n SYMBOL: (108..109)\n IDENTIFIER: (108..109) \"+\"\n ATMOSPHERE: (109..110) \" \"\n CONSTANT: (110..111)\n NUMBER: (110..111) \"1\"\n ATMOSPHERE: (111..112) \" \"\n CONSTANT: (112..113)\n NUMBER: (112..113) \"2\"\n ATMOSPHERE: (113..114) \" \"\n CONSTANT: (114..115)\n NUMBER: (114..115) \"4\"\n ATMOSPHERE: (115..116) \" \"\n CONSTANT: (116..118)\n NUMBER: (116..118) \"88\"\n CLOSE_PAREN: (118..119) \")\"\n ATMOSPHERE: (119..120) \" \"\n ATMOSPHERE: (120..127) \"; => 95\"\n ATMOSPHERE: (127..136) \"\n \"\n FORM: (136..145)\n OPEN_PAREN: (136..137) \"(\"\n SYMBOL: (137..138)\n IDENTIFIER: (137..138) \"-\"\n ATMOSPHERE: (138..139) \" \"\n CONSTANT: (139..140)\n NUMBER: (139..140) \"3\"\n ATMOSPHERE: (140..141) \" \"\n CONSTANT: (141..142)\n NUMBER: (141..142) \"4\"\n ATMOSPHERE: (142..143) \" \"\n CONSTANT: (143..144)\n NUMBER: (143..144) \"5\"\n CLOSE_PAREN: (144..145) \")\"\n ATMOSPHERE: (145..146) \" \"\n ATMOSPHERE: (146..153) \"; => -6\"\n ATMOSPHERE: (153..162) \"\n \"\n FORM: (162..167)\n OPEN_PAREN: (162..163) \"(\"\n SYMBOL: (163..164)\n IDENTIFIER: (163..164) \"-\"\n ATMOSPHERE: (164..165) \" \"\n CONSTANT: (165..166)\n NUMBER: (165..166) \"9\"\n CLOSE_PAREN: (166..167) \")\"\n ATMOSPHERE: (167..168) \" \"\n ATMOSPHERE: (168..175) \"; => -9\"\n ATMOSPHERE: (175..184) \"\n \"\n FORM: (184..187)\n OPEN_PAREN: (184..185) \"(\"\n SYMBOL: (185..186)\n IDENTIFIER: (185..186) \"/\"\n CLOSE_PAREN: (186..187) \")\"\n ATMOSPHERE: (187..188) \" \"\n ATMOSPHERE: (188..194) \"; => 1\"\n ATMOSPHERE: (194..203) \"\n \"\n FORM: (203..208)\n OPEN_PAREN: (203..204) \"(\"\n SYMBOL: (204..205)\n IDENTIFIER: (204..205) \"/\"\n ATMOSPHERE: (205..206) \" \"\n CONSTANT: (206..207)\n NUMBER: (206..207) \"2\"\n CLOSE_PAREN: (207..208) \")\"\n ATMOSPHERE: (208..209) \" \"\n ATMOSPHERE: (209..217) \"; => 0.5\"\n ATMOSPHERE: (217..226) \"\n \"\n FORM: (226..233)\n OPEN_PAREN: (226..227) \"(\"\n SYMBOL: (227..228)\n IDENTIFIER: (227..228) \"/\"\n ATMOSPHERE: (228..229) \" \"\n CONSTANT: (229..230)\n NUMBER: (229..230) \"5\"\n ATMOSPHERE: (230..231) \" \"\n CONSTANT: (231..232)\n NUMBER: (231..232) \"2\"\n CLOSE_PAREN: (232..233) \")\"\n ATMOSPHERE: (233..234) \" \"\n ATMOSPHERE: (234..242) \"; => 2.5\"\n ATMOSPHERE: (242..251) \"\n \"\n FORM: (251..258)\n OPEN_PAREN: (251..252) \"(\"\n SYMBOL: (252..253)\n IDENTIFIER: (252..253) \"*\"\n ATMOSPHERE: (253..254) \" \"\n CONSTANT: (254..255)\n NUMBER: (254..255) \"8\"\n ATMOSPHERE: (255..256) \" \"\n CONSTANT: (256..257)\n NUMBER: (256..257) \"5\"\n CLOSE_PAREN: (257..258) \")\"\n ATMOSPHERE: (258..259) \" \"\n ATMOSPHERE: (259..266) \"; => 40\"\n ATMOSPHERE: (266..275) \"\n \"\n FORM: (275..281)\n OPEN_PAREN: (275..276) \"(\"\n SYMBOL: (276..277)\n IDENTIFIER: (276..277) \"*\"\n ATMOSPHERE: (277..278) \" \"\n CONSTANT: (278..280)\n NUMBER: (278..280) \"76\"\n CLOSE_PAREN: (280..281) \")\"\n ATMOSPHERE: (281..282) \" \"\n ATMOSPHERE: (282..289) \"; => 76\"\n ATMOSPHERE: (289..294) \"\n \"\n CLOSE_PAREN: (294..295) \")\"\n ATMOSPHERE: (295..296) \" \"\n ATMOSPHERE: (296..304) \"; => 200\"\n ATMOSPHERE: (304..309) \"\n \"\n FORM: (309..316)\n OPEN_PAREN: (309..310) \"(\"\n SYMBOL: (310..311)\n IDENTIFIER: (310..311) \"*\"\n ATMOSPHERE: (311..312) \" \"\n CONSTANT: (312..313)\n NUMBER: (312..313) \"8\"\n ATMOSPHERE: (313..314) \" \"\n CONSTANT: (314..315)\n NUMBER: (314..315) \"9\"\n CLOSE_PAREN: (315..316) \")\"\n CLOSE_PAREN: (316..317) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_byte-vectors.scm.json b/test/Feersum.Tests/_snapshots/Parse_byte-vectors.scm.json
deleted file mode 100644
index 389fd55..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_byte-vectors.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..539)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..296)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..50)\n IDENTIFIER: (43..50) \"display\"\n ATMOSPHERE: (50..51) \" \"\n FORM: (51..295)\n OPEN_PAREN: (51..52) \"(\"\n SYMBOL: (52..56)\n IDENTIFIER: (52..56) \"list\"\n ATMOSPHERE: (56..63) \" \n\n \"\n ATMOSPHERE: (63..86) \";; byte vector literals\"\n ATMOSPHERE: (86..91) \"\n \"\n BYTEVEC: (91..96)\n OPEN_PAREN: (91..95) \"#u8(\"\n CLOSE_PAREN: (95..96) \")\"\n ATMOSPHERE: (96..101) \"\n \"\n BYTEVEC: (101..109)\n OPEN_PAREN: (101..105) \"#u8(\"\n CONSTANT: (105..108)\n NUMBER: (105..108) \"255\"\n CLOSE_PAREN: (108..109) \")\"\n ATMOSPHERE: (109..114) \"\n \"\n BYTEVEC: (114..126)\n OPEN_PAREN: (114..118) \"#u8(\"\n ATMOSPHERE: (118..119) \" \"\n CONSTANT: (119..120)\n NUMBER: (119..120) \"1\"\n ATMOSPHERE: (120..121) \" \"\n CONSTANT: (121..122)\n NUMBER: (121..122) \"2\"\n ATMOSPHERE: (122..123) \" \"\n CONSTANT: (123..124)\n NUMBER: (123..124) \"3\"\n ATMOSPHERE: (124..125) \" \"\n CLOSE_PAREN: (125..126) \")\"\n ATMOSPHERE: (126..132) \"\n\n \"\n FORM: (132..151)\n OPEN_PAREN: (132..133) \"(\"\n SYMBOL: (133..144)\n IDENTIFIER: (133..144) \"bytevector?\"\n ATMOSPHERE: (144..145) \" \"\n BYTEVEC: (145..150)\n OPEN_PAREN: (145..149) \"#u8(\"\n CLOSE_PAREN: (149..150) \")\"\n CLOSE_PAREN: (150..151) \")\"\n ATMOSPHERE: (151..156) \"\n \"\n FORM: (156..186)\n OPEN_PAREN: (156..157) \"(\"\n SYMBOL: (157..168)\n IDENTIFIER: (157..168) \"bytevector?\"\n ATMOSPHERE: (168..169) \" \"\n BYTEVEC: (169..185)\n OPEN_PAREN: (169..173) \"#u8(\"\n CONSTANT: (173..176)\n NUMBER: (173..176) \"128\"\n ATMOSPHERE: (176..177) \" \"\n CONSTANT: (177..180)\n NUMBER: (177..180) \"254\"\n ATMOSPHERE: (180..181) \" \"\n CONSTANT: (181..184)\n NUMBER: (181..184) \"255\"\n CLOSE_PAREN: (184..185) \")\"\n CLOSE_PAREN: (185..186) \")\"\n ATMOSPHERE: (186..192) \"\n\n \"\n ATMOSPHERE: (192..218) \";; byte vector constructor\"\n ATMOSPHERE: (218..223) \"\n \"\n FORM: (223..235)\n OPEN_PAREN: (223..224) \"(\"\n SYMBOL: (224..234)\n IDENTIFIER: (224..234) \"bytevector\"\n CLOSE_PAREN: (234..235) \")\"\n ATMOSPHERE: (235..240) \"\n \"\n FORM: (240..260)\n OPEN_PAREN: (240..241) \"(\"\n SYMBOL: (241..251)\n IDENTIFIER: (241..251) \"bytevector\"\n ATMOSPHERE: (251..252) \" \"\n CONSTANT: (252..253)\n NUMBER: (252..253) \"1\"\n ATMOSPHERE: (253..254) \" \"\n CONSTANT: (254..255)\n NUMBER: (254..255) \"2\"\n ATMOSPHERE: (255..256) \" \"\n CONSTANT: (256..257)\n NUMBER: (256..257) \"4\"\n ATMOSPHERE: (257..258) \" \"\n CONSTANT: (258..259)\n NUMBER: (258..259) \"5\"\n CLOSE_PAREN: (259..260) \")\"\n ATMOSPHERE: (260..265) \"\n \"\n FORM: (265..288)\n OPEN_PAREN: (265..266) \"(\"\n SYMBOL: (266..281)\n IDENTIFIER: (266..281) \"make-bytevector\"\n ATMOSPHERE: (281..282) \" \"\n CONSTANT: (282..284)\n NUMBER: (282..284) \"10\"\n ATMOSPHERE: (284..285) \" \"\n CONSTANT: (285..287)\n NUMBER: (285..287) \"90\"\n CLOSE_PAREN: (287..288) \")\"\n ATMOSPHERE: (288..294) \"\n\n \"\n CLOSE_PAREN: (294..295) \")\"\n CLOSE_PAREN: (295..296) \")\"\n FORM: (296..305)\n OPEN_PAREN: (296..297) \"(\"\n SYMBOL: (297..304)\n IDENTIFIER: (297..304) \"newline\"\n CLOSE_PAREN: (304..305) \")\"\n ATMOSPHERE: (305..307) \"\n\n\"\n FORM: (307..342)\n OPEN_PAREN: (307..308) \"(\"\n SYMBOL: (308..314)\n IDENTIFIER: (308..314) \"define\"\n ATMOSPHERE: (314..315) \" \"\n SYMBOL: (315..326)\n IDENTIFIER: (315..326) \"test-vector\"\n ATMOSPHERE: (326..327) \" \"\n BYTEVEC: (327..341)\n OPEN_PAREN: (327..331) \"#u8(\"\n CONSTANT: (331..332)\n NUMBER: (331..332) \"1\"\n ATMOSPHERE: (332..333) \" \"\n CONSTANT: (333..334)\n NUMBER: (333..334) \"2\"\n ATMOSPHERE: (334..335) \" \"\n CONSTANT: (335..336)\n NUMBER: (335..336) \"3\"\n ATMOSPHERE: (336..337) \" \"\n CONSTANT: (337..338)\n NUMBER: (337..338) \"4\"\n ATMOSPHERE: (338..339) \" \"\n CONSTANT: (339..340)\n NUMBER: (339..340) \"5\"\n CLOSE_PAREN: (340..341) \")\"\n CLOSE_PAREN: (341..342) \")\"\n ATMOSPHERE: (342..343) \"\n\"\n FORM: (343..384)\n OPEN_PAREN: (343..344) \"(\"\n SYMBOL: (344..351)\n IDENTIFIER: (344..351) \"display\"\n ATMOSPHERE: (351..352) \" \"\n FORM: (352..383)\n OPEN_PAREN: (352..353) \"(\"\n SYMBOL: (353..370)\n IDENTIFIER: (353..370) \"bytevector-length\"\n ATMOSPHERE: (370..371) \" \"\n SYMBOL: (371..382)\n IDENTIFIER: (371..382) \"test-vector\"\n CLOSE_PAREN: (382..383) \")\"\n CLOSE_PAREN: (383..384) \")\"\n FORM: (384..393)\n OPEN_PAREN: (384..385) \"(\"\n SYMBOL: (385..392)\n IDENTIFIER: (385..392) \"newline\"\n CLOSE_PAREN: (392..393) \")\"\n ATMOSPHERE: (393..394) \"\n\"\n FORM: (394..437)\n OPEN_PAREN: (394..395) \"(\"\n SYMBOL: (395..402)\n IDENTIFIER: (395..402) \"display\"\n ATMOSPHERE: (402..403) \" \"\n FORM: (403..436)\n OPEN_PAREN: (403..404) \"(\"\n SYMBOL: (404..421)\n IDENTIFIER: (404..421) \"bytevector-u8-ref\"\n ATMOSPHERE: (421..422) \" \"\n SYMBOL: (422..433)\n IDENTIFIER: (422..433) \"test-vector\"\n ATMOSPHERE: (433..434) \" \"\n CONSTANT: (434..435)\n NUMBER: (434..435) \"3\"\n CLOSE_PAREN: (435..436) \")\"\n CLOSE_PAREN: (436..437) \")\"\n FORM: (437..446)\n OPEN_PAREN: (437..438) \"(\"\n SYMBOL: (438..445)\n IDENTIFIER: (438..445) \"newline\"\n CLOSE_PAREN: (445..446) \")\"\n ATMOSPHERE: (446..447) \"\n\"\n FORM: (447..485)\n OPEN_PAREN: (447..448) \"(\"\n SYMBOL: (448..466)\n IDENTIFIER: (448..466) \"bytevector-u8-set!\"\n ATMOSPHERE: (466..467) \" \"\n SYMBOL: (467..478)\n IDENTIFIER: (467..478) \"test-vector\"\n ATMOSPHERE: (478..479) \" \"\n CONSTANT: (479..480)\n NUMBER: (479..480) \"3\"\n ATMOSPHERE: (480..481) \" \"\n CONSTANT: (481..484)\n NUMBER: (481..484) \"101\"\n CLOSE_PAREN: (484..485) \")\"\n ATMOSPHERE: (485..486) \"\n\"\n FORM: (486..529)\n OPEN_PAREN: (486..487) \"(\"\n SYMBOL: (487..494)\n IDENTIFIER: (487..494) \"display\"\n ATMOSPHERE: (494..495) \" \"\n FORM: (495..528)\n OPEN_PAREN: (495..496) \"(\"\n SYMBOL: (496..513)\n IDENTIFIER: (496..513) \"bytevector-u8-ref\"\n ATMOSPHERE: (513..514) \" \"\n SYMBOL: (514..525)\n IDENTIFIER: (514..525) \"test-vector\"\n ATMOSPHERE: (525..526) \" \"\n CONSTANT: (526..527)\n NUMBER: (526..527) \"3\"\n CLOSE_PAREN: (527..528) \")\"\n CLOSE_PAREN: (528..529) \")\"\n FORM: (529..538)\n OPEN_PAREN: (529..530) \"(\"\n SYMBOL: (530..537)\n IDENTIFIER: (530..537) \"newline\"\n CLOSE_PAREN: (537..538) \")\"\n ATMOSPHERE: (538..539) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_capturetest.scm.json b/test/Feersum.Tests/_snapshots/Parse_capturetest.scm.json
deleted file mode 100644
index ee0f373..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_capturetest.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..208)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..84)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..50)\n IDENTIFIER: (43..50) \"display\"\n ATMOSPHERE: (50..51) \" \"\n FORM: (51..83)\n OPEN_PAREN: (51..52) \"(\"\n FORM: (52..82)\n OPEN_PAREN: (52..53) \"(\"\n FORM: (53..77)\n OPEN_PAREN: (53..54) \"(\"\n SYMBOL: (54..60)\n IDENTIFIER: (54..60) \"lambda\"\n ATMOSPHERE: (60..61) \" \"\n SYMBOL: (61..62)\n IDENTIFIER: (61..62) \"a\"\n ATMOSPHERE: (62..63) \" \"\n FORM: (63..76)\n OPEN_PAREN: (63..64) \"(\"\n SYMBOL: (64..70)\n IDENTIFIER: (64..70) \"lambda\"\n ATMOSPHERE: (70..71) \" \"\n FORM: (71..73)\n OPEN_PAREN: (71..72) \"(\"\n CLOSE_PAREN: (72..73) \")\"\n ATMOSPHERE: (73..74) \" \"\n SYMBOL: (74..75)\n IDENTIFIER: (74..75) \"a\"\n CLOSE_PAREN: (75..76) \")\"\n CLOSE_PAREN: (76..77) \")\"\n ATMOSPHERE: (77..78) \" \"\n CONSTANT: (78..81)\n NUMBER: (78..81) \"123\"\n CLOSE_PAREN: (81..82) \")\"\n CLOSE_PAREN: (82..83) \")\"\n CLOSE_PAREN: (83..84) \")\"\n ATMOSPHERE: (84..85) \"\n\"\n FORM: (85..140)\n OPEN_PAREN: (85..86) \"(\"\n SYMBOL: (86..93)\n IDENTIFIER: (86..93) \"display\"\n ATMOSPHERE: (93..94) \" \"\n FORM: (94..139)\n OPEN_PAREN: (94..95) \"(\"\n FORM: (95..138)\n OPEN_PAREN: (95..96) \"(\"\n SYMBOL: (96..102)\n IDENTIFIER: (96..102) \"lambda\"\n ATMOSPHERE: (102..103) \" \"\n FORM: (103..105)\n OPEN_PAREN: (103..104) \"(\"\n CLOSE_PAREN: (104..105) \")\"\n ATMOSPHERE: (105..106) \" \"\n FORM: (106..120)\n OPEN_PAREN: (106..107) \"(\"\n SYMBOL: (107..113)\n IDENTIFIER: (107..113) \"define\"\n ATMOSPHERE: (113..114) \" \"\n SYMBOL: (114..115)\n IDENTIFIER: (114..115) \"a\"\n ATMOSPHERE: (115..116) \" \"\n CONSTANT: (116..119)\n NUMBER: (116..119) \"100\"\n CLOSE_PAREN: (119..120) \")\"\n ATMOSPHERE: (120..121) \" \"\n FORM: (121..135)\n OPEN_PAREN: (121..122) \"(\"\n SYMBOL: (122..128)\n IDENTIFIER: (122..128) \"define\"\n ATMOSPHERE: (128..129) \" \"\n FORM: (129..132)\n OPEN_PAREN: (129..130) \"(\"\n SYMBOL: (130..131)\n IDENTIFIER: (130..131) \"b\"\n CLOSE_PAREN: (131..132) \")\"\n ATMOSPHERE: (132..133) \" \"\n SYMBOL: (133..134)\n IDENTIFIER: (133..134) \"a\"\n CLOSE_PAREN: (134..135) \")\"\n ATMOSPHERE: (135..136) \" \"\n SYMBOL: (136..137)\n IDENTIFIER: (136..137) \"a\"\n CLOSE_PAREN: (137..138) \")\"\n CLOSE_PAREN: (138..139) \")\"\n CLOSE_PAREN: (139..140) \")\"\n ATMOSPHERE: (140..141) \"\n\"\n FORM: (141..208)\n OPEN_PAREN: (141..142) \"(\"\n FORM: (142..202)\n OPEN_PAREN: (142..143) \"(\"\n FORM: (143..189)\n OPEN_PAREN: (143..144) \"(\"\n SYMBOL: (144..150)\n IDENTIFIER: (144..150) \"lambda\"\n ATMOSPHERE: (150..151) \" \"\n FORM: (151..154)\n OPEN_PAREN: (151..152) \"(\"\n SYMBOL: (152..153)\n IDENTIFIER: (152..153) \"a\"\n CLOSE_PAREN: (153..154) \")\"\n ATMOSPHERE: (154..159) \"\n \"\n FORM: (159..188)\n OPEN_PAREN: (159..160) \"(\"\n SYMBOL: (160..166)\n IDENTIFIER: (160..166) \"lambda\"\n ATMOSPHERE: (166..167) \" \"\n FORM: (167..170)\n OPEN_PAREN: (167..168) \"(\"\n SYMBOL: (168..169)\n IDENTIFIER: (168..169) \"b\"\n CLOSE_PAREN: (169..170) \")\"\n ATMOSPHERE: (170..180) \" \n \"\n FORM: (180..187)\n OPEN_PAREN: (180..181) \"(\"\n SYMBOL: (181..182)\n IDENTIFIER: (181..182) \"=\"\n ATMOSPHERE: (182..183) \" \"\n SYMBOL: (183..184)\n IDENTIFIER: (183..184) \"a\"\n ATMOSPHERE: (184..185) \" \"\n SYMBOL: (185..186)\n IDENTIFIER: (185..186) \"b\"\n CLOSE_PAREN: (186..187) \")\"\n CLOSE_PAREN: (187..188) \")\"\n CLOSE_PAREN: (188..189) \")\"\n ATMOSPHERE: (189..192) \"\n \"\n FORM: (192..201)\n OPEN_PAREN: (192..193) \"(\"\n SYMBOL: (193..194)\n IDENTIFIER: (193..194) \"*\"\n ATMOSPHERE: (194..195) \" \"\n CONSTANT: (195..196)\n NUMBER: (195..196) \"2\"\n ATMOSPHERE: (196..197) \" \"\n CONSTANT: (197..200)\n NUMBER: (197..200) \"123\"\n CLOSE_PAREN: (200..201) \")\"\n CLOSE_PAREN: (201..202) \")\"\n ATMOSPHERE: (202..204) \"\n \"\n CONSTANT: (204..207)\n NUMBER: (204..207) \"246\"\n CLOSE_PAREN: (207..208) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_characters.scm.json b/test/Feersum.Tests/_snapshots/Parse_characters.scm.json
deleted file mode 100644
index b6b2bfe..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_characters.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..5347)\n FORM: (0..211)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n ATMOSPHERE: (26..93) \";; FIXME: we shouldn't _need_ to import this, but we have no way of\"\n ATMOSPHERE: (93..98) \"\n \"\n ATMOSPHERE: (98..162) \";; exporting or re-exporting macro definitions currently.\"\n ATMOSPHERE: (162..167) \"\n \"\n FORM: (167..191)\n OPEN_PAREN: (167..168) \"(\"\n SYMBOL: (168..175)\n IDENTIFIER: (168..175) \"feersum\"\n ATMOSPHERE: (175..176) \" \"\n SYMBOL: (176..183)\n IDENTIFIER: (176..183) \"builtin\"\n ATMOSPHERE: (183..184) \" \"\n SYMBOL: (184..190)\n IDENTIFIER: (184..190) \"macros\"\n CLOSE_PAREN: (190..191) \")\"\n ATMOSPHERE: (191..196) \"\n \"\n FORM: (196..210)\n OPEN_PAREN: (196..197) \"(\"\n SYMBOL: (197..203)\n IDENTIFIER: (197..203) \"scheme\"\n ATMOSPHERE: (203..204) \" \"\n SYMBOL: (204..209)\n IDENTIFIER: (204..209) \"write\"\n CLOSE_PAREN: (209..210) \")\"\n CLOSE_PAREN: (210..211) \")\"\n ATMOSPHERE: (211..213) \"\n\n\"\n FORM: (213..799)\n OPEN_PAREN: (213..214) \"(\"\n SYMBOL: (214..221)\n IDENTIFIER: (214..221) \"display\"\n ATMOSPHERE: (221..222) \" \"\n FORM: (222..798)\n OPEN_PAREN: (222..223) \"(\"\n SYMBOL: (223..232)\n IDENTIFIER: (223..232) \"boolean=?\"\n ATMOSPHERE: (232..237) \"\n \"\n CONSTANT: (237..239)\n BOOLEAN: (237..239) \"#t\"\n ATMOSPHERE: (239..249) \"\n \n \"\n FORM: (249..278)\n OPEN_PAREN: (249..250) \"(\"\n SYMBOL: (250..256)\n IDENTIFIER: (250..256) \"equal?\"\n ATMOSPHERE: (256..257) \" \"\n CONSTANT: (257..264)\n CHARACTER: (257..264) \"#\\alarm\"\n ATMOSPHERE: (264..270) \" \"\n CONSTANT: (270..277)\n CHARACTER: (270..277) \"#\\x0007\"\n CLOSE_PAREN: (277..278) \")\"\n ATMOSPHERE: (278..280) \" \"\n ATMOSPHERE: (280..288) \"; U+0007\"\n ATMOSPHERE: (288..293) \"\n \"\n FORM: (293..322)\n OPEN_PAREN: (293..294) \"(\"\n SYMBOL: (294..300)\n IDENTIFIER: (294..300) \"equal?\"\n ATMOSPHERE: (300..301) \" \"\n CONSTANT: (301..312)\n CHARACTER: (301..312) \"#\\backspace\"\n ATMOSPHERE: (312..314) \" \"\n CONSTANT: (314..321)\n CHARACTER: (314..321) \"#\\x0008\"\n CLOSE_PAREN: (321..322) \")\"\n ATMOSPHERE: (322..324) \" \"\n ATMOSPHERE: (324..332) \"; U+0008\"\n ATMOSPHERE: (332..337) \"\n \"\n FORM: (337..366)\n OPEN_PAREN: (337..338) \"(\"\n SYMBOL: (338..344)\n IDENTIFIER: (338..344) \"equal?\"\n ATMOSPHERE: (344..345) \" \"\n CONSTANT: (345..353)\n CHARACTER: (345..353) \"#\\delete\"\n ATMOSPHERE: (353..358) \" \"\n CONSTANT: (358..365)\n CHARACTER: (358..365) \"#\\x007F\"\n CLOSE_PAREN: (365..366) \")\"\n ATMOSPHERE: (366..368) \" \"\n ATMOSPHERE: (368..376) \"; U+007F\"\n ATMOSPHERE: (376..381) \"\n \"\n FORM: (381..410)\n OPEN_PAREN: (381..382) \"(\"\n SYMBOL: (382..388)\n IDENTIFIER: (382..388) \"equal?\"\n ATMOSPHERE: (388..389) \" \"\n CONSTANT: (389..397)\n CHARACTER: (389..397) \"#\\escape\"\n ATMOSPHERE: (397..402) \" \"\n CONSTANT: (402..409)\n CHARACTER: (402..409) \"#\\x001B\"\n CLOSE_PAREN: (409..410) \")\"\n ATMOSPHERE: (410..412) \" \"\n ATMOSPHERE: (412..420) \"; U+001B\"\n ATMOSPHERE: (420..425) \"\n \"\n FORM: (425..454)\n OPEN_PAREN: (425..426) \"(\"\n SYMBOL: (426..432)\n IDENTIFIER: (426..432) \"equal?\"\n ATMOSPHERE: (432..433) \" \"\n CONSTANT: (433..442)\n CHARACTER: (433..442) \"#\\newline\"\n ATMOSPHERE: (442..446) \" \"\n CONSTANT: (446..453)\n CHARACTER: (446..453) \"#\\x000A\"\n CLOSE_PAREN: (453..454) \")\"\n ATMOSPHERE: (454..456) \" \"\n ATMOSPHERE: (456..488) \"; the linefeed character, U+000A\"\n ATMOSPHERE: (488..493) \"\n \"\n FORM: (493..522)\n OPEN_PAREN: (493..494) \"(\"\n SYMBOL: (494..500)\n IDENTIFIER: (494..500) \"equal?\"\n ATMOSPHERE: (500..501) \" \"\n CONSTANT: (501..507)\n CHARACTER: (501..507) \"#\\null\"\n ATMOSPHERE: (507..514) \" \"\n CONSTANT: (514..521)\n CHARACTER: (514..521) \"#\\x0000\"\n CLOSE_PAREN: (521..522) \")\"\n ATMOSPHERE: (522..524) \" \"\n ATMOSPHERE: (524..552) \"; the null character, U+0000\"\n ATMOSPHERE: (552..557) \"\n \"\n FORM: (557..586)\n OPEN_PAREN: (557..558) \"(\"\n SYMBOL: (558..564)\n IDENTIFIER: (558..564) \"equal?\"\n ATMOSPHERE: (564..565) \" \"\n CONSTANT: (565..573)\n CHARACTER: (565..573) \"#\\return\"\n ATMOSPHERE: (573..578) \" \"\n CONSTANT: (578..585)\n CHARACTER: (578..585) \"#\\x000D\"\n CLOSE_PAREN: (585..586) \")\"\n ATMOSPHERE: (586..588) \" \"\n ATMOSPHERE: (588..618) \"; the return character, U+000D\"\n ATMOSPHERE: (618..623) \"\n \"\n FORM: (623..652)\n OPEN_PAREN: (623..624) \"(\"\n SYMBOL: (624..630)\n IDENTIFIER: (624..630) \"equal?\"\n ATMOSPHERE: (630..631) \" \"\n CONSTANT: (631..638)\n CHARACTER: (631..638) \"#\\space\"\n ATMOSPHERE: (638..644) \" \"\n CONSTANT: (644..647)\n CHARACTER: (644..647) \"#\\ \"\n ATMOSPHERE: (647..651) \" \"\n CLOSE_PAREN: (651..652) \")\"\n ATMOSPHERE: (652..654) \" \"\n ATMOSPHERE: (654..690) \"; the preferred way to write a space\"\n ATMOSPHERE: (690..695) \"\n \"\n FORM: (695..724)\n OPEN_PAREN: (695..696) \"(\"\n SYMBOL: (696..702)\n IDENTIFIER: (696..702) \"equal?\"\n ATMOSPHERE: (702..703) \" \"\n CONSTANT: (703..708)\n CHARACTER: (703..708) \"#\\tab\"\n ATMOSPHERE: (708..716) \" \"\n CONSTANT: (716..723)\n CHARACTER: (716..723) \"#\\x0009\"\n CLOSE_PAREN: (723..724) \")\"\n ATMOSPHERE: (724..726) \" \"\n ATMOSPHERE: (726..753) \"; the tab character, U+0009\"\n ATMOSPHERE: (753..758) \"\n \"\n FORM: (758..787)\n OPEN_PAREN: (758..759) \"(\"\n SYMBOL: (759..765)\n IDENTIFIER: (759..765) \"equal?\"\n ATMOSPHERE: (765..766) \" \"\n CONSTANT: (766..773)\n CHARACTER: (766..773) \"#\\x03BB\"\n ATMOSPHERE: (773..779) \" \"\n CONSTANT: (779..782)\n CHARACTER: (779..782) \"#\\λ\"\n ATMOSPHERE: (782..786) \" \"\n CLOSE_PAREN: (786..787) \")\"\n ATMOSPHERE: (787..789) \" \"\n ATMOSPHERE: (789..792) \"; λ\"\n ATMOSPHERE: (792..797) \"\n \"\n CLOSE_PAREN: (797..798) \")\"\n CLOSE_PAREN: (798..799) \")\"\n FORM: (799..808)\n OPEN_PAREN: (799..800) \"(\"\n SYMBOL: (800..807)\n IDENTIFIER: (800..807) \"newline\"\n CLOSE_PAREN: (807..808) \")\"\n ATMOSPHERE: (808..810) \"\n\n\"\n ATMOSPHERE: (810..840) \";; Simple character operations\"\n ATMOSPHERE: (840..841) \"\n\"\n FORM: (841..1660)\n OPEN_PAREN: (841..842) \"(\"\n SYMBOL: (842..849)\n IDENTIFIER: (842..849) \"display\"\n ATMOSPHERE: (849..850) \" \"\n FORM: (850..1659)\n OPEN_PAREN: (850..851) \"(\"\n SYMBOL: (851..855)\n IDENTIFIER: (851..855) \"list\"\n ATMOSPHERE: (855..860) \"\n \"\n FORM: (860..875)\n OPEN_PAREN: (860..861) \"(\"\n SYMBOL: (861..866)\n IDENTIFIER: (861..866) \"char?\"\n ATMOSPHERE: (866..867) \" \"\n CONSTANT: (867..874)\n CHARACTER: (867..874) \"#\\space\"\n CLOSE_PAREN: (874..875) \")\"\n ATMOSPHERE: (875..880) \"\n \"\n FORM: (880..893)\n OPEN_PAREN: (880..881) \"(\"\n SYMBOL: (881..886)\n IDENTIFIER: (881..886) \"char?\"\n ATMOSPHERE: (886..887) \" \"\n CONSTANT: (887..892)\n CHARACTER: (887..892) \"#\\tab\"\n CLOSE_PAREN: (892..893) \")\"\n ATMOSPHERE: (893..898) \"\n \"\n FORM: (898..912)\n OPEN_PAREN: (898..899) \"(\"\n SYMBOL: (899..904)\n IDENTIFIER: (899..904) \"char?\"\n ATMOSPHERE: (904..905) \" \"\n CONSTANT: (905..911)\n CHARACTER: (905..911) \"#\\null\"\n CLOSE_PAREN: (911..912) \")\"\n ATMOSPHERE: (912..917) \"\n \"\n FORM: (917..928)\n OPEN_PAREN: (917..918) \"(\"\n SYMBOL: (918..923)\n IDENTIFIER: (918..923) \"char?\"\n ATMOSPHERE: (923..924) \" \"\n CONSTANT: (924..927)\n NUMBER: (924..927) \"101\"\n CLOSE_PAREN: (927..928) \")\"\n ATMOSPHERE: (928..933) \"\n \"\n FORM: (933..943)\n OPEN_PAREN: (933..934) \"(\"\n SYMBOL: (934..939)\n IDENTIFIER: (934..939) \"char?\"\n ATMOSPHERE: (939..940) \" \"\n CONSTANT: (940..942)\n NUMBER: (940..942) \"00\"\n CLOSE_PAREN: (942..943) \")\"\n ATMOSPHERE: (943..953) \"\n \n \"\n FORM: (953..1241)\n OPEN_PAREN: (953..954) \"(\"\n SYMBOL: (954..963)\n IDENTIFIER: (954..963) \"boolean=?\"\n ATMOSPHERE: (963..972) \"\n \"\n CONSTANT: (972..974)\n BOOLEAN: (972..974) \"#t\"\n ATMOSPHERE: (974..988) \"\n \n \"\n FORM: (988..1021)\n OPEN_PAREN: (988..989) \"(\"\n SYMBOL: (989..995)\n IDENTIFIER: (989..995) \"equal?\"\n ATMOSPHERE: (995..996) \" \"\n FORM: (996..1013)\n OPEN_PAREN: (996..997) \"(\"\n SYMBOL: (997..1008)\n IDENTIFIER: (997..1008) \"digit-value\"\n ATMOSPHERE: (1008..1009) \" \"\n CONSTANT: (1009..1012)\n CHARACTER: (1009..1012) \"#\\3\"\n CLOSE_PAREN: (1012..1013) \")\"\n ATMOSPHERE: (1013..1019) \" \"\n CONSTANT: (1019..1020)\n NUMBER: (1019..1020) \"3\"\n CLOSE_PAREN: (1020..1021) \")\"\n ATMOSPHERE: (1021..1030) \"\n \"\n FORM: (1030..1063)\n OPEN_PAREN: (1030..1031) \"(\"\n SYMBOL: (1031..1037)\n IDENTIFIER: (1031..1037) \"equal?\"\n ATMOSPHERE: (1037..1038) \" \"\n FORM: (1038..1059)\n OPEN_PAREN: (1038..1039) \"(\"\n SYMBOL: (1039..1050)\n IDENTIFIER: (1039..1050) \"digit-value\"\n ATMOSPHERE: (1050..1051) \" \"\n CONSTANT: (1051..1058)\n CHARACTER: (1051..1058) \"#\\x0664\"\n CLOSE_PAREN: (1058..1059) \")\"\n ATMOSPHERE: (1059..1061) \" \"\n CONSTANT: (1061..1062)\n NUMBER: (1061..1062) \"4\"\n CLOSE_PAREN: (1062..1063) \")\"\n ATMOSPHERE: (1063..1072) \"\n \"\n FORM: (1072..1105)\n OPEN_PAREN: (1072..1073) \"(\"\n SYMBOL: (1073..1079)\n IDENTIFIER: (1073..1079) \"equal?\"\n ATMOSPHERE: (1079..1080) \" \"\n FORM: (1080..1101)\n OPEN_PAREN: (1080..1081) \"(\"\n SYMBOL: (1081..1092)\n IDENTIFIER: (1081..1092) \"digit-value\"\n ATMOSPHERE: (1092..1093) \" \"\n CONSTANT: (1093..1100)\n CHARACTER: (1093..1100) \"#\\x0AE6\"\n CLOSE_PAREN: (1100..1101) \")\"\n ATMOSPHERE: (1101..1103) \" \"\n CONSTANT: (1103..1104)\n NUMBER: (1103..1104) \"0\"\n CLOSE_PAREN: (1104..1105) \")\"\n ATMOSPHERE: (1105..1114) \"\n \"\n FORM: (1114..1147)\n OPEN_PAREN: (1114..1115) \"(\"\n SYMBOL: (1115..1121)\n IDENTIFIER: (1115..1121) \"equal?\"\n ATMOSPHERE: (1121..1122) \" \"\n FORM: (1122..1143)\n OPEN_PAREN: (1122..1123) \"(\"\n SYMBOL: (1123..1134)\n IDENTIFIER: (1123..1134) \"digit-value\"\n ATMOSPHERE: (1134..1135) \" \"\n CONSTANT: (1135..1142)\n CHARACTER: (1135..1142) \"#\\x0EA6\"\n CLOSE_PAREN: (1142..1143) \")\"\n ATMOSPHERE: (1143..1144) \" \"\n CONSTANT: (1144..1146)\n BOOLEAN: (1144..1146) \"#f\"\n CLOSE_PAREN: (1146..1147) \")\"\n ATMOSPHERE: (1147..1156) \"\n \"\n FORM: (1156..1189)\n OPEN_PAREN: (1156..1157) \"(\"\n SYMBOL: (1157..1163)\n IDENTIFIER: (1157..1163) \"equal?\"\n ATMOSPHERE: (1163..1164) \" \"\n FORM: (1164..1181)\n OPEN_PAREN: (1164..1165) \"(\"\n SYMBOL: (1165..1176)\n IDENTIFIER: (1165..1176) \"digit-value\"\n ATMOSPHERE: (1176..1177) \" \"\n CONSTANT: (1177..1180)\n CHARACTER: (1177..1180) \"#\\১\"\n CLOSE_PAREN: (1180..1181) \")\"\n ATMOSPHERE: (1181..1187) \" \"\n CONSTANT: (1187..1188)\n NUMBER: (1187..1188) \"1\"\n CLOSE_PAREN: (1188..1189) \")\"\n ATMOSPHERE: (1189..1198) \"\n \"\n FORM: (1198..1231)\n OPEN_PAREN: (1198..1199) \"(\"\n SYMBOL: (1199..1205)\n IDENTIFIER: (1199..1205) \"equal?\"\n ATMOSPHERE: (1205..1206) \" \"\n FORM: (1206..1223)\n OPEN_PAREN: (1206..1207) \"(\"\n SYMBOL: (1207..1218)\n IDENTIFIER: (1207..1218) \"digit-value\"\n ATMOSPHERE: (1218..1219) \" \"\n CONSTANT: (1219..1222)\n CHARACTER: (1219..1222) \"#\\५\"\n CLOSE_PAREN: (1222..1223) \")\"\n ATMOSPHERE: (1223..1229) \" \"\n CONSTANT: (1229..1230)\n NUMBER: (1229..1230) \"5\"\n CLOSE_PAREN: (1230..1231) \")\"\n ATMOSPHERE: (1231..1240) \"\n \"\n CLOSE_PAREN: (1240..1241) \")\"\n ATMOSPHERE: (1241..1247) \"\n\n \"\n FORM: (1247..1653)\n OPEN_PAREN: (1247..1248) \"(\"\n SYMBOL: (1248..1257)\n IDENTIFIER: (1248..1257) \"boolean=?\"\n ATMOSPHERE: (1257..1266) \"\n \"\n CONSTANT: (1266..1268)\n BOOLEAN: (1266..1268) \"#t\"\n ATMOSPHERE: (1268..1278) \"\n\n \"\n FORM: (1278..1313)\n OPEN_PAREN: (1278..1279) \"(\"\n SYMBOL: (1279..1285)\n IDENTIFIER: (1279..1285) \"equal?\"\n ATMOSPHERE: (1285..1286) \" \"\n FORM: (1286..1309)\n OPEN_PAREN: (1286..1287) \"(\"\n SYMBOL: (1287..1300)\n IDENTIFIER: (1287..1300) \"char->integer\"\n ATMOSPHERE: (1300..1301) \" \"\n CONSTANT: (1301..1308)\n CHARACTER: (1301..1308) \"#\\space\"\n CLOSE_PAREN: (1308..1309) \")\"\n ATMOSPHERE: (1309..1310) \" \"\n CONSTANT: (1310..1312)\n NUMBER: (1310..1312) \"32\"\n CLOSE_PAREN: (1312..1313) \")\"\n ATMOSPHERE: (1313..1322) \"\n \"\n FORM: (1322..1355)\n OPEN_PAREN: (1322..1323) \"(\"\n SYMBOL: (1323..1329)\n IDENTIFIER: (1323..1329) \"equal?\"\n ATMOSPHERE: (1329..1330) \" \"\n FORM: (1330..1352)\n OPEN_PAREN: (1330..1331) \"(\"\n SYMBOL: (1331..1344)\n IDENTIFIER: (1331..1344) \"char->integer\"\n ATMOSPHERE: (1344..1345) \" \"\n CONSTANT: (1345..1351)\n CHARACTER: (1345..1351) \"#\\null\"\n CLOSE_PAREN: (1351..1352) \")\"\n ATMOSPHERE: (1352..1353) \" \"\n CONSTANT: (1353..1354)\n NUMBER: (1353..1354) \"0\"\n CLOSE_PAREN: (1354..1355) \")\"\n ATMOSPHERE: (1355..1364) \"\n \"\n FORM: (1364..1401)\n OPEN_PAREN: (1364..1365) \"(\"\n SYMBOL: (1365..1371)\n IDENTIFIER: (1365..1371) \"equal?\"\n ATMOSPHERE: (1371..1372) \" \"\n FORM: (1372..1395)\n OPEN_PAREN: (1372..1373) \"(\"\n SYMBOL: (1373..1386)\n IDENTIFIER: (1373..1386) \"char->integer\"\n ATMOSPHERE: (1386..1387) \" \"\n CONSTANT: (1387..1394)\n CHARACTER: (1387..1394) \"#\\x0EA6\"\n CLOSE_PAREN: (1394..1395) \")\"\n ATMOSPHERE: (1395..1396) \" \"\n CONSTANT: (1396..1400)\n NUMBER: (1396..1400) \"3750\"\n CLOSE_PAREN: (1400..1401) \")\"\n ATMOSPHERE: (1401..1410) \"\n \"\n FORM: (1410..1441)\n OPEN_PAREN: (1410..1411) \"(\"\n SYMBOL: (1411..1417)\n IDENTIFIER: (1411..1417) \"equal?\"\n ATMOSPHERE: (1417..1418) \" \"\n FORM: (1418..1436)\n OPEN_PAREN: (1418..1419) \"(\"\n SYMBOL: (1419..1432)\n IDENTIFIER: (1419..1432) \"integer->char\"\n ATMOSPHERE: (1432..1433) \" \"\n CONSTANT: (1433..1435)\n NUMBER: (1433..1435) \"38\"\n CLOSE_PAREN: (1435..1436) \")\"\n ATMOSPHERE: (1436..1437) \" \"\n CONSTANT: (1437..1440)\n CHARACTER: (1437..1440) \"#\\&\"\n CLOSE_PAREN: (1440..1441) \")\"\n ATMOSPHERE: (1441..1450) \"\n \"\n FORM: (1450..1484)\n OPEN_PAREN: (1450..1451) \"(\"\n SYMBOL: (1451..1457)\n IDENTIFIER: (1451..1457) \"equal?\"\n ATMOSPHERE: (1457..1458) \" \"\n FORM: (1458..1475)\n OPEN_PAREN: (1458..1459) \"(\"\n SYMBOL: (1459..1472)\n IDENTIFIER: (1459..1472) \"integer->char\"\n ATMOSPHERE: (1472..1473) \" \"\n CONSTANT: (1473..1474)\n NUMBER: (1473..1474) \"0\"\n CLOSE_PAREN: (1474..1475) \")\"\n ATMOSPHERE: (1475..1476) \" \"\n CONSTANT: (1476..1483)\n CHARACTER: (1476..1483) \"#\\x0000\"\n CLOSE_PAREN: (1483..1484) \")\"\n ATMOSPHERE: (1484..1493) \"\n \"\n FORM: (1493..1531)\n OPEN_PAREN: (1493..1494) \"(\"\n SYMBOL: (1494..1500)\n IDENTIFIER: (1494..1500) \"equal?\"\n ATMOSPHERE: (1500..1501) \" \"\n FORM: (1501..1522)\n OPEN_PAREN: (1501..1502) \"(\"\n SYMBOL: (1502..1515)\n IDENTIFIER: (1502..1515) \"integer->char\"\n ATMOSPHERE: (1515..1516) \" \"\n CONSTANT: (1516..1521)\n NUMBER: (1516..1521) \"55295\"\n CLOSE_PAREN: (1521..1522) \")\"\n ATMOSPHERE: (1522..1523) \" \"\n CONSTANT: (1523..1530)\n CHARACTER: (1523..1530) \"#\\xD7FF\"\n CLOSE_PAREN: (1530..1531) \")\"\n ATMOSPHERE: (1531..1541) \"\n\n \"\n FORM: (1541..1643)\n OPEN_PAREN: (1541..1542) \"(\"\n SYMBOL: (1542..1545)\n IDENTIFIER: (1542..1545) \"let\"\n ATMOSPHERE: (1545..1546) \" \"\n FORM: (1546..1580)\n OPEN_PAREN: (1546..1547) \"(\"\n FORM: (1547..1579)\n OPEN_PAREN: (1547..1548) \"(\"\n SYMBOL: (1548..1556)\n IDENTIFIER: (1548..1556) \"bad-char\"\n ATMOSPHERE: (1556..1557) \" \"\n FORM: (1557..1578)\n OPEN_PAREN: (1557..1558) \"(\"\n SYMBOL: (1558..1571)\n IDENTIFIER: (1558..1571) \"integer->char\"\n ATMOSPHERE: (1571..1572) \" \"\n CONSTANT: (1572..1577)\n NUMBER: (1572..1577) \"55296\"\n CLOSE_PAREN: (1577..1578) \")\"\n CLOSE_PAREN: (1578..1579) \")\"\n CLOSE_PAREN: (1579..1580) \")\"\n ATMOSPHERE: (1580..1593) \"\n \"\n FORM: (1593..1642)\n OPEN_PAREN: (1593..1594) \"(\"\n SYMBOL: (1594..1597)\n IDENTIFIER: (1594..1597) \"and\"\n ATMOSPHERE: (1597..1598) \" \"\n FORM: (1598..1618)\n OPEN_PAREN: (1598..1599) \"(\"\n SYMBOL: (1599..1600)\n IDENTIFIER: (1599..1600) \">\"\n ATMOSPHERE: (1600..1601) \" \"\n SYMBOL: (1601..1609)\n IDENTIFIER: (1601..1609) \"bad-char\"\n ATMOSPHERE: (1609..1610) \" \"\n CONSTANT: (1610..1617)\n NUMBER: (1610..1617) \"1114111\"\n CLOSE_PAREN: (1617..1618) \")\"\n ATMOSPHERE: (1618..1619) \" \"\n FORM: (1619..1641)\n OPEN_PAREN: (1619..1620) \"(\"\n SYMBOL: (1620..1623)\n IDENTIFIER: (1620..1623) \"not\"\n ATMOSPHERE: (1623..1624) \" \"\n FORM: (1624..1640)\n OPEN_PAREN: (1624..1625) \"(\"\n SYMBOL: (1625..1630)\n IDENTIFIER: (1625..1630) \"char?\"\n ATMOSPHERE: (1630..1631) \" \"\n SYMBOL: (1631..1639)\n IDENTIFIER: (1631..1639) \"bad-char\"\n CLOSE_PAREN: (1639..1640) \")\"\n CLOSE_PAREN: (1640..1641) \")\"\n CLOSE_PAREN: (1641..1642) \")\"\n CLOSE_PAREN: (1642..1643) \")\"\n ATMOSPHERE: (1643..1652) \"\n \"\n CLOSE_PAREN: (1652..1653) \")\"\n ATMOSPHERE: (1653..1658) \"\n \"\n CLOSE_PAREN: (1658..1659) \")\"\n CLOSE_PAREN: (1659..1660) \")\"\n FORM: (1660..1669)\n OPEN_PAREN: (1660..1661) \"(\"\n SYMBOL: (1661..1668)\n IDENTIFIER: (1661..1668) \"newline\"\n CLOSE_PAREN: (1668..1669) \")\"\n ATMOSPHERE: (1669..1671) \"\n\n\"\n ATMOSPHERE: (1671..1695) \";; Character comparisons\"\n ATMOSPHERE: (1695..1696) \"\n\"\n FORM: (1696..3757)\n OPEN_PAREN: (1696..1697) \"(\"\n SYMBOL: (1697..1704)\n IDENTIFIER: (1697..1704) \"display\"\n ATMOSPHERE: (1704..1705) \" \"\n FORM: (1705..3756)\n OPEN_PAREN: (1705..1706) \"(\"\n SYMBOL: (1706..1715)\n IDENTIFIER: (1706..1715) \"boolean=?\"\n ATMOSPHERE: (1715..1720) \"\n \"\n CONSTANT: (1720..1722)\n BOOLEAN: (1720..1722) \"#t\"\n ATMOSPHERE: (1722..1732) \"\n \n \"\n FORM: (1732..1752)\n OPEN_PAREN: (1732..1733) \"(\"\n SYMBOL: (1733..1739)\n IDENTIFIER: (1733..1739) \"char=?\"\n ATMOSPHERE: (1739..1740) \" \"\n CONSTANT: (1740..1743)\n CHARACTER: (1740..1743) \"#\\a\"\n ATMOSPHERE: (1743..1744) \" \"\n CONSTANT: (1744..1747)\n CHARACTER: (1744..1747) \"#\\a\"\n ATMOSPHERE: (1747..1748) \" \"\n CONSTANT: (1748..1751)\n CHARACTER: (1748..1751) \"#\\a\"\n CLOSE_PAREN: (1751..1752) \")\"\n ATMOSPHERE: (1752..1757) \"\n \"\n FORM: (1757..1780)\n OPEN_PAREN: (1757..1758) \"(\"\n SYMBOL: (1758..1767)\n IDENTIFIER: (1758..1767) \"char-ci=?\"\n ATMOSPHERE: (1767..1768) \" \"\n CONSTANT: (1768..1771)\n CHARACTER: (1768..1771) \"#\\a\"\n ATMOSPHERE: (1771..1772) \" \"\n CONSTANT: (1772..1775)\n CHARACTER: (1772..1775) \"#\\a\"\n ATMOSPHERE: (1775..1776) \" \"\n CONSTANT: (1776..1779)\n CHARACTER: (1776..1779) \"#\\a\"\n CLOSE_PAREN: (1779..1780) \")\"\n ATMOSPHERE: (1780..1785) \"\n \"\n FORM: (1785..1805)\n OPEN_PAREN: (1785..1786) \"(\"\n SYMBOL: (1786..1792)\n IDENTIFIER: (1786..1792) \"char=?\"\n ATMOSPHERE: (1792..1793) \" \"\n CONSTANT: (1793..1796)\n CHARACTER: (1793..1796) \"#\\A\"\n ATMOSPHERE: (1796..1797) \" \"\n CONSTANT: (1797..1800)\n CHARACTER: (1797..1800) \"#\\A\"\n ATMOSPHERE: (1800..1801) \" \"\n CONSTANT: (1801..1804)\n CHARACTER: (1801..1804) \"#\\A\"\n CLOSE_PAREN: (1804..1805) \")\"\n ATMOSPHERE: (1805..1810) \"\n \"\n FORM: (1810..1833)\n OPEN_PAREN: (1810..1811) \"(\"\n SYMBOL: (1811..1820)\n IDENTIFIER: (1811..1820) \"char-ci=?\"\n ATMOSPHERE: (1820..1821) \" \"\n CONSTANT: (1821..1824)\n CHARACTER: (1821..1824) \"#\\A\"\n ATMOSPHERE: (1824..1825) \" \"\n CONSTANT: (1825..1828)\n CHARACTER: (1825..1828) \"#\\A\"\n ATMOSPHERE: (1828..1829) \" \"\n CONSTANT: (1829..1832)\n CHARACTER: (1829..1832) \"#\\A\"\n CLOSE_PAREN: (1832..1833) \")\"\n ATMOSPHERE: (1833..1838) \"\n \"\n FORM: (1838..1864)\n OPEN_PAREN: (1838..1839) \"(\"\n SYMBOL: (1839..1842)\n IDENTIFIER: (1839..1842) \"not\"\n ATMOSPHERE: (1842..1843) \" \"\n FORM: (1843..1863)\n OPEN_PAREN: (1843..1844) \"(\"\n SYMBOL: (1844..1850)\n IDENTIFIER: (1844..1850) \"char=?\"\n ATMOSPHERE: (1850..1851) \" \"\n CONSTANT: (1851..1854)\n CHARACTER: (1851..1854) \"#\\a\"\n ATMOSPHERE: (1854..1855) \" \"\n CONSTANT: (1855..1858)\n CHARACTER: (1855..1858) \"#\\A\"\n ATMOSPHERE: (1858..1859) \" \"\n CONSTANT: (1859..1862)\n CHARACTER: (1859..1862) \"#\\a\"\n CLOSE_PAREN: (1862..1863) \")\"\n CLOSE_PAREN: (1863..1864) \")\"\n ATMOSPHERE: (1864..1869) \"\n \"\n FORM: (1869..1892)\n OPEN_PAREN: (1869..1870) \"(\"\n SYMBOL: (1870..1879)\n IDENTIFIER: (1870..1879) \"char-ci=?\"\n ATMOSPHERE: (1879..1880) \" \"\n CONSTANT: (1880..1883)\n CHARACTER: (1880..1883) \"#\\a\"\n ATMOSPHERE: (1883..1884) \" \"\n CONSTANT: (1884..1887)\n CHARACTER: (1884..1887) \"#\\A\"\n ATMOSPHERE: (1887..1888) \" \"\n CONSTANT: (1888..1891)\n CHARACTER: (1888..1891) \"#\\a\"\n CLOSE_PAREN: (1891..1892) \")\"\n ATMOSPHERE: (1892..1897) \"\n \"\n FORM: (1897..1917)\n OPEN_PAREN: (1897..1898) \"(\"\n SYMBOL: (1898..1904)\n IDENTIFIER: (1898..1904) \"char=?\"\n ATMOSPHERE: (1904..1905) \" \"\n CONSTANT: (1905..1908)\n CHARACTER: (1905..1908) \"#\\λ\"\n ATMOSPHERE: (1908..1909) \" \"\n CONSTANT: (1909..1912)\n CHARACTER: (1909..1912) \"#\\λ\"\n ATMOSPHERE: (1912..1913) \" \"\n CONSTANT: (1913..1916)\n CHARACTER: (1913..1916) \"#\\λ\"\n CLOSE_PAREN: (1916..1917) \")\"\n ATMOSPHERE: (1917..1922) \"\n \"\n FORM: (1922..1945)\n OPEN_PAREN: (1922..1923) \"(\"\n SYMBOL: (1923..1932)\n IDENTIFIER: (1923..1932) \"char-ci=?\"\n ATMOSPHERE: (1932..1933) \" \"\n CONSTANT: (1933..1936)\n CHARACTER: (1933..1936) \"#\\λ\"\n ATMOSPHERE: (1936..1937) \" \"\n CONSTANT: (1937..1940)\n CHARACTER: (1937..1940) \"#\\λ\"\n ATMOSPHERE: (1940..1941) \" \"\n CONSTANT: (1941..1944)\n CHARACTER: (1941..1944) \"#\\λ\"\n CLOSE_PAREN: (1944..1945) \")\"\n ATMOSPHERE: (1945..1950) \"\n \"\n FORM: (1950..1978)\n OPEN_PAREN: (1950..1951) \"(\"\n SYMBOL: (1951..1957)\n IDENTIFIER: (1951..1957) \"char=?\"\n ATMOSPHERE: (1957..1958) \" \"\n CONSTANT: (1958..1961)\n CHARACTER: (1958..1961) \"#\\Λ\"\n ATMOSPHERE: (1961..1962) \" \"\n CONSTANT: (1962..1965)\n CHARACTER: (1962..1965) \"#\\Λ\"\n ATMOSPHERE: (1965..1966) \" \"\n CONSTANT: (1966..1969)\n CHARACTER: (1966..1969) \"#\\Λ\"\n ATMOSPHERE: (1969..1970) \" \"\n CONSTANT: (1970..1973)\n CHARACTER: (1970..1973) \"#\\Λ\"\n ATMOSPHERE: (1973..1974) \" \"\n CONSTANT: (1974..1977)\n CHARACTER: (1974..1977) \"#\\Λ\"\n CLOSE_PAREN: (1977..1978) \")\"\n ATMOSPHERE: (1978..1983) \"\n \"\n FORM: (1983..2014)\n OPEN_PAREN: (1983..1984) \"(\"\n SYMBOL: (1984..1993)\n IDENTIFIER: (1984..1993) \"char-ci=?\"\n ATMOSPHERE: (1993..1994) \" \"\n CONSTANT: (1994..1997)\n CHARACTER: (1994..1997) \"#\\Λ\"\n ATMOSPHERE: (1997..1998) \" \"\n CONSTANT: (1998..2001)\n CHARACTER: (1998..2001) \"#\\Λ\"\n ATMOSPHERE: (2001..2002) \" \"\n CONSTANT: (2002..2005)\n CHARACTER: (2002..2005) \"#\\Λ\"\n ATMOSPHERE: (2005..2006) \" \"\n CONSTANT: (2006..2009)\n CHARACTER: (2006..2009) \"#\\Λ\"\n ATMOSPHERE: (2009..2010) \" \"\n CONSTANT: (2010..2013)\n CHARACTER: (2010..2013) \"#\\Λ\"\n CLOSE_PAREN: (2013..2014) \")\"\n ATMOSPHERE: (2014..2019) \"\n \"\n FORM: (2019..2053)\n OPEN_PAREN: (2019..2020) \"(\"\n SYMBOL: (2020..2023)\n IDENTIFIER: (2020..2023) \"not\"\n ATMOSPHERE: (2023..2024) \" \"\n FORM: (2024..2052)\n OPEN_PAREN: (2024..2025) \"(\"\n SYMBOL: (2025..2031)\n IDENTIFIER: (2025..2031) \"char=?\"\n ATMOSPHERE: (2031..2032) \" \"\n CONSTANT: (2032..2035)\n CHARACTER: (2032..2035) \"#\\Λ\"\n ATMOSPHERE: (2035..2036) \" \"\n CONSTANT: (2036..2039)\n CHARACTER: (2036..2039) \"#\\λ\"\n ATMOSPHERE: (2039..2040) \" \"\n CONSTANT: (2040..2043)\n CHARACTER: (2040..2043) \"#\\Λ\"\n ATMOSPHERE: (2043..2044) \" \"\n CONSTANT: (2044..2047)\n CHARACTER: (2044..2047) \"#\\Λ\"\n ATMOSPHERE: (2047..2048) \" \"\n CONSTANT: (2048..2051)\n CHARACTER: (2048..2051) \"#\\Λ\"\n CLOSE_PAREN: (2051..2052) \")\"\n CLOSE_PAREN: (2052..2053) \")\"\n ATMOSPHERE: (2053..2058) \"\n \"\n FORM: (2058..2089)\n OPEN_PAREN: (2058..2059) \"(\"\n SYMBOL: (2059..2068)\n IDENTIFIER: (2059..2068) \"char-ci=?\"\n ATMOSPHERE: (2068..2069) \" \"\n CONSTANT: (2069..2072)\n CHARACTER: (2069..2072) \"#\\Λ\"\n ATMOSPHERE: (2072..2073) \" \"\n CONSTANT: (2073..2076)\n CHARACTER: (2073..2076) \"#\\λ\"\n ATMOSPHERE: (2076..2077) \" \"\n CONSTANT: (2077..2080)\n CHARACTER: (2077..2080) \"#\\Λ\"\n ATMOSPHERE: (2080..2081) \" \"\n CONSTANT: (2081..2084)\n CHARACTER: (2081..2084) \"#\\Λ\"\n ATMOSPHERE: (2084..2085) \" \"\n CONSTANT: (2085..2088)\n CHARACTER: (2085..2088) \"#\\Λ\"\n CLOSE_PAREN: (2088..2089) \")\"\n ATMOSPHERE: (2089..2094) \"\n \"\n FORM: (2094..2128)\n OPEN_PAREN: (2094..2095) \"(\"\n SYMBOL: (2095..2098)\n IDENTIFIER: (2095..2098) \"not\"\n ATMOSPHERE: (2098..2099) \" \"\n FORM: (2099..2127)\n OPEN_PAREN: (2099..2100) \"(\"\n SYMBOL: (2100..2106)\n IDENTIFIER: (2100..2106) \"char=?\"\n ATMOSPHERE: (2106..2107) \" \"\n CONSTANT: (2107..2110)\n CHARACTER: (2107..2110) \"#\\λ\"\n ATMOSPHERE: (2110..2111) \" \"\n CONSTANT: (2111..2114)\n CHARACTER: (2111..2114) \"#\\λ\"\n ATMOSPHERE: (2114..2115) \" \"\n CONSTANT: (2115..2118)\n CHARACTER: (2115..2118) \"#\\λ\"\n ATMOSPHERE: (2118..2119) \" \"\n CONSTANT: (2119..2126)\n CHARACTER: (2119..2126) \"#\\space\"\n CLOSE_PAREN: (2126..2127) \")\"\n CLOSE_PAREN: (2127..2128) \")\"\n ATMOSPHERE: (2128..2133) \"\n \"\n FORM: (2133..2170)\n OPEN_PAREN: (2133..2134) \"(\"\n SYMBOL: (2134..2137)\n IDENTIFIER: (2134..2137) \"not\"\n ATMOSPHERE: (2137..2138) \" \"\n FORM: (2138..2169)\n OPEN_PAREN: (2138..2139) \"(\"\n SYMBOL: (2139..2148)\n IDENTIFIER: (2139..2148) \"char-ci=?\"\n ATMOSPHERE: (2148..2149) \" \"\n CONSTANT: (2149..2152)\n CHARACTER: (2149..2152) \"#\\λ\"\n ATMOSPHERE: (2152..2153) \" \"\n CONSTANT: (2153..2156)\n CHARACTER: (2153..2156) \"#\\λ\"\n ATMOSPHERE: (2156..2157) \" \"\n CONSTANT: (2157..2160)\n CHARACTER: (2157..2160) \"#\\λ\"\n ATMOSPHERE: (2160..2161) \" \"\n CONSTANT: (2161..2168)\n CHARACTER: (2161..2168) \"#\\space\"\n CLOSE_PAREN: (2168..2169) \")\"\n CLOSE_PAREN: (2169..2170) \")\"\n ATMOSPHERE: (2170..2175) \"\n \"\n FORM: (2175..2197)\n OPEN_PAREN: (2175..2176) \"(\"\n SYMBOL: (2176..2179)\n IDENTIFIER: (2176..2179) \"not\"\n ATMOSPHERE: (2179..2180) \" \"\n FORM: (2180..2196)\n OPEN_PAREN: (2180..2181) \"(\"\n SYMBOL: (2181..2187)\n IDENTIFIER: (2181..2187) \"char=?\"\n ATMOSPHERE: (2187..2188) \" \"\n CONSTANT: (2188..2191)\n CHARACTER: (2188..2191) \"#\\a\"\n ATMOSPHERE: (2191..2192) \" \"\n CONSTANT: (2192..2195)\n CHARACTER: (2192..2195) \"#\\λ\"\n CLOSE_PAREN: (2195..2196) \")\"\n CLOSE_PAREN: (2196..2197) \")\"\n ATMOSPHERE: (2197..2202) \"\n \"\n FORM: (2202..2227)\n OPEN_PAREN: (2202..2203) \"(\"\n SYMBOL: (2203..2206)\n IDENTIFIER: (2203..2206) \"not\"\n ATMOSPHERE: (2206..2207) \" \"\n FORM: (2207..2226)\n OPEN_PAREN: (2207..2208) \"(\"\n SYMBOL: (2208..2217)\n IDENTIFIER: (2208..2217) \"char-ci=?\"\n ATMOSPHERE: (2217..2218) \" \"\n CONSTANT: (2218..2221)\n CHARACTER: (2218..2221) \"#\\a\"\n ATMOSPHERE: (2221..2222) \" \"\n CONSTANT: (2222..2225)\n CHARACTER: (2222..2225) \"#\\λ\"\n CLOSE_PAREN: (2225..2226) \")\"\n CLOSE_PAREN: (2226..2227) \")\"\n ATMOSPHERE: (2227..2233) \"\n\n \"\n FORM: (2233..2257)\n OPEN_PAREN: (2233..2234) \"(\"\n SYMBOL: (2234..2240)\n IDENTIFIER: (2234..2240) \"char\"\n ATMOSPHERE: (2240..2241) \" \"\n CONSTANT: (2241..2244)\n CHARACTER: (2241..2244) \"#\\a\"\n ATMOSPHERE: (2244..2245) \" \"\n CONSTANT: (2245..2248)\n CHARACTER: (2245..2248) \"#\\b\"\n ATMOSPHERE: (2248..2249) \" \"\n CONSTANT: (2249..2252)\n CHARACTER: (2249..2252) \"#\\c\"\n ATMOSPHERE: (2252..2253) \" \"\n CONSTANT: (2253..2256)\n CHARACTER: (2253..2256) \"#\\d\"\n CLOSE_PAREN: (2256..2257) \")\"\n ATMOSPHERE: (2257..2262) \"\n \"\n FORM: (2262..2289)\n OPEN_PAREN: (2262..2263) \"(\"\n SYMBOL: (2263..2272)\n IDENTIFIER: (2263..2272) \"char-ci\"\n ATMOSPHERE: (2272..2273) \" \"\n CONSTANT: (2273..2276)\n CHARACTER: (2273..2276) \"#\\a\"\n ATMOSPHERE: (2276..2277) \" \"\n CONSTANT: (2277..2280)\n CHARACTER: (2277..2280) \"#\\b\"\n ATMOSPHERE: (2280..2281) \" \"\n CONSTANT: (2281..2284)\n CHARACTER: (2281..2284) \"#\\c\"\n ATMOSPHERE: (2284..2285) \" \"\n CONSTANT: (2285..2288)\n CHARACTER: (2285..2288) \"#\\d\"\n CLOSE_PAREN: (2288..2289) \")\"\n ATMOSPHERE: (2289..2294) \"\n \"\n FORM: (2294..2324)\n OPEN_PAREN: (2294..2295) \"(\"\n SYMBOL: (2295..2298)\n IDENTIFIER: (2295..2298) \"not\"\n ATMOSPHERE: (2298..2299) \" \"\n FORM: (2299..2323)\n OPEN_PAREN: (2299..2300) \"(\"\n SYMBOL: (2300..2306)\n IDENTIFIER: (2300..2306) \"char\"\n ATMOSPHERE: (2306..2307) \" \"\n CONSTANT: (2307..2310)\n CHARACTER: (2307..2310) \"#\\A\"\n ATMOSPHERE: (2310..2311) \" \"\n CONSTANT: (2311..2314)\n CHARACTER: (2311..2314) \"#\\b\"\n ATMOSPHERE: (2314..2315) \" \"\n CONSTANT: (2315..2318)\n CHARACTER: (2315..2318) \"#\\c\"\n ATMOSPHERE: (2318..2319) \" \"\n CONSTANT: (2319..2322)\n CHARACTER: (2319..2322) \"#\\D\"\n CLOSE_PAREN: (2322..2323) \")\"\n CLOSE_PAREN: (2323..2324) \")\"\n ATMOSPHERE: (2324..2329) \"\n \"\n FORM: (2329..2356)\n OPEN_PAREN: (2329..2330) \"(\"\n SYMBOL: (2330..2339)\n IDENTIFIER: (2330..2339) \"char-ci\"\n ATMOSPHERE: (2339..2340) \" \"\n CONSTANT: (2340..2343)\n CHARACTER: (2340..2343) \"#\\A\"\n ATMOSPHERE: (2343..2344) \" \"\n CONSTANT: (2344..2347)\n CHARACTER: (2344..2347) \"#\\b\"\n ATMOSPHERE: (2347..2348) \" \"\n CONSTANT: (2348..2351)\n CHARACTER: (2348..2351) \"#\\c\"\n ATMOSPHERE: (2351..2352) \" \"\n CONSTANT: (2352..2355)\n CHARACTER: (2352..2355) \"#\\D\"\n CLOSE_PAREN: (2355..2356) \")\"\n ATMOSPHERE: (2356..2361) \"\n \"\n FORM: (2361..2391)\n OPEN_PAREN: (2361..2362) \"(\"\n SYMBOL: (2362..2365)\n IDENTIFIER: (2362..2365) \"not\"\n ATMOSPHERE: (2365..2366) \" \"\n FORM: (2366..2390)\n OPEN_PAREN: (2366..2367) \"(\"\n SYMBOL: (2367..2373)\n IDENTIFIER: (2367..2373) \"char\"\n ATMOSPHERE: (2373..2374) \" \"\n CONSTANT: (2374..2377)\n CHARACTER: (2374..2377) \"#\\d\"\n ATMOSPHERE: (2377..2378) \" \"\n CONSTANT: (2378..2381)\n CHARACTER: (2378..2381) \"#\\c\"\n ATMOSPHERE: (2381..2382) \" \"\n CONSTANT: (2382..2385)\n CHARACTER: (2382..2385) \"#\\b\"\n ATMOSPHERE: (2385..2386) \" \"\n CONSTANT: (2386..2389)\n CHARACTER: (2386..2389) \"#\\a\"\n CLOSE_PAREN: (2389..2390) \")\"\n CLOSE_PAREN: (2390..2391) \")\"\n ATMOSPHERE: (2391..2396) \"\n \"\n FORM: (2396..2429)\n OPEN_PAREN: (2396..2397) \"(\"\n SYMBOL: (2397..2400)\n IDENTIFIER: (2397..2400) \"not\"\n ATMOSPHERE: (2400..2401) \" \"\n FORM: (2401..2428)\n OPEN_PAREN: (2401..2402) \"(\"\n SYMBOL: (2402..2411)\n IDENTIFIER: (2402..2411) \"char-ci\"\n ATMOSPHERE: (2411..2412) \" \"\n CONSTANT: (2412..2415)\n CHARACTER: (2412..2415) \"#\\d\"\n ATMOSPHERE: (2415..2416) \" \"\n CONSTANT: (2416..2419)\n CHARACTER: (2416..2419) \"#\\c\"\n ATMOSPHERE: (2419..2420) \" \"\n CONSTANT: (2420..2423)\n CHARACTER: (2420..2423) \"#\\b\"\n ATMOSPHERE: (2423..2424) \" \"\n CONSTANT: (2424..2427)\n CHARACTER: (2424..2427) \"#\\a\"\n CLOSE_PAREN: (2427..2428) \")\"\n CLOSE_PAREN: (2428..2429) \")\"\n ATMOSPHERE: (2429..2434) \"\n \"\n FORM: (2434..2464)\n OPEN_PAREN: (2434..2435) \"(\"\n SYMBOL: (2435..2438)\n IDENTIFIER: (2435..2438) \"not\"\n ATMOSPHERE: (2438..2439) \" \"\n FORM: (2439..2463)\n OPEN_PAREN: (2439..2440) \"(\"\n SYMBOL: (2440..2446)\n IDENTIFIER: (2440..2446) \"char\"\n ATMOSPHERE: (2446..2447) \" \"\n CONSTANT: (2447..2450)\n CHARACTER: (2447..2450) \"#\\D\"\n ATMOSPHERE: (2450..2451) \" \"\n CONSTANT: (2451..2454)\n CHARACTER: (2451..2454) \"#\\c\"\n ATMOSPHERE: (2454..2455) \" \"\n CONSTANT: (2455..2458)\n CHARACTER: (2455..2458) \"#\\b\"\n ATMOSPHERE: (2458..2459) \" \"\n CONSTANT: (2459..2462)\n CHARACTER: (2459..2462) \"#\\A\"\n CLOSE_PAREN: (2462..2463) \")\"\n CLOSE_PAREN: (2463..2464) \")\"\n ATMOSPHERE: (2464..2469) \"\n \"\n FORM: (2469..2502)\n OPEN_PAREN: (2469..2470) \"(\"\n SYMBOL: (2470..2473)\n IDENTIFIER: (2470..2473) \"not\"\n ATMOSPHERE: (2473..2474) \" \"\n FORM: (2474..2501)\n OPEN_PAREN: (2474..2475) \"(\"\n SYMBOL: (2475..2484)\n IDENTIFIER: (2475..2484) \"char-ci\"\n ATMOSPHERE: (2484..2485) \" \"\n CONSTANT: (2485..2488)\n CHARACTER: (2485..2488) \"#\\D\"\n ATMOSPHERE: (2488..2489) \" \"\n CONSTANT: (2489..2492)\n CHARACTER: (2489..2492) \"#\\c\"\n ATMOSPHERE: (2492..2493) \" \"\n CONSTANT: (2493..2496)\n CHARACTER: (2493..2496) \"#\\b\"\n ATMOSPHERE: (2496..2497) \" \"\n CONSTANT: (2497..2500)\n CHARACTER: (2497..2500) \"#\\A\"\n CLOSE_PAREN: (2500..2501) \")\"\n CLOSE_PAREN: (2501..2502) \")\"\n ATMOSPHERE: (2502..2508) \"\n\n \"\n FORM: (2508..2533)\n OPEN_PAREN: (2508..2509) \"(\"\n SYMBOL: (2509..2516)\n IDENTIFIER: (2509..2516) \"char<=?\"\n ATMOSPHERE: (2516..2517) \" \"\n CONSTANT: (2517..2520)\n CHARACTER: (2517..2520) \"#\\a\"\n ATMOSPHERE: (2520..2521) \" \"\n CONSTANT: (2521..2524)\n CHARACTER: (2521..2524) \"#\\b\"\n ATMOSPHERE: (2524..2525) \" \"\n CONSTANT: (2525..2528)\n CHARACTER: (2525..2528) \"#\\c\"\n ATMOSPHERE: (2528..2529) \" \"\n CONSTANT: (2529..2532)\n CHARACTER: (2529..2532) \"#\\d\"\n CLOSE_PAREN: (2532..2533) \")\"\n ATMOSPHERE: (2533..2538) \"\n \"\n FORM: (2538..2566)\n OPEN_PAREN: (2538..2539) \"(\"\n SYMBOL: (2539..2549)\n IDENTIFIER: (2539..2549) \"char-ci<=?\"\n ATMOSPHERE: (2549..2550) \" \"\n CONSTANT: (2550..2553)\n CHARACTER: (2550..2553) \"#\\a\"\n ATMOSPHERE: (2553..2554) \" \"\n CONSTANT: (2554..2557)\n CHARACTER: (2554..2557) \"#\\b\"\n ATMOSPHERE: (2557..2558) \" \"\n CONSTANT: (2558..2561)\n CHARACTER: (2558..2561) \"#\\c\"\n ATMOSPHERE: (2561..2562) \" \"\n CONSTANT: (2562..2565)\n CHARACTER: (2562..2565) \"#\\d\"\n CLOSE_PAREN: (2565..2566) \")\"\n ATMOSPHERE: (2566..2571) \"\n \"\n FORM: (2571..2602)\n OPEN_PAREN: (2571..2572) \"(\"\n SYMBOL: (2572..2575)\n IDENTIFIER: (2572..2575) \"not\"\n ATMOSPHERE: (2575..2576) \" \"\n FORM: (2576..2601)\n OPEN_PAREN: (2576..2577) \"(\"\n SYMBOL: (2577..2584)\n IDENTIFIER: (2577..2584) \"char<=?\"\n ATMOSPHERE: (2584..2585) \" \"\n CONSTANT: (2585..2588)\n CHARACTER: (2585..2588) \"#\\A\"\n ATMOSPHERE: (2588..2589) \" \"\n CONSTANT: (2589..2592)\n CHARACTER: (2589..2592) \"#\\b\"\n ATMOSPHERE: (2592..2593) \" \"\n CONSTANT: (2593..2596)\n CHARACTER: (2593..2596) \"#\\c\"\n ATMOSPHERE: (2596..2597) \" \"\n CONSTANT: (2597..2600)\n CHARACTER: (2597..2600) \"#\\D\"\n CLOSE_PAREN: (2600..2601) \")\"\n CLOSE_PAREN: (2601..2602) \")\"\n ATMOSPHERE: (2602..2607) \"\n \"\n FORM: (2607..2635)\n OPEN_PAREN: (2607..2608) \"(\"\n SYMBOL: (2608..2618)\n IDENTIFIER: (2608..2618) \"char-ci<=?\"\n ATMOSPHERE: (2618..2619) \" \"\n CONSTANT: (2619..2622)\n CHARACTER: (2619..2622) \"#\\A\"\n ATMOSPHERE: (2622..2623) \" \"\n CONSTANT: (2623..2626)\n CHARACTER: (2623..2626) \"#\\b\"\n ATMOSPHERE: (2626..2627) \" \"\n CONSTANT: (2627..2630)\n CHARACTER: (2627..2630) \"#\\c\"\n ATMOSPHERE: (2630..2631) \" \"\n CONSTANT: (2631..2634)\n CHARACTER: (2631..2634) \"#\\D\"\n CLOSE_PAREN: (2634..2635) \")\"\n ATMOSPHERE: (2635..2640) \"\n \"\n FORM: (2640..2671)\n OPEN_PAREN: (2640..2641) \"(\"\n SYMBOL: (2641..2644)\n IDENTIFIER: (2641..2644) \"not\"\n ATMOSPHERE: (2644..2645) \" \"\n FORM: (2645..2670)\n OPEN_PAREN: (2645..2646) \"(\"\n SYMBOL: (2646..2653)\n IDENTIFIER: (2646..2653) \"char<=?\"\n ATMOSPHERE: (2653..2654) \" \"\n CONSTANT: (2654..2657)\n CHARACTER: (2654..2657) \"#\\d\"\n ATMOSPHERE: (2657..2658) \" \"\n CONSTANT: (2658..2661)\n CHARACTER: (2658..2661) \"#\\c\"\n ATMOSPHERE: (2661..2662) \" \"\n CONSTANT: (2662..2665)\n CHARACTER: (2662..2665) \"#\\b\"\n ATMOSPHERE: (2665..2666) \" \"\n CONSTANT: (2666..2669)\n CHARACTER: (2666..2669) \"#\\a\"\n CLOSE_PAREN: (2669..2670) \")\"\n CLOSE_PAREN: (2670..2671) \")\"\n ATMOSPHERE: (2671..2676) \"\n \"\n FORM: (2676..2710)\n OPEN_PAREN: (2676..2677) \"(\"\n SYMBOL: (2677..2680)\n IDENTIFIER: (2677..2680) \"not\"\n ATMOSPHERE: (2680..2681) \" \"\n FORM: (2681..2709)\n OPEN_PAREN: (2681..2682) \"(\"\n SYMBOL: (2682..2692)\n IDENTIFIER: (2682..2692) \"char-ci<=?\"\n ATMOSPHERE: (2692..2693) \" \"\n CONSTANT: (2693..2696)\n CHARACTER: (2693..2696) \"#\\d\"\n ATMOSPHERE: (2696..2697) \" \"\n CONSTANT: (2697..2700)\n CHARACTER: (2697..2700) \"#\\c\"\n ATMOSPHERE: (2700..2701) \" \"\n CONSTANT: (2701..2704)\n CHARACTER: (2701..2704) \"#\\b\"\n ATMOSPHERE: (2704..2705) \" \"\n CONSTANT: (2705..2708)\n CHARACTER: (2705..2708) \"#\\a\"\n CLOSE_PAREN: (2708..2709) \")\"\n CLOSE_PAREN: (2709..2710) \")\"\n ATMOSPHERE: (2710..2715) \"\n \"\n FORM: (2715..2746)\n OPEN_PAREN: (2715..2716) \"(\"\n SYMBOL: (2716..2719)\n IDENTIFIER: (2716..2719) \"not\"\n ATMOSPHERE: (2719..2720) \" \"\n FORM: (2720..2745)\n OPEN_PAREN: (2720..2721) \"(\"\n SYMBOL: (2721..2728)\n IDENTIFIER: (2721..2728) \"char<=?\"\n ATMOSPHERE: (2728..2729) \" \"\n CONSTANT: (2729..2732)\n CHARACTER: (2729..2732) \"#\\D\"\n ATMOSPHERE: (2732..2733) \" \"\n CONSTANT: (2733..2736)\n CHARACTER: (2733..2736) \"#\\c\"\n ATMOSPHERE: (2736..2737) \" \"\n CONSTANT: (2737..2740)\n CHARACTER: (2737..2740) \"#\\b\"\n ATMOSPHERE: (2740..2741) \" \"\n CONSTANT: (2741..2744)\n CHARACTER: (2741..2744) \"#\\A\"\n CLOSE_PAREN: (2744..2745) \")\"\n CLOSE_PAREN: (2745..2746) \")\"\n ATMOSPHERE: (2746..2751) \"\n \"\n FORM: (2751..2785)\n OPEN_PAREN: (2751..2752) \"(\"\n SYMBOL: (2752..2755)\n IDENTIFIER: (2752..2755) \"not\"\n ATMOSPHERE: (2755..2756) \" \"\n FORM: (2756..2784)\n OPEN_PAREN: (2756..2757) \"(\"\n SYMBOL: (2757..2767)\n IDENTIFIER: (2757..2767) \"char-ci<=?\"\n ATMOSPHERE: (2767..2768) \" \"\n CONSTANT: (2768..2771)\n CHARACTER: (2768..2771) \"#\\D\"\n ATMOSPHERE: (2771..2772) \" \"\n CONSTANT: (2772..2775)\n CHARACTER: (2772..2775) \"#\\c\"\n ATMOSPHERE: (2775..2776) \" \"\n CONSTANT: (2776..2779)\n CHARACTER: (2776..2779) \"#\\b\"\n ATMOSPHERE: (2779..2780) \" \"\n CONSTANT: (2780..2783)\n CHARACTER: (2780..2783) \"#\\A\"\n CLOSE_PAREN: (2783..2784) \")\"\n CLOSE_PAREN: (2784..2785) \")\"\n ATMOSPHERE: (2785..2790) \"\n \"\n FORM: (2790..2811)\n OPEN_PAREN: (2790..2791) \"(\"\n SYMBOL: (2791..2798)\n IDENTIFIER: (2791..2798) \"char<=?\"\n ATMOSPHERE: (2798..2799) \" \"\n CONSTANT: (2799..2802)\n CHARACTER: (2799..2802) \"#\\λ\"\n ATMOSPHERE: (2802..2803) \" \"\n CONSTANT: (2803..2806)\n CHARACTER: (2803..2806) \"#\\λ\"\n ATMOSPHERE: (2806..2807) \" \"\n CONSTANT: (2807..2810)\n CHARACTER: (2807..2810) \"#\\λ\"\n CLOSE_PAREN: (2810..2811) \")\"\n ATMOSPHERE: (2811..2816) \"\n \"\n FORM: (2816..2840)\n OPEN_PAREN: (2816..2817) \"(\"\n SYMBOL: (2817..2827)\n IDENTIFIER: (2817..2827) \"char-ci<=?\"\n ATMOSPHERE: (2827..2828) \" \"\n CONSTANT: (2828..2831)\n CHARACTER: (2828..2831) \"#\\λ\"\n ATMOSPHERE: (2831..2832) \" \"\n CONSTANT: (2832..2835)\n CHARACTER: (2832..2835) \"#\\λ\"\n ATMOSPHERE: (2835..2836) \" \"\n CONSTANT: (2836..2839)\n CHARACTER: (2836..2839) \"#\\λ\"\n CLOSE_PAREN: (2839..2840) \")\"\n ATMOSPHERE: (2840..2845) \"\n \"\n FORM: (2845..2874)\n OPEN_PAREN: (2845..2846) \"(\"\n SYMBOL: (2846..2853)\n IDENTIFIER: (2846..2853) \"char<=?\"\n ATMOSPHERE: (2853..2854) \" \"\n CONSTANT: (2854..2857)\n CHARACTER: (2854..2857) \"#\\Λ\"\n ATMOSPHERE: (2857..2858) \" \"\n CONSTANT: (2858..2861)\n CHARACTER: (2858..2861) \"#\\Λ\"\n ATMOSPHERE: (2861..2862) \" \"\n CONSTANT: (2862..2865)\n CHARACTER: (2862..2865) \"#\\Λ\"\n ATMOSPHERE: (2865..2866) \" \"\n CONSTANT: (2866..2869)\n CHARACTER: (2866..2869) \"#\\Λ\"\n ATMOSPHERE: (2869..2870) \" \"\n CONSTANT: (2870..2873)\n CHARACTER: (2870..2873) \"#\\Λ\"\n CLOSE_PAREN: (2873..2874) \")\"\n ATMOSPHERE: (2874..2879) \"\n \"\n FORM: (2879..2911)\n OPEN_PAREN: (2879..2880) \"(\"\n SYMBOL: (2880..2890)\n IDENTIFIER: (2880..2890) \"char-ci<=?\"\n ATMOSPHERE: (2890..2891) \" \"\n CONSTANT: (2891..2894)\n CHARACTER: (2891..2894) \"#\\Λ\"\n ATMOSPHERE: (2894..2895) \" \"\n CONSTANT: (2895..2898)\n CHARACTER: (2895..2898) \"#\\Λ\"\n ATMOSPHERE: (2898..2899) \" \"\n CONSTANT: (2899..2902)\n CHARACTER: (2899..2902) \"#\\Λ\"\n ATMOSPHERE: (2902..2903) \" \"\n CONSTANT: (2903..2906)\n CHARACTER: (2903..2906) \"#\\Λ\"\n ATMOSPHERE: (2906..2907) \" \"\n CONSTANT: (2907..2910)\n CHARACTER: (2907..2910) \"#\\Λ\"\n CLOSE_PAREN: (2910..2911) \")\"\n ATMOSPHERE: (2911..2916) \"\n \"\n FORM: (2916..2951)\n OPEN_PAREN: (2916..2917) \"(\"\n SYMBOL: (2917..2920)\n IDENTIFIER: (2917..2920) \"not\"\n ATMOSPHERE: (2920..2921) \" \"\n FORM: (2921..2950)\n OPEN_PAREN: (2921..2922) \"(\"\n SYMBOL: (2922..2929)\n IDENTIFIER: (2922..2929) \"char<=?\"\n ATMOSPHERE: (2929..2930) \" \"\n CONSTANT: (2930..2933)\n CHARACTER: (2930..2933) \"#\\Λ\"\n ATMOSPHERE: (2933..2934) \" \"\n CONSTANT: (2934..2937)\n CHARACTER: (2934..2937) \"#\\λ\"\n ATMOSPHERE: (2937..2938) \" \"\n CONSTANT: (2938..2941)\n CHARACTER: (2938..2941) \"#\\Λ\"\n ATMOSPHERE: (2941..2942) \" \"\n CONSTANT: (2942..2945)\n CHARACTER: (2942..2945) \"#\\Λ\"\n ATMOSPHERE: (2945..2946) \" \"\n CONSTANT: (2946..2949)\n CHARACTER: (2946..2949) \"#\\Λ\"\n CLOSE_PAREN: (2949..2950) \")\"\n CLOSE_PAREN: (2950..2951) \")\"\n ATMOSPHERE: (2951..2956) \"\n \"\n FORM: (2956..2988)\n OPEN_PAREN: (2956..2957) \"(\"\n SYMBOL: (2957..2967)\n IDENTIFIER: (2957..2967) \"char-ci<=?\"\n ATMOSPHERE: (2967..2968) \" \"\n CONSTANT: (2968..2971)\n CHARACTER: (2968..2971) \"#\\Λ\"\n ATMOSPHERE: (2971..2972) \" \"\n CONSTANT: (2972..2975)\n CHARACTER: (2972..2975) \"#\\λ\"\n ATMOSPHERE: (2975..2976) \" \"\n CONSTANT: (2976..2979)\n CHARACTER: (2976..2979) \"#\\Λ\"\n ATMOSPHERE: (2979..2980) \" \"\n CONSTANT: (2980..2983)\n CHARACTER: (2980..2983) \"#\\Λ\"\n ATMOSPHERE: (2983..2984) \" \"\n CONSTANT: (2984..2987)\n CHARACTER: (2984..2987) \"#\\Λ\"\n CLOSE_PAREN: (2987..2988) \")\"\n ATMOSPHERE: (2988..2994) \"\n\n \"\n FORM: (2994..3024)\n OPEN_PAREN: (2994..2995) \"(\"\n SYMBOL: (2995..2998)\n IDENTIFIER: (2995..2998) \"not\"\n ATMOSPHERE: (2998..2999) \" \"\n FORM: (2999..3023)\n OPEN_PAREN: (2999..3000) \"(\"\n SYMBOL: (3000..3006)\n IDENTIFIER: (3000..3006) \"char>?\"\n ATMOSPHERE: (3006..3007) \" \"\n CONSTANT: (3007..3010)\n CHARACTER: (3007..3010) \"#\\a\"\n ATMOSPHERE: (3010..3011) \" \"\n CONSTANT: (3011..3014)\n CHARACTER: (3011..3014) \"#\\b\"\n ATMOSPHERE: (3014..3015) \" \"\n CONSTANT: (3015..3018)\n CHARACTER: (3015..3018) \"#\\c\"\n ATMOSPHERE: (3018..3019) \" \"\n CONSTANT: (3019..3022)\n CHARACTER: (3019..3022) \"#\\d\"\n CLOSE_PAREN: (3022..3023) \")\"\n CLOSE_PAREN: (3023..3024) \")\"\n ATMOSPHERE: (3024..3029) \"\n \"\n FORM: (3029..3062)\n OPEN_PAREN: (3029..3030) \"(\"\n SYMBOL: (3030..3033)\n IDENTIFIER: (3030..3033) \"not\"\n ATMOSPHERE: (3033..3034) \" \"\n FORM: (3034..3061)\n OPEN_PAREN: (3034..3035) \"(\"\n SYMBOL: (3035..3044)\n IDENTIFIER: (3035..3044) \"char-ci>?\"\n ATMOSPHERE: (3044..3045) \" \"\n CONSTANT: (3045..3048)\n CHARACTER: (3045..3048) \"#\\a\"\n ATMOSPHERE: (3048..3049) \" \"\n CONSTANT: (3049..3052)\n CHARACTER: (3049..3052) \"#\\b\"\n ATMOSPHERE: (3052..3053) \" \"\n CONSTANT: (3053..3056)\n CHARACTER: (3053..3056) \"#\\c\"\n ATMOSPHERE: (3056..3057) \" \"\n CONSTANT: (3057..3060)\n CHARACTER: (3057..3060) \"#\\d\"\n CLOSE_PAREN: (3060..3061) \")\"\n CLOSE_PAREN: (3061..3062) \")\"\n ATMOSPHERE: (3062..3067) \"\n \"\n FORM: (3067..3097)\n OPEN_PAREN: (3067..3068) \"(\"\n SYMBOL: (3068..3071)\n IDENTIFIER: (3068..3071) \"not\"\n ATMOSPHERE: (3071..3072) \" \"\n FORM: (3072..3096)\n OPEN_PAREN: (3072..3073) \"(\"\n SYMBOL: (3073..3079)\n IDENTIFIER: (3073..3079) \"char>?\"\n ATMOSPHERE: (3079..3080) \" \"\n CONSTANT: (3080..3083)\n CHARACTER: (3080..3083) \"#\\A\"\n ATMOSPHERE: (3083..3084) \" \"\n CONSTANT: (3084..3087)\n CHARACTER: (3084..3087) \"#\\b\"\n ATMOSPHERE: (3087..3088) \" \"\n CONSTANT: (3088..3091)\n CHARACTER: (3088..3091) \"#\\c\"\n ATMOSPHERE: (3091..3092) \" \"\n CONSTANT: (3092..3095)\n CHARACTER: (3092..3095) \"#\\D\"\n CLOSE_PAREN: (3095..3096) \")\"\n CLOSE_PAREN: (3096..3097) \")\"\n ATMOSPHERE: (3097..3102) \"\n \"\n FORM: (3102..3135)\n OPEN_PAREN: (3102..3103) \"(\"\n SYMBOL: (3103..3106)\n IDENTIFIER: (3103..3106) \"not\"\n ATMOSPHERE: (3106..3107) \" \"\n FORM: (3107..3134)\n OPEN_PAREN: (3107..3108) \"(\"\n SYMBOL: (3108..3117)\n IDENTIFIER: (3108..3117) \"char-ci>?\"\n ATMOSPHERE: (3117..3118) \" \"\n CONSTANT: (3118..3121)\n CHARACTER: (3118..3121) \"#\\A\"\n ATMOSPHERE: (3121..3122) \" \"\n CONSTANT: (3122..3125)\n CHARACTER: (3122..3125) \"#\\b\"\n ATMOSPHERE: (3125..3126) \" \"\n CONSTANT: (3126..3129)\n CHARACTER: (3126..3129) \"#\\c\"\n ATMOSPHERE: (3129..3130) \" \"\n CONSTANT: (3130..3133)\n CHARACTER: (3130..3133) \"#\\D\"\n CLOSE_PAREN: (3133..3134) \")\"\n CLOSE_PAREN: (3134..3135) \")\"\n ATMOSPHERE: (3135..3140) \"\n \"\n FORM: (3140..3164)\n OPEN_PAREN: (3140..3141) \"(\"\n SYMBOL: (3141..3147)\n IDENTIFIER: (3141..3147) \"char>?\"\n ATMOSPHERE: (3147..3148) \" \"\n CONSTANT: (3148..3151)\n CHARACTER: (3148..3151) \"#\\d\"\n ATMOSPHERE: (3151..3152) \" \"\n CONSTANT: (3152..3155)\n CHARACTER: (3152..3155) \"#\\c\"\n ATMOSPHERE: (3155..3156) \" \"\n CONSTANT: (3156..3159)\n CHARACTER: (3156..3159) \"#\\b\"\n ATMOSPHERE: (3159..3160) \" \"\n CONSTANT: (3160..3163)\n CHARACTER: (3160..3163) \"#\\a\"\n CLOSE_PAREN: (3163..3164) \")\"\n ATMOSPHERE: (3164..3169) \"\n \"\n FORM: (3169..3196)\n OPEN_PAREN: (3169..3170) \"(\"\n SYMBOL: (3170..3179)\n IDENTIFIER: (3170..3179) \"char-ci>?\"\n ATMOSPHERE: (3179..3180) \" \"\n CONSTANT: (3180..3183)\n CHARACTER: (3180..3183) \"#\\d\"\n ATMOSPHERE: (3183..3184) \" \"\n CONSTANT: (3184..3187)\n CHARACTER: (3184..3187) \"#\\c\"\n ATMOSPHERE: (3187..3188) \" \"\n CONSTANT: (3188..3191)\n CHARACTER: (3188..3191) \"#\\b\"\n ATMOSPHERE: (3191..3192) \" \"\n CONSTANT: (3192..3195)\n CHARACTER: (3192..3195) \"#\\a\"\n CLOSE_PAREN: (3195..3196) \")\"\n ATMOSPHERE: (3196..3201) \"\n \"\n FORM: (3201..3231)\n OPEN_PAREN: (3201..3202) \"(\"\n SYMBOL: (3202..3205)\n IDENTIFIER: (3202..3205) \"not\"\n ATMOSPHERE: (3205..3206) \" \"\n FORM: (3206..3230)\n OPEN_PAREN: (3206..3207) \"(\"\n SYMBOL: (3207..3213)\n IDENTIFIER: (3207..3213) \"char>?\"\n ATMOSPHERE: (3213..3214) \" \"\n CONSTANT: (3214..3217)\n CHARACTER: (3214..3217) \"#\\D\"\n ATMOSPHERE: (3217..3218) \" \"\n CONSTANT: (3218..3221)\n CHARACTER: (3218..3221) \"#\\c\"\n ATMOSPHERE: (3221..3222) \" \"\n CONSTANT: (3222..3225)\n CHARACTER: (3222..3225) \"#\\b\"\n ATMOSPHERE: (3225..3226) \" \"\n CONSTANT: (3226..3229)\n CHARACTER: (3226..3229) \"#\\A\"\n CLOSE_PAREN: (3229..3230) \")\"\n CLOSE_PAREN: (3230..3231) \")\"\n ATMOSPHERE: (3231..3236) \"\n \"\n FORM: (3236..3263)\n OPEN_PAREN: (3236..3237) \"(\"\n SYMBOL: (3237..3246)\n IDENTIFIER: (3237..3246) \"char-ci>?\"\n ATMOSPHERE: (3246..3247) \" \"\n CONSTANT: (3247..3250)\n CHARACTER: (3247..3250) \"#\\D\"\n ATMOSPHERE: (3250..3251) \" \"\n CONSTANT: (3251..3254)\n CHARACTER: (3251..3254) \"#\\c\"\n ATMOSPHERE: (3254..3255) \" \"\n CONSTANT: (3255..3258)\n CHARACTER: (3255..3258) \"#\\b\"\n ATMOSPHERE: (3258..3259) \" \"\n CONSTANT: (3259..3262)\n CHARACTER: (3259..3262) \"#\\A\"\n CLOSE_PAREN: (3262..3263) \")\"\n ATMOSPHERE: (3263..3269) \"\n\n \"\n FORM: (3269..3300)\n OPEN_PAREN: (3269..3270) \"(\"\n SYMBOL: (3270..3273)\n IDENTIFIER: (3270..3273) \"not\"\n ATMOSPHERE: (3273..3274) \" \"\n FORM: (3274..3299)\n OPEN_PAREN: (3274..3275) \"(\"\n SYMBOL: (3275..3282)\n IDENTIFIER: (3275..3282) \"char>=?\"\n ATMOSPHERE: (3282..3283) \" \"\n CONSTANT: (3283..3286)\n CHARACTER: (3283..3286) \"#\\a\"\n ATMOSPHERE: (3286..3287) \" \"\n CONSTANT: (3287..3290)\n CHARACTER: (3287..3290) \"#\\b\"\n ATMOSPHERE: (3290..3291) \" \"\n CONSTANT: (3291..3294)\n CHARACTER: (3291..3294) \"#\\c\"\n ATMOSPHERE: (3294..3295) \" \"\n CONSTANT: (3295..3298)\n CHARACTER: (3295..3298) \"#\\d\"\n CLOSE_PAREN: (3298..3299) \")\"\n CLOSE_PAREN: (3299..3300) \")\"\n ATMOSPHERE: (3300..3305) \"\n \"\n FORM: (3305..3339)\n OPEN_PAREN: (3305..3306) \"(\"\n SYMBOL: (3306..3309)\n IDENTIFIER: (3306..3309) \"not\"\n ATMOSPHERE: (3309..3310) \" \"\n FORM: (3310..3338)\n OPEN_PAREN: (3310..3311) \"(\"\n SYMBOL: (3311..3321)\n IDENTIFIER: (3311..3321) \"char-ci>=?\"\n ATMOSPHERE: (3321..3322) \" \"\n CONSTANT: (3322..3325)\n CHARACTER: (3322..3325) \"#\\a\"\n ATMOSPHERE: (3325..3326) \" \"\n CONSTANT: (3326..3329)\n CHARACTER: (3326..3329) \"#\\b\"\n ATMOSPHERE: (3329..3330) \" \"\n CONSTANT: (3330..3333)\n CHARACTER: (3330..3333) \"#\\c\"\n ATMOSPHERE: (3333..3334) \" \"\n CONSTANT: (3334..3337)\n CHARACTER: (3334..3337) \"#\\d\"\n CLOSE_PAREN: (3337..3338) \")\"\n CLOSE_PAREN: (3338..3339) \")\"\n ATMOSPHERE: (3339..3344) \"\n \"\n FORM: (3344..3375)\n OPEN_PAREN: (3344..3345) \"(\"\n SYMBOL: (3345..3348)\n IDENTIFIER: (3345..3348) \"not\"\n ATMOSPHERE: (3348..3349) \" \"\n FORM: (3349..3374)\n OPEN_PAREN: (3349..3350) \"(\"\n SYMBOL: (3350..3357)\n IDENTIFIER: (3350..3357) \"char>=?\"\n ATMOSPHERE: (3357..3358) \" \"\n CONSTANT: (3358..3361)\n CHARACTER: (3358..3361) \"#\\A\"\n ATMOSPHERE: (3361..3362) \" \"\n CONSTANT: (3362..3365)\n CHARACTER: (3362..3365) \"#\\b\"\n ATMOSPHERE: (3365..3366) \" \"\n CONSTANT: (3366..3369)\n CHARACTER: (3366..3369) \"#\\c\"\n ATMOSPHERE: (3369..3370) \" \"\n CONSTANT: (3370..3373)\n CHARACTER: (3370..3373) \"#\\D\"\n CLOSE_PAREN: (3373..3374) \")\"\n CLOSE_PAREN: (3374..3375) \")\"\n ATMOSPHERE: (3375..3380) \"\n \"\n FORM: (3380..3414)\n OPEN_PAREN: (3380..3381) \"(\"\n SYMBOL: (3381..3384)\n IDENTIFIER: (3381..3384) \"not\"\n ATMOSPHERE: (3384..3385) \" \"\n FORM: (3385..3413)\n OPEN_PAREN: (3385..3386) \"(\"\n SYMBOL: (3386..3396)\n IDENTIFIER: (3386..3396) \"char-ci>=?\"\n ATMOSPHERE: (3396..3397) \" \"\n CONSTANT: (3397..3400)\n CHARACTER: (3397..3400) \"#\\A\"\n ATMOSPHERE: (3400..3401) \" \"\n CONSTANT: (3401..3404)\n CHARACTER: (3401..3404) \"#\\b\"\n ATMOSPHERE: (3404..3405) \" \"\n CONSTANT: (3405..3408)\n CHARACTER: (3405..3408) \"#\\c\"\n ATMOSPHERE: (3408..3409) \" \"\n CONSTANT: (3409..3412)\n CHARACTER: (3409..3412) \"#\\D\"\n CLOSE_PAREN: (3412..3413) \")\"\n CLOSE_PAREN: (3413..3414) \")\"\n ATMOSPHERE: (3414..3419) \"\n \"\n FORM: (3419..3444)\n OPEN_PAREN: (3419..3420) \"(\"\n SYMBOL: (3420..3427)\n IDENTIFIER: (3420..3427) \"char>=?\"\n ATMOSPHERE: (3427..3428) \" \"\n CONSTANT: (3428..3431)\n CHARACTER: (3428..3431) \"#\\d\"\n ATMOSPHERE: (3431..3432) \" \"\n CONSTANT: (3432..3435)\n CHARACTER: (3432..3435) \"#\\c\"\n ATMOSPHERE: (3435..3436) \" \"\n CONSTANT: (3436..3439)\n CHARACTER: (3436..3439) \"#\\b\"\n ATMOSPHERE: (3439..3440) \" \"\n CONSTANT: (3440..3443)\n CHARACTER: (3440..3443) \"#\\a\"\n CLOSE_PAREN: (3443..3444) \")\"\n ATMOSPHERE: (3444..3449) \"\n \"\n FORM: (3449..3477)\n OPEN_PAREN: (3449..3450) \"(\"\n SYMBOL: (3450..3460)\n IDENTIFIER: (3450..3460) \"char-ci>=?\"\n ATMOSPHERE: (3460..3461) \" \"\n CONSTANT: (3461..3464)\n CHARACTER: (3461..3464) \"#\\d\"\n ATMOSPHERE: (3464..3465) \" \"\n CONSTANT: (3465..3468)\n CHARACTER: (3465..3468) \"#\\c\"\n ATMOSPHERE: (3468..3469) \" \"\n CONSTANT: (3469..3472)\n CHARACTER: (3469..3472) \"#\\b\"\n ATMOSPHERE: (3472..3473) \" \"\n CONSTANT: (3473..3476)\n CHARACTER: (3473..3476) \"#\\a\"\n CLOSE_PAREN: (3476..3477) \")\"\n ATMOSPHERE: (3477..3482) \"\n \"\n FORM: (3482..3513)\n OPEN_PAREN: (3482..3483) \"(\"\n SYMBOL: (3483..3486)\n IDENTIFIER: (3483..3486) \"not\"\n ATMOSPHERE: (3486..3487) \" \"\n FORM: (3487..3512)\n OPEN_PAREN: (3487..3488) \"(\"\n SYMBOL: (3488..3495)\n IDENTIFIER: (3488..3495) \"char>=?\"\n ATMOSPHERE: (3495..3496) \" \"\n CONSTANT: (3496..3499)\n CHARACTER: (3496..3499) \"#\\D\"\n ATMOSPHERE: (3499..3500) \" \"\n CONSTANT: (3500..3503)\n CHARACTER: (3500..3503) \"#\\c\"\n ATMOSPHERE: (3503..3504) \" \"\n CONSTANT: (3504..3507)\n CHARACTER: (3504..3507) \"#\\b\"\n ATMOSPHERE: (3507..3508) \" \"\n CONSTANT: (3508..3511)\n CHARACTER: (3508..3511) \"#\\A\"\n CLOSE_PAREN: (3511..3512) \")\"\n CLOSE_PAREN: (3512..3513) \")\"\n ATMOSPHERE: (3513..3518) \"\n \"\n FORM: (3518..3546)\n OPEN_PAREN: (3518..3519) \"(\"\n SYMBOL: (3519..3529)\n IDENTIFIER: (3519..3529) \"char-ci>=?\"\n ATMOSPHERE: (3529..3530) \" \"\n CONSTANT: (3530..3533)\n CHARACTER: (3530..3533) \"#\\D\"\n ATMOSPHERE: (3533..3534) \" \"\n CONSTANT: (3534..3537)\n CHARACTER: (3534..3537) \"#\\c\"\n ATMOSPHERE: (3537..3538) \" \"\n CONSTANT: (3538..3541)\n CHARACTER: (3538..3541) \"#\\b\"\n ATMOSPHERE: (3541..3542) \" \"\n CONSTANT: (3542..3545)\n CHARACTER: (3542..3545) \"#\\A\"\n CLOSE_PAREN: (3545..3546) \")\"\n ATMOSPHERE: (3546..3551) \"\n \"\n FORM: (3551..3572)\n OPEN_PAREN: (3551..3552) \"(\"\n SYMBOL: (3552..3559)\n IDENTIFIER: (3552..3559) \"char>=?\"\n ATMOSPHERE: (3559..3560) \" \"\n CONSTANT: (3560..3563)\n CHARACTER: (3560..3563) \"#\\λ\"\n ATMOSPHERE: (3563..3564) \" \"\n CONSTANT: (3564..3567)\n CHARACTER: (3564..3567) \"#\\λ\"\n ATMOSPHERE: (3567..3568) \" \"\n CONSTANT: (3568..3571)\n CHARACTER: (3568..3571) \"#\\λ\"\n CLOSE_PAREN: (3571..3572) \")\"\n ATMOSPHERE: (3572..3577) \"\n \"\n FORM: (3577..3601)\n OPEN_PAREN: (3577..3578) \"(\"\n SYMBOL: (3578..3588)\n IDENTIFIER: (3578..3588) \"char-ci>=?\"\n ATMOSPHERE: (3588..3589) \" \"\n CONSTANT: (3589..3592)\n CHARACTER: (3589..3592) \"#\\λ\"\n ATMOSPHERE: (3592..3593) \" \"\n CONSTANT: (3593..3596)\n CHARACTER: (3593..3596) \"#\\λ\"\n ATMOSPHERE: (3596..3597) \" \"\n CONSTANT: (3597..3600)\n CHARACTER: (3597..3600) \"#\\λ\"\n CLOSE_PAREN: (3600..3601) \")\"\n ATMOSPHERE: (3601..3606) \"\n \"\n FORM: (3606..3635)\n OPEN_PAREN: (3606..3607) \"(\"\n SYMBOL: (3607..3614)\n IDENTIFIER: (3607..3614) \"char>=?\"\n ATMOSPHERE: (3614..3615) \" \"\n CONSTANT: (3615..3618)\n CHARACTER: (3615..3618) \"#\\Λ\"\n ATMOSPHERE: (3618..3619) \" \"\n CONSTANT: (3619..3622)\n CHARACTER: (3619..3622) \"#\\Λ\"\n ATMOSPHERE: (3622..3623) \" \"\n CONSTANT: (3623..3626)\n CHARACTER: (3623..3626) \"#\\Λ\"\n ATMOSPHERE: (3626..3627) \" \"\n CONSTANT: (3627..3630)\n CHARACTER: (3627..3630) \"#\\Λ\"\n ATMOSPHERE: (3630..3631) \" \"\n CONSTANT: (3631..3634)\n CHARACTER: (3631..3634) \"#\\Λ\"\n CLOSE_PAREN: (3634..3635) \")\"\n ATMOSPHERE: (3635..3640) \"\n \"\n FORM: (3640..3672)\n OPEN_PAREN: (3640..3641) \"(\"\n SYMBOL: (3641..3651)\n IDENTIFIER: (3641..3651) \"char-ci>=?\"\n ATMOSPHERE: (3651..3652) \" \"\n CONSTANT: (3652..3655)\n CHARACTER: (3652..3655) \"#\\Λ\"\n ATMOSPHERE: (3655..3656) \" \"\n CONSTANT: (3656..3659)\n CHARACTER: (3656..3659) \"#\\Λ\"\n ATMOSPHERE: (3659..3660) \" \"\n CONSTANT: (3660..3663)\n CHARACTER: (3660..3663) \"#\\Λ\"\n ATMOSPHERE: (3663..3664) \" \"\n CONSTANT: (3664..3667)\n CHARACTER: (3664..3667) \"#\\Λ\"\n ATMOSPHERE: (3667..3668) \" \"\n CONSTANT: (3668..3671)\n CHARACTER: (3668..3671) \"#\\Λ\"\n CLOSE_PAREN: (3671..3672) \")\"\n ATMOSPHERE: (3672..3677) \"\n \"\n FORM: (3677..3712)\n OPEN_PAREN: (3677..3678) \"(\"\n SYMBOL: (3678..3681)\n IDENTIFIER: (3678..3681) \"not\"\n ATMOSPHERE: (3681..3682) \" \"\n FORM: (3682..3711)\n OPEN_PAREN: (3682..3683) \"(\"\n SYMBOL: (3683..3690)\n IDENTIFIER: (3683..3690) \"char>=?\"\n ATMOSPHERE: (3690..3691) \" \"\n CONSTANT: (3691..3694)\n CHARACTER: (3691..3694) \"#\\Λ\"\n ATMOSPHERE: (3694..3695) \" \"\n CONSTANT: (3695..3698)\n CHARACTER: (3695..3698) \"#\\λ\"\n ATMOSPHERE: (3698..3699) \" \"\n CONSTANT: (3699..3702)\n CHARACTER: (3699..3702) \"#\\Λ\"\n ATMOSPHERE: (3702..3703) \" \"\n CONSTANT: (3703..3706)\n CHARACTER: (3703..3706) \"#\\Λ\"\n ATMOSPHERE: (3706..3707) \" \"\n CONSTANT: (3707..3710)\n CHARACTER: (3707..3710) \"#\\Λ\"\n CLOSE_PAREN: (3710..3711) \")\"\n CLOSE_PAREN: (3711..3712) \")\"\n ATMOSPHERE: (3712..3717) \"\n \"\n FORM: (3717..3749)\n OPEN_PAREN: (3717..3718) \"(\"\n SYMBOL: (3718..3728)\n IDENTIFIER: (3718..3728) \"char-ci>=?\"\n ATMOSPHERE: (3728..3729) \" \"\n CONSTANT: (3729..3732)\n CHARACTER: (3729..3732) \"#\\Λ\"\n ATMOSPHERE: (3732..3733) \" \"\n CONSTANT: (3733..3736)\n CHARACTER: (3733..3736) \"#\\λ\"\n ATMOSPHERE: (3736..3737) \" \"\n CONSTANT: (3737..3740)\n CHARACTER: (3737..3740) \"#\\Λ\"\n ATMOSPHERE: (3740..3741) \" \"\n CONSTANT: (3741..3744)\n CHARACTER: (3741..3744) \"#\\Λ\"\n ATMOSPHERE: (3744..3745) \" \"\n CONSTANT: (3745..3748)\n CHARACTER: (3745..3748) \"#\\Λ\"\n CLOSE_PAREN: (3748..3749) \")\"\n ATMOSPHERE: (3749..3755) \"\n\n \"\n CLOSE_PAREN: (3755..3756) \")\"\n CLOSE_PAREN: (3756..3757) \")\"\n FORM: (3757..3766)\n OPEN_PAREN: (3757..3758) \"(\"\n SYMBOL: (3758..3765)\n IDENTIFIER: (3758..3765) \"newline\"\n CLOSE_PAREN: (3765..3766) \")\"\n ATMOSPHERE: (3766..3768) \"\n\n\"\n ATMOSPHERE: (3768..3797) \";; Character class predicates\"\n ATMOSPHERE: (3797..3798) \"\n\"\n FORM: (3798..4869)\n OPEN_PAREN: (3798..3799) \"(\"\n SYMBOL: (3799..3806)\n IDENTIFIER: (3799..3806) \"display\"\n ATMOSPHERE: (3806..3807) \" \"\n FORM: (3807..4868)\n OPEN_PAREN: (3807..3808) \"(\"\n SYMBOL: (3808..3817)\n IDENTIFIER: (3808..3817) \"boolean=?\"\n ATMOSPHERE: (3817..3822) \"\n \"\n CONSTANT: (3822..3824)\n BOOLEAN: (3822..3824) \"#t\"\n ATMOSPHERE: (3824..3830) \"\n\n \"\n FORM: (3830..3852)\n OPEN_PAREN: (3830..3831) \"(\"\n SYMBOL: (3831..3847)\n IDENTIFIER: (3831..3847) \"char-alphabetic?\"\n ATMOSPHERE: (3847..3848) \" \"\n CONSTANT: (3848..3851)\n CHARACTER: (3848..3851) \"#\\a\"\n CLOSE_PAREN: (3851..3852) \")\"\n ATMOSPHERE: (3852..3857) \"\n \"\n FORM: (3857..3885)\n OPEN_PAREN: (3857..3858) \"(\"\n SYMBOL: (3858..3861)\n IDENTIFIER: (3858..3861) \"not\"\n ATMOSPHERE: (3861..3862) \" \"\n FORM: (3862..3884)\n OPEN_PAREN: (3862..3863) \"(\"\n SYMBOL: (3863..3879)\n IDENTIFIER: (3863..3879) \"char-alphabetic?\"\n ATMOSPHERE: (3879..3880) \" \"\n CONSTANT: (3880..3883)\n CHARACTER: (3880..3883) \"#\\५\"\n CLOSE_PAREN: (3883..3884) \")\"\n CLOSE_PAREN: (3884..3885) \")\"\n ATMOSPHERE: (3885..3890) \"\n \"\n FORM: (3890..3912)\n OPEN_PAREN: (3890..3891) \"(\"\n SYMBOL: (3891..3907)\n IDENTIFIER: (3891..3907) \"char-alphabetic?\"\n ATMOSPHERE: (3907..3908) \" \"\n CONSTANT: (3908..3911)\n CHARACTER: (3908..3911) \"#\\λ\"\n CLOSE_PAREN: (3911..3912) \")\"\n ATMOSPHERE: (3912..3917) \"\n \"\n FORM: (3917..3948)\n OPEN_PAREN: (3917..3918) \"(\"\n SYMBOL: (3918..3921)\n IDENTIFIER: (3918..3921) \"not\"\n ATMOSPHERE: (3921..3922) \" \"\n FORM: (3922..3947)\n OPEN_PAREN: (3922..3923) \"(\"\n SYMBOL: (3923..3939)\n IDENTIFIER: (3923..3939) \"char-alphabetic?\"\n ATMOSPHERE: (3939..3940) \" \"\n CONSTANT: (3940..3946)\n CHARACTER: (3940..3946) \"#\\null\"\n CLOSE_PAREN: (3946..3947) \")\"\n CLOSE_PAREN: (3947..3948) \")\"\n ATMOSPHERE: (3948..3953) \"\n \"\n FORM: (3953..3985)\n OPEN_PAREN: (3953..3954) \"(\"\n SYMBOL: (3954..3957)\n IDENTIFIER: (3954..3957) \"not\"\n ATMOSPHERE: (3957..3958) \" \"\n FORM: (3958..3984)\n OPEN_PAREN: (3958..3959) \"(\"\n SYMBOL: (3959..3975)\n IDENTIFIER: (3959..3975) \"char-alphabetic?\"\n ATMOSPHERE: (3975..3976) \" \"\n CONSTANT: (3976..3983)\n CHARACTER: (3976..3983) \"#\\space\"\n CLOSE_PAREN: (3983..3984) \")\"\n CLOSE_PAREN: (3984..3985) \")\"\n ATMOSPHERE: (3985..3991) \"\n\n \"\n FORM: (3991..4016)\n OPEN_PAREN: (3991..3992) \"(\"\n SYMBOL: (3992..3995)\n IDENTIFIER: (3992..3995) \"not\"\n ATMOSPHERE: (3995..3996) \" \"\n FORM: (3996..4015)\n OPEN_PAREN: (3996..3997) \"(\"\n SYMBOL: (3997..4010)\n IDENTIFIER: (3997..4010) \"char-numeric?\"\n ATMOSPHERE: (4010..4011) \" \"\n CONSTANT: (4011..4014)\n CHARACTER: (4011..4014) \"#\\a\"\n CLOSE_PAREN: (4014..4015) \")\"\n CLOSE_PAREN: (4015..4016) \")\"\n ATMOSPHERE: (4016..4021) \"\n \"\n FORM: (4021..4040)\n OPEN_PAREN: (4021..4022) \"(\"\n SYMBOL: (4022..4035)\n IDENTIFIER: (4022..4035) \"char-numeric?\"\n ATMOSPHERE: (4035..4036) \" \"\n CONSTANT: (4036..4039)\n CHARACTER: (4036..4039) \"#\\५\"\n CLOSE_PAREN: (4039..4040) \")\"\n ATMOSPHERE: (4040..4045) \"\n \"\n FORM: (4045..4070)\n OPEN_PAREN: (4045..4046) \"(\"\n SYMBOL: (4046..4049)\n IDENTIFIER: (4046..4049) \"not\"\n ATMOSPHERE: (4049..4050) \" \"\n FORM: (4050..4069)\n OPEN_PAREN: (4050..4051) \"(\"\n SYMBOL: (4051..4064)\n IDENTIFIER: (4051..4064) \"char-numeric?\"\n ATMOSPHERE: (4064..4065) \" \"\n CONSTANT: (4065..4068)\n CHARACTER: (4065..4068) \"#\\λ\"\n CLOSE_PAREN: (4068..4069) \")\"\n CLOSE_PAREN: (4069..4070) \")\"\n ATMOSPHERE: (4070..4075) \"\n \"\n FORM: (4075..4103)\n OPEN_PAREN: (4075..4076) \"(\"\n SYMBOL: (4076..4079)\n IDENTIFIER: (4076..4079) \"not\"\n ATMOSPHERE: (4079..4080) \" \"\n FORM: (4080..4102)\n OPEN_PAREN: (4080..4081) \"(\"\n SYMBOL: (4081..4094)\n IDENTIFIER: (4081..4094) \"char-numeric?\"\n ATMOSPHERE: (4094..4095) \" \"\n CONSTANT: (4095..4101)\n CHARACTER: (4095..4101) \"#\\null\"\n CLOSE_PAREN: (4101..4102) \")\"\n CLOSE_PAREN: (4102..4103) \")\"\n ATMOSPHERE: (4103..4108) \"\n \"\n FORM: (4108..4137)\n OPEN_PAREN: (4108..4109) \"(\"\n SYMBOL: (4109..4112)\n IDENTIFIER: (4109..4112) \"not\"\n ATMOSPHERE: (4112..4113) \" \"\n FORM: (4113..4136)\n OPEN_PAREN: (4113..4114) \"(\"\n SYMBOL: (4114..4127)\n IDENTIFIER: (4114..4127) \"char-numeric?\"\n ATMOSPHERE: (4127..4128) \" \"\n CONSTANT: (4128..4135)\n CHARACTER: (4128..4135) \"#\\space\"\n CLOSE_PAREN: (4135..4136) \")\"\n CLOSE_PAREN: (4136..4137) \")\"\n ATMOSPHERE: (4137..4143) \"\n\n \"\n FORM: (4143..4171)\n OPEN_PAREN: (4143..4144) \"(\"\n SYMBOL: (4144..4147)\n IDENTIFIER: (4144..4147) \"not\"\n ATMOSPHERE: (4147..4148) \" \"\n FORM: (4148..4170)\n OPEN_PAREN: (4148..4149) \"(\"\n SYMBOL: (4149..4165)\n IDENTIFIER: (4149..4165) \"char-whitespace?\"\n ATMOSPHERE: (4165..4166) \" \"\n CONSTANT: (4166..4169)\n CHARACTER: (4166..4169) \"#\\a\"\n CLOSE_PAREN: (4169..4170) \")\"\n CLOSE_PAREN: (4170..4171) \")\"\n ATMOSPHERE: (4171..4176) \"\n \"\n FORM: (4176..4204)\n OPEN_PAREN: (4176..4177) \"(\"\n SYMBOL: (4177..4180)\n IDENTIFIER: (4177..4180) \"not\"\n ATMOSPHERE: (4180..4181) \" \"\n FORM: (4181..4203)\n OPEN_PAREN: (4181..4182) \"(\"\n SYMBOL: (4182..4198)\n IDENTIFIER: (4182..4198) \"char-whitespace?\"\n ATMOSPHERE: (4198..4199) \" \"\n CONSTANT: (4199..4202)\n CHARACTER: (4199..4202) \"#\\५\"\n CLOSE_PAREN: (4202..4203) \")\"\n CLOSE_PAREN: (4203..4204) \")\"\n ATMOSPHERE: (4204..4209) \"\n \"\n FORM: (4209..4237)\n OPEN_PAREN: (4209..4210) \"(\"\n SYMBOL: (4210..4213)\n IDENTIFIER: (4210..4213) \"not\"\n ATMOSPHERE: (4213..4214) \" \"\n FORM: (4214..4236)\n OPEN_PAREN: (4214..4215) \"(\"\n SYMBOL: (4215..4231)\n IDENTIFIER: (4215..4231) \"char-whitespace?\"\n ATMOSPHERE: (4231..4232) \" \"\n CONSTANT: (4232..4235)\n CHARACTER: (4232..4235) \"#\\λ\"\n CLOSE_PAREN: (4235..4236) \")\"\n CLOSE_PAREN: (4236..4237) \")\"\n ATMOSPHERE: (4237..4242) \"\n \"\n FORM: (4242..4273)\n OPEN_PAREN: (4242..4243) \"(\"\n SYMBOL: (4243..4246)\n IDENTIFIER: (4243..4246) \"not\"\n ATMOSPHERE: (4246..4247) \" \"\n FORM: (4247..4272)\n OPEN_PAREN: (4247..4248) \"(\"\n SYMBOL: (4248..4264)\n IDENTIFIER: (4248..4264) \"char-whitespace?\"\n ATMOSPHERE: (4264..4265) \" \"\n CONSTANT: (4265..4271)\n CHARACTER: (4265..4271) \"#\\null\"\n CLOSE_PAREN: (4271..4272) \")\"\n CLOSE_PAREN: (4272..4273) \")\"\n ATMOSPHERE: (4273..4278) \"\n \"\n FORM: (4278..4304)\n OPEN_PAREN: (4278..4279) \"(\"\n SYMBOL: (4279..4295)\n IDENTIFIER: (4279..4295) \"char-whitespace?\"\n ATMOSPHERE: (4295..4296) \" \"\n CONSTANT: (4296..4303)\n CHARACTER: (4296..4303) \"#\\space\"\n CLOSE_PAREN: (4303..4304) \")\"\n ATMOSPHERE: (4304..4309) \"\n \"\n FORM: (4309..4333)\n OPEN_PAREN: (4309..4310) \"(\"\n SYMBOL: (4310..4326)\n IDENTIFIER: (4310..4326) \"char-whitespace?\"\n ATMOSPHERE: (4326..4327) \" \"\n CONSTANT: (4327..4332)\n CHARACTER: (4327..4332) \"#\\tab\"\n CLOSE_PAREN: (4332..4333) \")\"\n ATMOSPHERE: (4333..4343) \"\n \n \"\n FORM: (4343..4371)\n OPEN_PAREN: (4343..4344) \"(\"\n SYMBOL: (4344..4347)\n IDENTIFIER: (4344..4347) \"not\"\n ATMOSPHERE: (4347..4348) \" \"\n FORM: (4348..4370)\n OPEN_PAREN: (4348..4349) \"(\"\n SYMBOL: (4349..4365)\n IDENTIFIER: (4349..4365) \"char-upper-case?\"\n ATMOSPHERE: (4365..4366) \" \"\n CONSTANT: (4366..4369)\n CHARACTER: (4366..4369) \"#\\a\"\n CLOSE_PAREN: (4369..4370) \")\"\n CLOSE_PAREN: (4370..4371) \")\"\n ATMOSPHERE: (4371..4376) \"\n \"\n FORM: (4376..4398)\n OPEN_PAREN: (4376..4377) \"(\"\n SYMBOL: (4377..4393)\n IDENTIFIER: (4377..4393) \"char-upper-case?\"\n ATMOSPHERE: (4393..4394) \" \"\n CONSTANT: (4394..4397)\n CHARACTER: (4394..4397) \"#\\A\"\n CLOSE_PAREN: (4397..4398) \")\"\n ATMOSPHERE: (4398..4403) \"\n \"\n FORM: (4403..4431)\n OPEN_PAREN: (4403..4404) \"(\"\n SYMBOL: (4404..4407)\n IDENTIFIER: (4404..4407) \"not\"\n ATMOSPHERE: (4407..4408) \" \"\n FORM: (4408..4430)\n OPEN_PAREN: (4408..4409) \"(\"\n SYMBOL: (4409..4425)\n IDENTIFIER: (4409..4425) \"char-upper-case?\"\n ATMOSPHERE: (4425..4426) \" \"\n CONSTANT: (4426..4429)\n CHARACTER: (4426..4429) \"#\\५\"\n CLOSE_PAREN: (4429..4430) \")\"\n CLOSE_PAREN: (4430..4431) \")\"\n ATMOSPHERE: (4431..4436) \"\n \"\n FORM: (4436..4464)\n OPEN_PAREN: (4436..4437) \"(\"\n SYMBOL: (4437..4440)\n IDENTIFIER: (4437..4440) \"not\"\n ATMOSPHERE: (4440..4441) \" \"\n FORM: (4441..4463)\n OPEN_PAREN: (4441..4442) \"(\"\n SYMBOL: (4442..4458)\n IDENTIFIER: (4442..4458) \"char-upper-case?\"\n ATMOSPHERE: (4458..4459) \" \"\n CONSTANT: (4459..4462)\n CHARACTER: (4459..4462) \"#\\λ\"\n CLOSE_PAREN: (4462..4463) \")\"\n CLOSE_PAREN: (4463..4464) \")\"\n ATMOSPHERE: (4464..4469) \"\n \"\n FORM: (4469..4491)\n OPEN_PAREN: (4469..4470) \"(\"\n SYMBOL: (4470..4486)\n IDENTIFIER: (4470..4486) \"char-upper-case?\"\n ATMOSPHERE: (4486..4487) \" \"\n CONSTANT: (4487..4490)\n CHARACTER: (4487..4490) \"#\\Λ\"\n CLOSE_PAREN: (4490..4491) \")\"\n ATMOSPHERE: (4491..4496) \"\n \"\n FORM: (4496..4527)\n OPEN_PAREN: (4496..4497) \"(\"\n SYMBOL: (4497..4500)\n IDENTIFIER: (4497..4500) \"not\"\n ATMOSPHERE: (4500..4501) \" \"\n FORM: (4501..4526)\n OPEN_PAREN: (4501..4502) \"(\"\n SYMBOL: (4502..4518)\n IDENTIFIER: (4502..4518) \"char-upper-case?\"\n ATMOSPHERE: (4518..4519) \" \"\n CONSTANT: (4519..4525)\n CHARACTER: (4519..4525) \"#\\null\"\n CLOSE_PAREN: (4525..4526) \")\"\n CLOSE_PAREN: (4526..4527) \")\"\n ATMOSPHERE: (4527..4532) \"\n \"\n FORM: (4532..4564)\n OPEN_PAREN: (4532..4533) \"(\"\n SYMBOL: (4533..4536)\n IDENTIFIER: (4533..4536) \"not\"\n ATMOSPHERE: (4536..4537) \" \"\n FORM: (4537..4563)\n OPEN_PAREN: (4537..4538) \"(\"\n SYMBOL: (4538..4554)\n IDENTIFIER: (4538..4554) \"char-upper-case?\"\n ATMOSPHERE: (4554..4555) \" \"\n CONSTANT: (4555..4562)\n CHARACTER: (4555..4562) \"#\\space\"\n CLOSE_PAREN: (4562..4563) \")\"\n CLOSE_PAREN: (4563..4564) \")\"\n ATMOSPHERE: (4564..4569) \"\n \"\n FORM: (4569..4599)\n OPEN_PAREN: (4569..4570) \"(\"\n SYMBOL: (4570..4573)\n IDENTIFIER: (4570..4573) \"not\"\n ATMOSPHERE: (4573..4574) \" \"\n FORM: (4574..4598)\n OPEN_PAREN: (4574..4575) \"(\"\n SYMBOL: (4575..4591)\n IDENTIFIER: (4575..4591) \"char-upper-case?\"\n ATMOSPHERE: (4591..4592) \" \"\n CONSTANT: (4592..4597)\n CHARACTER: (4592..4597) \"#\\tab\"\n CLOSE_PAREN: (4597..4598) \")\"\n CLOSE_PAREN: (4598..4599) \")\"\n ATMOSPHERE: (4599..4605) \"\n\n \"\n FORM: (4605..4627)\n OPEN_PAREN: (4605..4606) \"(\"\n SYMBOL: (4606..4622)\n IDENTIFIER: (4606..4622) \"char-lower-case?\"\n ATMOSPHERE: (4622..4623) \" \"\n CONSTANT: (4623..4626)\n CHARACTER: (4623..4626) \"#\\a\"\n CLOSE_PAREN: (4626..4627) \")\"\n ATMOSPHERE: (4627..4632) \"\n \"\n FORM: (4632..4660)\n OPEN_PAREN: (4632..4633) \"(\"\n SYMBOL: (4633..4636)\n IDENTIFIER: (4633..4636) \"not\"\n ATMOSPHERE: (4636..4637) \" \"\n FORM: (4637..4659)\n OPEN_PAREN: (4637..4638) \"(\"\n SYMBOL: (4638..4654)\n IDENTIFIER: (4638..4654) \"char-lower-case?\"\n ATMOSPHERE: (4654..4655) \" \"\n CONSTANT: (4655..4658)\n CHARACTER: (4655..4658) \"#\\A\"\n CLOSE_PAREN: (4658..4659) \")\"\n CLOSE_PAREN: (4659..4660) \")\"\n ATMOSPHERE: (4660..4665) \"\n \"\n FORM: (4665..4693)\n OPEN_PAREN: (4665..4666) \"(\"\n SYMBOL: (4666..4669)\n IDENTIFIER: (4666..4669) \"not\"\n ATMOSPHERE: (4669..4670) \" \"\n FORM: (4670..4692)\n OPEN_PAREN: (4670..4671) \"(\"\n SYMBOL: (4671..4687)\n IDENTIFIER: (4671..4687) \"char-lower-case?\"\n ATMOSPHERE: (4687..4688) \" \"\n CONSTANT: (4688..4691)\n CHARACTER: (4688..4691) \"#\\५\"\n CLOSE_PAREN: (4691..4692) \")\"\n CLOSE_PAREN: (4692..4693) \")\"\n ATMOSPHERE: (4693..4698) \"\n \"\n FORM: (4698..4720)\n OPEN_PAREN: (4698..4699) \"(\"\n SYMBOL: (4699..4715)\n IDENTIFIER: (4699..4715) \"char-lower-case?\"\n ATMOSPHERE: (4715..4716) \" \"\n CONSTANT: (4716..4719)\n CHARACTER: (4716..4719) \"#\\λ\"\n CLOSE_PAREN: (4719..4720) \")\"\n ATMOSPHERE: (4720..4725) \"\n \"\n FORM: (4725..4753)\n OPEN_PAREN: (4725..4726) \"(\"\n SYMBOL: (4726..4729)\n IDENTIFIER: (4726..4729) \"not\"\n ATMOSPHERE: (4729..4730) \" \"\n FORM: (4730..4752)\n OPEN_PAREN: (4730..4731) \"(\"\n SYMBOL: (4731..4747)\n IDENTIFIER: (4731..4747) \"char-lower-case?\"\n ATMOSPHERE: (4747..4748) \" \"\n CONSTANT: (4748..4751)\n CHARACTER: (4748..4751) \"#\\Λ\"\n CLOSE_PAREN: (4751..4752) \")\"\n CLOSE_PAREN: (4752..4753) \")\"\n ATMOSPHERE: (4753..4758) \"\n \"\n FORM: (4758..4789)\n OPEN_PAREN: (4758..4759) \"(\"\n SYMBOL: (4759..4762)\n IDENTIFIER: (4759..4762) \"not\"\n ATMOSPHERE: (4762..4763) \" \"\n FORM: (4763..4788)\n OPEN_PAREN: (4763..4764) \"(\"\n SYMBOL: (4764..4780)\n IDENTIFIER: (4764..4780) \"char-lower-case?\"\n ATMOSPHERE: (4780..4781) \" \"\n CONSTANT: (4781..4787)\n CHARACTER: (4781..4787) \"#\\null\"\n CLOSE_PAREN: (4787..4788) \")\"\n CLOSE_PAREN: (4788..4789) \")\"\n ATMOSPHERE: (4789..4794) \"\n \"\n FORM: (4794..4826)\n OPEN_PAREN: (4794..4795) \"(\"\n SYMBOL: (4795..4798)\n IDENTIFIER: (4795..4798) \"not\"\n ATMOSPHERE: (4798..4799) \" \"\n FORM: (4799..4825)\n OPEN_PAREN: (4799..4800) \"(\"\n SYMBOL: (4800..4816)\n IDENTIFIER: (4800..4816) \"char-lower-case?\"\n ATMOSPHERE: (4816..4817) \" \"\n CONSTANT: (4817..4824)\n CHARACTER: (4817..4824) \"#\\space\"\n CLOSE_PAREN: (4824..4825) \")\"\n CLOSE_PAREN: (4825..4826) \")\"\n ATMOSPHERE: (4826..4831) \"\n \"\n FORM: (4831..4861)\n OPEN_PAREN: (4831..4832) \"(\"\n SYMBOL: (4832..4835)\n IDENTIFIER: (4832..4835) \"not\"\n ATMOSPHERE: (4835..4836) \" \"\n FORM: (4836..4860)\n OPEN_PAREN: (4836..4837) \"(\"\n SYMBOL: (4837..4853)\n IDENTIFIER: (4837..4853) \"char-lower-case?\"\n ATMOSPHERE: (4853..4854) \" \"\n CONSTANT: (4854..4859)\n CHARACTER: (4854..4859) \"#\\tab\"\n CLOSE_PAREN: (4859..4860) \")\"\n CLOSE_PAREN: (4860..4861) \")\"\n ATMOSPHERE: (4861..4867) \"\n\n \"\n CLOSE_PAREN: (4867..4868) \")\"\n CLOSE_PAREN: (4868..4869) \")\"\n ATMOSPHERE: (4869..4871) \"\n\n\"\n ATMOSPHERE: (4871..4891) \";; casing transforms\"\n ATMOSPHERE: (4891..4892) \"\n\"\n FORM: (4892..5346)\n OPEN_PAREN: (4892..4893) \"(\"\n SYMBOL: (4893..4900)\n IDENTIFIER: (4893..4900) \"display\"\n ATMOSPHERE: (4900..4901) \" \"\n FORM: (4901..5345)\n OPEN_PAREN: (4901..4902) \"(\"\n SYMBOL: (4902..4906)\n IDENTIFIER: (4902..4906) \"list\"\n ATMOSPHERE: (4906..4911) \"\n \"\n FORM: (4911..4928)\n OPEN_PAREN: (4911..4912) \"(\"\n SYMBOL: (4912..4923)\n IDENTIFIER: (4912..4923) \"char-upcase\"\n ATMOSPHERE: (4923..4924) \" \"\n CONSTANT: (4924..4927)\n CHARACTER: (4924..4927) \"#\\a\"\n CLOSE_PAREN: (4927..4928) \")\"\n ATMOSPHERE: (4928..4933) \"\n \"\n FORM: (4933..4950)\n OPEN_PAREN: (4933..4934) \"(\"\n SYMBOL: (4934..4945)\n IDENTIFIER: (4934..4945) \"char-upcase\"\n ATMOSPHERE: (4945..4946) \" \"\n CONSTANT: (4946..4949)\n CHARACTER: (4946..4949) \"#\\A\"\n CLOSE_PAREN: (4949..4950) \")\"\n ATMOSPHERE: (4950..4955) \"\n \"\n FORM: (4955..4972)\n OPEN_PAREN: (4955..4956) \"(\"\n SYMBOL: (4956..4967)\n IDENTIFIER: (4956..4967) \"char-upcase\"\n ATMOSPHERE: (4967..4968) \" \"\n CONSTANT: (4968..4971)\n CHARACTER: (4968..4971) \"#\\५\"\n CLOSE_PAREN: (4971..4972) \")\"\n ATMOSPHERE: (4972..4977) \"\n \"\n FORM: (4977..4994)\n OPEN_PAREN: (4977..4978) \"(\"\n SYMBOL: (4978..4989)\n IDENTIFIER: (4978..4989) \"char-upcase\"\n ATMOSPHERE: (4989..4990) \" \"\n CONSTANT: (4990..4993)\n CHARACTER: (4990..4993) \"#\\λ\"\n CLOSE_PAREN: (4993..4994) \")\"\n ATMOSPHERE: (4994..4999) \"\n \"\n FORM: (4999..5019)\n OPEN_PAREN: (4999..5000) \"(\"\n SYMBOL: (5000..5011)\n IDENTIFIER: (5000..5011) \"char-upcase\"\n ATMOSPHERE: (5011..5012) \" \"\n CONSTANT: (5012..5018)\n CHARACTER: (5012..5018) \"#\\null\"\n CLOSE_PAREN: (5018..5019) \")\"\n ATMOSPHERE: (5019..5024) \"\n \"\n FORM: (5024..5045)\n OPEN_PAREN: (5024..5025) \"(\"\n SYMBOL: (5025..5036)\n IDENTIFIER: (5025..5036) \"char-upcase\"\n ATMOSPHERE: (5036..5037) \" \"\n CONSTANT: (5037..5044)\n CHARACTER: (5037..5044) \"#\\space\"\n CLOSE_PAREN: (5044..5045) \")\"\n ATMOSPHERE: (5045..5050) \"\n \"\n FORM: (5050..5069)\n OPEN_PAREN: (5050..5051) \"(\"\n SYMBOL: (5051..5064)\n IDENTIFIER: (5051..5064) \"char-downcase\"\n ATMOSPHERE: (5064..5065) \" \"\n CONSTANT: (5065..5068)\n CHARACTER: (5065..5068) \"#\\a\"\n CLOSE_PAREN: (5068..5069) \")\"\n ATMOSPHERE: (5069..5074) \"\n \"\n FORM: (5074..5093)\n OPEN_PAREN: (5074..5075) \"(\"\n SYMBOL: (5075..5088)\n IDENTIFIER: (5075..5088) \"char-downcase\"\n ATMOSPHERE: (5088..5089) \" \"\n CONSTANT: (5089..5092)\n CHARACTER: (5089..5092) \"#\\A\"\n CLOSE_PAREN: (5092..5093) \")\"\n ATMOSPHERE: (5093..5098) \"\n \"\n FORM: (5098..5117)\n OPEN_PAREN: (5098..5099) \"(\"\n SYMBOL: (5099..5112)\n IDENTIFIER: (5099..5112) \"char-downcase\"\n ATMOSPHERE: (5112..5113) \" \"\n CONSTANT: (5113..5116)\n CHARACTER: (5113..5116) \"#\\५\"\n CLOSE_PAREN: (5116..5117) \")\"\n ATMOSPHERE: (5117..5122) \"\n \"\n FORM: (5122..5141)\n OPEN_PAREN: (5122..5123) \"(\"\n SYMBOL: (5123..5136)\n IDENTIFIER: (5123..5136) \"char-downcase\"\n ATMOSPHERE: (5136..5137) \" \"\n CONSTANT: (5137..5140)\n CHARACTER: (5137..5140) \"#\\Λ\"\n CLOSE_PAREN: (5140..5141) \")\"\n ATMOSPHERE: (5141..5146) \"\n \"\n FORM: (5146..5166)\n OPEN_PAREN: (5146..5147) \"(\"\n SYMBOL: (5147..5158)\n IDENTIFIER: (5147..5158) \"char-upcase\"\n ATMOSPHERE: (5158..5159) \" \"\n CONSTANT: (5159..5165)\n CHARACTER: (5159..5165) \"#\\null\"\n CLOSE_PAREN: (5165..5166) \")\"\n ATMOSPHERE: (5166..5171) \"\n \"\n FORM: (5171..5192)\n OPEN_PAREN: (5171..5172) \"(\"\n SYMBOL: (5172..5183)\n IDENTIFIER: (5172..5183) \"char-upcase\"\n ATMOSPHERE: (5183..5184) \" \"\n CONSTANT: (5184..5191)\n CHARACTER: (5184..5191) \"#\\space\"\n CLOSE_PAREN: (5191..5192) \")\"\n ATMOSPHERE: (5192..5197) \"\n \"\n FORM: (5197..5216)\n OPEN_PAREN: (5197..5198) \"(\"\n SYMBOL: (5198..5211)\n IDENTIFIER: (5198..5211) \"char-foldcase\"\n ATMOSPHERE: (5211..5212) \" \"\n CONSTANT: (5212..5215)\n CHARACTER: (5212..5215) \"#\\a\"\n CLOSE_PAREN: (5215..5216) \")\"\n ATMOSPHERE: (5216..5221) \"\n \"\n FORM: (5221..5240)\n OPEN_PAREN: (5221..5222) \"(\"\n SYMBOL: (5222..5235)\n IDENTIFIER: (5222..5235) \"char-foldcase\"\n ATMOSPHERE: (5235..5236) \" \"\n CONSTANT: (5236..5239)\n CHARACTER: (5236..5239) \"#\\A\"\n CLOSE_PAREN: (5239..5240) \")\"\n ATMOSPHERE: (5240..5245) \"\n \"\n FORM: (5245..5264)\n OPEN_PAREN: (5245..5246) \"(\"\n SYMBOL: (5246..5259)\n IDENTIFIER: (5246..5259) \"char-foldcase\"\n ATMOSPHERE: (5259..5260) \" \"\n CONSTANT: (5260..5263)\n CHARACTER: (5260..5263) \"#\\५\"\n CLOSE_PAREN: (5263..5264) \")\"\n ATMOSPHERE: (5264..5269) \"\n \"\n FORM: (5269..5288)\n OPEN_PAREN: (5269..5270) \"(\"\n SYMBOL: (5270..5283)\n IDENTIFIER: (5270..5283) \"char-foldcase\"\n ATMOSPHERE: (5283..5284) \" \"\n CONSTANT: (5284..5287)\n CHARACTER: (5284..5287) \"#\\Λ\"\n CLOSE_PAREN: (5287..5288) \")\"\n ATMOSPHERE: (5288..5293) \"\n \"\n FORM: (5293..5313)\n OPEN_PAREN: (5293..5294) \"(\"\n SYMBOL: (5294..5305)\n IDENTIFIER: (5294..5305) \"char-upcase\"\n ATMOSPHERE: (5305..5306) \" \"\n CONSTANT: (5306..5312)\n CHARACTER: (5306..5312) \"#\\null\"\n CLOSE_PAREN: (5312..5313) \")\"\n ATMOSPHERE: (5313..5318) \"\n \"\n FORM: (5318..5339)\n OPEN_PAREN: (5318..5319) \"(\"\n SYMBOL: (5319..5330)\n IDENTIFIER: (5319..5330) \"char-upcase\"\n ATMOSPHERE: (5330..5331) \" \"\n CONSTANT: (5331..5338)\n CHARACTER: (5331..5338) \"#\\space\"\n CLOSE_PAREN: (5338..5339) \")\"\n ATMOSPHERE: (5339..5344) \"\n \"\n CLOSE_PAREN: (5344..5345) \")\"\n CLOSE_PAREN: (5345..5346) \")\"\n ATMOSPHERE: (5346..5347) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_chibi-r7rs-tests.scm.json b/test/Feersum.Tests/_snapshots/Parse_chibi-r7rs-tests.scm.json
deleted file mode 100644
index 7991702..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_chibi-r7rs-tests.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..79716)\n ATMOSPHERE: (0..24) \";; -*- coding: utf-8 -*-\"\n ATMOSPHERE: (24..26) \"\n\n\"\n ATMOSPHERE: (26..99) \";;;;; This file is a modified version of the Chibi Scheme R7RS Test Suite\"\n ATMOSPHERE: (99..100) \"\n\"\n ATMOSPHERE: (100..102) \";;\"\n ATMOSPHERE: (102..103) \"\n\"\n ATMOSPHERE: (103..180) \";; Check out Chibi Scheme on GitHub: \"\n ATMOSPHERE: (180..182) \"\n\n\"\n ATMOSPHERE: (182..218) \"; Copyright (c) 2009-2018 Alex Shinn\"\n ATMOSPHERE: (218..219) \"\n\"\n ATMOSPHERE: (219..241) \"; All rights reserved.\"\n ATMOSPHERE: (241..243) \"\n\n\"\n ATMOSPHERE: (243..311) \"; Redistribution and use in source and binary forms, with or without\"\n ATMOSPHERE: (311..312) \"\n\"\n ATMOSPHERE: (312..380) \"; modification, are permitted provided that the following conditions\"\n ATMOSPHERE: (380..381) \"\n\"\n ATMOSPHERE: (381..391) \"; are met:\"\n ATMOSPHERE: (391..392) \"\n\"\n ATMOSPHERE: (392..459) \"; 1. Redistributions of source code must retain the above copyright\"\n ATMOSPHERE: (459..460) \"\n\"\n ATMOSPHERE: (460..526) \"; notice, this list of conditions and the following disclaimer.\"\n ATMOSPHERE: (526..527) \"\n\"\n ATMOSPHERE: (527..597) \"; 2. Redistributions in binary form must reproduce the above copyright\"\n ATMOSPHERE: (597..598) \"\n\"\n ATMOSPHERE: (598..670) \"; notice, this list of conditions and the following disclaimer in the\"\n ATMOSPHERE: (670..671) \"\n\"\n ATMOSPHERE: (671..744) \"; documentation and/or other materials provided with the distribution.\"\n ATMOSPHERE: (744..745) \"\n\"\n ATMOSPHERE: (745..819) \"; 3. The name of the author may not be used to endorse or promote products\"\n ATMOSPHERE: (819..820) \"\n\"\n ATMOSPHERE: (820..894) \"; derived from this software without specific prior written permission.\"\n ATMOSPHERE: (894..896) \"\n\n\"\n ATMOSPHERE: (896..966) \"; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\"\n ATMOSPHERE: (966..967) \"\n\"\n ATMOSPHERE: (967..1042) \"; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\"\n ATMOSPHERE: (1042..1043) \"\n\"\n ATMOSPHERE: (1043..1116) \"; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\"\n ATMOSPHERE: (1116..1117) \"\n\"\n ATMOSPHERE: (1117..1183) \"; IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\"\n ATMOSPHERE: (1183..1184) \"\n\"\n ATMOSPHERE: (1184..1258) \"; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\"\n ATMOSPHERE: (1258..1259) \"\n\"\n ATMOSPHERE: (1259..1334) \"; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\"\n ATMOSPHERE: (1334..1335) \"\n\"\n ATMOSPHERE: (1335..1406) \"; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\"\n ATMOSPHERE: (1406..1407) \"\n\"\n ATMOSPHERE: (1407..1476) \"; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\"\n ATMOSPHERE: (1476..1477) \"\n\"\n ATMOSPHERE: (1477..1551) \"; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\"\n ATMOSPHERE: (1551..1552) \"\n\"\n ATMOSPHERE: (1552..1619) \"; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\"\n ATMOSPHERE: (1619..1621) \"\n\n\"\n FORM: (1621..2109)\n OPEN_PAREN: (1621..1622) \"(\"\n SYMBOL: (1622..1628)\n IDENTIFIER: (1622..1628) \"import\"\n ATMOSPHERE: (1628..1629) \" \"\n FORM: (1629..1642)\n OPEN_PAREN: (1629..1630) \"(\"\n SYMBOL: (1630..1636)\n IDENTIFIER: (1630..1636) \"scheme\"\n ATMOSPHERE: (1636..1637) \" \"\n SYMBOL: (1637..1641)\n IDENTIFIER: (1637..1641) \"base\"\n CLOSE_PAREN: (1641..1642) \")\"\n ATMOSPHERE: (1642..1647) \"\n \"\n ATMOSPHERE: (1647..1714) \";; FIXME: we shouldn't _need_ to import this, but we have no way of\"\n ATMOSPHERE: (1714..1719) \"\n \"\n ATMOSPHERE: (1719..1783) \";; exporting or re-exporting macro definitions currently.\"\n ATMOSPHERE: (1783..1788) \"\n \"\n FORM: (1788..1812)\n OPEN_PAREN: (1788..1789) \"(\"\n SYMBOL: (1789..1796)\n IDENTIFIER: (1789..1796) \"feersum\"\n ATMOSPHERE: (1796..1797) \" \"\n SYMBOL: (1797..1804)\n IDENTIFIER: (1797..1804) \"builtin\"\n ATMOSPHERE: (1804..1805) \" \"\n SYMBOL: (1805..1811)\n IDENTIFIER: (1805..1811) \"macros\"\n CLOSE_PAREN: (1811..1812) \")\"\n ATMOSPHERE: (1812..1813) \"\n\"\n ATMOSPHERE: (1813..1848) \";; (scheme char) (scheme lazy)\"\n ATMOSPHERE: (1848..1849) \"\n\"\n ATMOSPHERE: (1849..1907) \";; (scheme inexact) (scheme complex) (scheme time)\"\n ATMOSPHERE: (1907..1908) \"\n\"\n ATMOSPHERE: (1908..1946) \";; (scheme file) (scheme read)\"\n ATMOSPHERE: (1946..1949) \"\n \"\n FORM: (1949..1963)\n OPEN_PAREN: (1949..1950) \"(\"\n SYMBOL: (1950..1956)\n IDENTIFIER: (1950..1956) \"scheme\"\n ATMOSPHERE: (1956..1957) \" \"\n SYMBOL: (1957..1962)\n IDENTIFIER: (1957..1962) \"write\"\n CLOSE_PAREN: (1962..1963) \")\"\n ATMOSPHERE: (1963..1964) \"\n\"\n ATMOSPHERE: (1964..2034) \";; (scheme eval) (scheme process-context) (scheme case-lambda)\"\n ATMOSPHERE: (2034..2035) \"\n\"\n ATMOSPHERE: (2035..2059) \";; (scheme r5rs)\"\n ATMOSPHERE: (2059..2060) \"\n\"\n ATMOSPHERE: (2060..2099) \";; (chibi test) ; or (srfi 64)\"\n ATMOSPHERE: (2099..2108) \"\n \"\n CLOSE_PAREN: (2108..2109) \")\"\n ATMOSPHERE: (2109..2111) \"\n\n\"\n ATMOSPHERE: (2111..2177) \";; R7RS test suite. Covers all procedures and syntax in the small\"\n ATMOSPHERE: (2177..2178) \"\n\"\n ATMOSPHERE: (2178..2243) \";; language except `delete-file'. Currently assumes full-unicode\"\n ATMOSPHERE: (2243..2244) \"\n\"\n ATMOSPHERE: (2244..2305) \";; support, the full numeric tower and all standard libraries\"\n ATMOSPHERE: (2305..2306) \"\n\"\n ATMOSPHERE: (2306..2318) \";; provided.\"\n ATMOSPHERE: (2318..2319) \"\n\"\n ATMOSPHERE: (2319..2321) \";;\"\n ATMOSPHERE: (2321..2322) \"\n\"\n ATMOSPHERE: (2322..2389) \";; Uses the (chibi test) library which is written in portable R7RS.\"\n ATMOSPHERE: (2389..2390) \"\n\"\n ATMOSPHERE: (2390..2459) \";; This is mostly a subset of SRFI-64, providing test-begin, test-end\"\n ATMOSPHERE: (2459..2460) \"\n\"\n ATMOSPHERE: (2460..2514) \";; and test, which could be defined as something like:\"\n ATMOSPHERE: (2514..2515) \"\n\"\n ATMOSPHERE: (2515..2517) \";;\"\n ATMOSPHERE: (2517..2518) \"\n\"\n FORM: (2518..2541)\n OPEN_PAREN: (2518..2519) \"(\"\n SYMBOL: (2519..2525)\n IDENTIFIER: (2519..2525) \"define\"\n ATMOSPHERE: (2525..2526) \" \"\n SYMBOL: (2526..2538)\n IDENTIFIER: (2526..2538) \"indent-level\"\n ATMOSPHERE: (2538..2539) \" \"\n CONSTANT: (2539..2540)\n NUMBER: (2539..2540) \"0\"\n CLOSE_PAREN: (2540..2541) \")\"\n ATMOSPHERE: (2541..2542) \"\n\"\n FORM: (2542..2678)\n OPEN_PAREN: (2542..2543) \"(\"\n SYMBOL: (2543..2549)\n IDENTIFIER: (2543..2549) \"define\"\n ATMOSPHERE: (2549..2550) \" \"\n FORM: (2550..2558)\n OPEN_PAREN: (2550..2551) \"(\"\n SYMBOL: (2551..2557)\n IDENTIFIER: (2551..2557) \"indent\"\n CLOSE_PAREN: (2557..2558) \")\"\n ATMOSPHERE: (2558..2561) \"\n \"\n FORM: (2561..2650)\n OPEN_PAREN: (2561..2562) \"(\"\n SYMBOL: (2562..2568)\n IDENTIFIER: (2562..2568) \"define\"\n ATMOSPHERE: (2568..2569) \" \"\n FORM: (2569..2582)\n OPEN_PAREN: (2569..2570) \"(\"\n SYMBOL: (2570..2579)\n IDENTIFIER: (2570..2579) \"do-indent\"\n ATMOSPHERE: (2579..2580) \" \"\n SYMBOL: (2580..2581)\n IDENTIFIER: (2580..2581) \"n\"\n CLOSE_PAREN: (2581..2582) \")\"\n ATMOSPHERE: (2582..2584) \"\n\t\"\n FORM: (2584..2649)\n OPEN_PAREN: (2584..2585) \"(\"\n SYMBOL: (2585..2587)\n IDENTIFIER: (2585..2587) \"if\"\n ATMOSPHERE: (2587..2588) \" \"\n FORM: (2588..2595)\n OPEN_PAREN: (2588..2589) \"(\"\n SYMBOL: (2589..2590)\n IDENTIFIER: (2589..2590) \">\"\n ATMOSPHERE: (2590..2591) \" \"\n SYMBOL: (2591..2592)\n IDENTIFIER: (2591..2592) \"n\"\n ATMOSPHERE: (2592..2593) \" \"\n CONSTANT: (2593..2594)\n NUMBER: (2593..2594) \"0\"\n CLOSE_PAREN: (2594..2595) \")\"\n ATMOSPHERE: (2595..2598) \"\n\t\t\"\n FORM: (2598..2648)\n OPEN_PAREN: (2598..2599) \"(\"\n SYMBOL: (2599..2604)\n IDENTIFIER: (2599..2604) \"begin\"\n ATMOSPHERE: (2604..2609) \"\n\t\t \"\n FORM: (2609..2623)\n OPEN_PAREN: (2609..2610) \"(\"\n SYMBOL: (2610..2617)\n IDENTIFIER: (2610..2617) \"display\"\n ATMOSPHERE: (2617..2618) \" \"\n CONSTANT: (2618..2622)\n STRING: (2618..2622) \"\"\\t\"\"\n CLOSE_PAREN: (2622..2623) \")\"\n ATMOSPHERE: (2623..2628) \"\n\t\t \"\n FORM: (2628..2647)\n OPEN_PAREN: (2628..2629) \"(\"\n SYMBOL: (2629..2638)\n IDENTIFIER: (2629..2638) \"do-indent\"\n ATMOSPHERE: (2638..2639) \" \"\n FORM: (2639..2646)\n OPEN_PAREN: (2639..2640) \"(\"\n SYMBOL: (2640..2641)\n IDENTIFIER: (2640..2641) \"-\"\n ATMOSPHERE: (2641..2642) \" \"\n SYMBOL: (2642..2643)\n IDENTIFIER: (2642..2643) \"n\"\n ATMOSPHERE: (2643..2644) \" \"\n CONSTANT: (2644..2645)\n NUMBER: (2644..2645) \"1\"\n CLOSE_PAREN: (2645..2646) \")\"\n CLOSE_PAREN: (2646..2647) \")\"\n CLOSE_PAREN: (2647..2648) \")\"\n CLOSE_PAREN: (2648..2649) \")\"\n CLOSE_PAREN: (2649..2650) \")\"\n ATMOSPHERE: (2650..2653) \"\n \"\n FORM: (2653..2677)\n OPEN_PAREN: (2653..2654) \"(\"\n SYMBOL: (2654..2663)\n IDENTIFIER: (2654..2663) \"do-indent\"\n ATMOSPHERE: (2663..2664) \" \"\n SYMBOL: (2664..2676)\n IDENTIFIER: (2664..2676) \"indent-level\"\n CLOSE_PAREN: (2676..2677) \")\"\n CLOSE_PAREN: (2677..2678) \")\"\n ATMOSPHERE: (2678..2680) \"\n\n\"\n FORM: (2680..2696)\n OPEN_PAREN: (2680..2681) \"(\"\n SYMBOL: (2681..2687)\n IDENTIFIER: (2681..2687) \"define\"\n ATMOSPHERE: (2687..2688) \" \"\n SYMBOL: (2688..2693)\n IDENTIFIER: (2688..2693) \"tests\"\n ATMOSPHERE: (2693..2694) \" \"\n CONSTANT: (2694..2695)\n NUMBER: (2694..2695) \"0\"\n CLOSE_PAREN: (2695..2696) \")\"\n FORM: (2696..2712)\n OPEN_PAREN: (2696..2697) \"(\"\n SYMBOL: (2697..2703)\n IDENTIFIER: (2697..2703) \"define\"\n ATMOSPHERE: (2703..2704) \" \"\n SYMBOL: (2704..2709)\n IDENTIFIER: (2704..2709) \"fails\"\n ATMOSPHERE: (2709..2710) \" \"\n CONSTANT: (2710..2711)\n NUMBER: (2710..2711) \"0\"\n CLOSE_PAREN: (2711..2712) \")\"\n ATMOSPHERE: (2712..2713) \"\n\"\n FORM: (2713..2834)\n OPEN_PAREN: (2713..2714) \"(\"\n SYMBOL: (2714..2720)\n IDENTIFIER: (2714..2720) \"define\"\n ATMOSPHERE: (2720..2721) \" \"\n FORM: (2721..2737)\n OPEN_PAREN: (2721..2722) \"(\"\n SYMBOL: (2722..2732)\n IDENTIFIER: (2722..2732) \"test-begin\"\n ATMOSPHERE: (2732..2733) \" \"\n DOTTED_TAIL: (2733..2736)\n DOT: (2733..2734) \".\"\n ATMOSPHERE: (2734..2735) \" \"\n SYMBOL: (2735..2736)\n IDENTIFIER: (2735..2736) \"o\"\n CLOSE_PAREN: (2736..2737) \")\"\n ATMOSPHERE: (2737..2740) \"\n \"\n FORM: (2740..2756)\n OPEN_PAREN: (2740..2741) \"(\"\n SYMBOL: (2741..2748)\n IDENTIFIER: (2741..2748) \"display\"\n ATMOSPHERE: (2748..2749) \" \"\n CONSTANT: (2749..2755)\n STRING: (2749..2755) \"\"### \"\"\n CLOSE_PAREN: (2755..2756) \")\"\n FORM: (2756..2767)\n OPEN_PAREN: (2756..2757) \"(\"\n SYMBOL: (2757..2764)\n IDENTIFIER: (2757..2764) \"display\"\n ATMOSPHERE: (2764..2765) \" \"\n SYMBOL: (2765..2766)\n IDENTIFIER: (2765..2766) \"o\"\n CLOSE_PAREN: (2766..2767) \")\"\n FORM: (2767..2776)\n OPEN_PAREN: (2767..2768) \"(\"\n SYMBOL: (2768..2775)\n IDENTIFIER: (2768..2775) \"newline\"\n CLOSE_PAREN: (2775..2776) \")\"\n ATMOSPHERE: (2776..2779) \"\n \"\n FORM: (2779..2817)\n OPEN_PAREN: (2779..2780) \"(\"\n SYMBOL: (2780..2784)\n IDENTIFIER: (2780..2784) \"set!\"\n ATMOSPHERE: (2784..2785) \" \"\n SYMBOL: (2785..2797)\n IDENTIFIER: (2785..2797) \"indent-level\"\n ATMOSPHERE: (2797..2798) \" \"\n FORM: (2798..2816)\n OPEN_PAREN: (2798..2799) \"(\"\n SYMBOL: (2799..2800)\n IDENTIFIER: (2799..2800) \"+\"\n ATMOSPHERE: (2800..2801) \" \"\n SYMBOL: (2801..2813)\n IDENTIFIER: (2801..2813) \"indent-level\"\n ATMOSPHERE: (2813..2814) \" \"\n CONSTANT: (2814..2815)\n NUMBER: (2814..2815) \"1\"\n CLOSE_PAREN: (2815..2816) \")\"\n CLOSE_PAREN: (2816..2817) \")\"\n ATMOSPHERE: (2817..2820) \"\n \"\n FORM: (2820..2828)\n OPEN_PAREN: (2820..2821) \"(\"\n SYMBOL: (2821..2827)\n IDENTIFIER: (2821..2827) \"indent\"\n CLOSE_PAREN: (2827..2828) \")\"\n ATMOSPHERE: (2828..2831) \"\n \"\n CONSTANT: (2831..2833)\n BOOLEAN: (2831..2833) \"#f\"\n CLOSE_PAREN: (2833..2834) \")\"\n ATMOSPHERE: (2834..2836) \"\n\n\"\n FORM: (2836..3011)\n OPEN_PAREN: (2836..2837) \"(\"\n SYMBOL: (2837..2843)\n IDENTIFIER: (2837..2843) \"define\"\n ATMOSPHERE: (2843..2844) \" \"\n FORM: (2844..2864)\n OPEN_PAREN: (2844..2845) \"(\"\n SYMBOL: (2845..2863)\n IDENTIFIER: (2845..2863) \"print-test-summary\"\n CLOSE_PAREN: (2863..2864) \")\"\n ATMOSPHERE: (2864..2867) \"\n \"\n FORM: (2867..2901)\n OPEN_PAREN: (2867..2868) \"(\"\n SYMBOL: (2868..2875)\n IDENTIFIER: (2868..2875) \"display\"\n ATMOSPHERE: (2875..2876) \" \"\n CONSTANT: (2876..2900)\n STRING: (2876..2900) \"\"----------------------\"\"\n CLOSE_PAREN: (2900..2901) \")\"\n FORM: (2901..2910)\n OPEN_PAREN: (2901..2902) \"(\"\n SYMBOL: (2902..2909)\n IDENTIFIER: (2902..2909) \"newline\"\n CLOSE_PAREN: (2909..2910) \")\"\n ATMOSPHERE: (2910..2913) \"\n \"\n FORM: (2913..2932)\n OPEN_PAREN: (2913..2914) \"(\"\n SYMBOL: (2914..2921)\n IDENTIFIER: (2914..2921) \"display\"\n ATMOSPHERE: (2921..2922) \" \"\n CONSTANT: (2922..2931)\n STRING: (2922..2931) \"\"Total: \"\"\n CLOSE_PAREN: (2931..2932) \")\"\n FORM: (2932..2947)\n OPEN_PAREN: (2932..2933) \"(\"\n SYMBOL: (2933..2940)\n IDENTIFIER: (2933..2940) \"display\"\n ATMOSPHERE: (2940..2941) \" \"\n SYMBOL: (2941..2946)\n IDENTIFIER: (2941..2946) \"tests\"\n CLOSE_PAREN: (2946..2947) \")\"\n FORM: (2947..2956)\n OPEN_PAREN: (2947..2948) \"(\"\n SYMBOL: (2948..2955)\n IDENTIFIER: (2948..2955) \"newline\"\n CLOSE_PAREN: (2955..2956) \")\"\n ATMOSPHERE: (2956..2959) \"\n \"\n FORM: (2959..2978)\n OPEN_PAREN: (2959..2960) \"(\"\n SYMBOL: (2960..2967)\n IDENTIFIER: (2960..2967) \"display\"\n ATMOSPHERE: (2967..2968) \" \"\n CONSTANT: (2968..2977)\n STRING: (2968..2977) \"\"Fails: \"\"\n CLOSE_PAREN: (2977..2978) \")\"\n FORM: (2978..2993)\n OPEN_PAREN: (2978..2979) \"(\"\n SYMBOL: (2979..2986)\n IDENTIFIER: (2979..2986) \"display\"\n ATMOSPHERE: (2986..2987) \" \"\n SYMBOL: (2987..2992)\n IDENTIFIER: (2987..2992) \"fails\"\n CLOSE_PAREN: (2992..2993) \")\"\n FORM: (2993..3002)\n OPEN_PAREN: (2993..2994) \"(\"\n SYMBOL: (2994..3001)\n IDENTIFIER: (2994..3001) \"newline\"\n CLOSE_PAREN: (3001..3002) \")\"\n ATMOSPHERE: (3002..3005) \"\n \"\n SYMBOL: (3005..3010)\n IDENTIFIER: (3005..3010) \"fails\"\n CLOSE_PAREN: (3010..3011) \")\"\n ATMOSPHERE: (3011..3013) \"\n\n\"\n FORM: (3013..3151)\n OPEN_PAREN: (3013..3014) \"(\"\n SYMBOL: (3014..3020)\n IDENTIFIER: (3014..3020) \"define\"\n ATMOSPHERE: (3020..3021) \" \"\n FORM: (3021..3035)\n OPEN_PAREN: (3021..3022) \"(\"\n SYMBOL: (3022..3030)\n IDENTIFIER: (3022..3030) \"test-end\"\n ATMOSPHERE: (3030..3031) \" \"\n DOTTED_TAIL: (3031..3034)\n DOT: (3031..3032) \".\"\n ATMOSPHERE: (3032..3033) \" \"\n SYMBOL: (3033..3034)\n IDENTIFIER: (3033..3034) \"o\"\n CLOSE_PAREN: (3034..3035) \")\"\n ATMOSPHERE: (3035..3038) \"\n \"\n FORM: (3038..3047)\n OPEN_PAREN: (3038..3039) \"(\"\n SYMBOL: (3039..3046)\n IDENTIFIER: (3039..3046) \"newline\"\n CLOSE_PAREN: (3046..3047) \")\"\n ATMOSPHERE: (3047..3050) \"\n \"\n FORM: (3050..3088)\n OPEN_PAREN: (3050..3051) \"(\"\n SYMBOL: (3051..3055)\n IDENTIFIER: (3051..3055) \"set!\"\n ATMOSPHERE: (3055..3056) \" \"\n SYMBOL: (3056..3068)\n IDENTIFIER: (3056..3068) \"indent-level\"\n ATMOSPHERE: (3068..3069) \" \"\n FORM: (3069..3087)\n OPEN_PAREN: (3069..3070) \"(\"\n SYMBOL: (3070..3071)\n IDENTIFIER: (3070..3071) \"-\"\n ATMOSPHERE: (3071..3072) \" \"\n SYMBOL: (3072..3084)\n IDENTIFIER: (3072..3084) \"indent-level\"\n ATMOSPHERE: (3084..3085) \" \"\n CONSTANT: (3085..3086)\n NUMBER: (3085..3086) \"1\"\n CLOSE_PAREN: (3086..3087) \")\"\n CLOSE_PAREN: (3087..3088) \")\"\n ATMOSPHERE: (3088..3091) \"\n \"\n FORM: (3091..3150)\n OPEN_PAREN: (3091..3092) \"(\"\n SYMBOL: (3092..3094)\n IDENTIFIER: (3092..3094) \"if\"\n ATMOSPHERE: (3094..3095) \" \"\n FORM: (3095..3113)\n OPEN_PAREN: (3095..3096) \"(\"\n SYMBOL: (3096..3097)\n IDENTIFIER: (3096..3097) \"=\"\n ATMOSPHERE: (3097..3098) \" \"\n SYMBOL: (3098..3110)\n IDENTIFIER: (3098..3110) \"indent-level\"\n ATMOSPHERE: (3110..3111) \" \"\n CONSTANT: (3111..3112)\n NUMBER: (3111..3112) \"0\"\n CLOSE_PAREN: (3112..3113) \")\"\n ATMOSPHERE: (3113..3117) \"\n\t \"\n FORM: (3117..3137)\n OPEN_PAREN: (3117..3118) \"(\"\n SYMBOL: (3118..3136)\n IDENTIFIER: (3118..3136) \"print-test-summary\"\n CLOSE_PAREN: (3136..3137) \")\"\n ATMOSPHERE: (3137..3141) \"\n\t \"\n FORM: (3141..3149)\n OPEN_PAREN: (3141..3142) \"(\"\n SYMBOL: (3142..3148)\n IDENTIFIER: (3142..3148) \"indent\"\n CLOSE_PAREN: (3148..3149) \")\"\n CLOSE_PAREN: (3149..3150) \")\"\n CLOSE_PAREN: (3150..3151) \")\"\n ATMOSPHERE: (3151..3153) \"\n\n\"\n FORM: (3153..3522)\n OPEN_PAREN: (3153..3154) \"(\"\n SYMBOL: (3154..3167)\n IDENTIFIER: (3154..3167) \"define-syntax\"\n ATMOSPHERE: (3167..3168) \" \"\n SYMBOL: (3168..3172)\n IDENTIFIER: (3168..3172) \"test\"\n ATMOSPHERE: (3172..3175) \"\n \"\n FORM: (3175..3521)\n OPEN_PAREN: (3175..3176) \"(\"\n SYMBOL: (3176..3188)\n IDENTIFIER: (3176..3188) \"syntax-rules\"\n ATMOSPHERE: (3188..3189) \" \"\n FORM: (3189..3191)\n OPEN_PAREN: (3189..3190) \"(\"\n CLOSE_PAREN: (3190..3191) \")\"\n ATMOSPHERE: (3191..3193) \"\n\t\"\n FORM: (3193..3520)\n OPEN_PAREN: (3193..3194) \"(\"\n FORM: (3194..3211)\n OPEN_PAREN: (3194..3195) \"(\"\n SYMBOL: (3195..3196)\n IDENTIFIER: (3195..3196) \"_\"\n ATMOSPHERE: (3196..3197) \" \"\n SYMBOL: (3197..3205)\n IDENTIFIER: (3197..3205) \"expected\"\n ATMOSPHERE: (3205..3206) \" \"\n SYMBOL: (3206..3210)\n IDENTIFIER: (3206..3210) \"expr\"\n CLOSE_PAREN: (3210..3211) \")\"\n ATMOSPHERE: (3211..3214) \"\n\t \"\n FORM: (3214..3519)\n OPEN_PAREN: (3214..3215) \"(\"\n SYMBOL: (3215..3218)\n IDENTIFIER: (3215..3218) \"let\"\n ATMOSPHERE: (3218..3219) \" \"\n FORM: (3219..3231)\n OPEN_PAREN: (3219..3220) \"(\"\n FORM: (3220..3230)\n OPEN_PAREN: (3220..3221) \"(\"\n SYMBOL: (3221..3224)\n IDENTIFIER: (3221..3224) \"res\"\n ATMOSPHERE: (3224..3225) \" \"\n SYMBOL: (3225..3229)\n IDENTIFIER: (3225..3229) \"expr\"\n CLOSE_PAREN: (3229..3230) \")\"\n CLOSE_PAREN: (3230..3231) \")\"\n ATMOSPHERE: (3231..3236) \"\n\t \"\n FORM: (3236..3260)\n OPEN_PAREN: (3236..3237) \"(\"\n SYMBOL: (3237..3241)\n IDENTIFIER: (3237..3241) \"set!\"\n ATMOSPHERE: (3241..3242) \" \"\n SYMBOL: (3242..3247)\n IDENTIFIER: (3242..3247) \"tests\"\n ATMOSPHERE: (3247..3248) \" \"\n FORM: (3248..3259)\n OPEN_PAREN: (3248..3249) \"(\"\n SYMBOL: (3249..3250)\n IDENTIFIER: (3249..3250) \"+\"\n ATMOSPHERE: (3250..3251) \" \"\n SYMBOL: (3251..3256)\n IDENTIFIER: (3251..3256) \"tests\"\n ATMOSPHERE: (3256..3257) \" \"\n CONSTANT: (3257..3258)\n NUMBER: (3257..3258) \"1\"\n CLOSE_PAREN: (3258..3259) \")\"\n CLOSE_PAREN: (3259..3260) \")\"\n ATMOSPHERE: (3260..3265) \"\n\t \"\n FORM: (3265..3518)\n OPEN_PAREN: (3265..3266) \"(\"\n SYMBOL: (3266..3268)\n IDENTIFIER: (3266..3268) \"if\"\n ATMOSPHERE: (3268..3269) \" \"\n FORM: (3269..3290)\n OPEN_PAREN: (3269..3270) \"(\"\n SYMBOL: (3270..3276)\n IDENTIFIER: (3270..3276) \"equal?\"\n ATMOSPHERE: (3276..3277) \" \"\n SYMBOL: (3277..3280)\n IDENTIFIER: (3277..3280) \"res\"\n ATMOSPHERE: (3280..3281) \" \"\n SYMBOL: (3281..3289)\n IDENTIFIER: (3281..3289) \"expected\"\n CLOSE_PAREN: (3289..3290) \")\"\n ATMOSPHERE: (3290..3296) \"\n\t\t \"\n FORM: (3296..3309)\n OPEN_PAREN: (3296..3297) \"(\"\n SYMBOL: (3297..3304)\n IDENTIFIER: (3297..3304) \"display\"\n ATMOSPHERE: (3304..3305) \" \"\n CONSTANT: (3305..3308)\n STRING: (3305..3308) \"\".\"\"\n CLOSE_PAREN: (3308..3309) \")\"\n ATMOSPHERE: (3309..3315) \"\n\t\t \"\n FORM: (3315..3517)\n OPEN_PAREN: (3315..3316) \"(\"\n SYMBOL: (3316..3321)\n IDENTIFIER: (3316..3321) \"begin\"\n ATMOSPHERE: (3321..3326) \"\n\t\t\t \"\n FORM: (3326..3350)\n OPEN_PAREN: (3326..3327) \"(\"\n SYMBOL: (3327..3331)\n IDENTIFIER: (3327..3331) \"set!\"\n ATMOSPHERE: (3331..3332) \" \"\n SYMBOL: (3332..3337)\n IDENTIFIER: (3332..3337) \"fails\"\n ATMOSPHERE: (3337..3338) \" \"\n FORM: (3338..3349)\n OPEN_PAREN: (3338..3339) \"(\"\n SYMBOL: (3339..3340)\n IDENTIFIER: (3339..3340) \"+\"\n ATMOSPHERE: (3340..3341) \" \"\n SYMBOL: (3341..3346)\n IDENTIFIER: (3341..3346) \"fails\"\n ATMOSPHERE: (3346..3347) \" \"\n CONSTANT: (3347..3348)\n NUMBER: (3347..3348) \"1\"\n CLOSE_PAREN: (3348..3349) \")\"\n CLOSE_PAREN: (3349..3350) \")\"\n ATMOSPHERE: (3350..3355) \"\n\t\t\t \"\n FORM: (3355..3364)\n OPEN_PAREN: (3355..3356) \"(\"\n SYMBOL: (3356..3363)\n IDENTIFIER: (3356..3363) \"newline\"\n CLOSE_PAREN: (3363..3364) \")\"\n ATMOSPHERE: (3364..3369) \"\n\t\t\t \"\n FORM: (3369..3387)\n OPEN_PAREN: (3369..3370) \"(\"\n SYMBOL: (3370..3377)\n IDENTIFIER: (3370..3377) \"display\"\n ATMOSPHERE: (3377..3378) \" \"\n CONSTANT: (3378..3386)\n STRING: (3378..3386) \"\"FAIL: \"\"\n CLOSE_PAREN: (3386..3387) \")\"\n ATMOSPHERE: (3387..3392) \"\n\t\t\t \"\n FORM: (3392..3407)\n OPEN_PAREN: (3392..3393) \"(\"\n SYMBOL: (3393..3400)\n IDENTIFIER: (3393..3400) \"display\"\n ATMOSPHERE: (3400..3401) \" \"\n QUOTED_DATUM: (3401..3406)\n QUOTE: (3401..3402) \"'\"\n SYMBOL: (3402..3406)\n IDENTIFIER: (3402..3406) \"expr\"\n CLOSE_PAREN: (3406..3407) \")\"\n ATMOSPHERE: (3407..3412) \"\n\t\t\t \"\n FORM: (3412..3435)\n OPEN_PAREN: (3412..3413) \"(\"\n SYMBOL: (3413..3420)\n IDENTIFIER: (3413..3420) \"display\"\n ATMOSPHERE: (3420..3421) \" \"\n CONSTANT: (3421..3434)\n STRING: (3421..3434) \"\": expected \"\"\n CLOSE_PAREN: (3434..3435) \")\"\n ATMOSPHERE: (3435..3440) \"\n\t\t\t \"\n FORM: (3440..3458)\n OPEN_PAREN: (3440..3441) \"(\"\n SYMBOL: (3441..3448)\n IDENTIFIER: (3441..3448) \"display\"\n ATMOSPHERE: (3448..3449) \" \"\n SYMBOL: (3449..3457)\n IDENTIFIER: (3449..3457) \"expected\"\n CLOSE_PAREN: (3457..3458) \")\"\n ATMOSPHERE: (3458..3463) \"\n\t\t\t \"\n FORM: (3463..3484)\n OPEN_PAREN: (3463..3464) \"(\"\n SYMBOL: (3464..3471)\n IDENTIFIER: (3464..3471) \"display\"\n ATMOSPHERE: (3471..3472) \" \"\n CONSTANT: (3472..3483)\n STRING: (3472..3483) \"\" but got \"\"\n CLOSE_PAREN: (3483..3484) \")\"\n ATMOSPHERE: (3484..3489) \"\n\t\t\t \"\n FORM: (3489..3502)\n OPEN_PAREN: (3489..3490) \"(\"\n SYMBOL: (3490..3497)\n IDENTIFIER: (3490..3497) \"display\"\n ATMOSPHERE: (3497..3498) \" \"\n SYMBOL: (3498..3501)\n IDENTIFIER: (3498..3501) \"res\"\n CLOSE_PAREN: (3501..3502) \")\"\n ATMOSPHERE: (3502..3507) \"\n\t\t\t \"\n FORM: (3507..3516)\n OPEN_PAREN: (3507..3508) \"(\"\n SYMBOL: (3508..3515)\n IDENTIFIER: (3508..3515) \"newline\"\n CLOSE_PAREN: (3515..3516) \")\"\n CLOSE_PAREN: (3516..3517) \")\"\n CLOSE_PAREN: (3517..3518) \")\"\n CLOSE_PAREN: (3518..3519) \")\"\n CLOSE_PAREN: (3519..3520) \")\"\n CLOSE_PAREN: (3520..3521) \")\"\n CLOSE_PAREN: (3521..3522) \")\"\n ATMOSPHERE: (3522..3524) \"\n\n\"\n ATMOSPHERE: (3524..3526) \";;\"\n ATMOSPHERE: (3526..3527) \"\n\"\n ATMOSPHERE: (3527..3586) \";; however (chibi test) provides nicer output, timings, and\"\n ATMOSPHERE: (3586..3587) \"\n\"\n ATMOSPHERE: (3587..3641) \";; approximate equivalence for floating point numbers.\"\n ATMOSPHERE: (3641..3643) \"\n\n\"\n FORM: (3643..3662)\n OPEN_PAREN: (3643..3644) \"(\"\n SYMBOL: (3644..3654)\n IDENTIFIER: (3644..3654) \"test-begin\"\n ATMOSPHERE: (3654..3655) \" \"\n CONSTANT: (3655..3661)\n STRING: (3655..3661) \"\"R7RS\"\"\n CLOSE_PAREN: (3661..3662) \")\"\n ATMOSPHERE: (3662..3664) \"\n\n\"\n FORM: (3664..3709)\n OPEN_PAREN: (3664..3665) \"(\"\n SYMBOL: (3665..3675)\n IDENTIFIER: (3665..3675) \"test-begin\"\n ATMOSPHERE: (3675..3676) \" \"\n CONSTANT: (3676..3708)\n STRING: (3676..3708) \"\"4.1 Primitive expression types\"\"\n CLOSE_PAREN: (3708..3709) \")\"\n ATMOSPHERE: (3709..3711) \"\n\n\"\n FORM: (3711..3749)\n OPEN_PAREN: (3711..3712) \"(\"\n SYMBOL: (3712..3715)\n IDENTIFIER: (3712..3715) \"let\"\n ATMOSPHERE: (3715..3716) \" \"\n FORM: (3716..3718)\n OPEN_PAREN: (3716..3717) \"(\"\n CLOSE_PAREN: (3717..3718) \")\"\n ATMOSPHERE: (3718..3721) \"\n \"\n FORM: (3721..3734)\n OPEN_PAREN: (3721..3722) \"(\"\n SYMBOL: (3722..3728)\n IDENTIFIER: (3722..3728) \"define\"\n ATMOSPHERE: (3728..3729) \" \"\n SYMBOL: (3729..3730)\n IDENTIFIER: (3729..3730) \"x\"\n ATMOSPHERE: (3730..3731) \" \"\n CONSTANT: (3731..3733)\n NUMBER: (3731..3733) \"28\"\n CLOSE_PAREN: (3733..3734) \")\"\n ATMOSPHERE: (3734..3737) \"\n \"\n FORM: (3737..3748)\n OPEN_PAREN: (3737..3738) \"(\"\n SYMBOL: (3738..3742)\n IDENTIFIER: (3738..3742) \"test\"\n ATMOSPHERE: (3742..3743) \" \"\n CONSTANT: (3743..3745)\n NUMBER: (3743..3745) \"28\"\n ATMOSPHERE: (3745..3746) \" \"\n SYMBOL: (3746..3747)\n IDENTIFIER: (3746..3747) \"x\"\n CLOSE_PAREN: (3747..3748) \")\"\n CLOSE_PAREN: (3748..3749) \")\"\n ATMOSPHERE: (3749..3752) \"\n\n\n\"\n FORM: (3752..3771)\n OPEN_PAREN: (3752..3753) \"(\"\n SYMBOL: (3753..3757)\n IDENTIFIER: (3753..3757) \"test\"\n ATMOSPHERE: (3757..3758) \" \"\n QUOTED_DATUM: (3758..3761)\n QUOTE: (3758..3759) \"'\"\n SYMBOL: (3759..3760)\n IDENTIFIER: (3759..3760) \"a\"\n ATMOSPHERE: (3760..3761) \" \"\n FORM: (3761..3770)\n OPEN_PAREN: (3761..3762) \"(\"\n SYMBOL: (3762..3767)\n IDENTIFIER: (3762..3767) \"quote\"\n ATMOSPHERE: (3767..3768) \" \"\n SYMBOL: (3768..3769)\n IDENTIFIER: (3768..3769) \"a\"\n CLOSE_PAREN: (3769..3770) \")\"\n CLOSE_PAREN: (3770..3771) \")\"\n ATMOSPHERE: (3771..3772) \"\n\"\n FORM: (3772..3804)\n OPEN_PAREN: (3772..3773) \"(\"\n SYMBOL: (3773..3777)\n IDENTIFIER: (3773..3777) \"test\"\n ATMOSPHERE: (3777..3778) \" \"\n VEC: (3778..3786)\n OPEN_PAREN: (3778..3780) \"#(\"\n SYMBOL: (3780..3781)\n IDENTIFIER: (3780..3781) \"a\"\n ATMOSPHERE: (3781..3782) \" \"\n SYMBOL: (3782..3783)\n IDENTIFIER: (3782..3783) \"b\"\n ATMOSPHERE: (3783..3784) \" \"\n SYMBOL: (3784..3785)\n IDENTIFIER: (3784..3785) \"c\"\n CLOSE_PAREN: (3785..3786) \")\"\n ATMOSPHERE: (3786..3787) \" \"\n FORM: (3787..3803)\n OPEN_PAREN: (3787..3788) \"(\"\n SYMBOL: (3788..3793)\n IDENTIFIER: (3788..3793) \"quote\"\n ATMOSPHERE: (3793..3794) \" \"\n VEC: (3794..3802)\n OPEN_PAREN: (3794..3796) \"#(\"\n SYMBOL: (3796..3797)\n IDENTIFIER: (3796..3797) \"a\"\n ATMOSPHERE: (3797..3798) \" \"\n SYMBOL: (3798..3799)\n IDENTIFIER: (3798..3799) \"b\"\n ATMOSPHERE: (3799..3800) \" \"\n SYMBOL: (3800..3801)\n IDENTIFIER: (3800..3801) \"c\"\n CLOSE_PAREN: (3801..3802) \")\"\n CLOSE_PAREN: (3802..3803) \")\"\n CLOSE_PAREN: (3803..3804) \")\"\n ATMOSPHERE: (3804..3805) \"\n\"\n FORM: (3805..3836)\n OPEN_PAREN: (3805..3806) \"(\"\n SYMBOL: (3806..3810)\n IDENTIFIER: (3806..3810) \"test\"\n ATMOSPHERE: (3810..3811) \" \"\n QUOTED_DATUM: (3811..3820)\n QUOTE: (3811..3812) \"'\"\n FORM: (3812..3819)\n OPEN_PAREN: (3812..3813) \"(\"\n SYMBOL: (3813..3814)\n IDENTIFIER: (3813..3814) \"+\"\n ATMOSPHERE: (3814..3815) \" \"\n CONSTANT: (3815..3816)\n NUMBER: (3815..3816) \"1\"\n ATMOSPHERE: (3816..3817) \" \"\n CONSTANT: (3817..3818)\n NUMBER: (3817..3818) \"2\"\n CLOSE_PAREN: (3818..3819) \")\"\n ATMOSPHERE: (3819..3820) \" \"\n FORM: (3820..3835)\n OPEN_PAREN: (3820..3821) \"(\"\n SYMBOL: (3821..3826)\n IDENTIFIER: (3821..3826) \"quote\"\n ATMOSPHERE: (3826..3827) \" \"\n FORM: (3827..3834)\n OPEN_PAREN: (3827..3828) \"(\"\n SYMBOL: (3828..3829)\n IDENTIFIER: (3828..3829) \"+\"\n ATMOSPHERE: (3829..3830) \" \"\n CONSTANT: (3830..3831)\n NUMBER: (3830..3831) \"1\"\n ATMOSPHERE: (3831..3832) \" \"\n CONSTANT: (3832..3833)\n NUMBER: (3832..3833) \"2\"\n CLOSE_PAREN: (3833..3834) \")\"\n CLOSE_PAREN: (3834..3835) \")\"\n CLOSE_PAREN: (3835..3836) \")\"\n ATMOSPHERE: (3836..3838) \"\n\n\"\n FORM: (3838..3850)\n OPEN_PAREN: (3838..3839) \"(\"\n SYMBOL: (3839..3843)\n IDENTIFIER: (3839..3843) \"test\"\n ATMOSPHERE: (3843..3844) \" \"\n QUOTED_DATUM: (3844..3847)\n QUOTE: (3844..3845) \"'\"\n SYMBOL: (3845..3846)\n IDENTIFIER: (3845..3846) \"a\"\n ATMOSPHERE: (3846..3847) \" \"\n QUOTED_DATUM: (3847..3849)\n QUOTE: (3847..3848) \"'\"\n SYMBOL: (3848..3849)\n IDENTIFIER: (3848..3849) \"a\"\n CLOSE_PAREN: (3849..3850) \")\"\n ATMOSPHERE: (3850..3851) \"\n\"\n FORM: (3851..3876)\n OPEN_PAREN: (3851..3852) \"(\"\n SYMBOL: (3852..3856)\n IDENTIFIER: (3852..3856) \"test\"\n ATMOSPHERE: (3856..3857) \" \"\n VEC: (3857..3865)\n OPEN_PAREN: (3857..3859) \"#(\"\n SYMBOL: (3859..3860)\n IDENTIFIER: (3859..3860) \"a\"\n ATMOSPHERE: (3860..3861) \" \"\n SYMBOL: (3861..3862)\n IDENTIFIER: (3861..3862) \"b\"\n ATMOSPHERE: (3862..3863) \" \"\n SYMBOL: (3863..3864)\n IDENTIFIER: (3863..3864) \"c\"\n CLOSE_PAREN: (3864..3865) \")\"\n ATMOSPHERE: (3865..3866) \" \"\n QUOTED_DATUM: (3866..3875)\n QUOTE: (3866..3867) \"'\"\n VEC: (3867..3875)\n OPEN_PAREN: (3867..3869) \"#(\"\n SYMBOL: (3869..3870)\n IDENTIFIER: (3869..3870) \"a\"\n ATMOSPHERE: (3870..3871) \" \"\n SYMBOL: (3871..3872)\n IDENTIFIER: (3871..3872) \"b\"\n ATMOSPHERE: (3872..3873) \" \"\n SYMBOL: (3873..3874)\n IDENTIFIER: (3873..3874) \"c\"\n CLOSE_PAREN: (3874..3875) \")\"\n CLOSE_PAREN: (3875..3876) \")\"\n ATMOSPHERE: (3876..3877) \"\n\"\n FORM: (3877..3891)\n OPEN_PAREN: (3877..3878) \"(\"\n SYMBOL: (3878..3882)\n IDENTIFIER: (3878..3882) \"test\"\n ATMOSPHERE: (3882..3883) \" \"\n QUOTED_DATUM: (3883..3887)\n QUOTE: (3883..3884) \"'\"\n FORM: (3884..3886)\n OPEN_PAREN: (3884..3885) \"(\"\n CLOSE_PAREN: (3885..3886) \")\"\n ATMOSPHERE: (3886..3887) \" \"\n QUOTED_DATUM: (3887..3890)\n QUOTE: (3887..3888) \"'\"\n FORM: (3888..3890)\n OPEN_PAREN: (3888..3889) \"(\"\n CLOSE_PAREN: (3889..3890) \")\"\n CLOSE_PAREN: (3890..3891) \")\"\n ATMOSPHERE: (3891..3892) \"\n\"\n FORM: (3892..3916)\n OPEN_PAREN: (3892..3893) \"(\"\n SYMBOL: (3893..3897)\n IDENTIFIER: (3893..3897) \"test\"\n ATMOSPHERE: (3897..3898) \" \"\n QUOTED_DATUM: (3898..3907)\n QUOTE: (3898..3899) \"'\"\n FORM: (3899..3906)\n OPEN_PAREN: (3899..3900) \"(\"\n SYMBOL: (3900..3901)\n IDENTIFIER: (3900..3901) \"+\"\n ATMOSPHERE: (3901..3902) \" \"\n CONSTANT: (3902..3903)\n NUMBER: (3902..3903) \"1\"\n ATMOSPHERE: (3903..3904) \" \"\n CONSTANT: (3904..3905)\n NUMBER: (3904..3905) \"2\"\n CLOSE_PAREN: (3905..3906) \")\"\n ATMOSPHERE: (3906..3907) \" \"\n QUOTED_DATUM: (3907..3915)\n QUOTE: (3907..3908) \"'\"\n FORM: (3908..3915)\n OPEN_PAREN: (3908..3909) \"(\"\n SYMBOL: (3909..3910)\n IDENTIFIER: (3909..3910) \"+\"\n ATMOSPHERE: (3910..3911) \" \"\n CONSTANT: (3911..3912)\n NUMBER: (3911..3912) \"1\"\n ATMOSPHERE: (3912..3913) \" \"\n CONSTANT: (3913..3914)\n NUMBER: (3913..3914) \"2\"\n CLOSE_PAREN: (3914..3915) \")\"\n CLOSE_PAREN: (3915..3916) \")\"\n ATMOSPHERE: (3916..3917) \"\n\"\n FORM: (3917..3945)\n OPEN_PAREN: (3917..3918) \"(\"\n SYMBOL: (3918..3922)\n IDENTIFIER: (3918..3922) \"test\"\n ATMOSPHERE: (3922..3923) \" \"\n QUOTED_DATUM: (3923..3934)\n QUOTE: (3923..3924) \"'\"\n FORM: (3924..3933)\n OPEN_PAREN: (3924..3925) \"(\"\n SYMBOL: (3925..3930)\n IDENTIFIER: (3925..3930) \"quote\"\n ATMOSPHERE: (3930..3931) \" \"\n SYMBOL: (3931..3932)\n IDENTIFIER: (3931..3932) \"a\"\n CLOSE_PAREN: (3932..3933) \")\"\n ATMOSPHERE: (3933..3934) \" \"\n QUOTED_DATUM: (3934..3944)\n QUOTE: (3934..3935) \"'\"\n FORM: (3935..3944)\n OPEN_PAREN: (3935..3936) \"(\"\n SYMBOL: (3936..3941)\n IDENTIFIER: (3936..3941) \"quote\"\n ATMOSPHERE: (3941..3942) \" \"\n SYMBOL: (3942..3943)\n IDENTIFIER: (3942..3943) \"a\"\n CLOSE_PAREN: (3943..3944) \")\"\n CLOSE_PAREN: (3944..3945) \")\"\n ATMOSPHERE: (3945..3946) \"\n\"\n FORM: (3946..3967)\n OPEN_PAREN: (3946..3947) \"(\"\n SYMBOL: (3947..3951)\n IDENTIFIER: (3947..3951) \"test\"\n ATMOSPHERE: (3951..3952) \" \"\n QUOTED_DATUM: (3952..3963)\n QUOTE: (3952..3953) \"'\"\n FORM: (3953..3962)\n OPEN_PAREN: (3953..3954) \"(\"\n SYMBOL: (3954..3959)\n IDENTIFIER: (3954..3959) \"quote\"\n ATMOSPHERE: (3959..3960) \" \"\n SYMBOL: (3960..3961)\n IDENTIFIER: (3960..3961) \"a\"\n CLOSE_PAREN: (3961..3962) \")\"\n ATMOSPHERE: (3962..3963) \" \"\n QUOTED_DATUM: (3963..3966)\n QUOTE: (3963..3964) \"'\"\n QUOTED_DATUM: (3964..3966)\n QUOTE: (3964..3965) \"'\"\n SYMBOL: (3965..3966)\n IDENTIFIER: (3965..3966) \"a\"\n CLOSE_PAREN: (3966..3967) \")\"\n ATMOSPHERE: (3967..3969) \"\n\n\"\n FORM: (3969..3988)\n OPEN_PAREN: (3969..3970) \"(\"\n SYMBOL: (3970..3974)\n IDENTIFIER: (3970..3974) \"test\"\n ATMOSPHERE: (3974..3975) \" \"\n CONSTANT: (3975..3980)\n STRING: (3975..3980) \"\"abc\"\"\n ATMOSPHERE: (3980..3981) \" \"\n QUOTED_DATUM: (3981..3987)\n QUOTE: (3981..3982) \"'\"\n CONSTANT: (3982..3987)\n STRING: (3982..3987) \"\"abc\"\"\n CLOSE_PAREN: (3987..3988) \")\"\n ATMOSPHERE: (3988..3989) \"\n\"\n FORM: (3989..4007)\n OPEN_PAREN: (3989..3990) \"(\"\n SYMBOL: (3990..3994)\n IDENTIFIER: (3990..3994) \"test\"\n ATMOSPHERE: (3994..3995) \" \"\n CONSTANT: (3995..4000)\n STRING: (3995..4000) \"\"abc\"\"\n ATMOSPHERE: (4000..4001) \" \"\n CONSTANT: (4001..4006)\n STRING: (4001..4006) \"\"abc\"\"\n CLOSE_PAREN: (4006..4007) \")\"\n ATMOSPHERE: (4007..4008) \"\n\"\n FORM: (4008..4029)\n OPEN_PAREN: (4008..4009) \"(\"\n SYMBOL: (4009..4013)\n IDENTIFIER: (4009..4013) \"test\"\n ATMOSPHERE: (4013..4014) \" \"\n CONSTANT: (4014..4020)\n NUMBER: (4014..4020) \"145932\"\n ATMOSPHERE: (4020..4021) \" \"\n QUOTED_DATUM: (4021..4028)\n QUOTE: (4021..4022) \"'\"\n CONSTANT: (4022..4028)\n NUMBER: (4022..4028) \"145932\"\n CLOSE_PAREN: (4028..4029) \")\"\n ATMOSPHERE: (4029..4030) \"\n\"\n FORM: (4030..4050)\n OPEN_PAREN: (4030..4031) \"(\"\n SYMBOL: (4031..4035)\n IDENTIFIER: (4031..4035) \"test\"\n ATMOSPHERE: (4035..4036) \" \"\n CONSTANT: (4036..4042)\n NUMBER: (4036..4042) \"145932\"\n ATMOSPHERE: (4042..4043) \" \"\n CONSTANT: (4043..4049)\n NUMBER: (4043..4049) \"145932\"\n CLOSE_PAREN: (4049..4050) \")\"\n ATMOSPHERE: (4050..4051) \"\n\"\n FORM: (4051..4064)\n OPEN_PAREN: (4051..4052) \"(\"\n SYMBOL: (4052..4056)\n IDENTIFIER: (4052..4056) \"test\"\n ATMOSPHERE: (4056..4057) \" \"\n CONSTANT: (4057..4059)\n BOOLEAN: (4057..4059) \"#t\"\n ATMOSPHERE: (4059..4060) \" \"\n QUOTED_DATUM: (4060..4063)\n QUOTE: (4060..4061) \"'\"\n CONSTANT: (4061..4063)\n BOOLEAN: (4061..4063) \"#t\"\n CLOSE_PAREN: (4063..4064) \")\"\n ATMOSPHERE: (4064..4065) \"\n\"\n FORM: (4065..4077)\n OPEN_PAREN: (4065..4066) \"(\"\n SYMBOL: (4066..4070)\n IDENTIFIER: (4066..4070) \"test\"\n ATMOSPHERE: (4070..4071) \" \"\n CONSTANT: (4071..4073)\n BOOLEAN: (4071..4073) \"#t\"\n ATMOSPHERE: (4073..4074) \" \"\n CONSTANT: (4074..4076)\n BOOLEAN: (4074..4076) \"#t\"\n CLOSE_PAREN: (4076..4077) \")\"\n ATMOSPHERE: (4077..4079) \"\n\n\"\n FORM: (4079..4095)\n OPEN_PAREN: (4079..4080) \"(\"\n SYMBOL: (4080..4084)\n IDENTIFIER: (4080..4084) \"test\"\n ATMOSPHERE: (4084..4085) \" \"\n CONSTANT: (4085..4086)\n NUMBER: (4085..4086) \"7\"\n ATMOSPHERE: (4086..4087) \" \"\n FORM: (4087..4094)\n OPEN_PAREN: (4087..4088) \"(\"\n SYMBOL: (4088..4089)\n IDENTIFIER: (4088..4089) \"+\"\n ATMOSPHERE: (4089..4090) \" \"\n CONSTANT: (4090..4091)\n NUMBER: (4090..4091) \"3\"\n ATMOSPHERE: (4091..4092) \" \"\n CONSTANT: (4092..4093)\n NUMBER: (4092..4093) \"4\"\n CLOSE_PAREN: (4093..4094) \")\"\n CLOSE_PAREN: (4094..4095) \")\"\n ATMOSPHERE: (4095..4096) \"\n\"\n FORM: (4096..4123)\n OPEN_PAREN: (4096..4097) \"(\"\n SYMBOL: (4097..4101)\n IDENTIFIER: (4097..4101) \"test\"\n ATMOSPHERE: (4101..4102) \" \"\n CONSTANT: (4102..4104)\n NUMBER: (4102..4104) \"12\"\n ATMOSPHERE: (4104..4105) \" \"\n FORM: (4105..4122)\n OPEN_PAREN: (4105..4106) \"(\"\n FORM: (4106..4117)\n OPEN_PAREN: (4106..4107) \"(\"\n SYMBOL: (4107..4109)\n IDENTIFIER: (4107..4109) \"if\"\n ATMOSPHERE: (4109..4110) \" \"\n CONSTANT: (4110..4112)\n BOOLEAN: (4110..4112) \"#f\"\n ATMOSPHERE: (4112..4113) \" \"\n SYMBOL: (4113..4114)\n IDENTIFIER: (4113..4114) \"+\"\n ATMOSPHERE: (4114..4115) \" \"\n SYMBOL: (4115..4116)\n IDENTIFIER: (4115..4116) \"*\"\n CLOSE_PAREN: (4116..4117) \")\"\n ATMOSPHERE: (4117..4118) \" \"\n CONSTANT: (4118..4119)\n NUMBER: (4118..4119) \"3\"\n ATMOSPHERE: (4119..4120) \" \"\n CONSTANT: (4120..4121)\n NUMBER: (4120..4121) \"4\"\n CLOSE_PAREN: (4121..4122) \")\"\n CLOSE_PAREN: (4122..4123) \")\"\n ATMOSPHERE: (4123..4125) \"\n\n\"\n FORM: (4125..4158)\n OPEN_PAREN: (4125..4126) \"(\"\n SYMBOL: (4126..4130)\n IDENTIFIER: (4126..4130) \"test\"\n ATMOSPHERE: (4130..4131) \" \"\n CONSTANT: (4131..4132)\n NUMBER: (4131..4132) \"8\"\n ATMOSPHERE: (4132..4133) \" \"\n FORM: (4133..4157)\n OPEN_PAREN: (4133..4134) \"(\"\n FORM: (4134..4154)\n OPEN_PAREN: (4134..4135) \"(\"\n SYMBOL: (4135..4141)\n IDENTIFIER: (4135..4141) \"lambda\"\n ATMOSPHERE: (4141..4142) \" \"\n FORM: (4142..4145)\n OPEN_PAREN: (4142..4143) \"(\"\n SYMBOL: (4143..4144)\n IDENTIFIER: (4143..4144) \"x\"\n CLOSE_PAREN: (4144..4145) \")\"\n ATMOSPHERE: (4145..4146) \" \"\n FORM: (4146..4153)\n OPEN_PAREN: (4146..4147) \"(\"\n SYMBOL: (4147..4148)\n IDENTIFIER: (4147..4148) \"+\"\n ATMOSPHERE: (4148..4149) \" \"\n SYMBOL: (4149..4150)\n IDENTIFIER: (4149..4150) \"x\"\n ATMOSPHERE: (4150..4151) \" \"\n SYMBOL: (4151..4152)\n IDENTIFIER: (4151..4152) \"x\"\n CLOSE_PAREN: (4152..4153) \")\"\n CLOSE_PAREN: (4153..4154) \")\"\n ATMOSPHERE: (4154..4155) \" \"\n CONSTANT: (4155..4156)\n NUMBER: (4155..4156) \"4\"\n CLOSE_PAREN: (4156..4157) \")\"\n CLOSE_PAREN: (4157..4158) \")\"\n ATMOSPHERE: (4158..4159) \"\n\"\n FORM: (4159..4209)\n OPEN_PAREN: (4159..4160) \"(\"\n SYMBOL: (4160..4166)\n IDENTIFIER: (4160..4166) \"define\"\n ATMOSPHERE: (4166..4167) \" \"\n SYMBOL: (4167..4183)\n IDENTIFIER: (4167..4183) \"reverse-subtract\"\n ATMOSPHERE: (4183..4186) \"\n \"\n FORM: (4186..4208)\n OPEN_PAREN: (4186..4187) \"(\"\n SYMBOL: (4187..4193)\n IDENTIFIER: (4187..4193) \"lambda\"\n ATMOSPHERE: (4193..4194) \" \"\n FORM: (4194..4199)\n OPEN_PAREN: (4194..4195) \"(\"\n SYMBOL: (4195..4196)\n IDENTIFIER: (4195..4196) \"x\"\n ATMOSPHERE: (4196..4197) \" \"\n SYMBOL: (4197..4198)\n IDENTIFIER: (4197..4198) \"y\"\n CLOSE_PAREN: (4198..4199) \")\"\n ATMOSPHERE: (4199..4200) \" \"\n FORM: (4200..4207)\n OPEN_PAREN: (4200..4201) \"(\"\n SYMBOL: (4201..4202)\n IDENTIFIER: (4201..4202) \"-\"\n ATMOSPHERE: (4202..4203) \" \"\n SYMBOL: (4203..4204)\n IDENTIFIER: (4203..4204) \"y\"\n ATMOSPHERE: (4204..4205) \" \"\n SYMBOL: (4205..4206)\n IDENTIFIER: (4205..4206) \"x\"\n CLOSE_PAREN: (4206..4207) \")\"\n CLOSE_PAREN: (4207..4208) \")\"\n CLOSE_PAREN: (4208..4209) \")\"\n ATMOSPHERE: (4209..4210) \"\n\"\n FORM: (4210..4242)\n OPEN_PAREN: (4210..4211) \"(\"\n SYMBOL: (4211..4215)\n IDENTIFIER: (4211..4215) \"test\"\n ATMOSPHERE: (4215..4216) \" \"\n CONSTANT: (4216..4217)\n NUMBER: (4216..4217) \"3\"\n ATMOSPHERE: (4217..4218) \" \"\n FORM: (4218..4241)\n OPEN_PAREN: (4218..4219) \"(\"\n SYMBOL: (4219..4235)\n IDENTIFIER: (4219..4235) \"reverse-subtract\"\n ATMOSPHERE: (4235..4236) \" \"\n CONSTANT: (4236..4237)\n NUMBER: (4236..4237) \"7\"\n ATMOSPHERE: (4237..4238) \" \"\n CONSTANT: (4238..4240)\n NUMBER: (4238..4240) \"10\"\n CLOSE_PAREN: (4240..4241) \")\"\n CLOSE_PAREN: (4241..4242) \")\"\n ATMOSPHERE: (4242..4243) \"\n\"\n FORM: (4243..4297)\n OPEN_PAREN: (4243..4244) \"(\"\n SYMBOL: (4244..4250)\n IDENTIFIER: (4244..4250) \"define\"\n ATMOSPHERE: (4250..4251) \" \"\n SYMBOL: (4251..4255)\n IDENTIFIER: (4251..4255) \"add4\"\n ATMOSPHERE: (4255..4258) \"\n \"\n FORM: (4258..4296)\n OPEN_PAREN: (4258..4259) \"(\"\n SYMBOL: (4259..4262)\n IDENTIFIER: (4259..4262) \"let\"\n ATMOSPHERE: (4262..4263) \" \"\n FORM: (4263..4270)\n OPEN_PAREN: (4263..4264) \"(\"\n FORM: (4264..4269)\n OPEN_PAREN: (4264..4265) \"(\"\n SYMBOL: (4265..4266)\n IDENTIFIER: (4265..4266) \"x\"\n ATMOSPHERE: (4266..4267) \" \"\n CONSTANT: (4267..4268)\n NUMBER: (4267..4268) \"4\"\n CLOSE_PAREN: (4268..4269) \")\"\n CLOSE_PAREN: (4269..4270) \")\"\n ATMOSPHERE: (4270..4275) \"\n \"\n FORM: (4275..4295)\n OPEN_PAREN: (4275..4276) \"(\"\n SYMBOL: (4276..4282)\n IDENTIFIER: (4276..4282) \"lambda\"\n ATMOSPHERE: (4282..4283) \" \"\n FORM: (4283..4286)\n OPEN_PAREN: (4283..4284) \"(\"\n SYMBOL: (4284..4285)\n IDENTIFIER: (4284..4285) \"y\"\n CLOSE_PAREN: (4285..4286) \")\"\n ATMOSPHERE: (4286..4287) \" \"\n FORM: (4287..4294)\n OPEN_PAREN: (4287..4288) \"(\"\n SYMBOL: (4288..4289)\n IDENTIFIER: (4288..4289) \"+\"\n ATMOSPHERE: (4289..4290) \" \"\n SYMBOL: (4290..4291)\n IDENTIFIER: (4290..4291) \"x\"\n ATMOSPHERE: (4291..4292) \" \"\n SYMBOL: (4292..4293)\n IDENTIFIER: (4292..4293) \"y\"\n CLOSE_PAREN: (4293..4294) \")\"\n CLOSE_PAREN: (4294..4295) \")\"\n CLOSE_PAREN: (4295..4296) \")\"\n CLOSE_PAREN: (4296..4297) \")\"\n ATMOSPHERE: (4297..4298) \"\n\"\n FORM: (4298..4316)\n OPEN_PAREN: (4298..4299) \"(\"\n SYMBOL: (4299..4303)\n IDENTIFIER: (4299..4303) \"test\"\n ATMOSPHERE: (4303..4304) \" \"\n CONSTANT: (4304..4306)\n NUMBER: (4304..4306) \"10\"\n ATMOSPHERE: (4306..4307) \" \"\n FORM: (4307..4315)\n OPEN_PAREN: (4307..4308) \"(\"\n SYMBOL: (4308..4312)\n IDENTIFIER: (4308..4312) \"add4\"\n ATMOSPHERE: (4312..4313) \" \"\n CONSTANT: (4313..4314)\n NUMBER: (4313..4314) \"6\"\n CLOSE_PAREN: (4314..4315) \")\"\n CLOSE_PAREN: (4315..4316) \")\"\n ATMOSPHERE: (4316..4318) \"\n\n\"\n FORM: (4318..4358)\n OPEN_PAREN: (4318..4319) \"(\"\n SYMBOL: (4319..4323)\n IDENTIFIER: (4319..4323) \"test\"\n ATMOSPHERE: (4323..4324) \" \"\n QUOTED_DATUM: (4324..4335)\n QUOTE: (4324..4325) \"'\"\n FORM: (4325..4334)\n OPEN_PAREN: (4325..4326) \"(\"\n CONSTANT: (4326..4327)\n NUMBER: (4326..4327) \"3\"\n ATMOSPHERE: (4327..4328) \" \"\n CONSTANT: (4328..4329)\n NUMBER: (4328..4329) \"4\"\n ATMOSPHERE: (4329..4330) \" \"\n CONSTANT: (4330..4331)\n NUMBER: (4330..4331) \"5\"\n ATMOSPHERE: (4331..4332) \" \"\n CONSTANT: (4332..4333)\n NUMBER: (4332..4333) \"6\"\n CLOSE_PAREN: (4333..4334) \")\"\n ATMOSPHERE: (4334..4335) \" \"\n FORM: (4335..4357)\n OPEN_PAREN: (4335..4336) \"(\"\n FORM: (4336..4348)\n OPEN_PAREN: (4336..4337) \"(\"\n SYMBOL: (4337..4343)\n IDENTIFIER: (4337..4343) \"lambda\"\n ATMOSPHERE: (4343..4344) \" \"\n SYMBOL: (4344..4345)\n IDENTIFIER: (4344..4345) \"x\"\n ATMOSPHERE: (4345..4346) \" \"\n SYMBOL: (4346..4347)\n IDENTIFIER: (4346..4347) \"x\"\n CLOSE_PAREN: (4347..4348) \")\"\n ATMOSPHERE: (4348..4349) \" \"\n CONSTANT: (4349..4350)\n NUMBER: (4349..4350) \"3\"\n ATMOSPHERE: (4350..4351) \" \"\n CONSTANT: (4351..4352)\n NUMBER: (4351..4352) \"4\"\n ATMOSPHERE: (4352..4353) \" \"\n CONSTANT: (4353..4354)\n NUMBER: (4353..4354) \"5\"\n ATMOSPHERE: (4354..4355) \" \"\n CONSTANT: (4355..4356)\n NUMBER: (4355..4356) \"6\"\n CLOSE_PAREN: (4356..4357) \")\"\n CLOSE_PAREN: (4357..4358) \")\"\n ATMOSPHERE: (4358..4359) \"\n\"\n FORM: (4359..4404)\n OPEN_PAREN: (4359..4360) \"(\"\n SYMBOL: (4360..4364)\n IDENTIFIER: (4360..4364) \"test\"\n ATMOSPHERE: (4364..4365) \" \"\n QUOTED_DATUM: (4365..4372)\n QUOTE: (4365..4366) \"'\"\n FORM: (4366..4371)\n OPEN_PAREN: (4366..4367) \"(\"\n CONSTANT: (4367..4368)\n NUMBER: (4367..4368) \"5\"\n ATMOSPHERE: (4368..4369) \" \"\n CONSTANT: (4369..4370)\n NUMBER: (4369..4370) \"6\"\n CLOSE_PAREN: (4370..4371) \")\"\n ATMOSPHERE: (4371..4372) \" \"\n FORM: (4372..4403)\n OPEN_PAREN: (4372..4373) \"(\"\n FORM: (4373..4393)\n OPEN_PAREN: (4373..4374) \"(\"\n SYMBOL: (4374..4380)\n IDENTIFIER: (4374..4380) \"lambda\"\n ATMOSPHERE: (4380..4381) \" \"\n FORM: (4381..4390)\n OPEN_PAREN: (4381..4382) \"(\"\n SYMBOL: (4382..4383)\n IDENTIFIER: (4382..4383) \"x\"\n ATMOSPHERE: (4383..4384) \" \"\n SYMBOL: (4384..4385)\n IDENTIFIER: (4384..4385) \"y\"\n ATMOSPHERE: (4385..4386) \" \"\n DOTTED_TAIL: (4386..4389)\n DOT: (4386..4387) \".\"\n ATMOSPHERE: (4387..4388) \" \"\n SYMBOL: (4388..4389)\n IDENTIFIER: (4388..4389) \"z\"\n CLOSE_PAREN: (4389..4390) \")\"\n ATMOSPHERE: (4390..4391) \" \"\n SYMBOL: (4391..4392)\n IDENTIFIER: (4391..4392) \"z\"\n CLOSE_PAREN: (4392..4393) \")\"\n ATMOSPHERE: (4393..4395) \"\n \"\n CONSTANT: (4395..4396)\n NUMBER: (4395..4396) \"3\"\n ATMOSPHERE: (4396..4397) \" \"\n CONSTANT: (4397..4398)\n NUMBER: (4397..4398) \"4\"\n ATMOSPHERE: (4398..4399) \" \"\n CONSTANT: (4399..4400)\n NUMBER: (4399..4400) \"5\"\n ATMOSPHERE: (4400..4401) \" \"\n CONSTANT: (4401..4402)\n NUMBER: (4401..4402) \"6\"\n CLOSE_PAREN: (4402..4403) \")\"\n CLOSE_PAREN: (4403..4404) \")\"\n ATMOSPHERE: (4404..4406) \"\n\n\"\n FORM: (4406..4439)\n OPEN_PAREN: (4406..4407) \"(\"\n SYMBOL: (4407..4411)\n IDENTIFIER: (4407..4411) \"test\"\n ATMOSPHERE: (4411..4412) \" \"\n QUOTED_DATUM: (4412..4417)\n QUOTE: (4412..4413) \"'\"\n SYMBOL: (4413..4416)\n IDENTIFIER: (4413..4416) \"yes\"\n ATMOSPHERE: (4416..4417) \" \"\n FORM: (4417..4438)\n OPEN_PAREN: (4417..4418) \"(\"\n SYMBOL: (4418..4420)\n IDENTIFIER: (4418..4420) \"if\"\n ATMOSPHERE: (4420..4421) \" \"\n FORM: (4421..4428)\n OPEN_PAREN: (4421..4422) \"(\"\n SYMBOL: (4422..4423)\n IDENTIFIER: (4422..4423) \">\"\n ATMOSPHERE: (4423..4424) \" \"\n CONSTANT: (4424..4425)\n NUMBER: (4424..4425) \"3\"\n ATMOSPHERE: (4425..4426) \" \"\n CONSTANT: (4426..4427)\n NUMBER: (4426..4427) \"2\"\n CLOSE_PAREN: (4427..4428) \")\"\n ATMOSPHERE: (4428..4429) \" \"\n QUOTED_DATUM: (4429..4434)\n QUOTE: (4429..4430) \"'\"\n SYMBOL: (4430..4433)\n IDENTIFIER: (4430..4433) \"yes\"\n ATMOSPHERE: (4433..4434) \" \"\n QUOTED_DATUM: (4434..4437)\n QUOTE: (4434..4435) \"'\"\n SYMBOL: (4435..4437)\n IDENTIFIER: (4435..4437) \"no\"\n CLOSE_PAREN: (4437..4438) \")\"\n CLOSE_PAREN: (4438..4439) \")\"\n ATMOSPHERE: (4439..4440) \"\n\"\n FORM: (4440..4472)\n OPEN_PAREN: (4440..4441) \"(\"\n SYMBOL: (4441..4445)\n IDENTIFIER: (4441..4445) \"test\"\n ATMOSPHERE: (4445..4446) \" \"\n QUOTED_DATUM: (4446..4450)\n QUOTE: (4446..4447) \"'\"\n SYMBOL: (4447..4449)\n IDENTIFIER: (4447..4449) \"no\"\n ATMOSPHERE: (4449..4450) \" \"\n FORM: (4450..4471)\n OPEN_PAREN: (4450..4451) \"(\"\n SYMBOL: (4451..4453)\n IDENTIFIER: (4451..4453) \"if\"\n ATMOSPHERE: (4453..4454) \" \"\n FORM: (4454..4461)\n OPEN_PAREN: (4454..4455) \"(\"\n SYMBOL: (4455..4456)\n IDENTIFIER: (4455..4456) \">\"\n ATMOSPHERE: (4456..4457) \" \"\n CONSTANT: (4457..4458)\n NUMBER: (4457..4458) \"2\"\n ATMOSPHERE: (4458..4459) \" \"\n CONSTANT: (4459..4460)\n NUMBER: (4459..4460) \"3\"\n CLOSE_PAREN: (4460..4461) \")\"\n ATMOSPHERE: (4461..4462) \" \"\n QUOTED_DATUM: (4462..4467)\n QUOTE: (4462..4463) \"'\"\n SYMBOL: (4463..4466)\n IDENTIFIER: (4463..4466) \"yes\"\n ATMOSPHERE: (4466..4467) \" \"\n QUOTED_DATUM: (4467..4470)\n QUOTE: (4467..4468) \"'\"\n SYMBOL: (4468..4470)\n IDENTIFIER: (4468..4470) \"no\"\n CLOSE_PAREN: (4470..4471) \")\"\n CLOSE_PAREN: (4471..4472) \")\"\n ATMOSPHERE: (4472..4473) \"\n\"\n FORM: (4473..4518)\n OPEN_PAREN: (4473..4474) \"(\"\n SYMBOL: (4474..4478)\n IDENTIFIER: (4474..4478) \"test\"\n ATMOSPHERE: (4478..4479) \" \"\n CONSTANT: (4479..4480)\n NUMBER: (4479..4480) \"1\"\n ATMOSPHERE: (4480..4481) \" \"\n FORM: (4481..4517)\n OPEN_PAREN: (4481..4482) \"(\"\n SYMBOL: (4482..4484)\n IDENTIFIER: (4482..4484) \"if\"\n ATMOSPHERE: (4484..4485) \" \"\n FORM: (4485..4492)\n OPEN_PAREN: (4485..4486) \"(\"\n SYMBOL: (4486..4487)\n IDENTIFIER: (4486..4487) \">\"\n ATMOSPHERE: (4487..4488) \" \"\n CONSTANT: (4488..4489)\n NUMBER: (4488..4489) \"3\"\n ATMOSPHERE: (4489..4490) \" \"\n CONSTANT: (4490..4491)\n NUMBER: (4490..4491) \"2\"\n CLOSE_PAREN: (4491..4492) \")\"\n ATMOSPHERE: (4492..4497) \"\n \"\n FORM: (4497..4504)\n OPEN_PAREN: (4497..4498) \"(\"\n SYMBOL: (4498..4499)\n IDENTIFIER: (4498..4499) \"-\"\n ATMOSPHERE: (4499..4500) \" \"\n CONSTANT: (4500..4501)\n NUMBER: (4500..4501) \"3\"\n ATMOSPHERE: (4501..4502) \" \"\n CONSTANT: (4502..4503)\n NUMBER: (4502..4503) \"2\"\n CLOSE_PAREN: (4503..4504) \")\"\n ATMOSPHERE: (4504..4509) \"\n \"\n FORM: (4509..4516)\n OPEN_PAREN: (4509..4510) \"(\"\n SYMBOL: (4510..4511)\n IDENTIFIER: (4510..4511) \"+\"\n ATMOSPHERE: (4511..4512) \" \"\n CONSTANT: (4512..4513)\n NUMBER: (4512..4513) \"3\"\n ATMOSPHERE: (4513..4514) \" \"\n CONSTANT: (4514..4515)\n NUMBER: (4514..4515) \"2\"\n CLOSE_PAREN: (4515..4516) \")\"\n CLOSE_PAREN: (4516..4517) \")\"\n CLOSE_PAREN: (4517..4518) \")\"\n ATMOSPHERE: (4518..4519) \"\n\"\n FORM: (4519..4561)\n OPEN_PAREN: (4519..4520) \"(\"\n SYMBOL: (4520..4523)\n IDENTIFIER: (4520..4523) \"let\"\n ATMOSPHERE: (4523..4524) \" \"\n FORM: (4524..4526)\n OPEN_PAREN: (4524..4525) \"(\"\n CLOSE_PAREN: (4525..4526) \")\"\n ATMOSPHERE: (4526..4529) \"\n \"\n FORM: (4529..4541)\n OPEN_PAREN: (4529..4530) \"(\"\n SYMBOL: (4530..4536)\n IDENTIFIER: (4530..4536) \"define\"\n ATMOSPHERE: (4536..4537) \" \"\n SYMBOL: (4537..4538)\n IDENTIFIER: (4537..4538) \"x\"\n ATMOSPHERE: (4538..4539) \" \"\n CONSTANT: (4539..4540)\n NUMBER: (4539..4540) \"2\"\n CLOSE_PAREN: (4540..4541) \")\"\n ATMOSPHERE: (4541..4544) \"\n \"\n FORM: (4544..4560)\n OPEN_PAREN: (4544..4545) \"(\"\n SYMBOL: (4545..4549)\n IDENTIFIER: (4545..4549) \"test\"\n ATMOSPHERE: (4549..4550) \" \"\n CONSTANT: (4550..4551)\n NUMBER: (4550..4551) \"3\"\n ATMOSPHERE: (4551..4552) \" \"\n FORM: (4552..4559)\n OPEN_PAREN: (4552..4553) \"(\"\n SYMBOL: (4553..4554)\n IDENTIFIER: (4553..4554) \"+\"\n ATMOSPHERE: (4554..4555) \" \"\n SYMBOL: (4555..4556)\n IDENTIFIER: (4555..4556) \"x\"\n ATMOSPHERE: (4556..4557) \" \"\n CONSTANT: (4557..4558)\n NUMBER: (4557..4558) \"1\"\n CLOSE_PAREN: (4558..4559) \")\"\n CLOSE_PAREN: (4559..4560) \")\"\n CLOSE_PAREN: (4560..4561) \")\"\n ATMOSPHERE: (4561..4563) \"\n\n\"\n FORM: (4563..4573)\n OPEN_PAREN: (4563..4564) \"(\"\n SYMBOL: (4564..4572)\n IDENTIFIER: (4564..4572) \"test-end\"\n CLOSE_PAREN: (4572..4573) \")\"\n ATMOSPHERE: (4573..4575) \"\n\n\"\n FORM: (4575..4618)\n OPEN_PAREN: (4575..4576) \"(\"\n SYMBOL: (4576..4586)\n IDENTIFIER: (4576..4586) \"test-begin\"\n ATMOSPHERE: (4586..4587) \" \"\n CONSTANT: (4587..4617)\n STRING: (4587..4617) \"\"4.2 Derived expression types\"\"\n CLOSE_PAREN: (4617..4618) \")\"\n ATMOSPHERE: (4618..4620) \"\n\n\"\n ATMOSPHERE: (4620..4664) \";;;;; FIXME: No `cond` or `case` support yet\"\n ATMOSPHERE: (4664..4665) \"\n\"\n FORM: (4665..4736)\n OPEN_PAREN: (4665..4666) \"(\"\n SYMBOL: (4666..4670)\n IDENTIFIER: (4666..4670) \"test\"\n ATMOSPHERE: (4670..4671) \" \"\n QUOTED_DATUM: (4671..4684)\n QUOTE: (4671..4672) \"'\"\n SYMBOL: (4672..4679)\n IDENTIFIER: (4672..4679) \"greater\"\n ATMOSPHERE: (4679..4684) \"\n \"\n FORM: (4684..4735)\n OPEN_PAREN: (4684..4685) \"(\"\n SYMBOL: (4685..4689)\n IDENTIFIER: (4685..4689) \"cond\"\n ATMOSPHERE: (4689..4690) \" \"\n FORM: (4690..4708)\n OPEN_PAREN: (4690..4691) \"(\"\n FORM: (4691..4698)\n OPEN_PAREN: (4691..4692) \"(\"\n SYMBOL: (4692..4693)\n IDENTIFIER: (4692..4693) \">\"\n ATMOSPHERE: (4693..4694) \" \"\n CONSTANT: (4694..4695)\n NUMBER: (4694..4695) \"3\"\n ATMOSPHERE: (4695..4696) \" \"\n CONSTANT: (4696..4697)\n NUMBER: (4696..4697) \"2\"\n CLOSE_PAREN: (4697..4698) \")\"\n ATMOSPHERE: (4698..4699) \" \"\n QUOTED_DATUM: (4699..4707)\n QUOTE: (4699..4700) \"'\"\n SYMBOL: (4700..4707)\n IDENTIFIER: (4700..4707) \"greater\"\n CLOSE_PAREN: (4707..4708) \")\"\n ATMOSPHERE: (4708..4719) \"\n \"\n FORM: (4719..4734)\n OPEN_PAREN: (4719..4720) \"(\"\n FORM: (4720..4727)\n OPEN_PAREN: (4720..4721) \"(\"\n SYMBOL: (4721..4722)\n IDENTIFIER: (4721..4722) \"<\"\n ATMOSPHERE: (4722..4723) \" \"\n CONSTANT: (4723..4724)\n NUMBER: (4723..4724) \"3\"\n ATMOSPHERE: (4724..4725) \" \"\n CONSTANT: (4725..4726)\n NUMBER: (4725..4726) \"2\"\n CLOSE_PAREN: (4726..4727) \")\"\n ATMOSPHERE: (4727..4728) \" \"\n QUOTED_DATUM: (4728..4733)\n QUOTE: (4728..4729) \"'\"\n SYMBOL: (4729..4733)\n IDENTIFIER: (4729..4733) \"less\"\n CLOSE_PAREN: (4733..4734) \")\"\n CLOSE_PAREN: (4734..4735) \")\"\n CLOSE_PAREN: (4735..4736) \")\"\n ATMOSPHERE: (4736..4738) \"\n\n\"\n FORM: (4738..4831)\n OPEN_PAREN: (4738..4739) \"(\"\n SYMBOL: (4739..4743)\n IDENTIFIER: (4739..4743) \"test\"\n ATMOSPHERE: (4743..4744) \" \"\n QUOTED_DATUM: (4744..4755)\n QUOTE: (4744..4745) \"'\"\n SYMBOL: (4745..4750)\n IDENTIFIER: (4745..4750) \"equal\"\n ATMOSPHERE: (4750..4755) \"\n \"\n FORM: (4755..4830)\n OPEN_PAREN: (4755..4756) \"(\"\n SYMBOL: (4756..4760)\n IDENTIFIER: (4756..4760) \"cond\"\n ATMOSPHERE: (4760..4761) \" \"\n FORM: (4761..4779)\n OPEN_PAREN: (4761..4762) \"(\"\n FORM: (4762..4769)\n OPEN_PAREN: (4762..4763) \"(\"\n SYMBOL: (4763..4764)\n IDENTIFIER: (4763..4764) \">\"\n ATMOSPHERE: (4764..4765) \" \"\n CONSTANT: (4765..4766)\n NUMBER: (4765..4766) \"3\"\n ATMOSPHERE: (4766..4767) \" \"\n CONSTANT: (4767..4768)\n NUMBER: (4767..4768) \"3\"\n CLOSE_PAREN: (4768..4769) \")\"\n ATMOSPHERE: (4769..4770) \" \"\n QUOTED_DATUM: (4770..4778)\n QUOTE: (4770..4771) \"'\"\n SYMBOL: (4771..4778)\n IDENTIFIER: (4771..4778) \"greater\"\n CLOSE_PAREN: (4778..4779) \")\"\n ATMOSPHERE: (4779..4790) \"\n \"\n FORM: (4790..4805)\n OPEN_PAREN: (4790..4791) \"(\"\n FORM: (4791..4798)\n OPEN_PAREN: (4791..4792) \"(\"\n SYMBOL: (4792..4793)\n IDENTIFIER: (4792..4793) \"<\"\n ATMOSPHERE: (4793..4794) \" \"\n CONSTANT: (4794..4795)\n NUMBER: (4794..4795) \"3\"\n ATMOSPHERE: (4795..4796) \" \"\n CONSTANT: (4796..4797)\n NUMBER: (4796..4797) \"3\"\n CLOSE_PAREN: (4797..4798) \")\"\n ATMOSPHERE: (4798..4799) \" \"\n QUOTED_DATUM: (4799..4804)\n QUOTE: (4799..4800) \"'\"\n SYMBOL: (4800..4804)\n IDENTIFIER: (4800..4804) \"less\"\n CLOSE_PAREN: (4804..4805) \")\"\n ATMOSPHERE: (4805..4816) \"\n \"\n FORM: (4816..4829)\n OPEN_PAREN: (4816..4817) \"(\"\n SYMBOL: (4817..4821)\n IDENTIFIER: (4817..4821) \"else\"\n ATMOSPHERE: (4821..4822) \" \"\n QUOTED_DATUM: (4822..4828)\n QUOTE: (4822..4823) \"'\"\n SYMBOL: (4823..4828)\n IDENTIFIER: (4823..4828) \"equal\"\n CLOSE_PAREN: (4828..4829) \")\"\n CLOSE_PAREN: (4829..4830) \")\"\n CLOSE_PAREN: (4830..4831) \")\"\n ATMOSPHERE: (4831..4833) \"\n\n\"\n ATMOSPHERE: (4833..4843) \";; (test 2\"\n ATMOSPHERE: (4843..4844) \"\n\"\n ATMOSPHERE: (4844..4891) \";; (cond ((assv 'b '((a 1) (b 2))) => cadr)\"\n ATMOSPHERE: (4891..4892) \"\n\"\n ATMOSPHERE: (4892..4916) \";; (else #f)))\"\n ATMOSPHERE: (4916..4918) \"\n\n\"\n ATMOSPHERE: (4918..4937) \";; (test 'composite\"\n ATMOSPHERE: (4937..4938) \"\n\"\n ATMOSPHERE: (4938..4958) \";; (case (* 2 3)\"\n ATMOSPHERE: (4958..4959) \"\n\"\n ATMOSPHERE: (4959..4986) \";; ((2 3 5 7) 'prime)\"\n ATMOSPHERE: (4986..4987) \"\n\"\n ATMOSPHERE: (4987..5022) \";; ((1 4 6 8 9) 'composite)))\"\n ATMOSPHERE: (5022..5024) \"\n\n\"\n ATMOSPHERE: (5024..5035) \";; (test 'c\"\n ATMOSPHERE: (5035..5036) \"\n\"\n ATMOSPHERE: (5036..5061) \";; (case (car '(c d))\"\n ATMOSPHERE: (5061..5062) \"\n\"\n ATMOSPHERE: (5062..5091) \";; ((a e i o u) 'vowel)\"\n ATMOSPHERE: (5091..5092) \"\n\"\n ATMOSPHERE: (5092..5119) \";; ((w y) 'semivowel)\"\n ATMOSPHERE: (5119..5120) \"\n\"\n ATMOSPHERE: (5120..5155) \";; (else => (lambda (x) x))))\"\n ATMOSPHERE: (5155..5157) \"\n\n\"\n ATMOSPHERE: (5157..5207) \";; (test '((other . z) (semivowel . y) (other . x)\"\n ATMOSPHERE: (5207..5208) \"\n\"\n ATMOSPHERE: (5208..5247) \";; (semivowel . w) (vowel . u))\"\n ATMOSPHERE: (5247..5248) \"\n\"\n ATMOSPHERE: (5248..5271) \";; (map (lambda (x)\"\n ATMOSPHERE: (5271..5272) \"\n\"\n ATMOSPHERE: (5272..5293) \";; (case x\"\n ATMOSPHERE: (5293..5294) \"\n\"\n ATMOSPHERE: (5294..5355) \";; ((a e i o u) => (lambda (w) (cons 'vowel w)))\"\n ATMOSPHERE: (5355..5356) \"\n\"\n ATMOSPHERE: (5356..5399) \";; ((w y) (cons 'semivowel x))\"\n ATMOSPHERE: (5399..5400) \"\n\"\n ATMOSPHERE: (5400..5456) \";; (else => (lambda (w) (cons 'other w)))))\"\n ATMOSPHERE: (5456..5457) \"\n\"\n ATMOSPHERE: (5457..5483) \";; '(z y x w u)))\"\n ATMOSPHERE: (5483..5485) \"\n\n\"\n FORM: (5485..5516)\n OPEN_PAREN: (5485..5486) \"(\"\n SYMBOL: (5486..5490)\n IDENTIFIER: (5486..5490) \"test\"\n ATMOSPHERE: (5490..5491) \" \"\n CONSTANT: (5491..5493)\n BOOLEAN: (5491..5493) \"#t\"\n ATMOSPHERE: (5493..5494) \" \"\n FORM: (5494..5515)\n OPEN_PAREN: (5494..5495) \"(\"\n SYMBOL: (5495..5498)\n IDENTIFIER: (5495..5498) \"and\"\n ATMOSPHERE: (5498..5499) \" \"\n FORM: (5499..5506)\n OPEN_PAREN: (5499..5500) \"(\"\n SYMBOL: (5500..5501)\n IDENTIFIER: (5500..5501) \"=\"\n ATMOSPHERE: (5501..5502) \" \"\n CONSTANT: (5502..5503)\n NUMBER: (5502..5503) \"2\"\n ATMOSPHERE: (5503..5504) \" \"\n CONSTANT: (5504..5505)\n NUMBER: (5504..5505) \"2\"\n CLOSE_PAREN: (5505..5506) \")\"\n ATMOSPHERE: (5506..5507) \" \"\n FORM: (5507..5514)\n OPEN_PAREN: (5507..5508) \"(\"\n SYMBOL: (5508..5509)\n IDENTIFIER: (5508..5509) \">\"\n ATMOSPHERE: (5509..5510) \" \"\n CONSTANT: (5510..5511)\n NUMBER: (5510..5511) \"2\"\n ATMOSPHERE: (5511..5512) \" \"\n CONSTANT: (5512..5513)\n NUMBER: (5512..5513) \"1\"\n CLOSE_PAREN: (5513..5514) \")\"\n CLOSE_PAREN: (5514..5515) \")\"\n CLOSE_PAREN: (5515..5516) \")\"\n ATMOSPHERE: (5516..5517) \"\n\"\n FORM: (5517..5548)\n OPEN_PAREN: (5517..5518) \"(\"\n SYMBOL: (5518..5522)\n IDENTIFIER: (5518..5522) \"test\"\n ATMOSPHERE: (5522..5523) \" \"\n CONSTANT: (5523..5525)\n BOOLEAN: (5523..5525) \"#f\"\n ATMOSPHERE: (5525..5526) \" \"\n FORM: (5526..5547)\n OPEN_PAREN: (5526..5527) \"(\"\n SYMBOL: (5527..5530)\n IDENTIFIER: (5527..5530) \"and\"\n ATMOSPHERE: (5530..5531) \" \"\n FORM: (5531..5538)\n OPEN_PAREN: (5531..5532) \"(\"\n SYMBOL: (5532..5533)\n IDENTIFIER: (5532..5533) \"=\"\n ATMOSPHERE: (5533..5534) \" \"\n CONSTANT: (5534..5535)\n NUMBER: (5534..5535) \"2\"\n ATMOSPHERE: (5535..5536) \" \"\n CONSTANT: (5536..5537)\n NUMBER: (5536..5537) \"2\"\n CLOSE_PAREN: (5537..5538) \")\"\n ATMOSPHERE: (5538..5539) \" \"\n FORM: (5539..5546)\n OPEN_PAREN: (5539..5540) \"(\"\n SYMBOL: (5540..5541)\n IDENTIFIER: (5540..5541) \"<\"\n ATMOSPHERE: (5541..5542) \" \"\n CONSTANT: (5542..5543)\n NUMBER: (5542..5543) \"2\"\n ATMOSPHERE: (5543..5544) \" \"\n CONSTANT: (5544..5545)\n NUMBER: (5544..5545) \"1\"\n CLOSE_PAREN: (5545..5546) \")\"\n CLOSE_PAREN: (5546..5547) \")\"\n CLOSE_PAREN: (5547..5548) \")\"\n ATMOSPHERE: (5548..5549) \"\n\"\n FORM: (5549..5582)\n OPEN_PAREN: (5549..5550) \"(\"\n SYMBOL: (5550..5554)\n IDENTIFIER: (5550..5554) \"test\"\n ATMOSPHERE: (5554..5555) \" \"\n QUOTED_DATUM: (5555..5562)\n QUOTE: (5555..5556) \"'\"\n FORM: (5556..5561)\n OPEN_PAREN: (5556..5557) \"(\"\n SYMBOL: (5557..5558)\n IDENTIFIER: (5557..5558) \"f\"\n ATMOSPHERE: (5558..5559) \" \"\n SYMBOL: (5559..5560)\n IDENTIFIER: (5559..5560) \"g\"\n CLOSE_PAREN: (5560..5561) \")\"\n ATMOSPHERE: (5561..5562) \" \"\n FORM: (5562..5581)\n OPEN_PAREN: (5562..5563) \"(\"\n SYMBOL: (5563..5566)\n IDENTIFIER: (5563..5566) \"and\"\n ATMOSPHERE: (5566..5567) \" \"\n CONSTANT: (5567..5568)\n NUMBER: (5567..5568) \"1\"\n ATMOSPHERE: (5568..5569) \" \"\n CONSTANT: (5569..5570)\n NUMBER: (5569..5570) \"2\"\n ATMOSPHERE: (5570..5571) \" \"\n QUOTED_DATUM: (5571..5574)\n QUOTE: (5571..5572) \"'\"\n SYMBOL: (5572..5573)\n IDENTIFIER: (5572..5573) \"c\"\n ATMOSPHERE: (5573..5574) \" \"\n QUOTED_DATUM: (5574..5580)\n QUOTE: (5574..5575) \"'\"\n FORM: (5575..5580)\n OPEN_PAREN: (5575..5576) \"(\"\n SYMBOL: (5576..5577)\n IDENTIFIER: (5576..5577) \"f\"\n ATMOSPHERE: (5577..5578) \" \"\n SYMBOL: (5578..5579)\n IDENTIFIER: (5578..5579) \"g\"\n CLOSE_PAREN: (5579..5580) \")\"\n CLOSE_PAREN: (5580..5581) \")\"\n CLOSE_PAREN: (5581..5582) \")\"\n ATMOSPHERE: (5582..5583) \"\n\"\n FORM: (5583..5598)\n OPEN_PAREN: (5583..5584) \"(\"\n SYMBOL: (5584..5588)\n IDENTIFIER: (5584..5588) \"test\"\n ATMOSPHERE: (5588..5589) \" \"\n CONSTANT: (5589..5591)\n BOOLEAN: (5589..5591) \"#t\"\n ATMOSPHERE: (5591..5592) \" \"\n FORM: (5592..5597)\n OPEN_PAREN: (5592..5593) \"(\"\n SYMBOL: (5593..5596)\n IDENTIFIER: (5593..5596) \"and\"\n CLOSE_PAREN: (5596..5597) \")\"\n CLOSE_PAREN: (5597..5598) \")\"\n ATMOSPHERE: (5598..5600) \"\n\n\"\n FORM: (5600..5630)\n OPEN_PAREN: (5600..5601) \"(\"\n SYMBOL: (5601..5605)\n IDENTIFIER: (5601..5605) \"test\"\n ATMOSPHERE: (5605..5606) \" \"\n CONSTANT: (5606..5608)\n BOOLEAN: (5606..5608) \"#t\"\n ATMOSPHERE: (5608..5609) \" \"\n FORM: (5609..5629)\n OPEN_PAREN: (5609..5610) \"(\"\n SYMBOL: (5610..5612)\n IDENTIFIER: (5610..5612) \"or\"\n ATMOSPHERE: (5612..5613) \" \"\n FORM: (5613..5620)\n OPEN_PAREN: (5613..5614) \"(\"\n SYMBOL: (5614..5615)\n IDENTIFIER: (5614..5615) \"=\"\n ATMOSPHERE: (5615..5616) \" \"\n CONSTANT: (5616..5617)\n NUMBER: (5616..5617) \"2\"\n ATMOSPHERE: (5617..5618) \" \"\n CONSTANT: (5618..5619)\n NUMBER: (5618..5619) \"2\"\n CLOSE_PAREN: (5619..5620) \")\"\n ATMOSPHERE: (5620..5621) \" \"\n FORM: (5621..5628)\n OPEN_PAREN: (5621..5622) \"(\"\n SYMBOL: (5622..5623)\n IDENTIFIER: (5622..5623) \">\"\n ATMOSPHERE: (5623..5624) \" \"\n CONSTANT: (5624..5625)\n NUMBER: (5624..5625) \"2\"\n ATMOSPHERE: (5625..5626) \" \"\n CONSTANT: (5626..5627)\n NUMBER: (5626..5627) \"1\"\n CLOSE_PAREN: (5627..5628) \")\"\n CLOSE_PAREN: (5628..5629) \")\"\n CLOSE_PAREN: (5629..5630) \")\"\n ATMOSPHERE: (5630..5631) \"\n\"\n FORM: (5631..5661)\n OPEN_PAREN: (5631..5632) \"(\"\n SYMBOL: (5632..5636)\n IDENTIFIER: (5632..5636) \"test\"\n ATMOSPHERE: (5636..5637) \" \"\n CONSTANT: (5637..5639)\n BOOLEAN: (5637..5639) \"#t\"\n ATMOSPHERE: (5639..5640) \" \"\n FORM: (5640..5660)\n OPEN_PAREN: (5640..5641) \"(\"\n SYMBOL: (5641..5643)\n IDENTIFIER: (5641..5643) \"or\"\n ATMOSPHERE: (5643..5644) \" \"\n FORM: (5644..5651)\n OPEN_PAREN: (5644..5645) \"(\"\n SYMBOL: (5645..5646)\n IDENTIFIER: (5645..5646) \"=\"\n ATMOSPHERE: (5646..5647) \" \"\n CONSTANT: (5647..5648)\n NUMBER: (5647..5648) \"2\"\n ATMOSPHERE: (5648..5649) \" \"\n CONSTANT: (5649..5650)\n NUMBER: (5649..5650) \"2\"\n CLOSE_PAREN: (5650..5651) \")\"\n ATMOSPHERE: (5651..5652) \" \"\n FORM: (5652..5659)\n OPEN_PAREN: (5652..5653) \"(\"\n SYMBOL: (5653..5654)\n IDENTIFIER: (5653..5654) \"<\"\n ATMOSPHERE: (5654..5655) \" \"\n CONSTANT: (5655..5656)\n NUMBER: (5655..5656) \"2\"\n ATMOSPHERE: (5656..5657) \" \"\n CONSTANT: (5657..5658)\n NUMBER: (5657..5658) \"1\"\n CLOSE_PAREN: (5658..5659) \")\"\n CLOSE_PAREN: (5659..5660) \")\"\n CLOSE_PAREN: (5660..5661) \")\"\n ATMOSPHERE: (5661..5662) \"\n\"\n FORM: (5662..5685)\n OPEN_PAREN: (5662..5663) \"(\"\n SYMBOL: (5663..5667)\n IDENTIFIER: (5663..5667) \"test\"\n ATMOSPHERE: (5667..5668) \" \"\n CONSTANT: (5668..5670)\n BOOLEAN: (5668..5670) \"#f\"\n ATMOSPHERE: (5670..5671) \" \"\n FORM: (5671..5684)\n OPEN_PAREN: (5671..5672) \"(\"\n SYMBOL: (5672..5674)\n IDENTIFIER: (5672..5674) \"or\"\n ATMOSPHERE: (5674..5675) \" \"\n CONSTANT: (5675..5677)\n BOOLEAN: (5675..5677) \"#f\"\n ATMOSPHERE: (5677..5678) \" \"\n CONSTANT: (5678..5680)\n BOOLEAN: (5678..5680) \"#f\"\n ATMOSPHERE: (5680..5681) \" \"\n CONSTANT: (5681..5683)\n BOOLEAN: (5681..5683) \"#f\"\n CLOSE_PAREN: (5683..5684) \")\"\n CLOSE_PAREN: (5684..5685) \")\"\n ATMOSPHERE: (5685..5686) \"\n\"\n FORM: (5686..5759)\n OPEN_PAREN: (5686..5687) \"(\"\n SYMBOL: (5687..5691)\n IDENTIFIER: (5687..5691) \"test\"\n ATMOSPHERE: (5691..5692) \" \"\n QUOTED_DATUM: (5692..5699)\n QUOTE: (5692..5693) \"'\"\n FORM: (5693..5698)\n OPEN_PAREN: (5693..5694) \"(\"\n SYMBOL: (5694..5695)\n IDENTIFIER: (5694..5695) \"b\"\n ATMOSPHERE: (5695..5696) \" \"\n SYMBOL: (5696..5697)\n IDENTIFIER: (5696..5697) \"c\"\n CLOSE_PAREN: (5697..5698) \")\"\n ATMOSPHERE: (5698..5699) \" \"\n FORM: (5699..5758)\n OPEN_PAREN: (5699..5700) \"(\"\n SYMBOL: (5700..5702)\n IDENTIFIER: (5700..5702) \"or\"\n ATMOSPHERE: (5702..5703) \" \"\n FORM: (5703..5721)\n OPEN_PAREN: (5703..5704) \"(\"\n SYMBOL: (5704..5708)\n IDENTIFIER: (5704..5708) \"memq\"\n ATMOSPHERE: (5708..5709) \" \"\n QUOTED_DATUM: (5709..5712)\n QUOTE: (5709..5710) \"'\"\n SYMBOL: (5710..5711)\n IDENTIFIER: (5710..5711) \"b\"\n ATMOSPHERE: (5711..5712) \" \"\n QUOTED_DATUM: (5712..5720)\n QUOTE: (5712..5713) \"'\"\n FORM: (5713..5720)\n OPEN_PAREN: (5713..5714) \"(\"\n SYMBOL: (5714..5715)\n IDENTIFIER: (5714..5715) \"a\"\n ATMOSPHERE: (5715..5716) \" \"\n SYMBOL: (5716..5717)\n IDENTIFIER: (5716..5717) \"b\"\n ATMOSPHERE: (5717..5718) \" \"\n SYMBOL: (5718..5719)\n IDENTIFIER: (5718..5719) \"c\"\n CLOSE_PAREN: (5719..5720) \")\"\n CLOSE_PAREN: (5720..5721) \")\"\n ATMOSPHERE: (5721..5722) \" \"\n ATMOSPHERE: (5722..5745) \";; FIXME: No `memq` yet\"\n ATMOSPHERE: (5745..5750) \"\n \"\n FORM: (5750..5757)\n OPEN_PAREN: (5750..5751) \"(\"\n SYMBOL: (5751..5752)\n IDENTIFIER: (5751..5752) \"/\"\n ATMOSPHERE: (5752..5753) \" \"\n CONSTANT: (5753..5754)\n NUMBER: (5753..5754) \"3\"\n ATMOSPHERE: (5754..5755) \" \"\n CONSTANT: (5755..5756)\n NUMBER: (5755..5756) \"0\"\n CLOSE_PAREN: (5756..5757) \")\"\n CLOSE_PAREN: (5757..5758) \")\"\n CLOSE_PAREN: (5758..5759) \")\"\n ATMOSPHERE: (5759..5761) \"\n\n\"\n FORM: (5761..5799)\n OPEN_PAREN: (5761..5762) \"(\"\n SYMBOL: (5762..5766)\n IDENTIFIER: (5762..5766) \"test\"\n ATMOSPHERE: (5766..5767) \" \"\n CONSTANT: (5767..5768)\n NUMBER: (5767..5768) \"6\"\n ATMOSPHERE: (5768..5769) \" \"\n FORM: (5769..5798)\n OPEN_PAREN: (5769..5770) \"(\"\n SYMBOL: (5770..5773)\n IDENTIFIER: (5770..5773) \"let\"\n ATMOSPHERE: (5773..5774) \" \"\n FORM: (5774..5787)\n OPEN_PAREN: (5774..5775) \"(\"\n FORM: (5775..5780)\n OPEN_PAREN: (5775..5776) \"(\"\n SYMBOL: (5776..5777)\n IDENTIFIER: (5776..5777) \"x\"\n ATMOSPHERE: (5777..5778) \" \"\n CONSTANT: (5778..5779)\n NUMBER: (5778..5779) \"2\"\n CLOSE_PAREN: (5779..5780) \")\"\n ATMOSPHERE: (5780..5781) \" \"\n FORM: (5781..5786)\n OPEN_PAREN: (5781..5782) \"(\"\n SYMBOL: (5782..5783)\n IDENTIFIER: (5782..5783) \"y\"\n ATMOSPHERE: (5783..5784) \" \"\n CONSTANT: (5784..5785)\n NUMBER: (5784..5785) \"3\"\n CLOSE_PAREN: (5785..5786) \")\"\n CLOSE_PAREN: (5786..5787) \")\"\n ATMOSPHERE: (5787..5790) \"\n \"\n FORM: (5790..5797)\n OPEN_PAREN: (5790..5791) \"(\"\n SYMBOL: (5791..5792)\n IDENTIFIER: (5791..5792) \"*\"\n ATMOSPHERE: (5792..5793) \" \"\n SYMBOL: (5793..5794)\n IDENTIFIER: (5793..5794) \"x\"\n ATMOSPHERE: (5794..5795) \" \"\n SYMBOL: (5795..5796)\n IDENTIFIER: (5795..5796) \"y\"\n CLOSE_PAREN: (5796..5797) \")\"\n CLOSE_PAREN: (5797..5798) \")\"\n CLOSE_PAREN: (5798..5799) \")\"\n ATMOSPHERE: (5799..5801) \"\n\n\"\n FORM: (5801..5878)\n OPEN_PAREN: (5801..5802) \"(\"\n SYMBOL: (5802..5806)\n IDENTIFIER: (5802..5806) \"test\"\n ATMOSPHERE: (5806..5807) \" \"\n CONSTANT: (5807..5809)\n NUMBER: (5807..5809) \"35\"\n ATMOSPHERE: (5809..5810) \" \"\n FORM: (5810..5877)\n OPEN_PAREN: (5810..5811) \"(\"\n SYMBOL: (5811..5814)\n IDENTIFIER: (5811..5814) \"let\"\n ATMOSPHERE: (5814..5815) \" \"\n FORM: (5815..5828)\n OPEN_PAREN: (5815..5816) \"(\"\n FORM: (5816..5821)\n OPEN_PAREN: (5816..5817) \"(\"\n SYMBOL: (5817..5818)\n IDENTIFIER: (5817..5818) \"x\"\n ATMOSPHERE: (5818..5819) \" \"\n CONSTANT: (5819..5820)\n NUMBER: (5819..5820) \"2\"\n CLOSE_PAREN: (5820..5821) \")\"\n ATMOSPHERE: (5821..5822) \" \"\n FORM: (5822..5827)\n OPEN_PAREN: (5822..5823) \"(\"\n SYMBOL: (5823..5824)\n IDENTIFIER: (5823..5824) \"y\"\n ATMOSPHERE: (5824..5825) \" \"\n CONSTANT: (5825..5826)\n NUMBER: (5825..5826) \"3\"\n CLOSE_PAREN: (5826..5827) \")\"\n CLOSE_PAREN: (5827..5828) \")\"\n ATMOSPHERE: (5828..5831) \"\n \"\n FORM: (5831..5876)\n OPEN_PAREN: (5831..5832) \"(\"\n SYMBOL: (5832..5835)\n IDENTIFIER: (5832..5835) \"let\"\n ATMOSPHERE: (5835..5836) \" \"\n FORM: (5836..5863)\n OPEN_PAREN: (5836..5837) \"(\"\n FORM: (5837..5842)\n OPEN_PAREN: (5837..5838) \"(\"\n SYMBOL: (5838..5839)\n IDENTIFIER: (5838..5839) \"x\"\n ATMOSPHERE: (5839..5840) \" \"\n CONSTANT: (5840..5841)\n NUMBER: (5840..5841) \"7\"\n CLOSE_PAREN: (5841..5842) \")\"\n ATMOSPHERE: (5842..5851) \"\n \"\n FORM: (5851..5862)\n OPEN_PAREN: (5851..5852) \"(\"\n SYMBOL: (5852..5853)\n IDENTIFIER: (5852..5853) \"z\"\n ATMOSPHERE: (5853..5854) \" \"\n FORM: (5854..5861)\n OPEN_PAREN: (5854..5855) \"(\"\n SYMBOL: (5855..5856)\n IDENTIFIER: (5855..5856) \"+\"\n ATMOSPHERE: (5856..5857) \" \"\n SYMBOL: (5857..5858)\n IDENTIFIER: (5857..5858) \"x\"\n ATMOSPHERE: (5858..5859) \" \"\n SYMBOL: (5859..5860)\n IDENTIFIER: (5859..5860) \"y\"\n CLOSE_PAREN: (5860..5861) \")\"\n CLOSE_PAREN: (5861..5862) \")\"\n CLOSE_PAREN: (5862..5863) \")\"\n ATMOSPHERE: (5863..5868) \"\n \"\n FORM: (5868..5875)\n OPEN_PAREN: (5868..5869) \"(\"\n SYMBOL: (5869..5870)\n IDENTIFIER: (5869..5870) \"*\"\n ATMOSPHERE: (5870..5871) \" \"\n SYMBOL: (5871..5872)\n IDENTIFIER: (5871..5872) \"z\"\n ATMOSPHERE: (5872..5873) \" \"\n SYMBOL: (5873..5874)\n IDENTIFIER: (5873..5874) \"x\"\n CLOSE_PAREN: (5874..5875) \")\"\n CLOSE_PAREN: (5875..5876) \")\"\n CLOSE_PAREN: (5876..5877) \")\"\n CLOSE_PAREN: (5877..5878) \")\"\n ATMOSPHERE: (5878..5880) \"\n\n\"\n FORM: (5880..5959)\n OPEN_PAREN: (5880..5881) \"(\"\n SYMBOL: (5881..5885)\n IDENTIFIER: (5881..5885) \"test\"\n ATMOSPHERE: (5885..5886) \" \"\n CONSTANT: (5886..5888)\n NUMBER: (5886..5888) \"70\"\n ATMOSPHERE: (5888..5889) \" \"\n FORM: (5889..5958)\n OPEN_PAREN: (5889..5890) \"(\"\n SYMBOL: (5890..5893)\n IDENTIFIER: (5890..5893) \"let\"\n ATMOSPHERE: (5893..5894) \" \"\n FORM: (5894..5907)\n OPEN_PAREN: (5894..5895) \"(\"\n FORM: (5895..5900)\n OPEN_PAREN: (5895..5896) \"(\"\n SYMBOL: (5896..5897)\n IDENTIFIER: (5896..5897) \"x\"\n ATMOSPHERE: (5897..5898) \" \"\n CONSTANT: (5898..5899)\n NUMBER: (5898..5899) \"2\"\n CLOSE_PAREN: (5899..5900) \")\"\n ATMOSPHERE: (5900..5901) \" \"\n FORM: (5901..5906)\n OPEN_PAREN: (5901..5902) \"(\"\n SYMBOL: (5902..5903)\n IDENTIFIER: (5902..5903) \"y\"\n ATMOSPHERE: (5903..5904) \" \"\n CONSTANT: (5904..5905)\n NUMBER: (5904..5905) \"3\"\n CLOSE_PAREN: (5905..5906) \")\"\n CLOSE_PAREN: (5906..5907) \")\"\n ATMOSPHERE: (5907..5910) \"\n \"\n FORM: (5910..5957)\n OPEN_PAREN: (5910..5911) \"(\"\n SYMBOL: (5911..5915)\n IDENTIFIER: (5911..5915) \"let*\"\n ATMOSPHERE: (5915..5916) \" \"\n FORM: (5916..5944)\n OPEN_PAREN: (5916..5917) \"(\"\n FORM: (5917..5922)\n OPEN_PAREN: (5917..5918) \"(\"\n SYMBOL: (5918..5919)\n IDENTIFIER: (5918..5919) \"x\"\n ATMOSPHERE: (5919..5920) \" \"\n CONSTANT: (5920..5921)\n NUMBER: (5920..5921) \"7\"\n CLOSE_PAREN: (5921..5922) \")\"\n ATMOSPHERE: (5922..5932) \"\n \"\n FORM: (5932..5943)\n OPEN_PAREN: (5932..5933) \"(\"\n SYMBOL: (5933..5934)\n IDENTIFIER: (5933..5934) \"z\"\n ATMOSPHERE: (5934..5935) \" \"\n FORM: (5935..5942)\n OPEN_PAREN: (5935..5936) \"(\"\n SYMBOL: (5936..5937)\n IDENTIFIER: (5936..5937) \"+\"\n ATMOSPHERE: (5937..5938) \" \"\n SYMBOL: (5938..5939)\n IDENTIFIER: (5938..5939) \"x\"\n ATMOSPHERE: (5939..5940) \" \"\n SYMBOL: (5940..5941)\n IDENTIFIER: (5940..5941) \"y\"\n CLOSE_PAREN: (5941..5942) \")\"\n CLOSE_PAREN: (5942..5943) \")\"\n CLOSE_PAREN: (5943..5944) \")\"\n ATMOSPHERE: (5944..5949) \"\n \"\n FORM: (5949..5956)\n OPEN_PAREN: (5949..5950) \"(\"\n SYMBOL: (5950..5951)\n IDENTIFIER: (5950..5951) \"*\"\n ATMOSPHERE: (5951..5952) \" \"\n SYMBOL: (5952..5953)\n IDENTIFIER: (5952..5953) \"z\"\n ATMOSPHERE: (5953..5954) \" \"\n SYMBOL: (5954..5955)\n IDENTIFIER: (5954..5955) \"x\"\n CLOSE_PAREN: (5955..5956) \")\"\n CLOSE_PAREN: (5956..5957) \")\"\n CLOSE_PAREN: (5957..5958) \")\"\n CLOSE_PAREN: (5958..5959) \")\"\n ATMOSPHERE: (5959..5961) \"\n\n\"\n FORM: (5961..6263)\n OPEN_PAREN: (5961..5962) \"(\"\n SYMBOL: (5962..5966)\n IDENTIFIER: (5962..5966) \"test\"\n ATMOSPHERE: (5966..5967) \" \"\n CONSTANT: (5967..5969)\n BOOLEAN: (5967..5969) \"#t\"\n ATMOSPHERE: (5969..5974) \"\n \"\n FORM: (5974..6262)\n OPEN_PAREN: (5974..5975) \"(\"\n SYMBOL: (5975..5981)\n IDENTIFIER: (5975..5981) \"letrec\"\n ATMOSPHERE: (5981..5982) \" \"\n FORM: (5982..6244)\n OPEN_PAREN: (5982..5983) \"(\"\n FORM: (5983..6106)\n OPEN_PAREN: (5983..5984) \"(\"\n SYMBOL: (5984..5989)\n IDENTIFIER: (5984..5989) \"even?\"\n ATMOSPHERE: (5989..6004) \"\n \"\n FORM: (6004..6105)\n OPEN_PAREN: (6004..6005) \"(\"\n SYMBOL: (6005..6011)\n IDENTIFIER: (6005..6011) \"lambda\"\n ATMOSPHERE: (6011..6012) \" \"\n FORM: (6012..6015)\n OPEN_PAREN: (6012..6013) \"(\"\n SYMBOL: (6013..6014)\n IDENTIFIER: (6013..6014) \"n\"\n CLOSE_PAREN: (6014..6015) \")\"\n ATMOSPHERE: (6015..6032) \"\n \"\n FORM: (6032..6104)\n OPEN_PAREN: (6032..6033) \"(\"\n SYMBOL: (6033..6035)\n IDENTIFIER: (6033..6035) \"if\"\n ATMOSPHERE: (6035..6036) \" \"\n FORM: (6036..6045)\n OPEN_PAREN: (6036..6037) \"(\"\n SYMBOL: (6037..6042)\n IDENTIFIER: (6037..6042) \"zero?\"\n ATMOSPHERE: (6042..6043) \" \"\n SYMBOL: (6043..6044)\n IDENTIFIER: (6043..6044) \"n\"\n CLOSE_PAREN: (6044..6045) \")\"\n ATMOSPHERE: (6045..6066) \"\n \"\n CONSTANT: (6066..6068)\n BOOLEAN: (6066..6068) \"#t\"\n ATMOSPHERE: (6068..6089) \"\n \"\n FORM: (6089..6103)\n OPEN_PAREN: (6089..6090) \"(\"\n SYMBOL: (6090..6094)\n IDENTIFIER: (6090..6094) \"odd?\"\n ATMOSPHERE: (6094..6095) \" \"\n FORM: (6095..6102)\n OPEN_PAREN: (6095..6096) \"(\"\n SYMBOL: (6096..6097)\n IDENTIFIER: (6096..6097) \"-\"\n ATMOSPHERE: (6097..6098) \" \"\n SYMBOL: (6098..6099)\n IDENTIFIER: (6098..6099) \"n\"\n ATMOSPHERE: (6099..6100) \" \"\n CONSTANT: (6100..6101)\n NUMBER: (6100..6101) \"1\"\n CLOSE_PAREN: (6101..6102) \")\"\n CLOSE_PAREN: (6102..6103) \")\"\n CLOSE_PAREN: (6103..6104) \")\"\n CLOSE_PAREN: (6104..6105) \")\"\n CLOSE_PAREN: (6105..6106) \")\"\n ATMOSPHERE: (6106..6120) \"\n \"\n FORM: (6120..6243)\n OPEN_PAREN: (6120..6121) \"(\"\n SYMBOL: (6121..6125)\n IDENTIFIER: (6121..6125) \"odd?\"\n ATMOSPHERE: (6125..6140) \"\n \"\n FORM: (6140..6242)\n OPEN_PAREN: (6140..6141) \"(\"\n SYMBOL: (6141..6147)\n IDENTIFIER: (6141..6147) \"lambda\"\n ATMOSPHERE: (6147..6148) \" \"\n FORM: (6148..6151)\n OPEN_PAREN: (6148..6149) \"(\"\n SYMBOL: (6149..6150)\n IDENTIFIER: (6149..6150) \"n\"\n CLOSE_PAREN: (6150..6151) \")\"\n ATMOSPHERE: (6151..6168) \"\n \"\n FORM: (6168..6241)\n OPEN_PAREN: (6168..6169) \"(\"\n SYMBOL: (6169..6171)\n IDENTIFIER: (6169..6171) \"if\"\n ATMOSPHERE: (6171..6172) \" \"\n FORM: (6172..6181)\n OPEN_PAREN: (6172..6173) \"(\"\n SYMBOL: (6173..6178)\n IDENTIFIER: (6173..6178) \"zero?\"\n ATMOSPHERE: (6178..6179) \" \"\n SYMBOL: (6179..6180)\n IDENTIFIER: (6179..6180) \"n\"\n CLOSE_PAREN: (6180..6181) \")\"\n ATMOSPHERE: (6181..6202) \"\n \"\n CONSTANT: (6202..6204)\n BOOLEAN: (6202..6204) \"#f\"\n ATMOSPHERE: (6204..6225) \"\n \"\n FORM: (6225..6240)\n OPEN_PAREN: (6225..6226) \"(\"\n SYMBOL: (6226..6231)\n IDENTIFIER: (6226..6231) \"even?\"\n ATMOSPHERE: (6231..6232) \" \"\n FORM: (6232..6239)\n OPEN_PAREN: (6232..6233) \"(\"\n SYMBOL: (6233..6234)\n IDENTIFIER: (6233..6234) \"-\"\n ATMOSPHERE: (6234..6235) \" \"\n SYMBOL: (6235..6236)\n IDENTIFIER: (6235..6236) \"n\"\n ATMOSPHERE: (6236..6237) \" \"\n CONSTANT: (6237..6238)\n NUMBER: (6237..6238) \"1\"\n CLOSE_PAREN: (6238..6239) \")\"\n CLOSE_PAREN: (6239..6240) \")\"\n CLOSE_PAREN: (6240..6241) \")\"\n CLOSE_PAREN: (6241..6242) \")\"\n CLOSE_PAREN: (6242..6243) \")\"\n CLOSE_PAREN: (6243..6244) \")\"\n ATMOSPHERE: (6244..6251) \"\n \"\n FORM: (6251..6261)\n OPEN_PAREN: (6251..6252) \"(\"\n SYMBOL: (6252..6257)\n IDENTIFIER: (6252..6257) \"even?\"\n ATMOSPHERE: (6257..6258) \" \"\n CONSTANT: (6258..6260)\n NUMBER: (6258..6260) \"88\"\n CLOSE_PAREN: (6260..6261) \")\"\n CLOSE_PAREN: (6261..6262) \")\"\n CLOSE_PAREN: (6262..6263) \")\"\n ATMOSPHERE: (6263..6265) \"\n\n\"\n FORM: (6265..6555)\n OPEN_PAREN: (6265..6266) \"(\"\n SYMBOL: (6266..6270)\n IDENTIFIER: (6266..6270) \"test\"\n ATMOSPHERE: (6270..6271) \" \"\n CONSTANT: (6271..6272)\n NUMBER: (6271..6272) \"5\"\n ATMOSPHERE: (6272..6277) \"\n \"\n FORM: (6277..6554)\n OPEN_PAREN: (6277..6278) \"(\"\n SYMBOL: (6278..6285)\n IDENTIFIER: (6278..6285) \"letrec*\"\n ATMOSPHERE: (6285..6286) \" \"\n FORM: (6286..6538)\n OPEN_PAREN: (6286..6287) \"(\"\n FORM: (6287..6353)\n OPEN_PAREN: (6287..6288) \"(\"\n SYMBOL: (6288..6289)\n IDENTIFIER: (6288..6289) \"p\"\n ATMOSPHERE: (6289..6305) \"\n \"\n FORM: (6305..6352)\n OPEN_PAREN: (6305..6306) \"(\"\n SYMBOL: (6306..6312)\n IDENTIFIER: (6306..6312) \"lambda\"\n ATMOSPHERE: (6312..6313) \" \"\n FORM: (6313..6316)\n OPEN_PAREN: (6313..6314) \"(\"\n SYMBOL: (6314..6315)\n IDENTIFIER: (6314..6315) \"x\"\n CLOSE_PAREN: (6315..6316) \")\"\n ATMOSPHERE: (6316..6334) \"\n \"\n FORM: (6334..6351)\n OPEN_PAREN: (6334..6335) \"(\"\n SYMBOL: (6335..6336)\n IDENTIFIER: (6335..6336) \"+\"\n ATMOSPHERE: (6336..6337) \" \"\n CONSTANT: (6337..6338)\n NUMBER: (6337..6338) \"1\"\n ATMOSPHERE: (6338..6339) \" \"\n FORM: (6339..6350)\n OPEN_PAREN: (6339..6340) \"(\"\n SYMBOL: (6340..6341)\n IDENTIFIER: (6340..6341) \"q\"\n ATMOSPHERE: (6341..6342) \" \"\n FORM: (6342..6349)\n OPEN_PAREN: (6342..6343) \"(\"\n SYMBOL: (6343..6344)\n IDENTIFIER: (6343..6344) \"-\"\n ATMOSPHERE: (6344..6345) \" \"\n SYMBOL: (6345..6346)\n IDENTIFIER: (6345..6346) \"x\"\n ATMOSPHERE: (6346..6347) \" \"\n CONSTANT: (6347..6348)\n NUMBER: (6347..6348) \"1\"\n CLOSE_PAREN: (6348..6349) \")\"\n CLOSE_PAREN: (6349..6350) \")\"\n CLOSE_PAREN: (6350..6351) \")\"\n CLOSE_PAREN: (6351..6352) \")\"\n CLOSE_PAREN: (6352..6353) \")\"\n ATMOSPHERE: (6353..6368) \"\n \"\n FORM: (6368..6493)\n OPEN_PAREN: (6368..6369) \"(\"\n SYMBOL: (6369..6370)\n IDENTIFIER: (6369..6370) \"q\"\n ATMOSPHERE: (6370..6386) \"\n \"\n FORM: (6386..6492)\n OPEN_PAREN: (6386..6387) \"(\"\n SYMBOL: (6387..6393)\n IDENTIFIER: (6387..6393) \"lambda\"\n ATMOSPHERE: (6393..6394) \" \"\n FORM: (6394..6397)\n OPEN_PAREN: (6394..6395) \"(\"\n SYMBOL: (6395..6396)\n IDENTIFIER: (6395..6396) \"y\"\n CLOSE_PAREN: (6396..6397) \")\"\n ATMOSPHERE: (6397..6415) \"\n \"\n FORM: (6415..6491)\n OPEN_PAREN: (6415..6416) \"(\"\n SYMBOL: (6416..6418)\n IDENTIFIER: (6416..6418) \"if\"\n ATMOSPHERE: (6418..6419) \" \"\n FORM: (6419..6428)\n OPEN_PAREN: (6419..6420) \"(\"\n SYMBOL: (6420..6425)\n IDENTIFIER: (6420..6425) \"zero?\"\n ATMOSPHERE: (6425..6426) \" \"\n SYMBOL: (6426..6427)\n IDENTIFIER: (6426..6427) \"y\"\n CLOSE_PAREN: (6427..6428) \")\"\n ATMOSPHERE: (6428..6450) \"\n \"\n CONSTANT: (6450..6451)\n NUMBER: (6450..6451) \"0\"\n ATMOSPHERE: (6451..6473) \"\n \"\n FORM: (6473..6490)\n OPEN_PAREN: (6473..6474) \"(\"\n SYMBOL: (6474..6475)\n IDENTIFIER: (6474..6475) \"+\"\n ATMOSPHERE: (6475..6476) \" \"\n CONSTANT: (6476..6477)\n NUMBER: (6476..6477) \"1\"\n ATMOSPHERE: (6477..6478) \" \"\n FORM: (6478..6489)\n OPEN_PAREN: (6478..6479) \"(\"\n SYMBOL: (6479..6480)\n IDENTIFIER: (6479..6480) \"p\"\n ATMOSPHERE: (6480..6481) \" \"\n FORM: (6481..6488)\n OPEN_PAREN: (6481..6482) \"(\"\n SYMBOL: (6482..6483)\n IDENTIFIER: (6482..6483) \"-\"\n ATMOSPHERE: (6483..6484) \" \"\n SYMBOL: (6484..6485)\n IDENTIFIER: (6484..6485) \"y\"\n ATMOSPHERE: (6485..6486) \" \"\n CONSTANT: (6486..6487)\n NUMBER: (6486..6487) \"1\"\n CLOSE_PAREN: (6487..6488) \")\"\n CLOSE_PAREN: (6488..6489) \")\"\n CLOSE_PAREN: (6489..6490) \")\"\n CLOSE_PAREN: (6490..6491) \")\"\n CLOSE_PAREN: (6491..6492) \")\"\n CLOSE_PAREN: (6492..6493) \")\"\n ATMOSPHERE: (6493..6508) \"\n \"\n FORM: (6508..6517)\n OPEN_PAREN: (6508..6509) \"(\"\n SYMBOL: (6509..6510)\n IDENTIFIER: (6509..6510) \"x\"\n ATMOSPHERE: (6510..6511) \" \"\n FORM: (6511..6516)\n OPEN_PAREN: (6511..6512) \"(\"\n SYMBOL: (6512..6513)\n IDENTIFIER: (6512..6513) \"p\"\n ATMOSPHERE: (6513..6514) \" \"\n CONSTANT: (6514..6515)\n NUMBER: (6514..6515) \"5\"\n CLOSE_PAREN: (6515..6516) \")\"\n CLOSE_PAREN: (6516..6517) \")\"\n ATMOSPHERE: (6517..6532) \"\n \"\n FORM: (6532..6537)\n OPEN_PAREN: (6532..6533) \"(\"\n SYMBOL: (6533..6534)\n IDENTIFIER: (6533..6534) \"y\"\n ATMOSPHERE: (6534..6535) \" \"\n SYMBOL: (6535..6536)\n IDENTIFIER: (6535..6536) \"x\"\n CLOSE_PAREN: (6536..6537) \")\"\n CLOSE_PAREN: (6537..6538) \")\"\n ATMOSPHERE: (6538..6552) \"\n \"\n SYMBOL: (6552..6553)\n IDENTIFIER: (6552..6553) \"y\"\n CLOSE_PAREN: (6553..6554) \")\"\n CLOSE_PAREN: (6554..6555) \")\"\n ATMOSPHERE: (6555..6558) \"\n\n\n\"\n ATMOSPHERE: (6558..6590) \";;; FIXME: `let*values` support.\"\n ATMOSPHERE: (6590..6591) \"\n\"\n ATMOSPHERE: (6591..6645) \";; ;; By Jussi Piitulainen \"\n ATMOSPHERE: (6645..6646) \"\n\"\n ATMOSPHERE: (6646..6692) \";; ;; and John Cowan :\"\n ATMOSPHERE: (6692..6693) \"\n\"\n ATMOSPHERE: (6693..6781) \";; ;; http://lists.scheme-reports.org/pipermail/scheme-reports/2013-December/003876.html\"\n ATMOSPHERE: (6781..6782) \"\n\"\n ATMOSPHERE: (6782..6804) \";; (define (means ton)\"\n ATMOSPHERE: (6804..6805) \"\n\"\n ATMOSPHERE: (6805..6818) \";; (letrec*\"\n ATMOSPHERE: (6818..6819) \"\n\"\n ATMOSPHERE: (6819..6833) \";; ((mean\"\n ATMOSPHERE: (6833..6834) \"\n\"\n ATMOSPHERE: (6834..6858) \";; (lambda (f g)\"\n ATMOSPHERE: (6858..6859) \"\n\"\n ATMOSPHERE: (6859..6895) \";; (f (/ (sum g ton) n))))\"\n ATMOSPHERE: (6895..6896) \"\n\"\n ATMOSPHERE: (6896..6909) \";; (sum\"\n ATMOSPHERE: (6909..6910) \"\n\"\n ATMOSPHERE: (6910..6936) \";; (lambda (g ton)\"\n ATMOSPHERE: (6936..6937) \"\n\"\n ATMOSPHERE: (6937..6965) \";; (if (null? ton)\"\n ATMOSPHERE: (6965..6966) \"\n\"\n ATMOSPHERE: (6966..6984) \";; (+)\"\n ATMOSPHERE: (6984..6985) \"\n\"\n ATMOSPHERE: (6985..7017) \";; (if (number? ton)\"\n ATMOSPHERE: (7017..7018) \"\n\"\n ATMOSPHERE: (7018..7044) \";; (g ton)\"\n ATMOSPHERE: (7044..7045) \"\n\"\n ATMOSPHERE: (7045..7084) \";; (+ (sum g (car ton))\"\n ATMOSPHERE: (7084..7085) \"\n\"\n ATMOSPHERE: (7085..7129) \";; (sum g (cdr ton)))))))\"\n ATMOSPHERE: (7129..7130) \"\n\"\n ATMOSPHERE: (7130..7168) \";; (n (sum (lambda (x) 1) ton)))\"\n ATMOSPHERE: (7168..7169) \"\n\"\n ATMOSPHERE: (7169..7204) \";; (values (mean values values)\"\n ATMOSPHERE: (7204..7205) \"\n\"\n ATMOSPHERE: (7205..7234) \";; (mean exp log)\"\n ATMOSPHERE: (7234..7235) \"\n\"\n ATMOSPHERE: (7235..7263) \";; (mean / /))))\"\n ATMOSPHERE: (7263..7264) \"\n\"\n ATMOSPHERE: (7264..7314) \";; (let*-values (((a b c) (means '(8 5 99 1 22))))\"\n ATMOSPHERE: (7314..7315) \"\n\"\n ATMOSPHERE: (7315..7331) \";; (test 27 a)\"\n ATMOSPHERE: (7331..7332) \"\n\"\n ATMOSPHERE: (7332..7351) \";; (test 9.728 b)\"\n ATMOSPHERE: (7351..7352) \"\n\"\n ATMOSPHERE: (7352..7375) \";; (test 1800/497 c))\"\n ATMOSPHERE: (7375..7377) \"\n\n\"\n ATMOSPHERE: (7377..7431) \";; (let*-values (((root rem) (exact-integer-sqrt 32)))\"\n ATMOSPHERE: (7431..7432) \"\n\"\n ATMOSPHERE: (7432..7460) \";; (test 35 (* root rem)))\"\n ATMOSPHERE: (7460..7462) \"\n\n\"\n ATMOSPHERE: (7462..7486) \";; (test '(1073741824 0)\"\n ATMOSPHERE: (7486..7487) \"\n\"\n ATMOSPHERE: (7487..7554) \";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 60))))\"\n ATMOSPHERE: (7554..7555) \"\n\"\n ATMOSPHERE: (7555..7581) \";; (list root rem)))\"\n ATMOSPHERE: (7581..7583) \"\n\n\"\n ATMOSPHERE: (7583..7616) \";; (test '(1518500249 3000631951)\"\n ATMOSPHERE: (7616..7617) \"\n\"\n ATMOSPHERE: (7617..7684) \";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 61))))\"\n ATMOSPHERE: (7684..7685) \"\n\"\n ATMOSPHERE: (7685..7711) \";; (list root rem)))\"\n ATMOSPHERE: (7711..7713) \"\n\n\"\n ATMOSPHERE: (7713..7762) \";; (test '(815238614083298888 443242361398135744)\"\n ATMOSPHERE: (7762..7763) \"\n\"\n ATMOSPHERE: (7763..7831) \";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 119))))\"\n ATMOSPHERE: (7831..7832) \"\n\"\n ATMOSPHERE: (7832..7858) \";; (list root rem)))\"\n ATMOSPHERE: (7858..7860) \"\n\n\"\n ATMOSPHERE: (7860..7893) \";; (test '(1152921504606846976 0)\"\n ATMOSPHERE: (7893..7894) \"\n\"\n ATMOSPHERE: (7894..7962) \";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 120))))\"\n ATMOSPHERE: (7962..7963) \"\n\"\n ATMOSPHERE: (7963..7989) \";; (list root rem)))\"\n ATMOSPHERE: (7989..7991) \"\n\n\"\n ATMOSPHERE: (7991..8042) \";; (test '(1630477228166597776 1772969445592542976)\"\n ATMOSPHERE: (8042..8043) \"\n\"\n ATMOSPHERE: (8043..8111) \";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 121))))\"\n ATMOSPHERE: (8111..8112) \"\n\"\n ATMOSPHERE: (8112..8138) \";; (list root rem)))\"\n ATMOSPHERE: (8138..8140) \"\n\n\"\n ATMOSPHERE: (8140..8193) \";; (test '(31622776601683793319 62545769258890964239)\"\n ATMOSPHERE: (8193..8194) \"\n\"\n ATMOSPHERE: (8194..8262) \";; (let*-values (((root rem) (exact-integer-sqrt (expt 10 39))))\"\n ATMOSPHERE: (8262..8263) \"\n\"\n ATMOSPHERE: (8263..8289) \";; (list root rem)))\"\n ATMOSPHERE: (8289..8291) \"\n\n\"\n ATMOSPHERE: (8291..8355) \";; (let*-values (((root rem) (exact-integer-sqrt (expt 2 140))))\"\n ATMOSPHERE: (8355..8356) \"\n\"\n ATMOSPHERE: (8356..8373) \";; (test 0 rem)\"\n ATMOSPHERE: (8373..8374) \"\n\"\n ATMOSPHERE: (8374..8413) \";; (test (expt 2 140) (square root)))\"\n ATMOSPHERE: (8413..8415) \"\n\n\"\n ATMOSPHERE: (8415..8469) \";; (test '(x y x y) (let ((a 'a) (b 'b) (x 'x) (y 'y))\"\n ATMOSPHERE: (8469..8470) \"\n\"\n ATMOSPHERE: (8470..8509) \";; (let*-values (((a b) (values x y))\"\n ATMOSPHERE: (8509..8510) \"\n\"\n ATMOSPHERE: (8510..8550) \";; ((x y) (values a b)))\"\n ATMOSPHERE: (8550..8551) \"\n\"\n ATMOSPHERE: (8551..8575) \";; (list a b x y))))\"\n ATMOSPHERE: (8575..8577) \"\n\n\"\n ATMOSPHERE: (8577..8610) \";; (test 'ok (let-values () 'ok))\"\n ATMOSPHERE: (8610..8612) \"\n\n\"\n ATMOSPHERE: (8612..8635) \";; (test 1 (let ((x 1))\"\n ATMOSPHERE: (8635..8636) \"\n\"\n ATMOSPHERE: (8636..8657) \";; \t (let*-values ()\"\n ATMOSPHERE: (8657..8658) \"\n\"\n ATMOSPHERE: (8658..8678) \";; \t (define x 2)\"\n ATMOSPHERE: (8678..8679) \"\n\"\n ATMOSPHERE: (8679..8690) \";; \t #f)\"\n ATMOSPHERE: (8690..8691) \"\n\"\n ATMOSPHERE: (8691..8700) \";; \t x))\"\n ATMOSPHERE: (8700..8702) \"\n\n\"\n FORM: (8702..8757)\n OPEN_PAREN: (8702..8703) \"(\"\n SYMBOL: (8703..8706)\n IDENTIFIER: (8703..8706) \"let\"\n ATMOSPHERE: (8706..8707) \" \"\n FORM: (8707..8709)\n OPEN_PAREN: (8707..8708) \"(\"\n CLOSE_PAREN: (8708..8709) \")\"\n ATMOSPHERE: (8709..8712) \"\n \"\n FORM: (8712..8724)\n OPEN_PAREN: (8712..8713) \"(\"\n SYMBOL: (8713..8719)\n IDENTIFIER: (8713..8719) \"define\"\n ATMOSPHERE: (8719..8720) \" \"\n SYMBOL: (8720..8721)\n IDENTIFIER: (8720..8721) \"x\"\n ATMOSPHERE: (8721..8722) \" \"\n CONSTANT: (8722..8723)\n NUMBER: (8722..8723) \"0\"\n CLOSE_PAREN: (8723..8724) \")\"\n ATMOSPHERE: (8724..8727) \"\n \"\n FORM: (8727..8737)\n OPEN_PAREN: (8727..8728) \"(\"\n SYMBOL: (8728..8732)\n IDENTIFIER: (8728..8732) \"set!\"\n ATMOSPHERE: (8732..8733) \" \"\n SYMBOL: (8733..8734)\n IDENTIFIER: (8733..8734) \"x\"\n ATMOSPHERE: (8734..8735) \" \"\n CONSTANT: (8735..8736)\n NUMBER: (8735..8736) \"5\"\n CLOSE_PAREN: (8736..8737) \")\"\n ATMOSPHERE: (8737..8740) \"\n \"\n FORM: (8740..8756)\n OPEN_PAREN: (8740..8741) \"(\"\n SYMBOL: (8741..8745)\n IDENTIFIER: (8741..8745) \"test\"\n ATMOSPHERE: (8745..8746) \" \"\n CONSTANT: (8746..8747)\n NUMBER: (8746..8747) \"6\"\n ATMOSPHERE: (8747..8748) \" \"\n FORM: (8748..8755)\n OPEN_PAREN: (8748..8749) \"(\"\n SYMBOL: (8749..8750)\n IDENTIFIER: (8749..8750) \"+\"\n ATMOSPHERE: (8750..8751) \" \"\n SYMBOL: (8751..8752)\n IDENTIFIER: (8751..8752) \"x\"\n ATMOSPHERE: (8752..8753) \" \"\n CONSTANT: (8753..8754)\n NUMBER: (8753..8754) \"1\"\n CLOSE_PAREN: (8754..8755) \")\"\n CLOSE_PAREN: (8755..8756) \")\"\n CLOSE_PAREN: (8756..8757) \")\"\n ATMOSPHERE: (8757..8759) \"\n\n\"\n ATMOSPHERE: (8759..8782) \";;; FIXME: `do` support\"\n ATMOSPHERE: (8782..8783) \"\n\"\n ATMOSPHERE: (8783..8831) \";; (test #(0 1 2 3 4) (do ((vec (make-vector 5))\"\n ATMOSPHERE: (8831..8832) \"\n\"\n ATMOSPHERE: (8832..8854) \";; (i 0 (+ i 1)))\"\n ATMOSPHERE: (8854..8855) \"\n\"\n ATMOSPHERE: (8855..8875) \";; ((= i 5) vec)\"\n ATMOSPHERE: (8875..8876) \"\n\"\n ATMOSPHERE: (8876..8904) \";; (vector-set! vec i i)))\"\n ATMOSPHERE: (8904..8906) \"\n\n\"\n ATMOSPHERE: (8906..8941) \";; (test 25 (let ((x '(1 3 5 7 9)))\"\n ATMOSPHERE: (8941..8942) \"\n\"\n ATMOSPHERE: (8942..8965) \";; (do ((x x (cdr x))\"\n ATMOSPHERE: (8965..8966) \"\n\"\n ATMOSPHERE: (8966..9000) \";; (sum 0 (+ sum (car x))))\"\n ATMOSPHERE: (9000..9001) \"\n\"\n ATMOSPHERE: (9001..9028) \";; ((null? x) sum))))\"\n ATMOSPHERE: (9028..9030) \"\n\n\"\n ATMOSPHERE: (9030..9048) \";;; FIXME: looping\"\n ATMOSPHERE: (9048..9049) \"\n\"\n ATMOSPHERE: (9049..9076) \";; (test '((6 1 3) (-5 -2))\"\n ATMOSPHERE: (9076..9077) \"\n\"\n ATMOSPHERE: (9077..9119) \";; (let loop ((numbers '(3 -2 1 6 -5))\"\n ATMOSPHERE: (9119..9120) \"\n\"\n ATMOSPHERE: (9120..9150) \";; (nonneg '())\"\n ATMOSPHERE: (9150..9151) \"\n\"\n ATMOSPHERE: (9151..9179) \";; (neg '()))\"\n ATMOSPHERE: (9179..9180) \"\n\"\n ATMOSPHERE: (9180..9230) \";; (cond ((null? numbers) (list nonneg neg))\"\n ATMOSPHERE: (9230..9231) \"\n\"\n ATMOSPHERE: (9231..9267) \";; ((>= (car numbers) 0)\"\n ATMOSPHERE: (9267..9268) \"\n\"\n ATMOSPHERE: (9268..9303) \";; (loop (cdr numbers)\"\n ATMOSPHERE: (9303..9304) \"\n\"\n ATMOSPHERE: (9304..9353) \";; (cons (car numbers) nonneg)\"\n ATMOSPHERE: (9353..9354) \"\n\"\n ATMOSPHERE: (9354..9381) \";; neg))\"\n ATMOSPHERE: (9381..9382) \"\n\"\n ATMOSPHERE: (9382..9417) \";; ((< (car numbers) 0)\"\n ATMOSPHERE: (9417..9418) \"\n\"\n ATMOSPHERE: (9418..9453) \";; (loop (cdr numbers)\"\n ATMOSPHERE: (9453..9454) \"\n\"\n ATMOSPHERE: (9454..9482) \";; nonneg\"\n ATMOSPHERE: (9482..9483) \"\n\"\n ATMOSPHERE: (9483..9534) \";; (cons (car numbers) neg))))))\"\n ATMOSPHERE: (9534..9536) \"\n\n\"\n ATMOSPHERE: (9536..9571) \";; (test 3 (force (delay (+ 1 2))))\"\n ATMOSPHERE: (9571..9573) \"\n\n\"\n ATMOSPHERE: (9573..9590) \";; (test '(3 3) \"\n ATMOSPHERE: (9590..9591) \"\n\"\n ATMOSPHERE: (9591..9624) \";; (let ((p (delay (+ 1 2))))\"\n ATMOSPHERE: (9624..9625) \"\n\"\n ATMOSPHERE: (9625..9662) \";; (list (force p) (force p))))\"\n ATMOSPHERE: (9662..9664) \"\n\n\"\n ATMOSPHERE: (9664..9683) \";; (define integers\"\n ATMOSPHERE: (9683..9684) \"\n\"\n ATMOSPHERE: (9684..9703) \";; (letrec ((next\"\n ATMOSPHERE: (9703..9704) \"\n\"\n ATMOSPHERE: (9704..9730) \";; (lambda (n)\"\n ATMOSPHERE: (9730..9731) \"\n\"\n ATMOSPHERE: (9731..9782) \";; (delay (cons n (next (+ n 1)))))))\"\n ATMOSPHERE: (9782..9783) \"\n\"\n ATMOSPHERE: (9783..9800) \";; (next 0)))\"\n ATMOSPHERE: (9800..9801) \"\n\"\n ATMOSPHERE: (9801..9816) \";; (define head\"\n ATMOSPHERE: (9816..9817) \"\n\"\n ATMOSPHERE: (9817..9861) \";; (lambda (stream) (car (force stream))))\"\n ATMOSPHERE: (9861..9862) \"\n\"\n ATMOSPHERE: (9862..9877) \";; (define tail\"\n ATMOSPHERE: (9877..9878) \"\n\"\n ATMOSPHERE: (9878..9922) \";; (lambda (stream) (cdr (force stream))))\"\n ATMOSPHERE: (9922..9924) \"\n\n\"\n ATMOSPHERE: (9924..9965) \";; (test 2 (head (tail (tail integers))))\"\n ATMOSPHERE: (9965..9967) \"\n\n\"\n ATMOSPHERE: (9967..9998) \";; (define (stream-filter p? s)\"\n ATMOSPHERE: (9998..9999) \"\n\"\n ATMOSPHERE: (9999..10016) \";; (delay-force\"\n ATMOSPHERE: (10016..10017) \"\n\"\n ATMOSPHERE: (10017..10045) \";; (if (null? (force s)) \"\n ATMOSPHERE: (10045..10046) \"\n\"\n ATMOSPHERE: (10046..10067) \";; (delay '())\"\n ATMOSPHERE: (10067..10068) \"\n\"\n ATMOSPHERE: (10068..10103) \";; (let ((h (car (force s)))\"\n ATMOSPHERE: (10103..10104) \"\n\"\n ATMOSPHERE: (10104..10140) \";; (t (cdr (force s))))\"\n ATMOSPHERE: (10140..10141) \"\n\"\n ATMOSPHERE: (10141..10163) \";; (if (p? h)\"\n ATMOSPHERE: (10163..10164) \"\n\"\n ATMOSPHERE: (10164..10217) \";; (delay (cons h (stream-filter p? t)))\"\n ATMOSPHERE: (10217..10218) \"\n\"\n ATMOSPHERE: (10218..10259) \";; (stream-filter p? t))))))\"\n ATMOSPHERE: (10259..10261) \"\n\n\"\n ATMOSPHERE: (10261..10323) \";; (test 5 (head (tail (tail (stream-filter odd? integers)))))\"\n ATMOSPHERE: (10323..10325) \"\n\n\"\n ATMOSPHERE: (10325..10335) \";; (let ()\"\n ATMOSPHERE: (10335..10336) \"\n\"\n ATMOSPHERE: (10336..10353) \";; (define x 5)\"\n ATMOSPHERE: (10353..10354) \"\n\"\n ATMOSPHERE: (10354..10375) \";; (define count 0)\"\n ATMOSPHERE: (10375..10376) \"\n\"\n ATMOSPHERE: (10376..10390) \";; (define p\"\n ATMOSPHERE: (10390..10391) \"\n\"\n ATMOSPHERE: (10391..10436) \";; (delay (begin (set! count (+ count 1))\"\n ATMOSPHERE: (10436..10437) \"\n\"\n ATMOSPHERE: (10437..10473) \";; (if (> count x)\"\n ATMOSPHERE: (10473..10474) \"\n\"\n ATMOSPHERE: (10474..10504) \";; count\"\n ATMOSPHERE: (10504..10505) \"\n\"\n ATMOSPHERE: (10505..10543) \";; (force p)))))\"\n ATMOSPHERE: (10543..10544) \"\n\"\n ATMOSPHERE: (10544..10567) \";; (test 6 (force p))\"\n ATMOSPHERE: (10567..10568) \"\n\"\n ATMOSPHERE: (10568..10612) \";; (test 6 (begin (set! x 10) (force p))))\"\n ATMOSPHERE: (10612..10614) \"\n\n\"\n ATMOSPHERE: (10614..10653) \";; (test #t (promise? (delay (+ 2 2))))\"\n ATMOSPHERE: (10653..10654) \"\n\"\n ATMOSPHERE: (10654..10700) \";; (test #t (promise? (make-promise (+ 2 2))))\"\n ATMOSPHERE: (10700..10701) \"\n\"\n ATMOSPHERE: (10701..10712) \";; (test #t\"\n ATMOSPHERE: (10712..10713) \"\n\"\n ATMOSPHERE: (10713..10746) \";; (let ((x (delay (+ 2 2))))\"\n ATMOSPHERE: (10746..10747) \"\n\"\n ATMOSPHERE: (10747..10765) \";; (force x)\"\n ATMOSPHERE: (10765..10766) \"\n\"\n ATMOSPHERE: (10766..10789) \";; (promise? x)))\"\n ATMOSPHERE: (10789..10790) \"\n\"\n ATMOSPHERE: (10790..10801) \";; (test #t\"\n ATMOSPHERE: (10801..10802) \"\n\"\n ATMOSPHERE: (10802..10842) \";; (let ((x (make-promise (+ 2 2))))\"\n ATMOSPHERE: (10842..10843) \"\n\"\n ATMOSPHERE: (10843..10861) \";; (force x)\"\n ATMOSPHERE: (10861..10862) \"\n\"\n ATMOSPHERE: (10862..10885) \";; (promise? x)))\"\n ATMOSPHERE: (10885..10886) \"\n\"\n ATMOSPHERE: (10886..10928) \";; (test 4 (force (make-promise (+ 2 2))))\"\n ATMOSPHERE: (10928..10929) \"\n\"\n ATMOSPHERE: (10929..10986) \";; (test 4 (force (make-promise (make-promise (+ 2 2)))))\"\n ATMOSPHERE: (10986..10988) \"\n\n\"\n ATMOSPHERE: (10988..11004) \";; (define radix\"\n ATMOSPHERE: (11004..11005) \"\n\"\n ATMOSPHERE: (11005..11025) \";; (make-parameter\"\n ATMOSPHERE: (11025..11026) \"\n\"\n ATMOSPHERE: (11026..11034) \";; 10\"\n ATMOSPHERE: (11034..11035) \"\n\"\n ATMOSPHERE: (11035..11052) \";; (lambda (x)\"\n ATMOSPHERE: (11052..11053) \"\n\"\n ATMOSPHERE: (11053..11095) \";; (if (and (integer? x) (<= 2 x 16))\"\n ATMOSPHERE: (11095..11096) \"\n\"\n ATMOSPHERE: (11096..11109) \";; x\"\n ATMOSPHERE: (11109..11110) \"\n\"\n ATMOSPHERE: (11110..11149) \";; (error \"invalid radix\")))))\"\n ATMOSPHERE: (11149..11150) \"\n\"\n ATMOSPHERE: (11150..11194) \";; (define (f n) (number->string n (radix)))\"\n ATMOSPHERE: (11194..11195) \"\n\"\n ATMOSPHERE: (11195..11216) \";; (test \"12\" (f 12))\"\n ATMOSPHERE: (11216..11217) \"\n\"\n ATMOSPHERE: (11217..11258) \";; (test \"1100\" (parameterize ((radix 2))\"\n ATMOSPHERE: (11258..11259) \"\n\"\n ATMOSPHERE: (11259..11272) \";; (f 12)))\"\n ATMOSPHERE: (11272..11273) \"\n\"\n ATMOSPHERE: (11273..11294) \";; (test \"12\" (f 12))\"\n ATMOSPHERE: (11294..11296) \"\n\n\"\n ATMOSPHERE: (11296..11336) \";; (test '(list 3 4) `(list ,(+ 1 2) 4))\"\n ATMOSPHERE: (11336..11337) \"\n\"\n ATMOSPHERE: (11337..11405) \";; (let ((name 'a)) (test '(list a (quote a)) `(list ,name ',name)))\"\n ATMOSPHERE: (11405..11406) \"\n\"\n ATMOSPHERE: (11406..11468) \";; (test '(a 3 4 5 6 b) `(a ,(+ 1 2) ,@(map abs '(4 -5 6)) b))\"\n ATMOSPHERE: (11468..11469) \"\n\"\n ATMOSPHERE: (11469..11494) \";; (test #(10 5 4 16 9 8)\"\n ATMOSPHERE: (11494..11495) \"\n\"\n ATMOSPHERE: (11495..11547) \";; `#(10 5 ,(square 2) ,@(map square '(4 3)) 8))\"\n ATMOSPHERE: (11547..11548) \"\n\"\n ATMOSPHERE: (11548..11590) \";; (test '(a `(b ,(+ 1 2) ,(foo 4 d) e) f)\"\n ATMOSPHERE: (11590..11591) \"\n\"\n ATMOSPHERE: (11591..11640) \";; `(a `(b ,(+ 1 2) ,(foo ,(+ 1 3) d) e) f) )\"\n ATMOSPHERE: (11640..11641) \"\n\"\n ATMOSPHERE: (11641..11660) \";; (let ((name1 'x)\"\n ATMOSPHERE: (11660..11661) \"\n\"\n ATMOSPHERE: (11661..11681) \";; (name2 'y))\"\n ATMOSPHERE: (11681..11682) \"\n\"\n ATMOSPHERE: (11682..11747) \";; (test '(a `(b ,x ,'y d) e) `(a `(b ,,name1 ,',name2 d) e)))\"\n ATMOSPHERE: (11747..11748) \"\n\"\n ATMOSPHERE: (11748..11810) \";; (test '(list 3 4) (quasiquote (list (unquote (+ 1 2)) 4)) )\"\n ATMOSPHERE: (11810..11811) \"\n\"\n ATMOSPHERE: (11811..11879) \";; (test `(list ,(+ 1 2) 4) (quasiquote (list (unquote (+ 1 2)) 4)))\"\n ATMOSPHERE: (11879..11881) \"\n\n\"\n ATMOSPHERE: (11881..11896) \";; (define plus\"\n ATMOSPHERE: (11896..11897) \"\n\"\n ATMOSPHERE: (11897..11915) \";; (case-lambda \"\n ATMOSPHERE: (11915..11916) \"\n\"\n ATMOSPHERE: (11916..11928) \";; (() 0)\"\n ATMOSPHERE: (11928..11929) \"\n\"\n ATMOSPHERE: (11929..11942) \";; ((x) x)\"\n ATMOSPHERE: (11942..11943) \"\n\"\n ATMOSPHERE: (11943..11964) \";; ((x y) (+ x y))\"\n ATMOSPHERE: (11964..11965) \"\n\"\n ATMOSPHERE: (11965..11994) \";; ((x y z) (+ (+ x y) z))\"\n ATMOSPHERE: (11994..11995) \"\n\"\n ATMOSPHERE: (11995..12024) \";; (args (apply + args))))\"\n ATMOSPHERE: (12024..12026) \"\n\n\"\n ATMOSPHERE: (12026..12044) \";; (test 0 (plus))\"\n ATMOSPHERE: (12044..12045) \"\n\"\n ATMOSPHERE: (12045..12065) \";; (test 1 (plus 1))\"\n ATMOSPHERE: (12065..12066) \"\n\"\n ATMOSPHERE: (12066..12088) \";; (test 3 (plus 1 2))\"\n ATMOSPHERE: (12088..12089) \"\n\"\n ATMOSPHERE: (12089..12113) \";; (test 6 (plus 1 2 3))\"\n ATMOSPHERE: (12113..12114) \"\n\"\n ATMOSPHERE: (12114..12141) \";; (test 10 (plus 1 2 3 4))\"\n ATMOSPHERE: (12141..12143) \"\n\n\"\n ATMOSPHERE: (12143..12158) \";; (define mult\"\n ATMOSPHERE: (12158..12159) \"\n\"\n ATMOSPHERE: (12159..12176) \";; (case-lambda\"\n ATMOSPHERE: (12176..12177) \"\n\"\n ATMOSPHERE: (12177..12189) \";; (() 1)\"\n ATMOSPHERE: (12189..12190) \"\n\"\n ATMOSPHERE: (12190..12203) \";; ((x) x)\"\n ATMOSPHERE: (12203..12204) \"\n\"\n ATMOSPHERE: (12204..12225) \";; ((x y) (* x y))\"\n ATMOSPHERE: (12225..12226) \"\n\"\n ATMOSPHERE: (12226..12268) \";; ((x y . z) (apply mult (* x y) z))))\"\n ATMOSPHERE: (12268..12270) \"\n\n\"\n ATMOSPHERE: (12270..12288) \";; (test 1 (mult))\"\n ATMOSPHERE: (12288..12289) \"\n\"\n ATMOSPHERE: (12289..12309) \";; (test 1 (mult 1))\"\n ATMOSPHERE: (12309..12310) \"\n\"\n ATMOSPHERE: (12310..12332) \";; (test 2 (mult 1 2))\"\n ATMOSPHERE: (12332..12333) \"\n\"\n ATMOSPHERE: (12333..12357) \";; (test 6 (mult 1 2 3))\"\n ATMOSPHERE: (12357..12358) \"\n\"\n ATMOSPHERE: (12358..12385) \";; (test 24 (mult 1 2 3 4))\"\n ATMOSPHERE: (12385..12387) \"\n\n\"\n FORM: (12387..12397)\n OPEN_PAREN: (12387..12388) \"(\"\n SYMBOL: (12388..12396)\n IDENTIFIER: (12388..12396) \"test-end\"\n CLOSE_PAREN: (12396..12397) \")\"\n ATMOSPHERE: (12397..12399) \"\n\n\"\n FORM: (12399..12424)\n OPEN_PAREN: (12399..12400) \"(\"\n SYMBOL: (12400..12410)\n IDENTIFIER: (12400..12410) \"test-begin\"\n ATMOSPHERE: (12410..12411) \" \"\n CONSTANT: (12411..12423)\n STRING: (12411..12423) \"\"4.3 Macros\"\"\n CLOSE_PAREN: (12423..12424) \")\"\n ATMOSPHERE: (12424..12426) \"\n\n\"\n FORM: (12426..12757)\n OPEN_PAREN: (12426..12427) \"(\"\n SYMBOL: (12427..12431)\n IDENTIFIER: (12427..12431) \"test\"\n ATMOSPHERE: (12431..12432) \" \"\n QUOTED_DATUM: (12432..12437)\n QUOTE: (12432..12433) \"'\"\n SYMBOL: (12433..12436)\n IDENTIFIER: (12433..12436) \"now\"\n ATMOSPHERE: (12436..12437) \" \"\n FORM: (12437..12756)\n OPEN_PAREN: (12437..12438) \"(\"\n SYMBOL: (12438..12448)\n IDENTIFIER: (12438..12448) \"let-syntax\"\n ATMOSPHERE: (12448..12464) \"\n \"\n FORM: (12464..12668)\n OPEN_PAREN: (12464..12465) \"(\"\n FORM: (12465..12667)\n OPEN_PAREN: (12465..12466) \"(\"\n SYMBOL: (12466..12470)\n IDENTIFIER: (12466..12470) \"when\"\n ATMOSPHERE: (12470..12471) \" \"\n FORM: (12471..12666)\n OPEN_PAREN: (12471..12472) \"(\"\n SYMBOL: (12472..12484)\n IDENTIFIER: (12472..12484) \"syntax-rules\"\n ATMOSPHERE: (12484..12485) \" \"\n FORM: (12485..12487)\n OPEN_PAREN: (12485..12486) \"(\"\n CLOSE_PAREN: (12486..12487) \")\"\n ATMOSPHERE: (12487..12512) \"\n \"\n FORM: (12512..12665)\n OPEN_PAREN: (12512..12513) \"(\"\n FORM: (12513..12540)\n OPEN_PAREN: (12513..12514) \"(\"\n SYMBOL: (12514..12518)\n IDENTIFIER: (12514..12518) \"when\"\n ATMOSPHERE: (12518..12519) \" \"\n SYMBOL: (12519..12523)\n IDENTIFIER: (12519..12523) \"test\"\n ATMOSPHERE: (12523..12524) \" \"\n SYMBOL: (12524..12529)\n IDENTIFIER: (12524..12529) \"stmt1\"\n ATMOSPHERE: (12529..12530) \" \"\n SYMBOL: (12530..12535)\n IDENTIFIER: (12530..12535) \"stmt2\"\n ATMOSPHERE: (12535..12536) \" \"\n SYMBOL: (12536..12539)\n IDENTIFIER: (12536..12539) \"...\"\n CLOSE_PAREN: (12539..12540) \")\"\n ATMOSPHERE: (12540..12566) \"\n \"\n FORM: (12566..12664)\n OPEN_PAREN: (12566..12567) \"(\"\n SYMBOL: (12567..12569)\n IDENTIFIER: (12567..12569) \"if\"\n ATMOSPHERE: (12569..12570) \" \"\n SYMBOL: (12570..12574)\n IDENTIFIER: (12570..12574) \"test\"\n ATMOSPHERE: (12574..12604) \"\n \"\n FORM: (12604..12663)\n OPEN_PAREN: (12604..12605) \"(\"\n SYMBOL: (12605..12610)\n IDENTIFIER: (12605..12610) \"begin\"\n ATMOSPHERE: (12610..12611) \" \"\n SYMBOL: (12611..12616)\n IDENTIFIER: (12611..12616) \"stmt1\"\n ATMOSPHERE: (12616..12653) \"\n \"\n SYMBOL: (12653..12658)\n IDENTIFIER: (12653..12658) \"stmt2\"\n ATMOSPHERE: (12658..12659) \" \"\n SYMBOL: (12659..12662)\n IDENTIFIER: (12659..12662) \"...\"\n CLOSE_PAREN: (12662..12663) \")\"\n CLOSE_PAREN: (12663..12664) \")\"\n CLOSE_PAREN: (12664..12665) \")\"\n CLOSE_PAREN: (12665..12666) \")\"\n CLOSE_PAREN: (12666..12667) \")\"\n CLOSE_PAREN: (12667..12668) \")\"\n ATMOSPHERE: (12668..12682) \"\n \"\n FORM: (12682..12755)\n OPEN_PAREN: (12682..12683) \"(\"\n SYMBOL: (12683..12686)\n IDENTIFIER: (12683..12686) \"let\"\n ATMOSPHERE: (12686..12687) \" \"\n FORM: (12687..12696)\n OPEN_PAREN: (12687..12688) \"(\"\n FORM: (12688..12695)\n OPEN_PAREN: (12688..12689) \"(\"\n SYMBOL: (12689..12691)\n IDENTIFIER: (12689..12691) \"if\"\n ATMOSPHERE: (12691..12692) \" \"\n CONSTANT: (12692..12694)\n BOOLEAN: (12692..12694) \"#t\"\n CLOSE_PAREN: (12694..12695) \")\"\n CLOSE_PAREN: (12695..12696) \")\"\n ATMOSPHERE: (12696..12712) \"\n \"\n FORM: (12712..12736)\n OPEN_PAREN: (12712..12713) \"(\"\n SYMBOL: (12713..12717)\n IDENTIFIER: (12713..12717) \"when\"\n ATMOSPHERE: (12717..12718) \" \"\n SYMBOL: (12718..12720)\n IDENTIFIER: (12718..12720) \"if\"\n ATMOSPHERE: (12720..12721) \" \"\n FORM: (12721..12735)\n OPEN_PAREN: (12721..12722) \"(\"\n SYMBOL: (12722..12726)\n IDENTIFIER: (12722..12726) \"set!\"\n ATMOSPHERE: (12726..12727) \" \"\n SYMBOL: (12727..12729)\n IDENTIFIER: (12727..12729) \"if\"\n ATMOSPHERE: (12729..12730) \" \"\n QUOTED_DATUM: (12730..12734)\n QUOTE: (12730..12731) \"'\"\n SYMBOL: (12731..12734)\n IDENTIFIER: (12731..12734) \"now\"\n CLOSE_PAREN: (12734..12735) \")\"\n CLOSE_PAREN: (12735..12736) \")\"\n ATMOSPHERE: (12736..12752) \"\n \"\n SYMBOL: (12752..12754)\n IDENTIFIER: (12752..12754) \"if\"\n CLOSE_PAREN: (12754..12755) \")\"\n CLOSE_PAREN: (12755..12756) \")\"\n CLOSE_PAREN: (12756..12757) \")\"\n ATMOSPHERE: (12757..12759) \"\n\n\"\n FORM: (12759..12871)\n OPEN_PAREN: (12759..12760) \"(\"\n SYMBOL: (12760..12764)\n IDENTIFIER: (12760..12764) \"test\"\n ATMOSPHERE: (12764..12765) \" \"\n QUOTED_DATUM: (12765..12772)\n QUOTE: (12765..12766) \"'\"\n SYMBOL: (12766..12771)\n IDENTIFIER: (12766..12771) \"outer\"\n ATMOSPHERE: (12771..12772) \" \"\n FORM: (12772..12870)\n OPEN_PAREN: (12772..12773) \"(\"\n SYMBOL: (12773..12776)\n IDENTIFIER: (12773..12776) \"let\"\n ATMOSPHERE: (12776..12777) \" \"\n FORM: (12777..12789)\n OPEN_PAREN: (12777..12778) \"(\"\n FORM: (12778..12788)\n OPEN_PAREN: (12778..12779) \"(\"\n SYMBOL: (12779..12780)\n IDENTIFIER: (12779..12780) \"x\"\n ATMOSPHERE: (12780..12781) \" \"\n QUOTED_DATUM: (12781..12787)\n QUOTE: (12781..12782) \"'\"\n SYMBOL: (12782..12787)\n IDENTIFIER: (12782..12787) \"outer\"\n CLOSE_PAREN: (12787..12788) \")\"\n CLOSE_PAREN: (12788..12789) \")\"\n ATMOSPHERE: (12789..12792) \"\n \"\n FORM: (12792..12869)\n OPEN_PAREN: (12792..12793) \"(\"\n SYMBOL: (12793..12803)\n IDENTIFIER: (12793..12803) \"let-syntax\"\n ATMOSPHERE: (12803..12804) \" \"\n FORM: (12804..12835)\n OPEN_PAREN: (12804..12805) \"(\"\n FORM: (12805..12834)\n OPEN_PAREN: (12805..12806) \"(\"\n SYMBOL: (12806..12807)\n IDENTIFIER: (12806..12807) \"m\"\n ATMOSPHERE: (12807..12808) \" \"\n FORM: (12808..12833)\n OPEN_PAREN: (12808..12809) \"(\"\n SYMBOL: (12809..12821)\n IDENTIFIER: (12809..12821) \"syntax-rules\"\n ATMOSPHERE: (12821..12822) \" \"\n FORM: (12822..12824)\n OPEN_PAREN: (12822..12823) \"(\"\n CLOSE_PAREN: (12823..12824) \")\"\n ATMOSPHERE: (12824..12825) \" \"\n FORM: (12825..12832)\n OPEN_PAREN: (12825..12826) \"(\"\n FORM: (12826..12829)\n OPEN_PAREN: (12826..12827) \"(\"\n SYMBOL: (12827..12828)\n IDENTIFIER: (12827..12828) \"m\"\n CLOSE_PAREN: (12828..12829) \")\"\n ATMOSPHERE: (12829..12830) \" \"\n SYMBOL: (12830..12831)\n IDENTIFIER: (12830..12831) \"x\"\n CLOSE_PAREN: (12831..12832) \")\"\n CLOSE_PAREN: (12832..12833) \")\"\n CLOSE_PAREN: (12833..12834) \")\"\n CLOSE_PAREN: (12834..12835) \")\"\n ATMOSPHERE: (12835..12840) \"\n \"\n FORM: (12840..12868)\n OPEN_PAREN: (12840..12841) \"(\"\n SYMBOL: (12841..12844)\n IDENTIFIER: (12841..12844) \"let\"\n ATMOSPHERE: (12844..12845) \" \"\n FORM: (12845..12857)\n OPEN_PAREN: (12845..12846) \"(\"\n FORM: (12846..12856)\n OPEN_PAREN: (12846..12847) \"(\"\n SYMBOL: (12847..12848)\n IDENTIFIER: (12847..12848) \"x\"\n ATMOSPHERE: (12848..12849) \" \"\n QUOTED_DATUM: (12849..12855)\n QUOTE: (12849..12850) \"'\"\n SYMBOL: (12850..12855)\n IDENTIFIER: (12850..12855) \"inner\"\n CLOSE_PAREN: (12855..12856) \")\"\n CLOSE_PAREN: (12856..12857) \")\"\n ATMOSPHERE: (12857..12864) \"\n \"\n FORM: (12864..12867)\n OPEN_PAREN: (12864..12865) \"(\"\n SYMBOL: (12865..12866)\n IDENTIFIER: (12865..12866) \"m\"\n CLOSE_PAREN: (12866..12867) \")\"\n CLOSE_PAREN: (12867..12868) \")\"\n CLOSE_PAREN: (12868..12869) \")\"\n CLOSE_PAREN: (12869..12870) \")\"\n CLOSE_PAREN: (12870..12871) \")\"\n ATMOSPHERE: (12871..12873) \"\n\n\"\n ATMOSPHERE: (12873..12891) \";;; FIXME: hygene?\"\n ATMOSPHERE: (12891..12892) \"\n\"\n ATMOSPHERE: (12892..12917) \";; (test 7 (letrec-syntax\"\n ATMOSPHERE: (12917..12918) \"\n\"\n ATMOSPHERE: (12918..12947) \";; ((my-or (syntax-rules ()\"\n ATMOSPHERE: (12947..12948) \"\n\"\n ATMOSPHERE: (12948..12975) \";; ((my-or) #f)\"\n ATMOSPHERE: (12975..12976) \"\n\"\n ATMOSPHERE: (12976..13004) \";; ((my-or e) e)\"\n ATMOSPHERE: (13004..13005) \"\n\"\n ATMOSPHERE: (13005..13038) \";; ((my-or e1 e2 ...)\"\n ATMOSPHERE: (13038..13039) \"\n\"\n ATMOSPHERE: (13039..13071) \";; (let ((temp e1))\"\n ATMOSPHERE: (13071..13072) \"\n\"\n ATMOSPHERE: (13072..13098) \";; (if temp\"\n ATMOSPHERE: (13098..13099) \"\n\"\n ATMOSPHERE: (13099..13125) \";; temp\"\n ATMOSPHERE: (13125..13126) \"\n\"\n ATMOSPHERE: (13126..13168) \";; (my-or e2 ...)))))))\"\n ATMOSPHERE: (13168..13169) \"\n\"\n ATMOSPHERE: (13169..13186) \";; (let ((x #f)\"\n ATMOSPHERE: (13186..13187) \"\n\"\n ATMOSPHERE: (13187..13203) \";; (y 7)\"\n ATMOSPHERE: (13203..13204) \"\n\"\n ATMOSPHERE: (13204..13223) \";; (temp 8)\"\n ATMOSPHERE: (13223..13224) \"\n\"\n ATMOSPHERE: (13224..13245) \";; (let odd?)\"\n ATMOSPHERE: (13245..13246) \"\n\"\n ATMOSPHERE: (13246..13268) \";; (if even?))\"\n ATMOSPHERE: (13268..13269) \"\n\"\n ATMOSPHERE: (13269..13284) \";; (my-or x\"\n ATMOSPHERE: (13284..13285) \"\n\"\n ATMOSPHERE: (13285..13309) \";; (let temp)\"\n ATMOSPHERE: (13309..13310) \"\n\"\n ATMOSPHERE: (13310..13330) \";; (if y)\"\n ATMOSPHERE: (13330..13331) \"\n\"\n ATMOSPHERE: (13331..13350) \";; y))))\"\n ATMOSPHERE: (13350..13352) \"\n\n\"\n ATMOSPHERE: (13352..13397) \";;; FIXME: quoted elipsis `(... ...)` support\"\n ATMOSPHERE: (13397..13398) \"\n\"\n ATMOSPHERE: (13398..13430) \";; (define-syntax be-like-begin1\"\n ATMOSPHERE: (13430..13431) \"\n\"\n ATMOSPHERE: (13431..13452) \";; (syntax-rules ()\"\n ATMOSPHERE: (13452..13453) \"\n\"\n ATMOSPHERE: (13453..13482) \";; ((be-like-begin1 name)\"\n ATMOSPHERE: (13482..13483) \"\n\"\n ATMOSPHERE: (13483..13510) \";; (define-syntax name\"\n ATMOSPHERE: (13510..13511) \"\n\"\n ATMOSPHERE: (13511..13537) \";; (syntax-rules ()\"\n ATMOSPHERE: (13537..13538) \"\n\"\n ATMOSPHERE: (13538..13572) \";; ((name expr (... ...))\"\n ATMOSPHERE: (13572..13573) \"\n\"\n ATMOSPHERE: (13573..13614) \";; (begin expr (... ...))))))))\"\n ATMOSPHERE: (13614..13615) \"\n\"\n ATMOSPHERE: (13615..13644) \";; (be-like-begin1 sequence1)\"\n ATMOSPHERE: (13644..13645) \"\n\"\n ATMOSPHERE: (13645..13676) \";; (test 3 (sequence1 0 1 2 3))\"\n ATMOSPHERE: (13676..13678) \"\n\n\"\n ATMOSPHERE: (13678..13710) \";; (define-syntax be-like-begin2\"\n ATMOSPHERE: (13710..13711) \"\n\"\n ATMOSPHERE: (13711..13732) \";; (syntax-rules ()\"\n ATMOSPHERE: (13732..13733) \"\n\"\n ATMOSPHERE: (13733..13762) \";; ((be-like-begin2 name)\"\n ATMOSPHERE: (13762..13763) \"\n\"\n ATMOSPHERE: (13763..13790) \";; (define-syntax name\"\n ATMOSPHERE: (13790..13791) \"\n\"\n ATMOSPHERE: (13791..13822) \";; (... (syntax-rules ()\"\n ATMOSPHERE: (13822..13823) \"\n\"\n ATMOSPHERE: (13823..13856) \";; ((name expr ...)\"\n ATMOSPHERE: (13856..13857) \"\n\"\n ATMOSPHERE: (13857..13898) \";; (begin expr ...))))))))\"\n ATMOSPHERE: (13898..13899) \"\n\"\n ATMOSPHERE: (13899..13928) \";; (be-like-begin2 sequence2)\"\n ATMOSPHERE: (13928..13929) \"\n\"\n ATMOSPHERE: (13929..13960) \";; (test 4 (sequence2 1 2 3 4))\"\n ATMOSPHERE: (13960..13962) \"\n\n\"\n FORM: (13962..14152)\n OPEN_PAREN: (13962..13963) \"(\"\n SYMBOL: (13963..13976)\n IDENTIFIER: (13963..13976) \"define-syntax\"\n ATMOSPHERE: (13976..13977) \" \"\n SYMBOL: (13977..13991)\n IDENTIFIER: (13977..13991) \"be-like-begin3\"\n ATMOSPHERE: (13991..13994) \"\n \"\n FORM: (13994..14151)\n OPEN_PAREN: (13994..13995) \"(\"\n SYMBOL: (13995..14007)\n IDENTIFIER: (13995..14007) \"syntax-rules\"\n ATMOSPHERE: (14007..14008) \" \"\n FORM: (14008..14010)\n OPEN_PAREN: (14008..14009) \"(\"\n CLOSE_PAREN: (14009..14010) \")\"\n ATMOSPHERE: (14010..14015) \"\n \"\n FORM: (14015..14150)\n OPEN_PAREN: (14015..14016) \"(\"\n FORM: (14016..14037)\n OPEN_PAREN: (14016..14017) \"(\"\n SYMBOL: (14017..14031)\n IDENTIFIER: (14017..14031) \"be-like-begin3\"\n ATMOSPHERE: (14031..14032) \" \"\n SYMBOL: (14032..14036)\n IDENTIFIER: (14032..14036) \"name\"\n CLOSE_PAREN: (14036..14037) \")\"\n ATMOSPHERE: (14037..14043) \"\n \"\n FORM: (14043..14149)\n OPEN_PAREN: (14043..14044) \"(\"\n SYMBOL: (14044..14057)\n IDENTIFIER: (14044..14057) \"define-syntax\"\n ATMOSPHERE: (14057..14058) \" \"\n SYMBOL: (14058..14062)\n IDENTIFIER: (14058..14062) \"name\"\n ATMOSPHERE: (14062..14070) \"\n \"\n FORM: (14070..14148)\n OPEN_PAREN: (14070..14071) \"(\"\n SYMBOL: (14071..14083)\n IDENTIFIER: (14071..14083) \"syntax-rules\"\n ATMOSPHERE: (14083..14084) \" \"\n SYMBOL: (14084..14088)\n IDENTIFIER: (14084..14088) \"dots\"\n ATMOSPHERE: (14088..14089) \" \"\n FORM: (14089..14091)\n OPEN_PAREN: (14089..14090) \"(\"\n CLOSE_PAREN: (14090..14091) \")\"\n ATMOSPHERE: (14091..14101) \"\n \"\n FORM: (14101..14147)\n OPEN_PAREN: (14101..14102) \"(\"\n FORM: (14102..14118)\n OPEN_PAREN: (14102..14103) \"(\"\n SYMBOL: (14103..14107)\n IDENTIFIER: (14103..14107) \"name\"\n ATMOSPHERE: (14107..14108) \" \"\n SYMBOL: (14108..14112)\n IDENTIFIER: (14108..14112) \"expr\"\n ATMOSPHERE: (14112..14113) \" \"\n SYMBOL: (14113..14117)\n IDENTIFIER: (14113..14117) \"dots\"\n CLOSE_PAREN: (14117..14118) \")\"\n ATMOSPHERE: (14118..14129) \"\n \"\n FORM: (14129..14146)\n OPEN_PAREN: (14129..14130) \"(\"\n SYMBOL: (14130..14135)\n IDENTIFIER: (14130..14135) \"begin\"\n ATMOSPHERE: (14135..14136) \" \"\n SYMBOL: (14136..14140)\n IDENTIFIER: (14136..14140) \"expr\"\n ATMOSPHERE: (14140..14141) \" \"\n SYMBOL: (14141..14145)\n IDENTIFIER: (14141..14145) \"dots\"\n CLOSE_PAREN: (14145..14146) \")\"\n CLOSE_PAREN: (14146..14147) \")\"\n CLOSE_PAREN: (14147..14148) \")\"\n CLOSE_PAREN: (14148..14149) \")\"\n CLOSE_PAREN: (14149..14150) \")\"\n CLOSE_PAREN: (14150..14151) \")\"\n CLOSE_PAREN: (14151..14152) \")\"\n ATMOSPHERE: (14152..14153) \"\n\"\n FORM: (14153..14179)\n OPEN_PAREN: (14153..14154) \"(\"\n SYMBOL: (14154..14168)\n IDENTIFIER: (14154..14168) \"be-like-begin3\"\n ATMOSPHERE: (14168..14169) \" \"\n SYMBOL: (14169..14178)\n IDENTIFIER: (14169..14178) \"sequence3\"\n CLOSE_PAREN: (14178..14179) \")\"\n ATMOSPHERE: (14179..14180) \"\n\"\n FORM: (14180..14208)\n OPEN_PAREN: (14180..14181) \"(\"\n SYMBOL: (14181..14185)\n IDENTIFIER: (14181..14185) \"test\"\n ATMOSPHERE: (14185..14186) \" \"\n CONSTANT: (14186..14187)\n NUMBER: (14186..14187) \"5\"\n ATMOSPHERE: (14187..14188) \" \"\n FORM: (14188..14207)\n OPEN_PAREN: (14188..14189) \"(\"\n SYMBOL: (14189..14198)\n IDENTIFIER: (14189..14198) \"sequence3\"\n ATMOSPHERE: (14198..14199) \" \"\n CONSTANT: (14199..14200)\n NUMBER: (14199..14200) \"2\"\n ATMOSPHERE: (14200..14201) \" \"\n CONSTANT: (14201..14202)\n NUMBER: (14201..14202) \"3\"\n ATMOSPHERE: (14202..14203) \" \"\n CONSTANT: (14203..14204)\n NUMBER: (14203..14204) \"4\"\n ATMOSPHERE: (14204..14205) \" \"\n CONSTANT: (14205..14206)\n NUMBER: (14205..14206) \"5\"\n CLOSE_PAREN: (14206..14207) \")\"\n CLOSE_PAREN: (14207..14208) \")\"\n ATMOSPHERE: (14208..14210) \"\n\n\"\n ATMOSPHERE: (14210..14228) \";; ellipsis escape\"\n ATMOSPHERE: (14228..14229) \"\n\"\n FORM: (14229..14369)\n OPEN_PAREN: (14229..14230) \"(\"\n SYMBOL: (14230..14243)\n IDENTIFIER: (14230..14243) \"define-syntax\"\n ATMOSPHERE: (14243..14244) \" \"\n SYMBOL: (14244..14254)\n IDENTIFIER: (14244..14254) \"elli-esc-1\"\n ATMOSPHERE: (14254..14257) \"\n \"\n FORM: (14257..14368)\n OPEN_PAREN: (14257..14258) \"(\"\n SYMBOL: (14258..14270)\n IDENTIFIER: (14258..14270) \"syntax-rules\"\n ATMOSPHERE: (14270..14271) \" \"\n FORM: (14271..14273)\n OPEN_PAREN: (14271..14272) \"(\"\n CLOSE_PAREN: (14272..14273) \")\"\n ATMOSPHERE: (14273..14278) \"\n \"\n FORM: (14278..14299)\n OPEN_PAREN: (14278..14279) \"(\"\n FORM: (14279..14282)\n OPEN_PAREN: (14279..14280) \"(\"\n SYMBOL: (14280..14281)\n IDENTIFIER: (14280..14281) \"_\"\n CLOSE_PAREN: (14281..14282) \")\"\n ATMOSPHERE: (14282..14288) \"\n \"\n QUOTED_DATUM: (14288..14298)\n QUOTE: (14288..14289) \"'\"\n FORM: (14289..14298)\n OPEN_PAREN: (14289..14290) \"(\"\n SYMBOL: (14290..14293)\n IDENTIFIER: (14290..14293) \"...\"\n ATMOSPHERE: (14293..14294) \" \"\n SYMBOL: (14294..14297)\n IDENTIFIER: (14294..14297) \"...\"\n CLOSE_PAREN: (14297..14298) \")\"\n CLOSE_PAREN: (14298..14299) \")\"\n ATMOSPHERE: (14299..14304) \"\n \"\n FORM: (14304..14331)\n OPEN_PAREN: (14304..14305) \"(\"\n FORM: (14305..14310)\n OPEN_PAREN: (14305..14306) \"(\"\n SYMBOL: (14306..14307)\n IDENTIFIER: (14306..14307) \"_\"\n ATMOSPHERE: (14307..14308) \" \"\n SYMBOL: (14308..14309)\n IDENTIFIER: (14308..14309) \"x\"\n CLOSE_PAREN: (14309..14310) \")\"\n ATMOSPHERE: (14310..14316) \"\n \"\n QUOTED_DATUM: (14316..14330)\n QUOTE: (14316..14317) \"'\"\n FORM: (14317..14330)\n OPEN_PAREN: (14317..14318) \"(\"\n SYMBOL: (14318..14321)\n IDENTIFIER: (14318..14321) \"...\"\n ATMOSPHERE: (14321..14322) \" \"\n FORM: (14322..14329)\n OPEN_PAREN: (14322..14323) \"(\"\n SYMBOL: (14323..14324)\n IDENTIFIER: (14323..14324) \"x\"\n ATMOSPHERE: (14324..14325) \" \"\n SYMBOL: (14325..14328)\n IDENTIFIER: (14325..14328) \"...\"\n CLOSE_PAREN: (14328..14329) \")\"\n CLOSE_PAREN: (14329..14330) \")\"\n CLOSE_PAREN: (14330..14331) \")\"\n ATMOSPHERE: (14331..14336) \"\n \"\n FORM: (14336..14367)\n OPEN_PAREN: (14336..14337) \"(\"\n FORM: (14337..14344)\n OPEN_PAREN: (14337..14338) \"(\"\n SYMBOL: (14338..14339)\n IDENTIFIER: (14338..14339) \"_\"\n ATMOSPHERE: (14339..14340) \" \"\n SYMBOL: (14340..14341)\n IDENTIFIER: (14340..14341) \"x\"\n ATMOSPHERE: (14341..14342) \" \"\n SYMBOL: (14342..14343)\n IDENTIFIER: (14342..14343) \"y\"\n CLOSE_PAREN: (14343..14344) \")\"\n ATMOSPHERE: (14344..14350) \"\n \"\n QUOTED_DATUM: (14350..14366)\n QUOTE: (14350..14351) \"'\"\n FORM: (14351..14366)\n OPEN_PAREN: (14351..14352) \"(\"\n SYMBOL: (14352..14355)\n IDENTIFIER: (14352..14355) \"...\"\n ATMOSPHERE: (14355..14356) \" \"\n FORM: (14356..14365)\n OPEN_PAREN: (14356..14357) \"(\"\n SYMBOL: (14357..14360)\n IDENTIFIER: (14357..14360) \"...\"\n ATMOSPHERE: (14360..14361) \" \"\n SYMBOL: (14361..14362)\n IDENTIFIER: (14361..14362) \"x\"\n ATMOSPHERE: (14362..14363) \" \"\n SYMBOL: (14363..14364)\n IDENTIFIER: (14363..14364) \"y\"\n CLOSE_PAREN: (14364..14365) \")\"\n CLOSE_PAREN: (14365..14366) \")\"\n CLOSE_PAREN: (14366..14367) \")\"\n CLOSE_PAREN: (14367..14368) \")\"\n CLOSE_PAREN: (14368..14369) \")\"\n ATMOSPHERE: (14369..14371) \"\n\n\"\n FORM: (14371..14395)\n OPEN_PAREN: (14371..14372) \"(\"\n SYMBOL: (14372..14376)\n IDENTIFIER: (14372..14376) \"test\"\n ATMOSPHERE: (14376..14377) \" \"\n QUOTED_DATUM: (14377..14382)\n QUOTE: (14377..14378) \"'\"\n SYMBOL: (14378..14381)\n IDENTIFIER: (14378..14381) \"...\"\n ATMOSPHERE: (14381..14382) \" \"\n FORM: (14382..14394)\n OPEN_PAREN: (14382..14383) \"(\"\n SYMBOL: (14383..14393)\n IDENTIFIER: (14383..14393) \"elli-esc-1\"\n CLOSE_PAREN: (14393..14394) \")\"\n CLOSE_PAREN: (14394..14395) \")\"\n ATMOSPHERE: (14395..14396) \"\n\"\n FORM: (14396..14430)\n OPEN_PAREN: (14396..14397) \"(\"\n SYMBOL: (14397..14401)\n IDENTIFIER: (14397..14401) \"test\"\n ATMOSPHERE: (14401..14402) \" \"\n QUOTED_DATUM: (14402..14413)\n QUOTE: (14402..14403) \"'\"\n FORM: (14403..14412)\n OPEN_PAREN: (14403..14404) \"(\"\n CONSTANT: (14404..14407)\n NUMBER: (14404..14407) \"100\"\n ATMOSPHERE: (14407..14408) \" \"\n SYMBOL: (14408..14411)\n IDENTIFIER: (14408..14411) \"...\"\n CLOSE_PAREN: (14411..14412) \")\"\n ATMOSPHERE: (14412..14413) \" \"\n FORM: (14413..14429)\n OPEN_PAREN: (14413..14414) \"(\"\n SYMBOL: (14414..14424)\n IDENTIFIER: (14414..14424) \"elli-esc-1\"\n ATMOSPHERE: (14424..14425) \" \"\n CONSTANT: (14425..14428)\n NUMBER: (14425..14428) \"100\"\n CLOSE_PAREN: (14428..14429) \")\"\n CLOSE_PAREN: (14429..14430) \")\"\n ATMOSPHERE: (14430..14431) \"\n\"\n FORM: (14431..14473)\n OPEN_PAREN: (14431..14432) \"(\"\n SYMBOL: (14432..14436)\n IDENTIFIER: (14432..14436) \"test\"\n ATMOSPHERE: (14436..14437) \" \"\n QUOTED_DATUM: (14437..14452)\n QUOTE: (14437..14438) \"'\"\n FORM: (14438..14451)\n OPEN_PAREN: (14438..14439) \"(\"\n SYMBOL: (14439..14442)\n IDENTIFIER: (14439..14442) \"...\"\n ATMOSPHERE: (14442..14443) \" \"\n CONSTANT: (14443..14446)\n NUMBER: (14443..14446) \"100\"\n ATMOSPHERE: (14446..14447) \" \"\n CONSTANT: (14447..14450)\n NUMBER: (14447..14450) \"200\"\n CLOSE_PAREN: (14450..14451) \")\"\n ATMOSPHERE: (14451..14452) \" \"\n FORM: (14452..14472)\n OPEN_PAREN: (14452..14453) \"(\"\n SYMBOL: (14453..14463)\n IDENTIFIER: (14453..14463) \"elli-esc-1\"\n ATMOSPHERE: (14463..14464) \" \"\n CONSTANT: (14464..14467)\n NUMBER: (14464..14467) \"100\"\n ATMOSPHERE: (14467..14468) \" \"\n CONSTANT: (14468..14471)\n NUMBER: (14468..14471) \"200\"\n CLOSE_PAREN: (14471..14472) \")\"\n CLOSE_PAREN: (14472..14473) \")\"\n ATMOSPHERE: (14473..14475) \"\n\n\"\n ATMOSPHERE: (14475..14532) \";; Syntax pattern with ellipsis in middle of proper list.\"\n ATMOSPHERE: (14532..14533) \"\n\"\n FORM: (14533..14689)\n OPEN_PAREN: (14533..14534) \"(\"\n SYMBOL: (14534..14547)\n IDENTIFIER: (14534..14547) \"define-syntax\"\n ATMOSPHERE: (14547..14548) \" \"\n SYMBOL: (14548..14554)\n IDENTIFIER: (14548..14554) \"part-2\"\n ATMOSPHERE: (14554..14557) \"\n \"\n FORM: (14557..14688)\n OPEN_PAREN: (14557..14558) \"(\"\n SYMBOL: (14558..14570)\n IDENTIFIER: (14558..14570) \"syntax-rules\"\n ATMOSPHERE: (14570..14571) \" \"\n FORM: (14571..14573)\n OPEN_PAREN: (14571..14572) \"(\"\n CLOSE_PAREN: (14572..14573) \")\"\n ATMOSPHERE: (14573..14578) \"\n \"\n FORM: (14578..14663)\n OPEN_PAREN: (14578..14579) \"(\"\n FORM: (14579..14600)\n OPEN_PAREN: (14579..14580) \"(\"\n SYMBOL: (14580..14581)\n IDENTIFIER: (14580..14581) \"_\"\n ATMOSPHERE: (14581..14582) \" \"\n SYMBOL: (14582..14583)\n IDENTIFIER: (14582..14583) \"a\"\n ATMOSPHERE: (14583..14584) \" \"\n SYMBOL: (14584..14585)\n IDENTIFIER: (14584..14585) \"b\"\n ATMOSPHERE: (14585..14586) \" \"\n FORM: (14586..14591)\n OPEN_PAREN: (14586..14587) \"(\"\n SYMBOL: (14587..14588)\n IDENTIFIER: (14587..14588) \"m\"\n ATMOSPHERE: (14588..14589) \" \"\n SYMBOL: (14589..14590)\n IDENTIFIER: (14589..14590) \"n\"\n CLOSE_PAREN: (14590..14591) \")\"\n ATMOSPHERE: (14591..14592) \" \"\n SYMBOL: (14592..14595)\n IDENTIFIER: (14592..14595) \"...\"\n ATMOSPHERE: (14595..14596) \" \"\n SYMBOL: (14596..14597)\n IDENTIFIER: (14596..14597) \"x\"\n ATMOSPHERE: (14597..14598) \" \"\n SYMBOL: (14598..14599)\n IDENTIFIER: (14598..14599) \"y\"\n CLOSE_PAREN: (14599..14600) \")\"\n ATMOSPHERE: (14600..14606) \"\n \"\n FORM: (14606..14662)\n OPEN_PAREN: (14606..14607) \"(\"\n SYMBOL: (14607..14613)\n IDENTIFIER: (14607..14613) \"vector\"\n ATMOSPHERE: (14613..14614) \" \"\n FORM: (14614..14624)\n OPEN_PAREN: (14614..14615) \"(\"\n SYMBOL: (14615..14619)\n IDENTIFIER: (14615..14619) \"list\"\n ATMOSPHERE: (14619..14620) \" \"\n SYMBOL: (14620..14621)\n IDENTIFIER: (14620..14621) \"a\"\n ATMOSPHERE: (14621..14622) \" \"\n SYMBOL: (14622..14623)\n IDENTIFIER: (14622..14623) \"b\"\n CLOSE_PAREN: (14623..14624) \")\"\n ATMOSPHERE: (14624..14625) \" \"\n FORM: (14625..14637)\n OPEN_PAREN: (14625..14626) \"(\"\n SYMBOL: (14626..14630)\n IDENTIFIER: (14626..14630) \"list\"\n ATMOSPHERE: (14630..14631) \" \"\n SYMBOL: (14631..14632)\n IDENTIFIER: (14631..14632) \"m\"\n ATMOSPHERE: (14632..14633) \" \"\n SYMBOL: (14633..14636)\n IDENTIFIER: (14633..14636) \"...\"\n CLOSE_PAREN: (14636..14637) \")\"\n ATMOSPHERE: (14637..14638) \" \"\n FORM: (14638..14650)\n OPEN_PAREN: (14638..14639) \"(\"\n SYMBOL: (14639..14643)\n IDENTIFIER: (14639..14643) \"list\"\n ATMOSPHERE: (14643..14644) \" \"\n SYMBOL: (14644..14645)\n IDENTIFIER: (14644..14645) \"n\"\n ATMOSPHERE: (14645..14646) \" \"\n SYMBOL: (14646..14649)\n IDENTIFIER: (14646..14649) \"...\"\n CLOSE_PAREN: (14649..14650) \")\"\n ATMOSPHERE: (14650..14651) \" \"\n FORM: (14651..14661)\n OPEN_PAREN: (14651..14652) \"(\"\n SYMBOL: (14652..14656)\n IDENTIFIER: (14652..14656) \"list\"\n ATMOSPHERE: (14656..14657) \" \"\n SYMBOL: (14657..14658)\n IDENTIFIER: (14657..14658) \"x\"\n ATMOSPHERE: (14658..14659) \" \"\n SYMBOL: (14659..14660)\n IDENTIFIER: (14659..14660) \"y\"\n CLOSE_PAREN: (14660..14661) \")\"\n CLOSE_PAREN: (14661..14662) \")\"\n CLOSE_PAREN: (14662..14663) \")\"\n ATMOSPHERE: (14663..14668) \"\n \"\n FORM: (14668..14687)\n OPEN_PAREN: (14668..14669) \"(\"\n FORM: (14669..14679)\n OPEN_PAREN: (14669..14670) \"(\"\n SYMBOL: (14670..14671)\n IDENTIFIER: (14670..14671) \"_\"\n ATMOSPHERE: (14671..14672) \" \"\n DOTTED_TAIL: (14672..14678)\n DOT: (14672..14673) \".\"\n ATMOSPHERE: (14673..14674) \" \"\n SYMBOL: (14674..14678)\n IDENTIFIER: (14674..14678) \"rest\"\n CLOSE_PAREN: (14678..14679) \")\"\n ATMOSPHERE: (14679..14680) \" \"\n QUOTED_DATUM: (14680..14686)\n QUOTE: (14680..14681) \"'\"\n SYMBOL: (14681..14686)\n IDENTIFIER: (14681..14686) \"error\"\n CLOSE_PAREN: (14686..14687) \")\"\n CLOSE_PAREN: (14687..14688) \")\"\n CLOSE_PAREN: (14688..14689) \")\"\n ATMOSPHERE: (14689..14690) \"\n\"\n FORM: (14690..14800)\n OPEN_PAREN: (14690..14691) \"(\"\n SYMBOL: (14691..14695)\n IDENTIFIER: (14691..14695) \"test\"\n ATMOSPHERE: (14695..14696) \" \"\n QUOTED_DATUM: (14696..14742)\n QUOTE: (14696..14697) \"'\"\n VEC: (14697..14737)\n OPEN_PAREN: (14697..14699) \"#(\"\n FORM: (14699..14706)\n OPEN_PAREN: (14699..14700) \"(\"\n CONSTANT: (14700..14702)\n NUMBER: (14700..14702) \"10\"\n ATMOSPHERE: (14702..14703) \" \"\n CONSTANT: (14703..14705)\n NUMBER: (14703..14705) \"43\"\n CLOSE_PAREN: (14705..14706) \")\"\n ATMOSPHERE: (14706..14707) \" \"\n FORM: (14707..14717)\n OPEN_PAREN: (14707..14708) \"(\"\n CONSTANT: (14708..14710)\n NUMBER: (14708..14710) \"31\"\n ATMOSPHERE: (14710..14711) \" \"\n CONSTANT: (14711..14713)\n NUMBER: (14711..14713) \"41\"\n ATMOSPHERE: (14713..14714) \" \"\n CONSTANT: (14714..14716)\n NUMBER: (14714..14716) \"51\"\n CLOSE_PAREN: (14716..14717) \")\"\n ATMOSPHERE: (14717..14718) \" \"\n FORM: (14718..14728)\n OPEN_PAREN: (14718..14719) \"(\"\n CONSTANT: (14719..14721)\n NUMBER: (14719..14721) \"32\"\n ATMOSPHERE: (14721..14722) \" \"\n CONSTANT: (14722..14724)\n NUMBER: (14722..14724) \"42\"\n ATMOSPHERE: (14724..14725) \" \"\n CONSTANT: (14725..14727)\n NUMBER: (14725..14727) \"52\"\n CLOSE_PAREN: (14727..14728) \")\"\n ATMOSPHERE: (14728..14729) \" \"\n FORM: (14729..14736)\n OPEN_PAREN: (14729..14730) \"(\"\n CONSTANT: (14730..14732)\n NUMBER: (14730..14732) \"63\"\n ATMOSPHERE: (14732..14733) \" \"\n CONSTANT: (14733..14735)\n NUMBER: (14733..14735) \"77\"\n CLOSE_PAREN: (14735..14736) \")\"\n CLOSE_PAREN: (14736..14737) \")\"\n ATMOSPHERE: (14737..14742) \"\n \"\n FORM: (14742..14799)\n OPEN_PAREN: (14742..14743) \"(\"\n SYMBOL: (14743..14749)\n IDENTIFIER: (14743..14749) \"part-2\"\n ATMOSPHERE: (14749..14750) \" \"\n CONSTANT: (14750..14752)\n NUMBER: (14750..14752) \"10\"\n ATMOSPHERE: (14752..14753) \" \"\n FORM: (14753..14762)\n OPEN_PAREN: (14753..14754) \"(\"\n SYMBOL: (14754..14755)\n IDENTIFIER: (14754..14755) \"+\"\n ATMOSPHERE: (14755..14756) \" \"\n CONSTANT: (14756..14758)\n NUMBER: (14756..14758) \"21\"\n ATMOSPHERE: (14758..14759) \" \"\n CONSTANT: (14759..14761)\n NUMBER: (14759..14761) \"22\"\n CLOSE_PAREN: (14761..14762) \")\"\n ATMOSPHERE: (14762..14763) \" \"\n FORM: (14763..14770)\n OPEN_PAREN: (14763..14764) \"(\"\n CONSTANT: (14764..14766)\n NUMBER: (14764..14766) \"31\"\n ATMOSPHERE: (14766..14767) \" \"\n CONSTANT: (14767..14769)\n NUMBER: (14767..14769) \"32\"\n CLOSE_PAREN: (14769..14770) \")\"\n ATMOSPHERE: (14770..14771) \" \"\n FORM: (14771..14778)\n OPEN_PAREN: (14771..14772) \"(\"\n CONSTANT: (14772..14774)\n NUMBER: (14772..14774) \"41\"\n ATMOSPHERE: (14774..14775) \" \"\n CONSTANT: (14775..14777)\n NUMBER: (14775..14777) \"42\"\n CLOSE_PAREN: (14777..14778) \")\"\n ATMOSPHERE: (14778..14779) \" \"\n FORM: (14779..14786)\n OPEN_PAREN: (14779..14780) \"(\"\n CONSTANT: (14780..14782)\n NUMBER: (14780..14782) \"51\"\n ATMOSPHERE: (14782..14783) \" \"\n CONSTANT: (14783..14785)\n NUMBER: (14783..14785) \"52\"\n CLOSE_PAREN: (14785..14786) \")\"\n ATMOSPHERE: (14786..14787) \" \"\n FORM: (14787..14795)\n OPEN_PAREN: (14787..14788) \"(\"\n SYMBOL: (14788..14789)\n IDENTIFIER: (14788..14789) \"+\"\n ATMOSPHERE: (14789..14790) \" \"\n CONSTANT: (14790..14792)\n NUMBER: (14790..14792) \"61\"\n ATMOSPHERE: (14792..14793) \" \"\n CONSTANT: (14793..14794)\n NUMBER: (14793..14794) \"2\"\n CLOSE_PAREN: (14794..14795) \")\"\n ATMOSPHERE: (14795..14796) \" \"\n CONSTANT: (14796..14798)\n NUMBER: (14796..14798) \"77\"\n CLOSE_PAREN: (14798..14799) \")\"\n CLOSE_PAREN: (14799..14800) \")\"\n ATMOSPHERE: (14800..14801) \"\n\"\n ATMOSPHERE: (14801..14863) \";; ;; Syntax pattern with ellipsis in middle of improper list.\"\n ATMOSPHERE: (14863..14864) \"\n\"\n ATMOSPHERE: (14864..14889) \";; (define-syntax part-2x\"\n ATMOSPHERE: (14889..14890) \"\n\"\n ATMOSPHERE: (14890..14911) \";; (syntax-rules ()\"\n ATMOSPHERE: (14911..14912) \"\n\"\n ATMOSPHERE: (14912..14950) \";; ((_ (a b (m n) ... x y . rest))\"\n ATMOSPHERE: (14950..14951) \"\n\"\n ATMOSPHERE: (14951..15014) \";; (vector (list a b) (list m ...) (list n ...) (list x y)\"\n ATMOSPHERE: (15014..15015) \"\n\"\n ATMOSPHERE: (15015..15053) \";; (cons \"rest:\" 'rest)))\"\n ATMOSPHERE: (15053..15054) \"\n\"\n ATMOSPHERE: (15054..15082) \";; ((_ . rest) 'error)))\"\n ATMOSPHERE: (15082..15083) \"\n\"\n ATMOSPHERE: (15083..15143) \";; (test '#((10 43) (31 41 51) (32 42 52) (63 77) (\"rest:\"))\"\n ATMOSPHERE: (15143..15144) \"\n\"\n ATMOSPHERE: (15144..15212) \";; (part-2x (10 (+ 21 22) (31 32) (41 42) (51 52) (+ 61 2) 77)))\"\n ATMOSPHERE: (15212..15213) \"\n\"\n ATMOSPHERE: (15213..15282) \";; (test '#((10 43) (31 41 51) (32 42 52) (63 77) (\"rest:\" . \"tail\"))\"\n ATMOSPHERE: (15282..15283) \"\n\"\n ATMOSPHERE: (15283..15360) \";; (part-2x (10 (+ 21 22) (31 32) (41 42) (51 52) (+ 61 2) 77 . \"tail\")))\"\n ATMOSPHERE: (15360..15362) \"\n\n\"\n ATMOSPHERE: (15362..15375) \";; underscore\"\n ATMOSPHERE: (15375..15376) \"\n\"\n FORM: (15376..15439)\n OPEN_PAREN: (15376..15377) \"(\"\n SYMBOL: (15377..15390)\n IDENTIFIER: (15377..15390) \"define-syntax\"\n ATMOSPHERE: (15390..15391) \" \"\n SYMBOL: (15391..15401)\n IDENTIFIER: (15391..15401) \"underscore\"\n ATMOSPHERE: (15401..15404) \"\n \"\n FORM: (15404..15438)\n OPEN_PAREN: (15404..15405) \"(\"\n SYMBOL: (15405..15417)\n IDENTIFIER: (15405..15417) \"syntax-rules\"\n ATMOSPHERE: (15417..15418) \" \"\n FORM: (15418..15420)\n OPEN_PAREN: (15418..15419) \"(\"\n CLOSE_PAREN: (15419..15420) \")\"\n ATMOSPHERE: (15420..15425) \"\n \"\n FORM: (15425..15437)\n OPEN_PAREN: (15425..15426) \"(\"\n FORM: (15426..15433)\n OPEN_PAREN: (15426..15427) \"(\"\n SYMBOL: (15427..15430)\n IDENTIFIER: (15427..15430) \"foo\"\n ATMOSPHERE: (15430..15431) \" \"\n SYMBOL: (15431..15432)\n IDENTIFIER: (15431..15432) \"_\"\n CLOSE_PAREN: (15432..15433) \")\"\n ATMOSPHERE: (15433..15434) \" \"\n QUOTED_DATUM: (15434..15436)\n QUOTE: (15434..15435) \"'\"\n SYMBOL: (15435..15436)\n IDENTIFIER: (15435..15436) \"_\"\n CLOSE_PAREN: (15436..15437) \")\"\n CLOSE_PAREN: (15437..15438) \")\"\n CLOSE_PAREN: (15438..15439) \")\"\n ATMOSPHERE: (15439..15440) \"\n\"\n FORM: (15440..15466)\n OPEN_PAREN: (15440..15441) \"(\"\n SYMBOL: (15441..15445)\n IDENTIFIER: (15441..15445) \"test\"\n ATMOSPHERE: (15445..15446) \" \"\n QUOTED_DATUM: (15446..15449)\n QUOTE: (15446..15447) \"'\"\n SYMBOL: (15447..15448)\n IDENTIFIER: (15447..15448) \"_\"\n ATMOSPHERE: (15448..15449) \" \"\n FORM: (15449..15465)\n OPEN_PAREN: (15449..15450) \"(\"\n SYMBOL: (15450..15460)\n IDENTIFIER: (15450..15460) \"underscore\"\n ATMOSPHERE: (15460..15461) \" \"\n SYMBOL: (15461..15464)\n IDENTIFIER: (15461..15464) \"foo\"\n CLOSE_PAREN: (15464..15465) \")\"\n CLOSE_PAREN: (15465..15466) \")\"\n ATMOSPHERE: (15466..15468) \"\n\n\"\n FORM: (15468..15595)\n OPEN_PAREN: (15468..15469) \"(\"\n SYMBOL: (15469..15472)\n IDENTIFIER: (15469..15472) \"let\"\n ATMOSPHERE: (15472..15473) \" \"\n FORM: (15473..15475)\n OPEN_PAREN: (15473..15474) \"(\"\n CLOSE_PAREN: (15474..15475) \")\"\n ATMOSPHERE: (15475..15478) \"\n \"\n FORM: (15478..15562)\n OPEN_PAREN: (15478..15479) \"(\"\n SYMBOL: (15479..15492)\n IDENTIFIER: (15479..15492) \"define-syntax\"\n ATMOSPHERE: (15492..15493) \" \"\n SYMBOL: (15493..15504)\n IDENTIFIER: (15493..15504) \"underscore2\"\n ATMOSPHERE: (15504..15509) \"\n \"\n FORM: (15509..15561)\n OPEN_PAREN: (15509..15510) \"(\"\n SYMBOL: (15510..15522)\n IDENTIFIER: (15510..15522) \"syntax-rules\"\n ATMOSPHERE: (15522..15523) \" \"\n FORM: (15523..15525)\n OPEN_PAREN: (15523..15524) \"(\"\n CLOSE_PAREN: (15524..15525) \")\"\n ATMOSPHERE: (15525..15532) \"\n \"\n FORM: (15532..15560)\n OPEN_PAREN: (15532..15533) \"(\"\n FORM: (15533..15556)\n OPEN_PAREN: (15533..15534) \"(\"\n SYMBOL: (15534..15545)\n IDENTIFIER: (15534..15545) \"underscore2\"\n ATMOSPHERE: (15545..15546) \" \"\n FORM: (15546..15551)\n OPEN_PAREN: (15546..15547) \"(\"\n SYMBOL: (15547..15548)\n IDENTIFIER: (15547..15548) \"a\"\n ATMOSPHERE: (15548..15549) \" \"\n SYMBOL: (15549..15550)\n IDENTIFIER: (15549..15550) \"_\"\n CLOSE_PAREN: (15550..15551) \")\"\n ATMOSPHERE: (15551..15552) \" \"\n SYMBOL: (15552..15555)\n IDENTIFIER: (15552..15555) \"...\"\n CLOSE_PAREN: (15555..15556) \")\"\n ATMOSPHERE: (15556..15557) \" \"\n CONSTANT: (15557..15559)\n NUMBER: (15557..15559) \"42\"\n CLOSE_PAREN: (15559..15560) \")\"\n CLOSE_PAREN: (15560..15561) \")\"\n CLOSE_PAREN: (15561..15562) \")\"\n ATMOSPHERE: (15562..15565) \"\n \"\n FORM: (15565..15594)\n OPEN_PAREN: (15565..15566) \"(\"\n SYMBOL: (15566..15570)\n IDENTIFIER: (15566..15570) \"test\"\n ATMOSPHERE: (15570..15571) \" \"\n CONSTANT: (15571..15573)\n NUMBER: (15571..15573) \"42\"\n ATMOSPHERE: (15573..15574) \" \"\n FORM: (15574..15593)\n OPEN_PAREN: (15574..15575) \"(\"\n SYMBOL: (15575..15586)\n IDENTIFIER: (15575..15586) \"underscore2\"\n ATMOSPHERE: (15586..15587) \" \"\n FORM: (15587..15592)\n OPEN_PAREN: (15587..15588) \"(\"\n CONSTANT: (15588..15589)\n NUMBER: (15588..15589) \"1\"\n ATMOSPHERE: (15589..15590) \" \"\n CONSTANT: (15590..15591)\n NUMBER: (15590..15591) \"2\"\n CLOSE_PAREN: (15591..15592) \")\"\n CLOSE_PAREN: (15592..15593) \")\"\n CLOSE_PAREN: (15593..15594) \")\"\n CLOSE_PAREN: (15594..15595) \")\"\n ATMOSPHERE: (15595..15597) \"\n\n\"\n FORM: (15597..15705)\n OPEN_PAREN: (15597..15598) \"(\"\n SYMBOL: (15598..15611)\n IDENTIFIER: (15598..15611) \"define-syntax\"\n ATMOSPHERE: (15611..15612) \" \"\n SYMBOL: (15612..15622)\n IDENTIFIER: (15612..15622) \"count-to-2\"\n ATMOSPHERE: (15622..15625) \"\n \"\n FORM: (15625..15704)\n OPEN_PAREN: (15625..15626) \"(\"\n SYMBOL: (15626..15638)\n IDENTIFIER: (15626..15638) \"syntax-rules\"\n ATMOSPHERE: (15638..15639) \" \"\n FORM: (15639..15641)\n OPEN_PAREN: (15639..15640) \"(\"\n CLOSE_PAREN: (15640..15641) \")\"\n ATMOSPHERE: (15641..15646) \"\n \"\n FORM: (15646..15653)\n OPEN_PAREN: (15646..15647) \"(\"\n FORM: (15647..15650)\n OPEN_PAREN: (15647..15648) \"(\"\n SYMBOL: (15648..15649)\n IDENTIFIER: (15648..15649) \"_\"\n CLOSE_PAREN: (15649..15650) \")\"\n ATMOSPHERE: (15650..15651) \" \"\n CONSTANT: (15651..15652)\n NUMBER: (15651..15652) \"0\"\n CLOSE_PAREN: (15652..15653) \")\"\n ATMOSPHERE: (15653..15658) \"\n \"\n FORM: (15658..15667)\n OPEN_PAREN: (15658..15659) \"(\"\n FORM: (15659..15664)\n OPEN_PAREN: (15659..15660) \"(\"\n SYMBOL: (15660..15661)\n IDENTIFIER: (15660..15661) \"_\"\n ATMOSPHERE: (15661..15662) \" \"\n SYMBOL: (15662..15663)\n IDENTIFIER: (15662..15663) \"_\"\n CLOSE_PAREN: (15663..15664) \")\"\n ATMOSPHERE: (15664..15665) \" \"\n CONSTANT: (15665..15666)\n NUMBER: (15665..15666) \"1\"\n CLOSE_PAREN: (15666..15667) \")\"\n ATMOSPHERE: (15667..15672) \"\n \"\n FORM: (15672..15683)\n OPEN_PAREN: (15672..15673) \"(\"\n FORM: (15673..15680)\n OPEN_PAREN: (15673..15674) \"(\"\n SYMBOL: (15674..15675)\n IDENTIFIER: (15674..15675) \"_\"\n ATMOSPHERE: (15675..15676) \" \"\n SYMBOL: (15676..15677)\n IDENTIFIER: (15676..15677) \"_\"\n ATMOSPHERE: (15677..15678) \" \"\n SYMBOL: (15678..15679)\n IDENTIFIER: (15678..15679) \"_\"\n CLOSE_PAREN: (15679..15680) \")\"\n ATMOSPHERE: (15680..15681) \" \"\n CONSTANT: (15681..15682)\n NUMBER: (15681..15682) \"2\"\n CLOSE_PAREN: (15682..15683) \")\"\n ATMOSPHERE: (15683..15688) \"\n \"\n FORM: (15688..15703)\n OPEN_PAREN: (15688..15689) \"(\"\n FORM: (15689..15696)\n OPEN_PAREN: (15689..15690) \"(\"\n SYMBOL: (15690..15691)\n IDENTIFIER: (15690..15691) \"_\"\n ATMOSPHERE: (15691..15692) \" \"\n DOTTED_TAIL: (15692..15695)\n DOT: (15692..15693) \".\"\n ATMOSPHERE: (15693..15694) \" \"\n SYMBOL: (15694..15695)\n IDENTIFIER: (15694..15695) \"_\"\n CLOSE_PAREN: (15695..15696) \")\"\n ATMOSPHERE: (15696..15697) \" \"\n QUOTED_DATUM: (15697..15702)\n QUOTE: (15697..15698) \"'\"\n SYMBOL: (15698..15702)\n IDENTIFIER: (15698..15702) \"many\"\n CLOSE_PAREN: (15702..15703) \")\"\n CLOSE_PAREN: (15703..15704) \")\"\n CLOSE_PAREN: (15704..15705) \")\"\n ATMOSPHERE: (15705..15706) \"\n\"\n FORM: (15706..15786)\n OPEN_PAREN: (15706..15707) \"(\"\n SYMBOL: (15707..15711)\n IDENTIFIER: (15707..15711) \"test\"\n ATMOSPHERE: (15711..15712) \" \"\n QUOTED_DATUM: (15712..15728)\n QUOTE: (15712..15713) \"'\"\n FORM: (15713..15723)\n OPEN_PAREN: (15713..15714) \"(\"\n CONSTANT: (15714..15715)\n NUMBER: (15714..15715) \"2\"\n ATMOSPHERE: (15715..15716) \" \"\n CONSTANT: (15716..15717)\n NUMBER: (15716..15717) \"0\"\n ATMOSPHERE: (15717..15718) \" \"\n SYMBOL: (15718..15722)\n IDENTIFIER: (15718..15722) \"many\"\n CLOSE_PAREN: (15722..15723) \")\"\n ATMOSPHERE: (15723..15728) \"\n \"\n FORM: (15728..15785)\n OPEN_PAREN: (15728..15729) \"(\"\n SYMBOL: (15729..15733)\n IDENTIFIER: (15729..15733) \"list\"\n ATMOSPHERE: (15733..15734) \" \"\n FORM: (15734..15750)\n OPEN_PAREN: (15734..15735) \"(\"\n SYMBOL: (15735..15745)\n IDENTIFIER: (15735..15745) \"count-to-2\"\n ATMOSPHERE: (15745..15746) \" \"\n SYMBOL: (15746..15747)\n IDENTIFIER: (15746..15747) \"a\"\n ATMOSPHERE: (15747..15748) \" \"\n SYMBOL: (15748..15749)\n IDENTIFIER: (15748..15749) \"b\"\n CLOSE_PAREN: (15749..15750) \")\"\n ATMOSPHERE: (15750..15751) \" \"\n FORM: (15751..15763)\n OPEN_PAREN: (15751..15752) \"(\"\n SYMBOL: (15752..15762)\n IDENTIFIER: (15752..15762) \"count-to-2\"\n CLOSE_PAREN: (15762..15763) \")\"\n ATMOSPHERE: (15763..15764) \" \"\n FORM: (15764..15784)\n OPEN_PAREN: (15764..15765) \"(\"\n SYMBOL: (15765..15775)\n IDENTIFIER: (15765..15775) \"count-to-2\"\n ATMOSPHERE: (15775..15776) \" \"\n SYMBOL: (15776..15777)\n IDENTIFIER: (15776..15777) \"a\"\n ATMOSPHERE: (15777..15778) \" \"\n SYMBOL: (15778..15779)\n IDENTIFIER: (15778..15779) \"b\"\n ATMOSPHERE: (15779..15780) \" \"\n SYMBOL: (15780..15781)\n IDENTIFIER: (15780..15781) \"c\"\n ATMOSPHERE: (15781..15782) \" \"\n SYMBOL: (15782..15783)\n IDENTIFIER: (15782..15783) \"d\"\n CLOSE_PAREN: (15783..15784) \")\"\n CLOSE_PAREN: (15784..15785) \")\"\n CLOSE_PAREN: (15785..15786) \")\"\n ATMOSPHERE: (15786..15788) \"\n\n\"\n FORM: (15788..15898)\n OPEN_PAREN: (15788..15789) \"(\"\n SYMBOL: (15789..15802)\n IDENTIFIER: (15789..15802) \"define-syntax\"\n ATMOSPHERE: (15802..15803) \" \"\n SYMBOL: (15803..15814)\n IDENTIFIER: (15803..15814) \"count-to-2_\"\n ATMOSPHERE: (15814..15817) \"\n \"\n FORM: (15817..15897)\n OPEN_PAREN: (15817..15818) \"(\"\n SYMBOL: (15818..15830)\n IDENTIFIER: (15818..15830) \"syntax-rules\"\n ATMOSPHERE: (15830..15831) \" \"\n FORM: (15831..15834)\n OPEN_PAREN: (15831..15832) \"(\"\n SYMBOL: (15832..15833)\n IDENTIFIER: (15832..15833) \"_\"\n CLOSE_PAREN: (15833..15834) \")\"\n ATMOSPHERE: (15834..15839) \"\n \"\n FORM: (15839..15846)\n OPEN_PAREN: (15839..15840) \"(\"\n FORM: (15840..15843)\n OPEN_PAREN: (15840..15841) \"(\"\n SYMBOL: (15841..15842)\n IDENTIFIER: (15841..15842) \"_\"\n CLOSE_PAREN: (15842..15843) \")\"\n ATMOSPHERE: (15843..15844) \" \"\n CONSTANT: (15844..15845)\n NUMBER: (15844..15845) \"0\"\n CLOSE_PAREN: (15845..15846) \")\"\n ATMOSPHERE: (15846..15851) \"\n \"\n FORM: (15851..15860)\n OPEN_PAREN: (15851..15852) \"(\"\n FORM: (15852..15857)\n OPEN_PAREN: (15852..15853) \"(\"\n SYMBOL: (15853..15854)\n IDENTIFIER: (15853..15854) \"_\"\n ATMOSPHERE: (15854..15855) \" \"\n SYMBOL: (15855..15856)\n IDENTIFIER: (15855..15856) \"_\"\n CLOSE_PAREN: (15856..15857) \")\"\n ATMOSPHERE: (15857..15858) \" \"\n CONSTANT: (15858..15859)\n NUMBER: (15858..15859) \"1\"\n CLOSE_PAREN: (15859..15860) \")\"\n ATMOSPHERE: (15860..15865) \"\n \"\n FORM: (15865..15876)\n OPEN_PAREN: (15865..15866) \"(\"\n FORM: (15866..15873)\n OPEN_PAREN: (15866..15867) \"(\"\n SYMBOL: (15867..15868)\n IDENTIFIER: (15867..15868) \"_\"\n ATMOSPHERE: (15868..15869) \" \"\n SYMBOL: (15869..15870)\n IDENTIFIER: (15869..15870) \"_\"\n ATMOSPHERE: (15870..15871) \" \"\n SYMBOL: (15871..15872)\n IDENTIFIER: (15871..15872) \"_\"\n CLOSE_PAREN: (15872..15873) \")\"\n ATMOSPHERE: (15873..15874) \" \"\n CONSTANT: (15874..15875)\n NUMBER: (15874..15875) \"2\"\n CLOSE_PAREN: (15875..15876) \")\"\n ATMOSPHERE: (15876..15881) \"\n \"\n FORM: (15881..15896)\n OPEN_PAREN: (15881..15882) \"(\"\n FORM: (15882..15889)\n OPEN_PAREN: (15882..15883) \"(\"\n SYMBOL: (15883..15884)\n IDENTIFIER: (15883..15884) \"x\"\n ATMOSPHERE: (15884..15885) \" \"\n DOTTED_TAIL: (15885..15888)\n DOT: (15885..15886) \".\"\n ATMOSPHERE: (15886..15887) \" \"\n SYMBOL: (15887..15888)\n IDENTIFIER: (15887..15888) \"y\"\n CLOSE_PAREN: (15888..15889) \")\"\n ATMOSPHERE: (15889..15890) \" \"\n QUOTED_DATUM: (15890..15895)\n QUOTE: (15890..15891) \"'\"\n SYMBOL: (15891..15895)\n IDENTIFIER: (15891..15895) \"fail\"\n CLOSE_PAREN: (15895..15896) \")\"\n CLOSE_PAREN: (15896..15897) \")\"\n CLOSE_PAREN: (15897..15898) \")\"\n ATMOSPHERE: (15898..15899) \"\n\"\n FORM: (15899..16015)\n OPEN_PAREN: (15899..15900) \"(\"\n SYMBOL: (15900..15904)\n IDENTIFIER: (15900..15904) \"test\"\n ATMOSPHERE: (15904..15905) \" \"\n QUOTED_DATUM: (15905..15926)\n QUOTE: (15905..15906) \"'\"\n FORM: (15906..15921)\n OPEN_PAREN: (15906..15907) \"(\"\n CONSTANT: (15907..15908)\n NUMBER: (15907..15908) \"2\"\n ATMOSPHERE: (15908..15909) \" \"\n CONSTANT: (15909..15910)\n NUMBER: (15909..15910) \"0\"\n ATMOSPHERE: (15910..15911) \" \"\n SYMBOL: (15911..15915)\n IDENTIFIER: (15911..15915) \"fail\"\n ATMOSPHERE: (15915..15916) \" \"\n SYMBOL: (15916..15920)\n IDENTIFIER: (15916..15920) \"fail\"\n CLOSE_PAREN: (15920..15921) \")\"\n ATMOSPHERE: (15921..15926) \"\n \"\n FORM: (15926..16014)\n OPEN_PAREN: (15926..15927) \"(\"\n SYMBOL: (15927..15931)\n IDENTIFIER: (15927..15931) \"list\"\n ATMOSPHERE: (15931..15932) \" \"\n FORM: (15932..15949)\n OPEN_PAREN: (15932..15933) \"(\"\n SYMBOL: (15933..15944)\n IDENTIFIER: (15933..15944) \"count-to-2_\"\n ATMOSPHERE: (15944..15945) \" \"\n SYMBOL: (15945..15946)\n IDENTIFIER: (15945..15946) \"_\"\n ATMOSPHERE: (15946..15947) \" \"\n SYMBOL: (15947..15948)\n IDENTIFIER: (15947..15948) \"_\"\n CLOSE_PAREN: (15948..15949) \")\"\n ATMOSPHERE: (15949..15950) \" \"\n FORM: (15950..15963)\n OPEN_PAREN: (15950..15951) \"(\"\n SYMBOL: (15951..15962)\n IDENTIFIER: (15951..15962) \"count-to-2_\"\n CLOSE_PAREN: (15962..15963) \")\"\n ATMOSPHERE: (15963..15974) \"\n \"\n FORM: (15974..15991)\n OPEN_PAREN: (15974..15975) \"(\"\n SYMBOL: (15975..15986)\n IDENTIFIER: (15975..15986) \"count-to-2_\"\n ATMOSPHERE: (15986..15987) \" \"\n SYMBOL: (15987..15988)\n IDENTIFIER: (15987..15988) \"a\"\n ATMOSPHERE: (15988..15989) \" \"\n SYMBOL: (15989..15990)\n IDENTIFIER: (15989..15990) \"b\"\n CLOSE_PAREN: (15990..15991) \")\"\n ATMOSPHERE: (15991..15992) \" \"\n FORM: (15992..16013)\n OPEN_PAREN: (15992..15993) \"(\"\n SYMBOL: (15993..16004)\n IDENTIFIER: (15993..16004) \"count-to-2_\"\n ATMOSPHERE: (16004..16005) \" \"\n SYMBOL: (16005..16006)\n IDENTIFIER: (16005..16006) \"a\"\n ATMOSPHERE: (16006..16007) \" \"\n SYMBOL: (16007..16008)\n IDENTIFIER: (16007..16008) \"b\"\n ATMOSPHERE: (16008..16009) \" \"\n SYMBOL: (16009..16010)\n IDENTIFIER: (16009..16010) \"c\"\n ATMOSPHERE: (16010..16011) \" \"\n SYMBOL: (16011..16012)\n IDENTIFIER: (16011..16012) \"d\"\n CLOSE_PAREN: (16012..16013) \")\"\n CLOSE_PAREN: (16013..16014) \")\"\n CLOSE_PAREN: (16014..16015) \")\"\n ATMOSPHERE: (16015..16017) \"\n\n\"\n FORM: (16017..16209)\n OPEN_PAREN: (16017..16018) \"(\"\n SYMBOL: (16018..16031)\n IDENTIFIER: (16018..16031) \"define-syntax\"\n ATMOSPHERE: (16031..16032) \" \"\n SYMBOL: (16032..16043)\n IDENTIFIER: (16032..16043) \"jabberwocky\"\n ATMOSPHERE: (16043..16046) \"\n \"\n FORM: (16046..16208)\n OPEN_PAREN: (16046..16047) \"(\"\n SYMBOL: (16047..16059)\n IDENTIFIER: (16047..16059) \"syntax-rules\"\n ATMOSPHERE: (16059..16060) \" \"\n FORM: (16060..16062)\n OPEN_PAREN: (16060..16061) \"(\"\n CLOSE_PAREN: (16061..16062) \")\"\n ATMOSPHERE: (16062..16067) \"\n \"\n FORM: (16067..16207)\n OPEN_PAREN: (16067..16068) \"(\"\n FORM: (16068..16078)\n OPEN_PAREN: (16068..16069) \"(\"\n SYMBOL: (16069..16070)\n IDENTIFIER: (16069..16070) \"_\"\n ATMOSPHERE: (16070..16071) \" \"\n SYMBOL: (16071..16077)\n IDENTIFIER: (16071..16077) \"hatter\"\n CLOSE_PAREN: (16077..16078) \")\"\n ATMOSPHERE: (16078..16084) \"\n \"\n FORM: (16084..16206)\n OPEN_PAREN: (16084..16085) \"(\"\n SYMBOL: (16085..16090)\n IDENTIFIER: (16085..16090) \"begin\"\n ATMOSPHERE: (16090..16098) \"\n \"\n FORM: (16098..16120)\n OPEN_PAREN: (16098..16099) \"(\"\n SYMBOL: (16099..16105)\n IDENTIFIER: (16099..16105) \"define\"\n ATMOSPHERE: (16105..16106) \" \"\n SYMBOL: (16106..16116)\n IDENTIFIER: (16106..16116) \"march-hare\"\n ATMOSPHERE: (16116..16117) \" \"\n CONSTANT: (16117..16119)\n NUMBER: (16117..16119) \"42\"\n CLOSE_PAREN: (16119..16120) \")\"\n ATMOSPHERE: (16120..16128) \"\n \"\n FORM: (16128..16205)\n OPEN_PAREN: (16128..16129) \"(\"\n SYMBOL: (16129..16142)\n IDENTIFIER: (16129..16142) \"define-syntax\"\n ATMOSPHERE: (16142..16143) \" \"\n SYMBOL: (16143..16149)\n IDENTIFIER: (16143..16149) \"hatter\"\n ATMOSPHERE: (16149..16159) \"\n \"\n FORM: (16159..16204)\n OPEN_PAREN: (16159..16160) \"(\"\n SYMBOL: (16160..16172)\n IDENTIFIER: (16160..16172) \"syntax-rules\"\n ATMOSPHERE: (16172..16173) \" \"\n FORM: (16173..16175)\n OPEN_PAREN: (16173..16174) \"(\"\n CLOSE_PAREN: (16174..16175) \")\"\n ATMOSPHERE: (16175..16187) \"\n \"\n FORM: (16187..16203)\n OPEN_PAREN: (16187..16188) \"(\"\n FORM: (16188..16191)\n OPEN_PAREN: (16188..16189) \"(\"\n SYMBOL: (16189..16190)\n IDENTIFIER: (16189..16190) \"_\"\n CLOSE_PAREN: (16190..16191) \")\"\n ATMOSPHERE: (16191..16192) \" \"\n SYMBOL: (16192..16202)\n IDENTIFIER: (16192..16202) \"march-hare\"\n CLOSE_PAREN: (16202..16203) \")\"\n CLOSE_PAREN: (16203..16204) \")\"\n CLOSE_PAREN: (16204..16205) \")\"\n CLOSE_PAREN: (16205..16206) \")\"\n CLOSE_PAREN: (16206..16207) \")\"\n CLOSE_PAREN: (16207..16208) \")\"\n CLOSE_PAREN: (16208..16209) \")\"\n ATMOSPHERE: (16209..16210) \"\n\"\n FORM: (16210..16234)\n OPEN_PAREN: (16210..16211) \"(\"\n SYMBOL: (16211..16222)\n IDENTIFIER: (16211..16222) \"jabberwocky\"\n ATMOSPHERE: (16222..16223) \" \"\n SYMBOL: (16223..16233)\n IDENTIFIER: (16223..16233) \"mad-hatter\"\n CLOSE_PAREN: (16233..16234) \")\"\n ATMOSPHERE: (16234..16235) \"\n\"\n FORM: (16235..16257)\n OPEN_PAREN: (16235..16236) \"(\"\n SYMBOL: (16236..16240)\n IDENTIFIER: (16236..16240) \"test\"\n ATMOSPHERE: (16240..16241) \" \"\n CONSTANT: (16241..16243)\n NUMBER: (16241..16243) \"42\"\n ATMOSPHERE: (16243..16244) \" \"\n FORM: (16244..16256)\n OPEN_PAREN: (16244..16245) \"(\"\n SYMBOL: (16245..16255)\n IDENTIFIER: (16245..16255) \"mad-hatter\"\n CLOSE_PAREN: (16255..16256) \")\"\n CLOSE_PAREN: (16256..16257) \")\"\n ATMOSPHERE: (16257..16259) \"\n\n\"\n ATMOSPHERE: (16259..16307) \";; (test 'ok (let ((=> #f)) (cond (#t => 'ok))))\"\n ATMOSPHERE: (16307..16309) \"\n\n\"\n FORM: (16309..16387)\n OPEN_PAREN: (16309..16310) \"(\"\n SYMBOL: (16310..16313)\n IDENTIFIER: (16310..16313) \"let\"\n ATMOSPHERE: (16313..16314) \" \"\n FORM: (16314..16316)\n OPEN_PAREN: (16314..16315) \"(\"\n CLOSE_PAREN: (16315..16316) \")\"\n ATMOSPHERE: (16316..16319) \"\n \"\n FORM: (16319..16331)\n OPEN_PAREN: (16319..16320) \"(\"\n SYMBOL: (16320..16326)\n IDENTIFIER: (16320..16326) \"define\"\n ATMOSPHERE: (16326..16327) \" \"\n SYMBOL: (16327..16328)\n IDENTIFIER: (16327..16328) \"x\"\n ATMOSPHERE: (16328..16329) \" \"\n CONSTANT: (16329..16330)\n NUMBER: (16329..16330) \"1\"\n CLOSE_PAREN: (16330..16331) \")\"\n ATMOSPHERE: (16331..16334) \"\n \"\n FORM: (16334..16373)\n OPEN_PAREN: (16334..16335) \"(\"\n SYMBOL: (16335..16345)\n IDENTIFIER: (16335..16345) \"let-syntax\"\n ATMOSPHERE: (16345..16346) \" \"\n FORM: (16346..16348)\n OPEN_PAREN: (16346..16347) \"(\"\n CLOSE_PAREN: (16347..16348) \")\"\n ATMOSPHERE: (16348..16353) \"\n \"\n FORM: (16353..16365)\n OPEN_PAREN: (16353..16354) \"(\"\n SYMBOL: (16354..16360)\n IDENTIFIER: (16354..16360) \"define\"\n ATMOSPHERE: (16360..16361) \" \"\n SYMBOL: (16361..16362)\n IDENTIFIER: (16361..16362) \"x\"\n ATMOSPHERE: (16362..16363) \" \"\n CONSTANT: (16363..16364)\n NUMBER: (16363..16364) \"2\"\n CLOSE_PAREN: (16364..16365) \")\"\n ATMOSPHERE: (16365..16370) \"\n \"\n CONSTANT: (16370..16372)\n BOOLEAN: (16370..16372) \"#f\"\n CLOSE_PAREN: (16372..16373) \")\"\n ATMOSPHERE: (16373..16376) \"\n \"\n FORM: (16376..16386)\n OPEN_PAREN: (16376..16377) \"(\"\n SYMBOL: (16377..16381)\n IDENTIFIER: (16377..16381) \"test\"\n ATMOSPHERE: (16381..16382) \" \"\n CONSTANT: (16382..16383)\n NUMBER: (16382..16383) \"1\"\n ATMOSPHERE: (16383..16384) \" \"\n SYMBOL: (16384..16385)\n IDENTIFIER: (16384..16385) \"x\"\n CLOSE_PAREN: (16385..16386) \")\"\n CLOSE_PAREN: (16386..16387) \")\"\n ATMOSPHERE: (16387..16389) \"\n\n\"\n FORM: (16389..16565)\n OPEN_PAREN: (16389..16390) \"(\"\n SYMBOL: (16390..16393)\n IDENTIFIER: (16390..16393) \"let\"\n ATMOSPHERE: (16393..16394) \" \"\n FORM: (16394..16396)\n OPEN_PAREN: (16394..16395) \"(\"\n CLOSE_PAREN: (16395..16396) \")\"\n ATMOSPHERE: (16396..16398) \"\n \"\n FORM: (16398..16532)\n OPEN_PAREN: (16398..16399) \"(\"\n SYMBOL: (16399..16412)\n IDENTIFIER: (16399..16412) \"define-syntax\"\n ATMOSPHERE: (16412..16413) \" \"\n SYMBOL: (16413..16416)\n IDENTIFIER: (16413..16416) \"foo\"\n ATMOSPHERE: (16416..16420) \"\n \"\n FORM: (16420..16531)\n OPEN_PAREN: (16420..16421) \"(\"\n SYMBOL: (16421..16433)\n IDENTIFIER: (16421..16433) \"syntax-rules\"\n ATMOSPHERE: (16433..16434) \" \"\n FORM: (16434..16436)\n OPEN_PAREN: (16434..16435) \"(\"\n CLOSE_PAREN: (16435..16436) \")\"\n ATMOSPHERE: (16436..16442) \"\n \"\n FORM: (16442..16530)\n OPEN_PAREN: (16442..16443) \"(\"\n FORM: (16443..16454)\n OPEN_PAREN: (16443..16444) \"(\"\n SYMBOL: (16444..16447)\n IDENTIFIER: (16444..16447) \"foo\"\n ATMOSPHERE: (16447..16448) \" \"\n SYMBOL: (16448..16451)\n IDENTIFIER: (16448..16451) \"bar\"\n ATMOSPHERE: (16451..16452) \" \"\n SYMBOL: (16452..16453)\n IDENTIFIER: (16452..16453) \"y\"\n CLOSE_PAREN: (16453..16454) \")\"\n ATMOSPHERE: (16454..16461) \"\n \"\n FORM: (16461..16529)\n OPEN_PAREN: (16461..16462) \"(\"\n SYMBOL: (16462..16475)\n IDENTIFIER: (16462..16475) \"define-syntax\"\n ATMOSPHERE: (16475..16476) \" \"\n SYMBOL: (16476..16479)\n IDENTIFIER: (16476..16479) \"bar\"\n ATMOSPHERE: (16479..16488) \"\n \"\n FORM: (16488..16528)\n OPEN_PAREN: (16488..16489) \"(\"\n SYMBOL: (16489..16501)\n IDENTIFIER: (16489..16501) \"syntax-rules\"\n ATMOSPHERE: (16501..16502) \" \"\n FORM: (16502..16504)\n OPEN_PAREN: (16502..16503) \"(\"\n CLOSE_PAREN: (16503..16504) \")\"\n ATMOSPHERE: (16504..16515) \"\n \"\n FORM: (16515..16527)\n OPEN_PAREN: (16515..16516) \"(\"\n FORM: (16516..16523)\n OPEN_PAREN: (16516..16517) \"(\"\n SYMBOL: (16517..16520)\n IDENTIFIER: (16517..16520) \"bar\"\n ATMOSPHERE: (16520..16521) \" \"\n SYMBOL: (16521..16522)\n IDENTIFIER: (16521..16522) \"x\"\n CLOSE_PAREN: (16522..16523) \")\"\n ATMOSPHERE: (16523..16524) \" \"\n QUOTED_DATUM: (16524..16526)\n QUOTE: (16524..16525) \"'\"\n SYMBOL: (16525..16526)\n IDENTIFIER: (16525..16526) \"y\"\n CLOSE_PAREN: (16526..16527) \")\"\n CLOSE_PAREN: (16527..16528) \")\"\n CLOSE_PAREN: (16528..16529) \")\"\n CLOSE_PAREN: (16529..16530) \")\"\n CLOSE_PAREN: (16530..16531) \")\"\n CLOSE_PAREN: (16531..16532) \")\"\n ATMOSPHERE: (16532..16534) \"\n \"\n FORM: (16534..16545)\n OPEN_PAREN: (16534..16535) \"(\"\n SYMBOL: (16535..16538)\n IDENTIFIER: (16535..16538) \"foo\"\n ATMOSPHERE: (16538..16539) \" \"\n SYMBOL: (16539..16542)\n IDENTIFIER: (16539..16542) \"bar\"\n ATMOSPHERE: (16542..16543) \" \"\n SYMBOL: (16543..16544)\n IDENTIFIER: (16543..16544) \"x\"\n CLOSE_PAREN: (16544..16545) \")\"\n ATMOSPHERE: (16545..16547) \"\n \"\n FORM: (16547..16564)\n OPEN_PAREN: (16547..16548) \"(\"\n SYMBOL: (16548..16552)\n IDENTIFIER: (16548..16552) \"test\"\n ATMOSPHERE: (16552..16553) \" \"\n QUOTED_DATUM: (16553..16556)\n QUOTE: (16553..16554) \"'\"\n SYMBOL: (16554..16555)\n IDENTIFIER: (16554..16555) \"x\"\n ATMOSPHERE: (16555..16556) \" \"\n FORM: (16556..16563)\n OPEN_PAREN: (16556..16557) \"(\"\n SYMBOL: (16557..16560)\n IDENTIFIER: (16557..16560) \"bar\"\n ATMOSPHERE: (16560..16561) \" \"\n CONSTANT: (16561..16562)\n NUMBER: (16561..16562) \"1\"\n CLOSE_PAREN: (16562..16563) \")\"\n CLOSE_PAREN: (16563..16564) \")\"\n CLOSE_PAREN: (16564..16565) \")\"\n ATMOSPHERE: (16565..16567) \"\n\n\"\n ATMOSPHERE: (16567..16613) \";;; FIXME: Mutual recursion of `define` forms?\"\n ATMOSPHERE: (16613..16614) \"\n\"\n ATMOSPHERE: (16614..16623) \";; (begin\"\n ATMOSPHERE: (16623..16624) \"\n\"\n ATMOSPHERE: (16624..16648) \";; (define-syntax ffoo\"\n ATMOSPHERE: (16648..16649) \"\n\"\n ATMOSPHERE: (16649..16672) \";; (syntax-rules ()\"\n ATMOSPHERE: (16672..16673) \"\n\"\n ATMOSPHERE: (16673..16692) \";; ((ffoo ff)\"\n ATMOSPHERE: (16692..16693) \"\n\"\n ATMOSPHERE: (16693..16709) \";; (begin\"\n ATMOSPHERE: (16709..16710) \"\n\"\n ATMOSPHERE: (16710..16736) \";; (define (ff x)\"\n ATMOSPHERE: (16736..16737) \"\n\"\n ATMOSPHERE: (16737..16758) \";; (gg x))\"\n ATMOSPHERE: (16758..16759) \"\n\"\n ATMOSPHERE: (16759..16785) \";; (define (gg x)\"\n ATMOSPHERE: (16785..16786) \"\n\"\n ATMOSPHERE: (16786..16812) \";; (* x x))))))\"\n ATMOSPHERE: (16812..16813) \"\n\"\n ATMOSPHERE: (16813..16827) \";; (ffoo ff)\"\n ATMOSPHERE: (16827..16828) \"\n\"\n ATMOSPHERE: (16828..16852) \";; (test 100 (ff 10)))\"\n ATMOSPHERE: (16852..16854) \"\n\n\"\n FORM: (16854..16998)\n OPEN_PAREN: (16854..16855) \"(\"\n SYMBOL: (16855..16865)\n IDENTIFIER: (16855..16865) \"let-syntax\"\n ATMOSPHERE: (16865..16866) \" \"\n FORM: (16866..16969)\n OPEN_PAREN: (16866..16867) \"(\"\n FORM: (16867..16968)\n OPEN_PAREN: (16867..16868) \"(\"\n SYMBOL: (16868..16878)\n IDENTIFIER: (16868..16878) \"vector-lit\"\n ATMOSPHERE: (16878..16894) \"\n \"\n FORM: (16894..16967)\n OPEN_PAREN: (16894..16895) \"(\"\n SYMBOL: (16895..16907)\n IDENTIFIER: (16895..16907) \"syntax-rules\"\n ATMOSPHERE: (16907..16908) \" \"\n FORM: (16908..16910)\n OPEN_PAREN: (16908..16909) \"(\"\n CLOSE_PAREN: (16909..16910) \")\"\n ATMOSPHERE: (16910..16928) \"\n \"\n FORM: (16928..16966)\n OPEN_PAREN: (16928..16929) \"(\"\n FORM: (16929..16941)\n OPEN_PAREN: (16929..16930) \"(\"\n SYMBOL: (16930..16940)\n IDENTIFIER: (16930..16940) \"vector-lit\"\n CLOSE_PAREN: (16940..16941) \")\"\n ATMOSPHERE: (16941..16960) \"\n \"\n QUOTED_DATUM: (16960..16965)\n QUOTE: (16960..16961) \"'\"\n VEC: (16961..16965)\n OPEN_PAREN: (16961..16963) \"#(\"\n SYMBOL: (16963..16964)\n IDENTIFIER: (16963..16964) \"b\"\n CLOSE_PAREN: (16964..16965) \")\"\n CLOSE_PAREN: (16965..16966) \")\"\n CLOSE_PAREN: (16966..16967) \")\"\n CLOSE_PAREN: (16967..16968) \")\"\n CLOSE_PAREN: (16968..16969) \")\"\n ATMOSPHERE: (16969..16972) \"\n \"\n FORM: (16972..16997)\n OPEN_PAREN: (16972..16973) \"(\"\n SYMBOL: (16973..16977)\n IDENTIFIER: (16973..16977) \"test\"\n ATMOSPHERE: (16977..16978) \" \"\n QUOTED_DATUM: (16978..16984)\n QUOTE: (16978..16979) \"'\"\n VEC: (16979..16983)\n OPEN_PAREN: (16979..16981) \"#(\"\n SYMBOL: (16981..16982)\n IDENTIFIER: (16981..16982) \"b\"\n CLOSE_PAREN: (16982..16983) \")\"\n ATMOSPHERE: (16983..16984) \" \"\n FORM: (16984..16996)\n OPEN_PAREN: (16984..16985) \"(\"\n SYMBOL: (16985..16995)\n IDENTIFIER: (16985..16995) \"vector-lit\"\n CLOSE_PAREN: (16995..16996) \")\"\n CLOSE_PAREN: (16996..16997) \")\"\n CLOSE_PAREN: (16997..16998) \")\"\n ATMOSPHERE: (16998..17000) \"\n\n\"\n ATMOSPHERE: (17000..17010) \";; (let ()\"\n ATMOSPHERE: (17010..17011) \"\n\"\n ATMOSPHERE: (17011..17040) \";; ;; forward hygienic refs\"\n ATMOSPHERE: (17040..17041) \"\n\"\n ATMOSPHERE: (17041..17067) \";; (define-syntax foo399\"\n ATMOSPHERE: (17067..17068) \"\n\"\n ATMOSPHERE: (17068..17113) \";; (syntax-rules () ((foo399) (bar399))))\"\n ATMOSPHERE: (17113..17114) \"\n\"\n ATMOSPHERE: (17114..17136) \";; (define (quux399)\"\n ATMOSPHERE: (17136..17137) \"\n\"\n ATMOSPHERE: (17137..17153) \";; (foo399))\"\n ATMOSPHERE: (17153..17154) \"\n\"\n ATMOSPHERE: (17154..17175) \";; (define (bar399)\"\n ATMOSPHERE: (17175..17176) \"\n\"\n ATMOSPHERE: (17176..17186) \";; 42)\"\n ATMOSPHERE: (17186..17187) \"\n\"\n ATMOSPHERE: (17187..17212) \";; (test 42 (quux399)))\"\n ATMOSPHERE: (17212..17214) \"\n\n\"\n ATMOSPHERE: (17214..17232) \";;; FIXME: Hygene.\"\n ATMOSPHERE: (17232..17233) \"\n\"\n FORM: (17233..17519)\n OPEN_PAREN: (17233..17234) \"(\"\n SYMBOL: (17234..17244)\n IDENTIFIER: (17234..17244) \"let-syntax\"\n ATMOSPHERE: (17244..17249) \"\n \"\n FORM: (17249..17483)\n OPEN_PAREN: (17249..17250) \"(\"\n FORM: (17250..17482)\n OPEN_PAREN: (17250..17251) \"(\"\n SYMBOL: (17251..17252)\n IDENTIFIER: (17251..17252) \"m\"\n ATMOSPHERE: (17252..17253) \" \"\n FORM: (17253..17481)\n OPEN_PAREN: (17253..17254) \"(\"\n SYMBOL: (17254..17266)\n IDENTIFIER: (17254..17266) \"syntax-rules\"\n ATMOSPHERE: (17266..17267) \" \"\n FORM: (17267..17269)\n OPEN_PAREN: (17267..17268) \"(\"\n CLOSE_PAREN: (17268..17269) \")\"\n ATMOSPHERE: (17269..17280) \"\n \"\n FORM: (17280..17480)\n OPEN_PAREN: (17280..17281) \"(\"\n FORM: (17281..17286)\n OPEN_PAREN: (17281..17282) \"(\"\n SYMBOL: (17282..17283)\n IDENTIFIER: (17282..17283) \"m\"\n ATMOSPHERE: (17283..17284) \" \"\n SYMBOL: (17284..17285)\n IDENTIFIER: (17284..17285) \"x\"\n CLOSE_PAREN: (17285..17286) \")\"\n ATMOSPHERE: (17286..17287) \" \"\n FORM: (17287..17479)\n OPEN_PAREN: (17287..17288) \"(\"\n SYMBOL: (17288..17298)\n IDENTIFIER: (17288..17298) \"let-syntax\"\n ATMOSPHERE: (17298..17320) \"\n \"\n FORM: (17320..17453)\n OPEN_PAREN: (17320..17321) \"(\"\n FORM: (17321..17452)\n OPEN_PAREN: (17321..17322) \"(\"\n SYMBOL: (17322..17323)\n IDENTIFIER: (17322..17323) \"n\"\n ATMOSPHERE: (17323..17324) \" \"\n FORM: (17324..17451)\n OPEN_PAREN: (17324..17325) \"(\"\n SYMBOL: (17325..17337)\n IDENTIFIER: (17325..17337) \"syntax-rules\"\n ATMOSPHERE: (17337..17338) \" \"\n FORM: (17338..17341)\n OPEN_PAREN: (17338..17339) \"(\"\n SYMBOL: (17339..17340)\n IDENTIFIER: (17339..17340) \"k\"\n CLOSE_PAREN: (17340..17341) \")\"\n ATMOSPHERE: (17341..17369) \"\n \"\n FORM: (17369..17396)\n OPEN_PAREN: (17369..17370) \"(\"\n FORM: (17370..17375)\n OPEN_PAREN: (17370..17371) \"(\"\n SYMBOL: (17371..17372)\n IDENTIFIER: (17371..17372) \"n\"\n ATMOSPHERE: (17372..17373) \" \"\n SYMBOL: (17373..17374)\n IDENTIFIER: (17373..17374) \"x\"\n CLOSE_PAREN: (17374..17375) \")\"\n ATMOSPHERE: (17375..17376) \" \"\n QUOTED_DATUM: (17376..17395)\n QUOTE: (17376..17377) \"'\"\n SYMBOL: (17377..17395)\n IDENTIFIER: (17377..17395) \"bound-identifier=?\"\n CLOSE_PAREN: (17395..17396) \")\"\n ATMOSPHERE: (17396..17424) \"\n \"\n FORM: (17424..17450)\n OPEN_PAREN: (17424..17425) \"(\"\n FORM: (17425..17430)\n OPEN_PAREN: (17425..17426) \"(\"\n SYMBOL: (17426..17427)\n IDENTIFIER: (17426..17427) \"n\"\n ATMOSPHERE: (17427..17428) \" \"\n SYMBOL: (17428..17429)\n IDENTIFIER: (17428..17429) \"y\"\n CLOSE_PAREN: (17429..17430) \")\"\n ATMOSPHERE: (17430..17431) \" \"\n QUOTED_DATUM: (17431..17449)\n QUOTE: (17431..17432) \"'\"\n SYMBOL: (17432..17449)\n IDENTIFIER: (17432..17449) \"free-identifier=?\"\n CLOSE_PAREN: (17449..17450) \")\"\n CLOSE_PAREN: (17450..17451) \")\"\n CLOSE_PAREN: (17451..17452) \")\"\n CLOSE_PAREN: (17452..17453) \")\"\n ATMOSPHERE: (17453..17473) \"\n \"\n FORM: (17473..17478)\n OPEN_PAREN: (17473..17474) \"(\"\n SYMBOL: (17474..17475)\n IDENTIFIER: (17474..17475) \"n\"\n ATMOSPHERE: (17475..17476) \" \"\n SYMBOL: (17476..17477)\n IDENTIFIER: (17476..17477) \"z\"\n CLOSE_PAREN: (17477..17478) \")\"\n CLOSE_PAREN: (17478..17479) \")\"\n CLOSE_PAREN: (17479..17480) \")\"\n CLOSE_PAREN: (17480..17481) \")\"\n CLOSE_PAREN: (17481..17482) \")\"\n CLOSE_PAREN: (17482..17483) \")\"\n ATMOSPHERE: (17483..17486) \"\n \"\n FORM: (17486..17518)\n OPEN_PAREN: (17486..17487) \"(\"\n SYMBOL: (17487..17491)\n IDENTIFIER: (17487..17491) \"test\"\n ATMOSPHERE: (17491..17492) \" \"\n QUOTED_DATUM: (17492..17512)\n QUOTE: (17492..17493) \"'\"\n SYMBOL: (17493..17511)\n IDENTIFIER: (17493..17511) \"bound-identifier=?\"\n ATMOSPHERE: (17511..17512) \" \"\n FORM: (17512..17517)\n OPEN_PAREN: (17512..17513) \"(\"\n SYMBOL: (17513..17514)\n IDENTIFIER: (17513..17514) \"m\"\n ATMOSPHERE: (17514..17515) \" \"\n SYMBOL: (17515..17516)\n IDENTIFIER: (17515..17516) \"k\"\n CLOSE_PAREN: (17516..17517) \")\"\n CLOSE_PAREN: (17517..17518) \")\"\n CLOSE_PAREN: (17518..17519) \")\"\n ATMOSPHERE: (17519..17521) \"\n\n\"\n ATMOSPHERE: (17521..17569) \";; literal has priority to ellipsis (R7RS 4.3.2)\"\n ATMOSPHERE: (17569..17570) \"\n\"\n FORM: (17570..17703)\n OPEN_PAREN: (17570..17571) \"(\"\n SYMBOL: (17571..17574)\n IDENTIFIER: (17571..17574) \"let\"\n ATMOSPHERE: (17574..17575) \" \"\n FORM: (17575..17577)\n OPEN_PAREN: (17575..17576) \"(\"\n CLOSE_PAREN: (17576..17577) \")\"\n ATMOSPHERE: (17577..17580) \"\n \"\n FORM: (17580..17665)\n OPEN_PAREN: (17580..17581) \"(\"\n SYMBOL: (17581..17594)\n IDENTIFIER: (17581..17594) \"define-syntax\"\n ATMOSPHERE: (17594..17595) \" \"\n SYMBOL: (17595..17605)\n IDENTIFIER: (17595..17605) \"elli-lit-1\"\n ATMOSPHERE: (17605..17610) \"\n \"\n FORM: (17610..17664)\n OPEN_PAREN: (17610..17611) \"(\"\n SYMBOL: (17611..17623)\n IDENTIFIER: (17611..17623) \"syntax-rules\"\n ATMOSPHERE: (17623..17624) \" \"\n SYMBOL: (17624..17627)\n IDENTIFIER: (17624..17627) \"...\"\n ATMOSPHERE: (17627..17628) \" \"\n FORM: (17628..17633)\n OPEN_PAREN: (17628..17629) \"(\"\n SYMBOL: (17629..17632)\n IDENTIFIER: (17629..17632) \"...\"\n CLOSE_PAREN: (17632..17633) \")\"\n ATMOSPHERE: (17633..17640) \"\n \"\n FORM: (17640..17663)\n OPEN_PAREN: (17640..17641) \"(\"\n FORM: (17641..17646)\n OPEN_PAREN: (17641..17642) \"(\"\n SYMBOL: (17642..17643)\n IDENTIFIER: (17642..17643) \"_\"\n ATMOSPHERE: (17643..17644) \" \"\n SYMBOL: (17644..17645)\n IDENTIFIER: (17644..17645) \"x\"\n CLOSE_PAREN: (17645..17646) \")\"\n ATMOSPHERE: (17646..17654) \"\n \"\n QUOTED_DATUM: (17654..17662)\n QUOTE: (17654..17655) \"'\"\n FORM: (17655..17662)\n OPEN_PAREN: (17655..17656) \"(\"\n SYMBOL: (17656..17657)\n IDENTIFIER: (17656..17657) \"x\"\n ATMOSPHERE: (17657..17658) \" \"\n SYMBOL: (17658..17661)\n IDENTIFIER: (17658..17661) \"...\"\n CLOSE_PAREN: (17661..17662) \")\"\n CLOSE_PAREN: (17662..17663) \")\"\n CLOSE_PAREN: (17663..17664) \")\"\n CLOSE_PAREN: (17664..17665) \")\"\n ATMOSPHERE: (17665..17668) \"\n \"\n FORM: (17668..17702)\n OPEN_PAREN: (17668..17669) \"(\"\n SYMBOL: (17669..17673)\n IDENTIFIER: (17669..17673) \"test\"\n ATMOSPHERE: (17673..17674) \" \"\n QUOTED_DATUM: (17674..17685)\n QUOTE: (17674..17675) \"'\"\n FORM: (17675..17684)\n OPEN_PAREN: (17675..17676) \"(\"\n CONSTANT: (17676..17679)\n NUMBER: (17676..17679) \"100\"\n ATMOSPHERE: (17679..17680) \" \"\n SYMBOL: (17680..17683)\n IDENTIFIER: (17680..17683) \"...\"\n CLOSE_PAREN: (17683..17684) \")\"\n ATMOSPHERE: (17684..17685) \" \"\n FORM: (17685..17701)\n OPEN_PAREN: (17685..17686) \"(\"\n SYMBOL: (17686..17696)\n IDENTIFIER: (17686..17696) \"elli-lit-1\"\n ATMOSPHERE: (17696..17697) \" \"\n CONSTANT: (17697..17700)\n NUMBER: (17697..17700) \"100\"\n CLOSE_PAREN: (17700..17701) \")\"\n CLOSE_PAREN: (17701..17702) \")\"\n CLOSE_PAREN: (17702..17703) \")\"\n ATMOSPHERE: (17703..17705) \"\n\n\"\n ATMOSPHERE: (17705..17720) \";; bad ellipsis\"\n ATMOSPHERE: (17720..17721) \"\n\"\n ATMOSPHERE: (17721..18159) \"#|\n(test 'error\n (guard (exn (else 'error))\n (eval\n '(define-syntax bad-elli-1\n (syntax-rules ()\n ((_ ... x)\n '(... x))))\n (interaction-environment))))\n\n(test 'error\n (guard (exn (else 'error))\n (eval\n '(define-syntax bad-elli-2\n (syntax-rules ()\n ((_ (... x))\n '(... x))))\n (interaction-environment))))\n|#\"\n ATMOSPHERE: (18159..18161) \"\n\n\"\n FORM: (18161..18171)\n OPEN_PAREN: (18161..18162) \"(\"\n SYMBOL: (18162..18170)\n IDENTIFIER: (18162..18170) \"test-end\"\n CLOSE_PAREN: (18170..18171) \")\"\n ATMOSPHERE: (18171..18173) \"\n\n\"\n FORM: (18173..18207)\n OPEN_PAREN: (18173..18174) \"(\"\n SYMBOL: (18174..18184)\n IDENTIFIER: (18174..18184) \"test-begin\"\n ATMOSPHERE: (18184..18185) \" \"\n CONSTANT: (18185..18206)\n STRING: (18185..18206) \"\"5 Program structure\"\"\n CLOSE_PAREN: (18206..18207) \")\"\n ATMOSPHERE: (18207..18209) \"\n\n\"\n FORM: (18209..18245)\n OPEN_PAREN: (18209..18210) \"(\"\n SYMBOL: (18210..18216)\n IDENTIFIER: (18210..18216) \"define\"\n ATMOSPHERE: (18216..18217) \" \"\n SYMBOL: (18217..18221)\n IDENTIFIER: (18217..18221) \"add3\"\n ATMOSPHERE: (18221..18224) \"\n \"\n FORM: (18224..18244)\n OPEN_PAREN: (18224..18225) \"(\"\n SYMBOL: (18225..18231)\n IDENTIFIER: (18225..18231) \"lambda\"\n ATMOSPHERE: (18231..18232) \" \"\n FORM: (18232..18235)\n OPEN_PAREN: (18232..18233) \"(\"\n SYMBOL: (18233..18234)\n IDENTIFIER: (18233..18234) \"x\"\n CLOSE_PAREN: (18234..18235) \")\"\n ATMOSPHERE: (18235..18236) \" \"\n FORM: (18236..18243)\n OPEN_PAREN: (18236..18237) \"(\"\n SYMBOL: (18237..18238)\n IDENTIFIER: (18237..18238) \"+\"\n ATMOSPHERE: (18238..18239) \" \"\n SYMBOL: (18239..18240)\n IDENTIFIER: (18239..18240) \"x\"\n ATMOSPHERE: (18240..18241) \" \"\n CONSTANT: (18241..18242)\n NUMBER: (18241..18242) \"3\"\n CLOSE_PAREN: (18242..18243) \")\"\n CLOSE_PAREN: (18243..18244) \")\"\n CLOSE_PAREN: (18244..18245) \")\"\n ATMOSPHERE: (18245..18246) \"\n\"\n FORM: (18246..18263)\n OPEN_PAREN: (18246..18247) \"(\"\n SYMBOL: (18247..18251)\n IDENTIFIER: (18247..18251) \"test\"\n ATMOSPHERE: (18251..18252) \" \"\n CONSTANT: (18252..18253)\n NUMBER: (18252..18253) \"6\"\n ATMOSPHERE: (18253..18254) \" \"\n FORM: (18254..18262)\n OPEN_PAREN: (18254..18255) \"(\"\n SYMBOL: (18255..18259)\n IDENTIFIER: (18255..18259) \"add3\"\n ATMOSPHERE: (18259..18260) \" \"\n CONSTANT: (18260..18261)\n NUMBER: (18260..18261) \"3\"\n CLOSE_PAREN: (18261..18262) \")\"\n CLOSE_PAREN: (18262..18263) \")\"\n ATMOSPHERE: (18263..18264) \"\n\"\n FORM: (18264..18282)\n OPEN_PAREN: (18264..18265) \"(\"\n SYMBOL: (18265..18271)\n IDENTIFIER: (18265..18271) \"define\"\n ATMOSPHERE: (18271..18272) \" \"\n SYMBOL: (18272..18277)\n IDENTIFIER: (18272..18277) \"first\"\n ATMOSPHERE: (18277..18278) \" \"\n SYMBOL: (18278..18281)\n IDENTIFIER: (18278..18281) \"car\"\n CLOSE_PAREN: (18281..18282) \")\"\n ATMOSPHERE: (18282..18283) \"\n\"\n FORM: (18283..18306)\n OPEN_PAREN: (18283..18284) \"(\"\n SYMBOL: (18284..18288)\n IDENTIFIER: (18284..18288) \"test\"\n ATMOSPHERE: (18288..18289) \" \"\n CONSTANT: (18289..18290)\n NUMBER: (18289..18290) \"1\"\n ATMOSPHERE: (18290..18291) \" \"\n FORM: (18291..18305)\n OPEN_PAREN: (18291..18292) \"(\"\n SYMBOL: (18292..18297)\n IDENTIFIER: (18292..18297) \"first\"\n ATMOSPHERE: (18297..18298) \" \"\n QUOTED_DATUM: (18298..18304)\n QUOTE: (18298..18299) \"'\"\n FORM: (18299..18304)\n OPEN_PAREN: (18299..18300) \"(\"\n CONSTANT: (18300..18301)\n NUMBER: (18300..18301) \"1\"\n ATMOSPHERE: (18301..18302) \" \"\n CONSTANT: (18302..18303)\n NUMBER: (18302..18303) \"2\"\n CLOSE_PAREN: (18303..18304) \")\"\n CLOSE_PAREN: (18304..18305) \")\"\n CLOSE_PAREN: (18305..18306) \")\"\n ATMOSPHERE: (18306..18308) \"\n\n\"\n ATMOSPHERE: (18308..18345) \";;; FIXME: `define` mutual recursion.\"\n ATMOSPHERE: (18345..18346) \"\n\"\n ATMOSPHERE: (18346..18370) \";; (test 45 (let ((x 5))\"\n ATMOSPHERE: (18370..18371) \"\n\"\n ATMOSPHERE: (18371..18411) \";; (define foo (lambda (y) (bar x y)))\"\n ATMOSPHERE: (18411..18412) \"\n\"\n ATMOSPHERE: (18412..18458) \";; (define bar (lambda (a b) (+ (* a b) a)))\"\n ATMOSPHERE: (18458..18459) \"\n\"\n ATMOSPHERE: (18459..18479) \";; (foo (+ x 3))))\"\n ATMOSPHERE: (18479..18481) \"\n\n\"\n ATMOSPHERE: (18481..18493) \";; (test 'ok\"\n ATMOSPHERE: (18493..18494) \"\n\"\n ATMOSPHERE: (18494..18508) \";; (let ()\"\n ATMOSPHERE: (18508..18509) \"\n\"\n ATMOSPHERE: (18509..18545) \";; (define-values () (values))\"\n ATMOSPHERE: (18545..18546) \"\n\"\n ATMOSPHERE: (18546..18560) \";; 'ok))\"\n ATMOSPHERE: (18560..18561) \"\n\"\n ATMOSPHERE: (18561..18571) \";; (test 1\"\n ATMOSPHERE: (18571..18572) \"\n\"\n ATMOSPHERE: (18572..18586) \";; (let ()\"\n ATMOSPHERE: (18586..18587) \"\n\"\n ATMOSPHERE: (18587..18626) \";; (define-values (x) (values 1))\"\n ATMOSPHERE: (18626..18627) \"\n\"\n ATMOSPHERE: (18627..18639) \";; x))\"\n ATMOSPHERE: (18639..18640) \"\n\"\n ATMOSPHERE: (18640..18650) \";; (test 3\"\n ATMOSPHERE: (18650..18651) \"\n\"\n ATMOSPHERE: (18651..18665) \";; (let ()\"\n ATMOSPHERE: (18665..18666) \"\n\"\n ATMOSPHERE: (18666..18705) \";; (define-values x (values 1 2))\"\n ATMOSPHERE: (18705..18706) \"\n\"\n ATMOSPHERE: (18706..18728) \";; (apply + x)))\"\n ATMOSPHERE: (18728..18729) \"\n\"\n ATMOSPHERE: (18729..18739) \";; (test 3\"\n ATMOSPHERE: (18739..18740) \"\n\"\n ATMOSPHERE: (18740..18754) \";; (let ()\"\n ATMOSPHERE: (18754..18755) \"\n\"\n ATMOSPHERE: (18755..18798) \";; (define-values (x y) (values 1 2))\"\n ATMOSPHERE: (18798..18799) \"\n\"\n ATMOSPHERE: (18799..18817) \";; (+ x y)))\"\n ATMOSPHERE: (18817..18818) \"\n\"\n ATMOSPHERE: (18818..18828) \";; (test 6\"\n ATMOSPHERE: (18828..18829) \"\n\"\n ATMOSPHERE: (18829..18843) \";; (let ()\"\n ATMOSPHERE: (18843..18844) \"\n\"\n ATMOSPHERE: (18844..18891) \";; (define-values (x y z) (values 1 2 3))\"\n ATMOSPHERE: (18891..18892) \"\n\"\n ATMOSPHERE: (18892..18912) \";; (+ x y z)))\"\n ATMOSPHERE: (18912..18913) \"\n\"\n ATMOSPHERE: (18913..18924) \";; (test 10\"\n ATMOSPHERE: (18924..18925) \"\n\"\n ATMOSPHERE: (18925..18939) \";; (let ()\"\n ATMOSPHERE: (18939..18940) \"\n\"\n ATMOSPHERE: (18940..18991) \";; (define-values (x y . z) (values 1 2 3 4))\"\n ATMOSPHERE: (18991..18992) \"\n\"\n ATMOSPHERE: (18992..19027) \";; (+ x y (car z) (cadr z))))\"\n ATMOSPHERE: (19027..19029) \"\n\n\"\n ATMOSPHERE: (19029..19063) \";; (test '(2 1) (let ((x 1) (y 2))\"\n ATMOSPHERE: (19063..19064) \"\n\"\n ATMOSPHERE: (19064..19089) \";; (define-syntax swap!\"\n ATMOSPHERE: (19089..19090) \"\n\"\n ATMOSPHERE: (19090..19113) \";; (syntax-rules ()\"\n ATMOSPHERE: (19113..19114) \"\n\"\n ATMOSPHERE: (19114..19135) \";; ((swap! a b)\"\n ATMOSPHERE: (19135..19136) \"\n\"\n ATMOSPHERE: (19136..19160) \";; (let ((tmp a))\"\n ATMOSPHERE: (19160..19161) \"\n\"\n ATMOSPHERE: (19161..19183) \";; (set! a b)\"\n ATMOSPHERE: (19183..19184) \"\n\"\n ATMOSPHERE: (19184..19212) \";; (set! b tmp)))))\"\n ATMOSPHERE: (19212..19213) \"\n\"\n ATMOSPHERE: (19213..19229) \";; (swap! x y)\"\n ATMOSPHERE: (19229..19230) \"\n\"\n ATMOSPHERE: (19230..19247) \";; (list x y)))\"\n ATMOSPHERE: (19247..19249) \"\n\n\"\n ATMOSPHERE: (19249..19262) \";; ;; Records\"\n ATMOSPHERE: (19262..19264) \"\n\n\"\n ATMOSPHERE: (19264..19293) \";; (define-record-type \"\n ATMOSPHERE: (19293..19294) \"\n\"\n ATMOSPHERE: (19294..19309) \";; (kons x y)\"\n ATMOSPHERE: (19309..19310) \"\n\"\n ATMOSPHERE: (19310..19320) \";; pare?\"\n ATMOSPHERE: (19320..19321) \"\n\"\n ATMOSPHERE: (19321..19342) \";; (x kar set-kar!)\"\n ATMOSPHERE: (19342..19343) \"\n\"\n ATMOSPHERE: (19343..19356) \";; (y kdr))\"\n ATMOSPHERE: (19356..19358) \"\n\n\"\n ATMOSPHERE: (19358..19389) \";; (test #t (pare? (kons 1 2)))\"\n ATMOSPHERE: (19389..19390) \"\n\"\n ATMOSPHERE: (19390..19421) \";; (test #f (pare? (cons 1 2)))\"\n ATMOSPHERE: (19421..19422) \"\n\"\n ATMOSPHERE: (19422..19450) \";; (test 1 (kar (kons 1 2)))\"\n ATMOSPHERE: (19450..19451) \"\n\"\n ATMOSPHERE: (19451..19479) \";; (test 2 (kdr (kons 1 2)))\"\n ATMOSPHERE: (19479..19480) \"\n\"\n ATMOSPHERE: (19480..19512) \";; (test 3 (let ((k (kons 1 2)))\"\n ATMOSPHERE: (19512..19513) \"\n\"\n ATMOSPHERE: (19513..19540) \";; (set-kar! k 3)\"\n ATMOSPHERE: (19540..19541) \"\n\"\n ATMOSPHERE: (19541..19563) \";; (kar k)))\"\n ATMOSPHERE: (19563..19565) \"\n\n\"\n FORM: (19565..19575)\n OPEN_PAREN: (19565..19566) \"(\"\n SYMBOL: (19566..19574)\n IDENTIFIER: (19566..19574) \"test-end\"\n CLOSE_PAREN: (19574..19575) \")\"\n ATMOSPHERE: (19575..19577) \"\n\n\"\n ATMOSPHERE: (19577..19652) \";; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\"\n ATMOSPHERE: (19652..19653) \"\n\"\n ATMOSPHERE: (19653..19680) \";; ;; 6 Standard Procedures\"\n ATMOSPHERE: (19680..19682) \"\n\n\"\n FORM: (19682..19723)\n OPEN_PAREN: (19682..19683) \"(\"\n SYMBOL: (19683..19693)\n IDENTIFIER: (19683..19693) \"test-begin\"\n ATMOSPHERE: (19693..19694) \" \"\n CONSTANT: (19694..19722)\n STRING: (19694..19722) \"\"6.1 Equivalence Predicates\"\"\n CLOSE_PAREN: (19722..19723) \")\"\n ATMOSPHERE: (19723..19725) \"\n\n\"\n FORM: (19725..19747)\n OPEN_PAREN: (19725..19726) \"(\"\n SYMBOL: (19726..19730)\n IDENTIFIER: (19726..19730) \"test\"\n ATMOSPHERE: (19730..19731) \" \"\n CONSTANT: (19731..19733)\n BOOLEAN: (19731..19733) \"#t\"\n ATMOSPHERE: (19733..19734) \" \"\n FORM: (19734..19746)\n OPEN_PAREN: (19734..19735) \"(\"\n SYMBOL: (19735..19739)\n IDENTIFIER: (19735..19739) \"eqv?\"\n ATMOSPHERE: (19739..19740) \" \"\n QUOTED_DATUM: (19740..19743)\n QUOTE: (19740..19741) \"'\"\n SYMBOL: (19741..19742)\n IDENTIFIER: (19741..19742) \"a\"\n ATMOSPHERE: (19742..19743) \" \"\n QUOTED_DATUM: (19743..19745)\n QUOTE: (19743..19744) \"'\"\n SYMBOL: (19744..19745)\n IDENTIFIER: (19744..19745) \"a\"\n CLOSE_PAREN: (19745..19746) \")\"\n CLOSE_PAREN: (19746..19747) \")\"\n ATMOSPHERE: (19747..19748) \"\n\"\n FORM: (19748..19770)\n OPEN_PAREN: (19748..19749) \"(\"\n SYMBOL: (19749..19753)\n IDENTIFIER: (19749..19753) \"test\"\n ATMOSPHERE: (19753..19754) \" \"\n CONSTANT: (19754..19756)\n BOOLEAN: (19754..19756) \"#f\"\n ATMOSPHERE: (19756..19757) \" \"\n FORM: (19757..19769)\n OPEN_PAREN: (19757..19758) \"(\"\n SYMBOL: (19758..19762)\n IDENTIFIER: (19758..19762) \"eqv?\"\n ATMOSPHERE: (19762..19763) \" \"\n QUOTED_DATUM: (19763..19766)\n QUOTE: (19763..19764) \"'\"\n SYMBOL: (19764..19765)\n IDENTIFIER: (19764..19765) \"a\"\n ATMOSPHERE: (19765..19766) \" \"\n QUOTED_DATUM: (19766..19768)\n QUOTE: (19766..19767) \"'\"\n SYMBOL: (19767..19768)\n IDENTIFIER: (19767..19768) \"b\"\n CLOSE_PAREN: (19768..19769) \")\"\n CLOSE_PAREN: (19769..19770) \")\"\n ATMOSPHERE: (19770..19771) \"\n\"\n FORM: (19771..19791)\n OPEN_PAREN: (19771..19772) \"(\"\n SYMBOL: (19772..19776)\n IDENTIFIER: (19772..19776) \"test\"\n ATMOSPHERE: (19776..19777) \" \"\n CONSTANT: (19777..19779)\n BOOLEAN: (19777..19779) \"#t\"\n ATMOSPHERE: (19779..19780) \" \"\n FORM: (19780..19790)\n OPEN_PAREN: (19780..19781) \"(\"\n SYMBOL: (19781..19785)\n IDENTIFIER: (19781..19785) \"eqv?\"\n ATMOSPHERE: (19785..19786) \" \"\n CONSTANT: (19786..19787)\n NUMBER: (19786..19787) \"2\"\n ATMOSPHERE: (19787..19788) \" \"\n CONSTANT: (19788..19789)\n NUMBER: (19788..19789) \"2\"\n CLOSE_PAREN: (19789..19790) \")\"\n CLOSE_PAREN: (19790..19791) \")\"\n ATMOSPHERE: (19791..19792) \"\n\"\n FORM: (19792..19816)\n OPEN_PAREN: (19792..19793) \"(\"\n SYMBOL: (19793..19797)\n IDENTIFIER: (19793..19797) \"test\"\n ATMOSPHERE: (19797..19798) \" \"\n CONSTANT: (19798..19800)\n BOOLEAN: (19798..19800) \"#t\"\n ATMOSPHERE: (19800..19801) \" \"\n FORM: (19801..19815)\n OPEN_PAREN: (19801..19802) \"(\"\n SYMBOL: (19802..19806)\n IDENTIFIER: (19802..19806) \"eqv?\"\n ATMOSPHERE: (19806..19807) \" \"\n QUOTED_DATUM: (19807..19811)\n QUOTE: (19807..19808) \"'\"\n FORM: (19808..19810)\n OPEN_PAREN: (19808..19809) \"(\"\n CLOSE_PAREN: (19809..19810) \")\"\n ATMOSPHERE: (19810..19811) \" \"\n QUOTED_DATUM: (19811..19814)\n QUOTE: (19811..19812) \"'\"\n FORM: (19812..19814)\n OPEN_PAREN: (19812..19813) \"(\"\n CLOSE_PAREN: (19813..19814) \")\"\n CLOSE_PAREN: (19814..19815) \")\"\n CLOSE_PAREN: (19815..19816) \")\"\n ATMOSPHERE: (19816..19817) \"\n\"\n FORM: (19817..19853)\n OPEN_PAREN: (19817..19818) \"(\"\n SYMBOL: (19818..19822)\n IDENTIFIER: (19818..19822) \"test\"\n ATMOSPHERE: (19822..19823) \" \"\n CONSTANT: (19823..19825)\n BOOLEAN: (19823..19825) \"#t\"\n ATMOSPHERE: (19825..19826) \" \"\n FORM: (19826..19852)\n OPEN_PAREN: (19826..19827) \"(\"\n SYMBOL: (19827..19831)\n IDENTIFIER: (19827..19831) \"eqv?\"\n ATMOSPHERE: (19831..19832) \" \"\n CONSTANT: (19832..19841)\n NUMBER: (19832..19841) \"100000000\"\n ATMOSPHERE: (19841..19842) \" \"\n CONSTANT: (19842..19851)\n NUMBER: (19842..19851) \"100000000\"\n CLOSE_PAREN: (19851..19852) \")\"\n CLOSE_PAREN: (19852..19853) \")\"\n ATMOSPHERE: (19853..19854) \"\n\"\n FORM: (19854..19892)\n OPEN_PAREN: (19854..19855) \"(\"\n SYMBOL: (19855..19859)\n IDENTIFIER: (19855..19859) \"test\"\n ATMOSPHERE: (19859..19860) \" \"\n CONSTANT: (19860..19862)\n BOOLEAN: (19860..19862) \"#f\"\n ATMOSPHERE: (19862..19863) \" \"\n FORM: (19863..19891)\n OPEN_PAREN: (19863..19864) \"(\"\n SYMBOL: (19864..19868)\n IDENTIFIER: (19864..19868) \"eqv?\"\n ATMOSPHERE: (19868..19869) \" \"\n FORM: (19869..19879)\n OPEN_PAREN: (19869..19870) \"(\"\n SYMBOL: (19870..19874)\n IDENTIFIER: (19870..19874) \"cons\"\n ATMOSPHERE: (19874..19875) \" \"\n CONSTANT: (19875..19876)\n NUMBER: (19875..19876) \"1\"\n ATMOSPHERE: (19876..19877) \" \"\n CONSTANT: (19877..19878)\n NUMBER: (19877..19878) \"2\"\n CLOSE_PAREN: (19878..19879) \")\"\n ATMOSPHERE: (19879..19880) \" \"\n FORM: (19880..19890)\n OPEN_PAREN: (19880..19881) \"(\"\n SYMBOL: (19881..19885)\n IDENTIFIER: (19881..19885) \"cons\"\n ATMOSPHERE: (19885..19886) \" \"\n CONSTANT: (19886..19887)\n NUMBER: (19886..19887) \"1\"\n ATMOSPHERE: (19887..19888) \" \"\n CONSTANT: (19888..19889)\n NUMBER: (19888..19889) \"2\"\n CLOSE_PAREN: (19889..19890) \")\"\n CLOSE_PAREN: (19890..19891) \")\"\n CLOSE_PAREN: (19891..19892) \")\"\n ATMOSPHERE: (19892..19893) \"\n\"\n FORM: (19893..19952)\n OPEN_PAREN: (19893..19894) \"(\"\n SYMBOL: (19894..19898)\n IDENTIFIER: (19894..19898) \"test\"\n ATMOSPHERE: (19898..19899) \" \"\n CONSTANT: (19899..19901)\n BOOLEAN: (19899..19901) \"#f\"\n ATMOSPHERE: (19901..19902) \" \"\n FORM: (19902..19951)\n OPEN_PAREN: (19902..19903) \"(\"\n SYMBOL: (19903..19907)\n IDENTIFIER: (19903..19907) \"eqv?\"\n ATMOSPHERE: (19907..19908) \" \"\n FORM: (19908..19921)\n OPEN_PAREN: (19908..19909) \"(\"\n SYMBOL: (19909..19915)\n IDENTIFIER: (19909..19915) \"lambda\"\n ATMOSPHERE: (19915..19916) \" \"\n FORM: (19916..19918)\n OPEN_PAREN: (19916..19917) \"(\"\n CLOSE_PAREN: (19917..19918) \")\"\n ATMOSPHERE: (19918..19919) \" \"\n CONSTANT: (19919..19920)\n NUMBER: (19919..19920) \"1\"\n CLOSE_PAREN: (19920..19921) \")\"\n ATMOSPHERE: (19921..19937) \"\n \"\n FORM: (19937..19950)\n OPEN_PAREN: (19937..19938) \"(\"\n SYMBOL: (19938..19944)\n IDENTIFIER: (19938..19944) \"lambda\"\n ATMOSPHERE: (19944..19945) \" \"\n FORM: (19945..19947)\n OPEN_PAREN: (19945..19946) \"(\"\n CLOSE_PAREN: (19946..19947) \")\"\n ATMOSPHERE: (19947..19948) \" \"\n CONSTANT: (19948..19949)\n NUMBER: (19948..19949) \"2\"\n CLOSE_PAREN: (19949..19950) \")\"\n CLOSE_PAREN: (19950..19951) \")\"\n CLOSE_PAREN: (19951..19952) \")\"\n ATMOSPHERE: (19952..19953) \"\n\"\n FORM: (19953..19977)\n OPEN_PAREN: (19953..19954) \"(\"\n SYMBOL: (19954..19958)\n IDENTIFIER: (19954..19958) \"test\"\n ATMOSPHERE: (19958..19959) \" \"\n CONSTANT: (19959..19961)\n BOOLEAN: (19959..19961) \"#f\"\n ATMOSPHERE: (19961..19962) \" \"\n FORM: (19962..19976)\n OPEN_PAREN: (19962..19963) \"(\"\n SYMBOL: (19963..19967)\n IDENTIFIER: (19963..19967) \"eqv?\"\n ATMOSPHERE: (19967..19968) \" \"\n CONSTANT: (19968..19970)\n BOOLEAN: (19968..19970) \"#f\"\n ATMOSPHERE: (19970..19971) \" \"\n QUOTED_DATUM: (19971..19975)\n QUOTE: (19971..19972) \"'\"\n SYMBOL: (19972..19975)\n IDENTIFIER: (19972..19975) \"nil\"\n CLOSE_PAREN: (19975..19976) \")\"\n CLOSE_PAREN: (19976..19977) \")\"\n ATMOSPHERE: (19977..19979) \"\n\n\"\n FORM: (19979..20068)\n OPEN_PAREN: (19979..19980) \"(\"\n SYMBOL: (19980..19986)\n IDENTIFIER: (19980..19986) \"define\"\n ATMOSPHERE: (19986..19987) \" \"\n SYMBOL: (19987..19998)\n IDENTIFIER: (19987..19998) \"gen-counter\"\n ATMOSPHERE: (19998..20001) \"\n \"\n FORM: (20001..20067)\n OPEN_PAREN: (20001..20002) \"(\"\n SYMBOL: (20002..20008)\n IDENTIFIER: (20002..20008) \"lambda\"\n ATMOSPHERE: (20008..20009) \" \"\n FORM: (20009..20011)\n OPEN_PAREN: (20009..20010) \"(\"\n CLOSE_PAREN: (20010..20011) \")\"\n ATMOSPHERE: (20011..20016) \"\n \"\n FORM: (20016..20066)\n OPEN_PAREN: (20016..20017) \"(\"\n SYMBOL: (20017..20020)\n IDENTIFIER: (20017..20020) \"let\"\n ATMOSPHERE: (20020..20021) \" \"\n FORM: (20021..20028)\n OPEN_PAREN: (20021..20022) \"(\"\n FORM: (20022..20027)\n OPEN_PAREN: (20022..20023) \"(\"\n SYMBOL: (20023..20024)\n IDENTIFIER: (20023..20024) \"n\"\n ATMOSPHERE: (20024..20025) \" \"\n CONSTANT: (20025..20026)\n NUMBER: (20025..20026) \"0\"\n CLOSE_PAREN: (20026..20027) \")\"\n CLOSE_PAREN: (20027..20028) \")\"\n ATMOSPHERE: (20028..20035) \"\n \"\n FORM: (20035..20065)\n OPEN_PAREN: (20035..20036) \"(\"\n SYMBOL: (20036..20042)\n IDENTIFIER: (20036..20042) \"lambda\"\n ATMOSPHERE: (20042..20043) \" \"\n FORM: (20043..20045)\n OPEN_PAREN: (20043..20044) \"(\"\n CLOSE_PAREN: (20044..20045) \")\"\n ATMOSPHERE: (20045..20046) \" \"\n FORM: (20046..20062)\n OPEN_PAREN: (20046..20047) \"(\"\n SYMBOL: (20047..20051)\n IDENTIFIER: (20047..20051) \"set!\"\n ATMOSPHERE: (20051..20052) \" \"\n SYMBOL: (20052..20053)\n IDENTIFIER: (20052..20053) \"n\"\n ATMOSPHERE: (20053..20054) \" \"\n FORM: (20054..20061)\n OPEN_PAREN: (20054..20055) \"(\"\n SYMBOL: (20055..20056)\n IDENTIFIER: (20055..20056) \"+\"\n ATMOSPHERE: (20056..20057) \" \"\n SYMBOL: (20057..20058)\n IDENTIFIER: (20057..20058) \"n\"\n ATMOSPHERE: (20058..20059) \" \"\n CONSTANT: (20059..20060)\n NUMBER: (20059..20060) \"1\"\n CLOSE_PAREN: (20060..20061) \")\"\n CLOSE_PAREN: (20061..20062) \")\"\n ATMOSPHERE: (20062..20063) \" \"\n SYMBOL: (20063..20064)\n IDENTIFIER: (20063..20064) \"n\"\n CLOSE_PAREN: (20064..20065) \")\"\n CLOSE_PAREN: (20065..20066) \")\"\n CLOSE_PAREN: (20066..20067) \")\"\n CLOSE_PAREN: (20067..20068) \")\"\n ATMOSPHERE: (20068..20069) \"\n\"\n FORM: (20069..20125)\n OPEN_PAREN: (20069..20070) \"(\"\n SYMBOL: (20070..20074)\n IDENTIFIER: (20070..20074) \"test\"\n ATMOSPHERE: (20074..20075) \" \"\n CONSTANT: (20075..20077)\n BOOLEAN: (20075..20077) \"#t\"\n ATMOSPHERE: (20077..20082) \"\n \"\n FORM: (20082..20124)\n OPEN_PAREN: (20082..20083) \"(\"\n SYMBOL: (20083..20086)\n IDENTIFIER: (20083..20086) \"let\"\n ATMOSPHERE: (20086..20087) \" \"\n FORM: (20087..20106)\n OPEN_PAREN: (20087..20088) \"(\"\n FORM: (20088..20105)\n OPEN_PAREN: (20088..20089) \"(\"\n SYMBOL: (20089..20090)\n IDENTIFIER: (20089..20090) \"g\"\n ATMOSPHERE: (20090..20091) \" \"\n FORM: (20091..20104)\n OPEN_PAREN: (20091..20092) \"(\"\n SYMBOL: (20092..20103)\n IDENTIFIER: (20092..20103) \"gen-counter\"\n CLOSE_PAREN: (20103..20104) \")\"\n CLOSE_PAREN: (20104..20105) \")\"\n CLOSE_PAREN: (20105..20106) \")\"\n ATMOSPHERE: (20106..20113) \"\n \"\n FORM: (20113..20123)\n OPEN_PAREN: (20113..20114) \"(\"\n SYMBOL: (20114..20118)\n IDENTIFIER: (20114..20118) \"eqv?\"\n ATMOSPHERE: (20118..20119) \" \"\n SYMBOL: (20119..20120)\n IDENTIFIER: (20119..20120) \"g\"\n ATMOSPHERE: (20120..20121) \" \"\n SYMBOL: (20121..20122)\n IDENTIFIER: (20121..20122) \"g\"\n CLOSE_PAREN: (20122..20123) \")\"\n CLOSE_PAREN: (20123..20124) \")\"\n CLOSE_PAREN: (20124..20125) \")\"\n ATMOSPHERE: (20125..20126) \"\n\"\n FORM: (20126..20170)\n OPEN_PAREN: (20126..20127) \"(\"\n SYMBOL: (20127..20131)\n IDENTIFIER: (20127..20131) \"test\"\n ATMOSPHERE: (20131..20132) \" \"\n CONSTANT: (20132..20134)\n BOOLEAN: (20132..20134) \"#f\"\n ATMOSPHERE: (20134..20135) \" \"\n FORM: (20135..20169)\n OPEN_PAREN: (20135..20136) \"(\"\n SYMBOL: (20136..20140)\n IDENTIFIER: (20136..20140) \"eqv?\"\n ATMOSPHERE: (20140..20141) \" \"\n FORM: (20141..20154)\n OPEN_PAREN: (20141..20142) \"(\"\n SYMBOL: (20142..20153)\n IDENTIFIER: (20142..20153) \"gen-counter\"\n CLOSE_PAREN: (20153..20154) \")\"\n ATMOSPHERE: (20154..20155) \" \"\n FORM: (20155..20168)\n OPEN_PAREN: (20155..20156) \"(\"\n SYMBOL: (20156..20167)\n IDENTIFIER: (20156..20167) \"gen-counter\"\n CLOSE_PAREN: (20167..20168) \")\"\n CLOSE_PAREN: (20168..20169) \")\"\n CLOSE_PAREN: (20169..20170) \")\"\n ATMOSPHERE: (20170..20171) \"\n\"\n FORM: (20171..20259)\n OPEN_PAREN: (20171..20172) \"(\"\n SYMBOL: (20172..20178)\n IDENTIFIER: (20172..20178) \"define\"\n ATMOSPHERE: (20178..20179) \" \"\n SYMBOL: (20179..20188)\n IDENTIFIER: (20179..20188) \"gen-loser\"\n ATMOSPHERE: (20188..20191) \"\n \"\n FORM: (20191..20258)\n OPEN_PAREN: (20191..20192) \"(\"\n SYMBOL: (20192..20198)\n IDENTIFIER: (20192..20198) \"lambda\"\n ATMOSPHERE: (20198..20199) \" \"\n FORM: (20199..20201)\n OPEN_PAREN: (20199..20200) \"(\"\n CLOSE_PAREN: (20200..20201) \")\"\n ATMOSPHERE: (20201..20206) \"\n \"\n FORM: (20206..20257)\n OPEN_PAREN: (20206..20207) \"(\"\n SYMBOL: (20207..20210)\n IDENTIFIER: (20207..20210) \"let\"\n ATMOSPHERE: (20210..20211) \" \"\n FORM: (20211..20218)\n OPEN_PAREN: (20211..20212) \"(\"\n FORM: (20212..20217)\n OPEN_PAREN: (20212..20213) \"(\"\n SYMBOL: (20213..20214)\n IDENTIFIER: (20213..20214) \"n\"\n ATMOSPHERE: (20214..20215) \" \"\n CONSTANT: (20215..20216)\n NUMBER: (20215..20216) \"0\"\n CLOSE_PAREN: (20216..20217) \")\"\n CLOSE_PAREN: (20217..20218) \")\"\n ATMOSPHERE: (20218..20225) \"\n \"\n FORM: (20225..20256)\n OPEN_PAREN: (20225..20226) \"(\"\n SYMBOL: (20226..20232)\n IDENTIFIER: (20226..20232) \"lambda\"\n ATMOSPHERE: (20232..20233) \" \"\n FORM: (20233..20235)\n OPEN_PAREN: (20233..20234) \"(\"\n CLOSE_PAREN: (20234..20235) \")\"\n ATMOSPHERE: (20235..20236) \" \"\n FORM: (20236..20252)\n OPEN_PAREN: (20236..20237) \"(\"\n SYMBOL: (20237..20241)\n IDENTIFIER: (20237..20241) \"set!\"\n ATMOSPHERE: (20241..20242) \" \"\n SYMBOL: (20242..20243)\n IDENTIFIER: (20242..20243) \"n\"\n ATMOSPHERE: (20243..20244) \" \"\n FORM: (20244..20251)\n OPEN_PAREN: (20244..20245) \"(\"\n SYMBOL: (20245..20246)\n IDENTIFIER: (20245..20246) \"+\"\n ATMOSPHERE: (20246..20247) \" \"\n SYMBOL: (20247..20248)\n IDENTIFIER: (20247..20248) \"n\"\n ATMOSPHERE: (20248..20249) \" \"\n CONSTANT: (20249..20250)\n NUMBER: (20249..20250) \"1\"\n CLOSE_PAREN: (20250..20251) \")\"\n CLOSE_PAREN: (20251..20252) \")\"\n ATMOSPHERE: (20252..20253) \" \"\n CONSTANT: (20253..20255)\n NUMBER: (20253..20255) \"27\"\n CLOSE_PAREN: (20255..20256) \")\"\n CLOSE_PAREN: (20256..20257) \")\"\n CLOSE_PAREN: (20257..20258) \")\"\n CLOSE_PAREN: (20258..20259) \")\"\n ATMOSPHERE: (20259..20260) \"\n\"\n FORM: (20260..20306)\n OPEN_PAREN: (20260..20261) \"(\"\n SYMBOL: (20261..20265)\n IDENTIFIER: (20261..20265) \"test\"\n ATMOSPHERE: (20265..20266) \" \"\n CONSTANT: (20266..20268)\n BOOLEAN: (20266..20268) \"#t\"\n ATMOSPHERE: (20268..20269) \" \"\n FORM: (20269..20305)\n OPEN_PAREN: (20269..20270) \"(\"\n SYMBOL: (20270..20273)\n IDENTIFIER: (20270..20273) \"let\"\n ATMOSPHERE: (20273..20274) \" \"\n FORM: (20274..20291)\n OPEN_PAREN: (20274..20275) \"(\"\n FORM: (20275..20290)\n OPEN_PAREN: (20275..20276) \"(\"\n SYMBOL: (20276..20277)\n IDENTIFIER: (20276..20277) \"g\"\n ATMOSPHERE: (20277..20278) \" \"\n FORM: (20278..20289)\n OPEN_PAREN: (20278..20279) \"(\"\n SYMBOL: (20279..20288)\n IDENTIFIER: (20279..20288) \"gen-loser\"\n CLOSE_PAREN: (20288..20289) \")\"\n CLOSE_PAREN: (20289..20290) \")\"\n CLOSE_PAREN: (20290..20291) \")\"\n ATMOSPHERE: (20291..20294) \"\n \"\n FORM: (20294..20304)\n OPEN_PAREN: (20294..20295) \"(\"\n SYMBOL: (20295..20299)\n IDENTIFIER: (20295..20299) \"eqv?\"\n ATMOSPHERE: (20299..20300) \" \"\n SYMBOL: (20300..20301)\n IDENTIFIER: (20300..20301) \"g\"\n ATMOSPHERE: (20301..20302) \" \"\n SYMBOL: (20302..20303)\n IDENTIFIER: (20302..20303) \"g\"\n CLOSE_PAREN: (20303..20304) \")\"\n CLOSE_PAREN: (20304..20305) \")\"\n CLOSE_PAREN: (20305..20306) \")\"\n ATMOSPHERE: (20306..20308) \"\n\n\"\n FORM: (20308..20433)\n OPEN_PAREN: (20308..20309) \"(\"\n SYMBOL: (20309..20313)\n IDENTIFIER: (20309..20313) \"test\"\n ATMOSPHERE: (20313..20314) \" \"\n CONSTANT: (20314..20316)\n BOOLEAN: (20314..20316) \"#f\"\n ATMOSPHERE: (20316..20317) \"\n\"\n FORM: (20317..20432)\n OPEN_PAREN: (20317..20318) \"(\"\n SYMBOL: (20318..20324)\n IDENTIFIER: (20318..20324) \"letrec\"\n ATMOSPHERE: (20324..20325) \" \"\n FORM: (20325..20417)\n OPEN_PAREN: (20325..20326) \"(\"\n FORM: (20326..20366)\n OPEN_PAREN: (20326..20327) \"(\"\n SYMBOL: (20327..20328)\n IDENTIFIER: (20327..20328) \"f\"\n ATMOSPHERE: (20328..20329) \" \"\n FORM: (20329..20365)\n OPEN_PAREN: (20329..20330) \"(\"\n SYMBOL: (20330..20336)\n IDENTIFIER: (20330..20336) \"lambda\"\n ATMOSPHERE: (20336..20337) \" \"\n FORM: (20337..20339)\n OPEN_PAREN: (20337..20338) \"(\"\n CLOSE_PAREN: (20338..20339) \")\"\n ATMOSPHERE: (20339..20340) \" \"\n FORM: (20340..20364)\n OPEN_PAREN: (20340..20341) \"(\"\n SYMBOL: (20341..20343)\n IDENTIFIER: (20341..20343) \"if\"\n ATMOSPHERE: (20343..20344) \" \"\n FORM: (20344..20354)\n OPEN_PAREN: (20344..20345) \"(\"\n SYMBOL: (20345..20349)\n IDENTIFIER: (20345..20349) \"eqv?\"\n ATMOSPHERE: (20349..20350) \" \"\n SYMBOL: (20350..20351)\n IDENTIFIER: (20350..20351) \"f\"\n ATMOSPHERE: (20351..20352) \" \"\n SYMBOL: (20352..20353)\n IDENTIFIER: (20352..20353) \"g\"\n CLOSE_PAREN: (20353..20354) \")\"\n ATMOSPHERE: (20354..20355) \" \"\n QUOTED_DATUM: (20355..20358)\n QUOTE: (20355..20356) \"'\"\n SYMBOL: (20356..20357)\n IDENTIFIER: (20356..20357) \"f\"\n ATMOSPHERE: (20357..20358) \" \"\n QUOTED_DATUM: (20358..20363)\n QUOTE: (20358..20359) \"'\"\n SYMBOL: (20359..20363)\n IDENTIFIER: (20359..20363) \"both\"\n CLOSE_PAREN: (20363..20364) \")\"\n CLOSE_PAREN: (20364..20365) \")\"\n CLOSE_PAREN: (20365..20366) \")\"\n ATMOSPHERE: (20366..20376) \"\n \"\n FORM: (20376..20416)\n OPEN_PAREN: (20376..20377) \"(\"\n SYMBOL: (20377..20378)\n IDENTIFIER: (20377..20378) \"g\"\n ATMOSPHERE: (20378..20379) \" \"\n FORM: (20379..20415)\n OPEN_PAREN: (20379..20380) \"(\"\n SYMBOL: (20380..20386)\n IDENTIFIER: (20380..20386) \"lambda\"\n ATMOSPHERE: (20386..20387) \" \"\n FORM: (20387..20389)\n OPEN_PAREN: (20387..20388) \"(\"\n CLOSE_PAREN: (20388..20389) \")\"\n ATMOSPHERE: (20389..20390) \" \"\n FORM: (20390..20414)\n OPEN_PAREN: (20390..20391) \"(\"\n SYMBOL: (20391..20393)\n IDENTIFIER: (20391..20393) \"if\"\n ATMOSPHERE: (20393..20394) \" \"\n FORM: (20394..20404)\n OPEN_PAREN: (20394..20395) \"(\"\n SYMBOL: (20395..20399)\n IDENTIFIER: (20395..20399) \"eqv?\"\n ATMOSPHERE: (20399..20400) \" \"\n SYMBOL: (20400..20401)\n IDENTIFIER: (20400..20401) \"f\"\n ATMOSPHERE: (20401..20402) \" \"\n SYMBOL: (20402..20403)\n IDENTIFIER: (20402..20403) \"g\"\n CLOSE_PAREN: (20403..20404) \")\"\n ATMOSPHERE: (20404..20405) \" \"\n QUOTED_DATUM: (20405..20408)\n QUOTE: (20405..20406) \"'\"\n SYMBOL: (20406..20407)\n IDENTIFIER: (20406..20407) \"g\"\n ATMOSPHERE: (20407..20408) \" \"\n QUOTED_DATUM: (20408..20413)\n QUOTE: (20408..20409) \"'\"\n SYMBOL: (20409..20413)\n IDENTIFIER: (20409..20413) \"both\"\n CLOSE_PAREN: (20413..20414) \")\"\n CLOSE_PAREN: (20414..20415) \")\"\n CLOSE_PAREN: (20415..20416) \")\"\n CLOSE_PAREN: (20416..20417) \")\"\n ATMOSPHERE: (20417..20421) \"\n \"\n FORM: (20421..20431)\n OPEN_PAREN: (20421..20422) \"(\"\n SYMBOL: (20422..20426)\n IDENTIFIER: (20422..20426) \"eqv?\"\n ATMOSPHERE: (20426..20427) \" \"\n SYMBOL: (20427..20428)\n IDENTIFIER: (20427..20428) \"f\"\n ATMOSPHERE: (20428..20429) \" \"\n SYMBOL: (20429..20430)\n IDENTIFIER: (20429..20430) \"g\"\n CLOSE_PAREN: (20430..20431) \")\"\n CLOSE_PAREN: (20431..20432) \")\"\n CLOSE_PAREN: (20432..20433) \")\"\n ATMOSPHERE: (20433..20435) \"\n\n\"\n FORM: (20435..20482)\n OPEN_PAREN: (20435..20436) \"(\"\n SYMBOL: (20436..20440)\n IDENTIFIER: (20436..20440) \"test\"\n ATMOSPHERE: (20440..20441) \" \"\n CONSTANT: (20441..20443)\n BOOLEAN: (20441..20443) \"#t\"\n ATMOSPHERE: (20443..20448) \"\n \"\n FORM: (20448..20481)\n OPEN_PAREN: (20448..20449) \"(\"\n SYMBOL: (20449..20452)\n IDENTIFIER: (20449..20452) \"let\"\n ATMOSPHERE: (20452..20453) \" \"\n FORM: (20453..20463)\n OPEN_PAREN: (20453..20454) \"(\"\n FORM: (20454..20462)\n OPEN_PAREN: (20454..20455) \"(\"\n SYMBOL: (20455..20456)\n IDENTIFIER: (20455..20456) \"x\"\n ATMOSPHERE: (20456..20457) \" \"\n QUOTED_DATUM: (20457..20461)\n QUOTE: (20457..20458) \"'\"\n FORM: (20458..20461)\n OPEN_PAREN: (20458..20459) \"(\"\n SYMBOL: (20459..20460)\n IDENTIFIER: (20459..20460) \"a\"\n CLOSE_PAREN: (20460..20461) \")\"\n CLOSE_PAREN: (20461..20462) \")\"\n CLOSE_PAREN: (20462..20463) \")\"\n ATMOSPHERE: (20463..20470) \"\n \"\n FORM: (20470..20480)\n OPEN_PAREN: (20470..20471) \"(\"\n SYMBOL: (20471..20475)\n IDENTIFIER: (20471..20475) \"eqv?\"\n ATMOSPHERE: (20475..20476) \" \"\n SYMBOL: (20476..20477)\n IDENTIFIER: (20476..20477) \"x\"\n ATMOSPHERE: (20477..20478) \" \"\n SYMBOL: (20478..20479)\n IDENTIFIER: (20478..20479) \"x\"\n CLOSE_PAREN: (20479..20480) \")\"\n CLOSE_PAREN: (20480..20481) \")\"\n CLOSE_PAREN: (20481..20482) \")\"\n ATMOSPHERE: (20482..20484) \"\n\n\"\n FORM: (20484..20505)\n OPEN_PAREN: (20484..20485) \"(\"\n SYMBOL: (20485..20489)\n IDENTIFIER: (20485..20489) \"test\"\n ATMOSPHERE: (20489..20490) \" \"\n CONSTANT: (20490..20492)\n BOOLEAN: (20490..20492) \"#t\"\n ATMOSPHERE: (20492..20493) \" \"\n FORM: (20493..20504)\n OPEN_PAREN: (20493..20494) \"(\"\n SYMBOL: (20494..20497)\n IDENTIFIER: (20494..20497) \"eq?\"\n ATMOSPHERE: (20497..20498) \" \"\n QUOTED_DATUM: (20498..20501)\n QUOTE: (20498..20499) \"'\"\n SYMBOL: (20499..20500)\n IDENTIFIER: (20499..20500) \"a\"\n ATMOSPHERE: (20500..20501) \" \"\n QUOTED_DATUM: (20501..20503)\n QUOTE: (20501..20502) \"'\"\n SYMBOL: (20502..20503)\n IDENTIFIER: (20502..20503) \"a\"\n CLOSE_PAREN: (20503..20504) \")\"\n CLOSE_PAREN: (20504..20505) \")\"\n ATMOSPHERE: (20505..20506) \"\n\"\n FORM: (20506..20541)\n OPEN_PAREN: (20506..20507) \"(\"\n SYMBOL: (20507..20511)\n IDENTIFIER: (20507..20511) \"test\"\n ATMOSPHERE: (20511..20512) \" \"\n CONSTANT: (20512..20514)\n BOOLEAN: (20512..20514) \"#f\"\n ATMOSPHERE: (20514..20515) \" \"\n FORM: (20515..20540)\n OPEN_PAREN: (20515..20516) \"(\"\n SYMBOL: (20516..20519)\n IDENTIFIER: (20516..20519) \"eq?\"\n ATMOSPHERE: (20519..20520) \" \"\n FORM: (20520..20529)\n OPEN_PAREN: (20520..20521) \"(\"\n SYMBOL: (20521..20525)\n IDENTIFIER: (20521..20525) \"list\"\n ATMOSPHERE: (20525..20526) \" \"\n QUOTED_DATUM: (20526..20528)\n QUOTE: (20526..20527) \"'\"\n SYMBOL: (20527..20528)\n IDENTIFIER: (20527..20528) \"a\"\n CLOSE_PAREN: (20528..20529) \")\"\n ATMOSPHERE: (20529..20530) \" \"\n FORM: (20530..20539)\n OPEN_PAREN: (20530..20531) \"(\"\n SYMBOL: (20531..20535)\n IDENTIFIER: (20531..20535) \"list\"\n ATMOSPHERE: (20535..20536) \" \"\n QUOTED_DATUM: (20536..20538)\n QUOTE: (20536..20537) \"'\"\n SYMBOL: (20537..20538)\n IDENTIFIER: (20537..20538) \"a\"\n CLOSE_PAREN: (20538..20539) \")\"\n CLOSE_PAREN: (20539..20540) \")\"\n CLOSE_PAREN: (20540..20541) \")\"\n ATMOSPHERE: (20541..20542) \"\n\"\n FORM: (20542..20565)\n OPEN_PAREN: (20542..20543) \"(\"\n SYMBOL: (20543..20547)\n IDENTIFIER: (20543..20547) \"test\"\n ATMOSPHERE: (20547..20548) \" \"\n CONSTANT: (20548..20550)\n BOOLEAN: (20548..20550) \"#t\"\n ATMOSPHERE: (20550..20551) \" \"\n FORM: (20551..20564)\n OPEN_PAREN: (20551..20552) \"(\"\n SYMBOL: (20552..20555)\n IDENTIFIER: (20552..20555) \"eq?\"\n ATMOSPHERE: (20555..20556) \" \"\n QUOTED_DATUM: (20556..20560)\n QUOTE: (20556..20557) \"'\"\n FORM: (20557..20559)\n OPEN_PAREN: (20557..20558) \"(\"\n CLOSE_PAREN: (20558..20559) \")\"\n ATMOSPHERE: (20559..20560) \" \"\n QUOTED_DATUM: (20560..20563)\n QUOTE: (20560..20561) \"'\"\n FORM: (20561..20563)\n OPEN_PAREN: (20561..20562) \"(\"\n CLOSE_PAREN: (20562..20563) \")\"\n CLOSE_PAREN: (20563..20564) \")\"\n CLOSE_PAREN: (20564..20565) \")\"\n ATMOSPHERE: (20565..20566) \"\n\"\n FORM: (20566..20612)\n OPEN_PAREN: (20566..20567) \"(\"\n SYMBOL: (20567..20571)\n IDENTIFIER: (20567..20571) \"test\"\n ATMOSPHERE: (20571..20572) \" \"\n CONSTANT: (20572..20574)\n BOOLEAN: (20572..20574) \"#t\"\n ATMOSPHERE: (20574..20579) \"\n \"\n FORM: (20579..20611)\n OPEN_PAREN: (20579..20580) \"(\"\n SYMBOL: (20580..20583)\n IDENTIFIER: (20580..20583) \"let\"\n ATMOSPHERE: (20583..20584) \" \"\n FORM: (20584..20594)\n OPEN_PAREN: (20584..20585) \"(\"\n FORM: (20585..20593)\n OPEN_PAREN: (20585..20586) \"(\"\n SYMBOL: (20586..20587)\n IDENTIFIER: (20586..20587) \"x\"\n ATMOSPHERE: (20587..20588) \" \"\n QUOTED_DATUM: (20588..20592)\n QUOTE: (20588..20589) \"'\"\n FORM: (20589..20592)\n OPEN_PAREN: (20589..20590) \"(\"\n SYMBOL: (20590..20591)\n IDENTIFIER: (20590..20591) \"a\"\n CLOSE_PAREN: (20591..20592) \")\"\n CLOSE_PAREN: (20592..20593) \")\"\n CLOSE_PAREN: (20593..20594) \")\"\n ATMOSPHERE: (20594..20601) \"\n \"\n FORM: (20601..20610)\n OPEN_PAREN: (20601..20602) \"(\"\n SYMBOL: (20602..20605)\n IDENTIFIER: (20602..20605) \"eq?\"\n ATMOSPHERE: (20605..20606) \" \"\n SYMBOL: (20606..20607)\n IDENTIFIER: (20606..20607) \"x\"\n ATMOSPHERE: (20607..20608) \" \"\n SYMBOL: (20608..20609)\n IDENTIFIER: (20608..20609) \"x\"\n CLOSE_PAREN: (20609..20610) \")\"\n CLOSE_PAREN: (20610..20611) \")\"\n CLOSE_PAREN: (20611..20612) \")\"\n ATMOSPHERE: (20612..20613) \"\n\"\n FORM: (20613..20659)\n OPEN_PAREN: (20613..20614) \"(\"\n SYMBOL: (20614..20618)\n IDENTIFIER: (20614..20618) \"test\"\n ATMOSPHERE: (20618..20619) \" \"\n CONSTANT: (20619..20621)\n BOOLEAN: (20619..20621) \"#t\"\n ATMOSPHERE: (20621..20626) \"\n \"\n FORM: (20626..20658)\n OPEN_PAREN: (20626..20627) \"(\"\n SYMBOL: (20627..20630)\n IDENTIFIER: (20627..20630) \"let\"\n ATMOSPHERE: (20630..20631) \" \"\n FORM: (20631..20641)\n OPEN_PAREN: (20631..20632) \"(\"\n FORM: (20632..20640)\n OPEN_PAREN: (20632..20633) \"(\"\n SYMBOL: (20633..20634)\n IDENTIFIER: (20633..20634) \"x\"\n ATMOSPHERE: (20634..20635) \" \"\n QUOTED_DATUM: (20635..20639)\n QUOTE: (20635..20636) \"'\"\n VEC: (20636..20639)\n OPEN_PAREN: (20636..20638) \"#(\"\n CLOSE_PAREN: (20638..20639) \")\"\n CLOSE_PAREN: (20639..20640) \")\"\n CLOSE_PAREN: (20640..20641) \")\"\n ATMOSPHERE: (20641..20648) \"\n \"\n FORM: (20648..20657)\n OPEN_PAREN: (20648..20649) \"(\"\n SYMBOL: (20649..20652)\n IDENTIFIER: (20649..20652) \"eq?\"\n ATMOSPHERE: (20652..20653) \" \"\n SYMBOL: (20653..20654)\n IDENTIFIER: (20653..20654) \"x\"\n ATMOSPHERE: (20654..20655) \" \"\n SYMBOL: (20655..20656)\n IDENTIFIER: (20655..20656) \"x\"\n CLOSE_PAREN: (20656..20657) \")\"\n CLOSE_PAREN: (20657..20658) \")\"\n CLOSE_PAREN: (20658..20659) \")\"\n ATMOSPHERE: (20659..20660) \"\n\"\n FORM: (20660..20716)\n OPEN_PAREN: (20660..20661) \"(\"\n SYMBOL: (20661..20665)\n IDENTIFIER: (20661..20665) \"test\"\n ATMOSPHERE: (20665..20666) \" \"\n CONSTANT: (20666..20668)\n BOOLEAN: (20666..20668) \"#t\"\n ATMOSPHERE: (20668..20673) \"\n \"\n FORM: (20673..20715)\n OPEN_PAREN: (20673..20674) \"(\"\n SYMBOL: (20674..20677)\n IDENTIFIER: (20674..20677) \"let\"\n ATMOSPHERE: (20677..20678) \" \"\n FORM: (20678..20698)\n OPEN_PAREN: (20678..20679) \"(\"\n FORM: (20679..20697)\n OPEN_PAREN: (20679..20680) \"(\"\n SYMBOL: (20680..20681)\n IDENTIFIER: (20680..20681) \"p\"\n ATMOSPHERE: (20681..20682) \" \"\n FORM: (20682..20696)\n OPEN_PAREN: (20682..20683) \"(\"\n SYMBOL: (20683..20689)\n IDENTIFIER: (20683..20689) \"lambda\"\n ATMOSPHERE: (20689..20690) \" \"\n FORM: (20690..20693)\n OPEN_PAREN: (20690..20691) \"(\"\n SYMBOL: (20691..20692)\n IDENTIFIER: (20691..20692) \"x\"\n CLOSE_PAREN: (20692..20693) \")\"\n ATMOSPHERE: (20693..20694) \" \"\n SYMBOL: (20694..20695)\n IDENTIFIER: (20694..20695) \"x\"\n CLOSE_PAREN: (20695..20696) \")\"\n CLOSE_PAREN: (20696..20697) \")\"\n CLOSE_PAREN: (20697..20698) \")\"\n ATMOSPHERE: (20698..20705) \"\n \"\n FORM: (20705..20714)\n OPEN_PAREN: (20705..20706) \"(\"\n SYMBOL: (20706..20709)\n IDENTIFIER: (20706..20709) \"eq?\"\n ATMOSPHERE: (20709..20710) \" \"\n SYMBOL: (20710..20711)\n IDENTIFIER: (20710..20711) \"p\"\n ATMOSPHERE: (20711..20712) \" \"\n SYMBOL: (20712..20713)\n IDENTIFIER: (20712..20713) \"p\"\n CLOSE_PAREN: (20713..20714) \")\"\n CLOSE_PAREN: (20714..20715) \")\"\n CLOSE_PAREN: (20715..20716) \")\"\n ATMOSPHERE: (20716..20718) \"\n\n\"\n FORM: (20718..20742)\n OPEN_PAREN: (20718..20719) \"(\"\n SYMBOL: (20719..20723)\n IDENTIFIER: (20719..20723) \"test\"\n ATMOSPHERE: (20723..20724) \" \"\n CONSTANT: (20724..20726)\n BOOLEAN: (20724..20726) \"#t\"\n ATMOSPHERE: (20726..20727) \" \"\n FORM: (20727..20741)\n OPEN_PAREN: (20727..20728) \"(\"\n SYMBOL: (20728..20734)\n IDENTIFIER: (20728..20734) \"equal?\"\n ATMOSPHERE: (20734..20735) \" \"\n QUOTED_DATUM: (20735..20738)\n QUOTE: (20735..20736) \"'\"\n SYMBOL: (20736..20737)\n IDENTIFIER: (20736..20737) \"a\"\n ATMOSPHERE: (20737..20738) \" \"\n QUOTED_DATUM: (20738..20740)\n QUOTE: (20738..20739) \"'\"\n SYMBOL: (20739..20740)\n IDENTIFIER: (20739..20740) \"a\"\n CLOSE_PAREN: (20740..20741) \")\"\n CLOSE_PAREN: (20741..20742) \")\"\n ATMOSPHERE: (20742..20743) \"\n\"\n FORM: (20743..20771)\n OPEN_PAREN: (20743..20744) \"(\"\n SYMBOL: (20744..20748)\n IDENTIFIER: (20744..20748) \"test\"\n ATMOSPHERE: (20748..20749) \" \"\n CONSTANT: (20749..20751)\n BOOLEAN: (20749..20751) \"#t\"\n ATMOSPHERE: (20751..20752) \" \"\n FORM: (20752..20770)\n OPEN_PAREN: (20752..20753) \"(\"\n SYMBOL: (20753..20759)\n IDENTIFIER: (20753..20759) \"equal?\"\n ATMOSPHERE: (20759..20760) \" \"\n QUOTED_DATUM: (20760..20765)\n QUOTE: (20760..20761) \"'\"\n FORM: (20761..20764)\n OPEN_PAREN: (20761..20762) \"(\"\n SYMBOL: (20762..20763)\n IDENTIFIER: (20762..20763) \"a\"\n CLOSE_PAREN: (20763..20764) \")\"\n ATMOSPHERE: (20764..20765) \" \"\n QUOTED_DATUM: (20765..20769)\n QUOTE: (20765..20766) \"'\"\n FORM: (20766..20769)\n OPEN_PAREN: (20766..20767) \"(\"\n SYMBOL: (20767..20768)\n IDENTIFIER: (20767..20768) \"a\"\n CLOSE_PAREN: (20768..20769) \")\"\n CLOSE_PAREN: (20769..20770) \")\"\n CLOSE_PAREN: (20770..20771) \")\"\n ATMOSPHERE: (20771..20772) \"\n\"\n FORM: (20772..20829)\n OPEN_PAREN: (20772..20773) \"(\"\n SYMBOL: (20773..20777)\n IDENTIFIER: (20773..20777) \"test\"\n ATMOSPHERE: (20777..20778) \" \"\n CONSTANT: (20778..20780)\n BOOLEAN: (20778..20780) \"#t\"\n ATMOSPHERE: (20780..20781) \" \"\n FORM: (20781..20828)\n OPEN_PAREN: (20781..20782) \"(\"\n SYMBOL: (20782..20788)\n IDENTIFIER: (20782..20788) \"equal?\"\n ATMOSPHERE: (20788..20789) \" \"\n QUOTED_DATUM: (20789..20817)\n QUOTE: (20789..20790) \"'\"\n FORM: (20790..20799)\n OPEN_PAREN: (20790..20791) \"(\"\n SYMBOL: (20791..20792)\n IDENTIFIER: (20791..20792) \"a\"\n ATMOSPHERE: (20792..20793) \" \"\n FORM: (20793..20796)\n OPEN_PAREN: (20793..20794) \"(\"\n SYMBOL: (20794..20795)\n IDENTIFIER: (20794..20795) \"b\"\n CLOSE_PAREN: (20795..20796) \")\"\n ATMOSPHERE: (20796..20797) \" \"\n SYMBOL: (20797..20798)\n IDENTIFIER: (20797..20798) \"c\"\n CLOSE_PAREN: (20798..20799) \")\"\n ATMOSPHERE: (20799..20817) \"\n \"\n QUOTED_DATUM: (20817..20827)\n QUOTE: (20817..20818) \"'\"\n FORM: (20818..20827)\n OPEN_PAREN: (20818..20819) \"(\"\n SYMBOL: (20819..20820)\n IDENTIFIER: (20819..20820) \"a\"\n ATMOSPHERE: (20820..20821) \" \"\n FORM: (20821..20824)\n OPEN_PAREN: (20821..20822) \"(\"\n SYMBOL: (20822..20823)\n IDENTIFIER: (20822..20823) \"b\"\n CLOSE_PAREN: (20823..20824) \")\"\n ATMOSPHERE: (20824..20825) \" \"\n SYMBOL: (20825..20826)\n IDENTIFIER: (20825..20826) \"c\"\n CLOSE_PAREN: (20826..20827) \")\"\n CLOSE_PAREN: (20827..20828) \")\"\n CLOSE_PAREN: (20828..20829) \")\"\n ATMOSPHERE: (20829..20830) \"\n\"\n FORM: (20830..20860)\n OPEN_PAREN: (20830..20831) \"(\"\n SYMBOL: (20831..20835)\n IDENTIFIER: (20831..20835) \"test\"\n ATMOSPHERE: (20835..20836) \" \"\n CONSTANT: (20836..20838)\n BOOLEAN: (20836..20838) \"#t\"\n ATMOSPHERE: (20838..20839) \" \"\n FORM: (20839..20859)\n OPEN_PAREN: (20839..20840) \"(\"\n SYMBOL: (20840..20846)\n IDENTIFIER: (20840..20846) \"equal?\"\n ATMOSPHERE: (20846..20847) \" \"\n CONSTANT: (20847..20852)\n STRING: (20847..20852) \"\"abc\"\"\n ATMOSPHERE: (20852..20853) \" \"\n CONSTANT: (20853..20858)\n STRING: (20853..20858) \"\"abc\"\"\n CLOSE_PAREN: (20858..20859) \")\"\n CLOSE_PAREN: (20859..20860) \")\"\n ATMOSPHERE: (20860..20861) \"\n\"\n FORM: (20861..20883)\n OPEN_PAREN: (20861..20862) \"(\"\n SYMBOL: (20862..20866)\n IDENTIFIER: (20862..20866) \"test\"\n ATMOSPHERE: (20866..20867) \" \"\n CONSTANT: (20867..20869)\n BOOLEAN: (20867..20869) \"#t\"\n ATMOSPHERE: (20869..20870) \" \"\n FORM: (20870..20882)\n OPEN_PAREN: (20870..20871) \"(\"\n SYMBOL: (20871..20877)\n IDENTIFIER: (20871..20877) \"equal?\"\n ATMOSPHERE: (20877..20878) \" \"\n CONSTANT: (20878..20879)\n NUMBER: (20878..20879) \"2\"\n ATMOSPHERE: (20879..20880) \" \"\n CONSTANT: (20880..20881)\n NUMBER: (20880..20881) \"2\"\n CLOSE_PAREN: (20881..20882) \")\"\n CLOSE_PAREN: (20882..20883) \")\"\n ATMOSPHERE: (20883..20884) \"\n\"\n FORM: (20884..20957)\n OPEN_PAREN: (20884..20885) \"(\"\n SYMBOL: (20885..20889)\n IDENTIFIER: (20885..20889) \"test\"\n ATMOSPHERE: (20889..20890) \" \"\n CONSTANT: (20890..20892)\n BOOLEAN: (20890..20892) \"#t\"\n ATMOSPHERE: (20892..20893) \" \"\n FORM: (20893..20956)\n OPEN_PAREN: (20893..20894) \"(\"\n SYMBOL: (20894..20900)\n IDENTIFIER: (20894..20900) \"equal?\"\n ATMOSPHERE: (20900..20901) \" \"\n FORM: (20901..20919)\n OPEN_PAREN: (20901..20902) \"(\"\n SYMBOL: (20902..20913)\n IDENTIFIER: (20902..20913) \"make-vector\"\n ATMOSPHERE: (20913..20914) \" \"\n CONSTANT: (20914..20915)\n NUMBER: (20914..20915) \"5\"\n ATMOSPHERE: (20915..20916) \" \"\n QUOTED_DATUM: (20916..20918)\n QUOTE: (20916..20917) \"'\"\n SYMBOL: (20917..20918)\n IDENTIFIER: (20917..20918) \"a\"\n CLOSE_PAREN: (20918..20919) \")\"\n ATMOSPHERE: (20919..20937) \"\n \"\n FORM: (20937..20955)\n OPEN_PAREN: (20937..20938) \"(\"\n SYMBOL: (20938..20949)\n IDENTIFIER: (20938..20949) \"make-vector\"\n ATMOSPHERE: (20949..20950) \" \"\n CONSTANT: (20950..20951)\n NUMBER: (20950..20951) \"5\"\n ATMOSPHERE: (20951..20952) \" \"\n QUOTED_DATUM: (20952..20954)\n QUOTE: (20952..20953) \"'\"\n SYMBOL: (20953..20954)\n IDENTIFIER: (20953..20954) \"a\"\n CLOSE_PAREN: (20954..20955) \")\"\n CLOSE_PAREN: (20955..20956) \")\"\n CLOSE_PAREN: (20956..20957) \")\"\n ATMOSPHERE: (20957..20959) \"\n\n\"\n FORM: (20959..20969)\n OPEN_PAREN: (20959..20960) \"(\"\n SYMBOL: (20960..20968)\n IDENTIFIER: (20960..20968) \"test-end\"\n CLOSE_PAREN: (20968..20969) \")\"\n ATMOSPHERE: (20969..20971) \"\n\n\"\n FORM: (20971..20997)\n OPEN_PAREN: (20971..20972) \"(\"\n SYMBOL: (20972..20982)\n IDENTIFIER: (20972..20982) \"test-begin\"\n ATMOSPHERE: (20982..20983) \" \"\n CONSTANT: (20983..20996)\n STRING: (20983..20996) \"\"6.2 Numbers\"\"\n CLOSE_PAREN: (20996..20997) \")\"\n ATMOSPHERE: (20997..20999) \"\n\n\"\n ATMOSPHERE: (20999..21027) \";; (test #t (complex? 3+4i))\"\n ATMOSPHERE: (21027..21028) \"\n\"\n ATMOSPHERE: (21028..21053) \";; (test #t (complex? 3))\"\n ATMOSPHERE: (21053..21054) \"\n\"\n ATMOSPHERE: (21054..21076) \";; (test #t (real? 3))\"\n ATMOSPHERE: (21076..21077) \"\n\"\n ATMOSPHERE: (21077..21105) \";; (test #t (real? -2.5+0i))\"\n ATMOSPHERE: (21105..21106) \"\n\"\n ATMOSPHERE: (21106..21136) \";; (test #f (real? -2.5+0.0i))\"\n ATMOSPHERE: (21136..21137) \"\n\"\n ATMOSPHERE: (21137..21164) \";; (test #t (real? #e1e10))\"\n ATMOSPHERE: (21164..21165) \"\n\"\n ATMOSPHERE: (21165..21192) \";; (test #t (real? +inf.0))\"\n ATMOSPHERE: (21192..21193) \"\n\"\n ATMOSPHERE: (21193..21224) \";; (test #f (rational? -inf.0))\"\n ATMOSPHERE: (21224..21225) \"\n\"\n ATMOSPHERE: (21225..21256) \";; (test #f (rational? +nan.0))\"\n ATMOSPHERE: (21256..21257) \"\n\"\n ATMOSPHERE: (21257..21300) \";; (test #t (rational? 9007199254740991.0))\"\n ATMOSPHERE: (21300..21301) \"\n\"\n ATMOSPHERE: (21301..21344) \";; (test #t (rational? 9007199254740992.0))\"\n ATMOSPHERE: (21344..21345) \"\n\"\n ATMOSPHERE: (21345..21392) \";; (test #t (rational? 1.7976931348623157e308))\"\n ATMOSPHERE: (21392..21393) \"\n\"\n ATMOSPHERE: (21393..21422) \";; (test #t (rational? 6/10))\"\n ATMOSPHERE: (21422..21423) \"\n\"\n ATMOSPHERE: (21423..21451) \";; (test #t (rational? 6/3))\"\n ATMOSPHERE: (21451..21452) \"\n\"\n ATMOSPHERE: (21452..21480) \";; (test #t (integer? 3+0i))\"\n ATMOSPHERE: (21480..21481) \"\n\"\n ATMOSPHERE: (21481..21508) \";; (test #t (integer? 3.0))\"\n ATMOSPHERE: (21508..21509) \"\n\"\n ATMOSPHERE: (21509..21536) \";; (test #t (integer? 8/4))\"\n ATMOSPHERE: (21536..21538) \"\n\n\"\n ATMOSPHERE: (21538..21563) \";; (test #f (exact? 3.0))\"\n ATMOSPHERE: (21563..21564) \"\n\"\n ATMOSPHERE: (21564..21591) \";; (test #t (exact? #e3.0))\"\n ATMOSPHERE: (21591..21592) \"\n\"\n ATMOSPHERE: (21592..21618) \";; (test #t (inexact? 3.))\"\n ATMOSPHERE: (21618..21620) \"\n\n\"\n ATMOSPHERE: (21620..21652) \";; (test #t (exact-integer? 32))\"\n ATMOSPHERE: (21652..21653) \"\n\"\n ATMOSPHERE: (21653..21687) \";; (test #f (exact-integer? 32.0))\"\n ATMOSPHERE: (21687..21688) \"\n\"\n ATMOSPHERE: (21688..21722) \";; (test #f (exact-integer? 32/5))\"\n ATMOSPHERE: (21722..21724) \"\n\n\"\n ATMOSPHERE: (21724..21748) \";; (test #t (finite? 3))\"\n ATMOSPHERE: (21748..21749) \"\n\"\n ATMOSPHERE: (21749..21778) \";; (test #f (finite? +inf.0))\"\n ATMOSPHERE: (21778..21779) \"\n\"\n ATMOSPHERE: (21779..21812) \";; (test #f (finite? 3.0+inf.0i))\"\n ATMOSPHERE: (21812..21814) \"\n\n\"\n ATMOSPHERE: (21814..21840) \";; (test #f (infinite? 3))\"\n ATMOSPHERE: (21840..21841) \"\n\"\n ATMOSPHERE: (21841..21872) \";; (test #t (infinite? +inf.0))\"\n ATMOSPHERE: (21872..21873) \"\n\"\n ATMOSPHERE: (21873..21904) \";; (test #f (infinite? +nan.0))\"\n ATMOSPHERE: (21904..21905) \"\n\"\n ATMOSPHERE: (21905..21940) \";; (test #t (infinite? 3.0+inf.0i))\"\n ATMOSPHERE: (21940..21942) \"\n\n\"\n ATMOSPHERE: (21942..21968) \";; (test #t (nan? +nan.0))\"\n ATMOSPHERE: (21968..21969) \"\n\"\n ATMOSPHERE: (21969..21991) \";; (test #f (nan? 32))\"\n ATMOSPHERE: (21991..21992) \"\n\"\n ATMOSPHERE: (21992..22026) \";; ;; (test #t (nan? +nan.0+5.0i))\"\n ATMOSPHERE: (22026..22027) \"\n\"\n ATMOSPHERE: (22027..22051) \";; (test #f (nan? 1+2i))\"\n ATMOSPHERE: (22051..22053) \"\n\n\"\n ATMOSPHERE: (22053..22084) \";; (test #t (= 1 1.0 1.0+0.0i))\"\n ATMOSPHERE: (22084..22085) \"\n\"\n ATMOSPHERE: (22085..22114) \";; (test #f (= 1.0 1.0+1.0i))\"\n ATMOSPHERE: (22114..22115) \"\n\"\n ATMOSPHERE: (22115..22137) \";; (test #t (< 1 2 3))\"\n ATMOSPHERE: (22137..22138) \"\n\"\n ATMOSPHERE: (22138..22160) \";; (test #f (< 1 1 2))\"\n ATMOSPHERE: (22160..22161) \"\n\"\n ATMOSPHERE: (22161..22189) \";; (test #t (> 3.0 2.0 1.0))\"\n ATMOSPHERE: (22189..22190) \"\n\"\n ATMOSPHERE: (22190..22219) \";; (test #f (> -3.0 2.0 1.0))\"\n ATMOSPHERE: (22219..22220) \"\n\"\n ATMOSPHERE: (22220..22243) \";; (test #t (<= 1 1 2))\"\n ATMOSPHERE: (22243..22244) \"\n\"\n ATMOSPHERE: (22244..22267) \";; (test #f (<= 1 2 1))\"\n ATMOSPHERE: (22267..22268) \"\n\"\n ATMOSPHERE: (22268..22291) \";; (test #t (>= 2 1 1))\"\n ATMOSPHERE: (22291..22292) \"\n\"\n ATMOSPHERE: (22292..22315) \";; (test #f (>= 1 2 1))\"\n ATMOSPHERE: (22315..22316) \"\n\"\n ATMOSPHERE: (22316..22341) \";; (test #f (< +nan.0 0))\"\n ATMOSPHERE: (22341..22342) \"\n\"\n ATMOSPHERE: (22342..22367) \";; (test #f (> +nan.0 0))\"\n ATMOSPHERE: (22367..22368) \"\n\"\n ATMOSPHERE: (22368..22395) \";; (test #f (< +nan.0 0.0))\"\n ATMOSPHERE: (22395..22396) \"\n\"\n ATMOSPHERE: (22396..22423) \";; (test #f (> +nan.0 0.0))\"\n ATMOSPHERE: (22423..22424) \"\n\"\n ATMOSPHERE: (22424..22471) \";; (test '(#t #f) (list (<= 1 1 2) (<= 2 1 3)))\"\n ATMOSPHERE: (22471..22473) \"\n\n\"\n ATMOSPHERE: (22473..22516) \";; ;; From R7RS 6.2.6 Numerical operations:\"\n ATMOSPHERE: (22516..22517) \"\n\"\n ATMOSPHERE: (22517..22522) \";; ;;\"\n ATMOSPHERE: (22522..22523) \"\n\"\n ATMOSPHERE: (22523..22576) \";; ;; These predicates are required to be transitive.\"\n ATMOSPHERE: (22576..22577) \"\n\"\n ATMOSPHERE: (22577..22582) \";; ;;\"\n ATMOSPHERE: (22582..22583) \"\n\"\n ATMOSPHERE: (22583..22651) \";; ;; _Note:_ The traditional implementations of these predicates in\"\n ATMOSPHERE: (22651..22652) \"\n\"\n ATMOSPHERE: (22652..22728) \";; ;; Lisp-like languages, which involve converting all arguments to inexact\"\n ATMOSPHERE: (22728..22729) \"\n\"\n ATMOSPHERE: (22729..22790) \";; ;; numbers if any argument is inexact, are not transitive.\"\n ATMOSPHERE: (22790..22792) \"\n\n\"\n ATMOSPHERE: (22792..22822) \";; ;; Example from Alan Bawden\"\n ATMOSPHERE: (22822..22823) \"\n\"\n ATMOSPHERE: (22823..22855) \";; (let ((a (- (expt 2 1000) 1))\"\n ATMOSPHERE: (22855..22856) \"\n\"\n ATMOSPHERE: (22856..22926) \";; (b (inexact (expt 2 1000))) ; assuming > single-float-epsilon\"\n ATMOSPHERE: (22926..22927) \"\n\"\n ATMOSPHERE: (22927..22960) \";; (c (+ (expt 2 1000) 1)))\"\n ATMOSPHERE: (22960..22961) \"\n\"\n ATMOSPHERE: (22961..23000) \";; (test #t (if (and (= a b) (= b c))\"\n ATMOSPHERE: (23000..23001) \"\n\"\n ATMOSPHERE: (23001..23026) \";; (= a c)\"\n ATMOSPHERE: (23026..23027) \"\n\"\n ATMOSPHERE: (23027..23050) \";; #t)))\"\n ATMOSPHERE: (23050..23052) \"\n\n\"\n ATMOSPHERE: (23052..23097) \";; ;; From CLtL 12.3. Comparisons on Numbers:\"\n ATMOSPHERE: (23097..23098) \"\n\"\n ATMOSPHERE: (23098..23103) \";; ;;\"\n ATMOSPHERE: (23103..23104) \"\n\"\n ATMOSPHERE: (23104..23174) \";; ;; Let _a_ be the result of (/ 10.0 single-float-epsilon), and let\"\n ATMOSPHERE: (23174..23175) \"\n\"\n ATMOSPHERE: (23175..23245) \";; ;; _j_ be the result of (floor a). ..., all of (<= a j), (< j (+ j\"\n ATMOSPHERE: (23245..23246) \"\n\"\n ATMOSPHERE: (23246..23315) \";; ;; 1)), and (<= (+ j 1) a) would be true; transitivity would then\"\n ATMOSPHERE: (23315..23316) \"\n\"\n ATMOSPHERE: (23316..23362) \";; ;; imply that (< a a) ought to be true ...\"\n ATMOSPHERE: (23362..23364) \"\n\n\"\n ATMOSPHERE: (23364..23408) \";; ;; Transliteration from Jussi Piitulainen\"\n ATMOSPHERE: (23408..23409) \"\n\"\n ATMOSPHERE: (23409..23440) \";; (define single-float-epsilon\"\n ATMOSPHERE: (23440..23441) \"\n\"\n ATMOSPHERE: (23441..23473) \";; (do ((eps 1.0 (* eps 2.0)))\"\n ATMOSPHERE: (23473..23474) \"\n\"\n ATMOSPHERE: (23474..23510) \";; ((= eps (+ eps 1.0)) eps)))\"\n ATMOSPHERE: (23510..23512) \"\n\n\"\n ATMOSPHERE: (23512..23555) \";; (let* ((a (/ 10.0 single-float-epsilon))\"\n ATMOSPHERE: (23555..23556) \"\n\"\n ATMOSPHERE: (23556..23580) \";; (j (exact a)))\"\n ATMOSPHERE: (23580..23581) \"\n\"\n ATMOSPHERE: (23581..23627) \";; (test #t (if (and (<= a j) (< j (+ j 1)))\"\n ATMOSPHERE: (23627..23628) \"\n\"\n ATMOSPHERE: (23628..23666) \";; (not (<= (+ j 1) a))\"\n ATMOSPHERE: (23666..23667) \"\n\"\n ATMOSPHERE: (23667..23690) \";; #t)))\"\n ATMOSPHERE: (23690..23692) \"\n\n\"\n ATMOSPHERE: (23692..23714) \";; (test #t (zero? 0))\"\n ATMOSPHERE: (23714..23715) \"\n\"\n ATMOSPHERE: (23715..23739) \";; (test #t (zero? 0.0))\"\n ATMOSPHERE: (23739..23740) \"\n\"\n ATMOSPHERE: (23740..23769) \";; (test #t (zero? 0.0+0.0i))\"\n ATMOSPHERE: (23769..23770) \"\n\"\n ATMOSPHERE: (23770..23792) \";; (test #f (zero? 1))\"\n ATMOSPHERE: (23792..23793) \"\n\"\n ATMOSPHERE: (23793..23816) \";; (test #f (zero? -1))\"\n ATMOSPHERE: (23816..23818) \"\n\n\"\n ATMOSPHERE: (23818..23844) \";; (test #f (positive? 0))\"\n ATMOSPHERE: (23844..23845) \"\n\"\n ATMOSPHERE: (23845..23873) \";; (test #f (positive? 0.0))\"\n ATMOSPHERE: (23873..23874) \"\n\"\n ATMOSPHERE: (23874..23900) \";; (test #t (positive? 1))\"\n ATMOSPHERE: (23900..23901) \"\n\"\n ATMOSPHERE: (23901..23929) \";; (test #t (positive? 1.0))\"\n ATMOSPHERE: (23929..23930) \"\n\"\n ATMOSPHERE: (23930..23957) \";; (test #f (positive? -1))\"\n ATMOSPHERE: (23957..23958) \"\n\"\n ATMOSPHERE: (23958..23987) \";; (test #f (positive? -1.0))\"\n ATMOSPHERE: (23987..23988) \"\n\"\n ATMOSPHERE: (23988..24019) \";; (test #t (positive? +inf.0))\"\n ATMOSPHERE: (24019..24020) \"\n\"\n ATMOSPHERE: (24020..24051) \";; (test #f (positive? -inf.0))\"\n ATMOSPHERE: (24051..24052) \"\n\"\n ATMOSPHERE: (24052..24083) \";; (test #f (positive? +nan.0))\"\n ATMOSPHERE: (24083..24085) \"\n\n\"\n ATMOSPHERE: (24085..24111) \";; (test #f (negative? 0))\"\n ATMOSPHERE: (24111..24112) \"\n\"\n ATMOSPHERE: (24112..24140) \";; (test #f (negative? 0.0))\"\n ATMOSPHERE: (24140..24141) \"\n\"\n ATMOSPHERE: (24141..24167) \";; (test #f (negative? 1))\"\n ATMOSPHERE: (24167..24168) \"\n\"\n ATMOSPHERE: (24168..24196) \";; (test #f (negative? 1.0))\"\n ATMOSPHERE: (24196..24197) \"\n\"\n ATMOSPHERE: (24197..24224) \";; (test #t (negative? -1))\"\n ATMOSPHERE: (24224..24225) \"\n\"\n ATMOSPHERE: (24225..24254) \";; (test #t (negative? -1.0))\"\n ATMOSPHERE: (24254..24255) \"\n\"\n ATMOSPHERE: (24255..24286) \";; (test #f (negative? +inf.0))\"\n ATMOSPHERE: (24286..24287) \"\n\"\n ATMOSPHERE: (24287..24318) \";; (test #t (negative? -inf.0))\"\n ATMOSPHERE: (24318..24319) \"\n\"\n ATMOSPHERE: (24319..24350) \";; (test #f (negative? +nan.0))\"\n ATMOSPHERE: (24350..24352) \"\n\n\"\n ATMOSPHERE: (24352..24373) \";; (test #f (odd? 0))\"\n ATMOSPHERE: (24373..24374) \"\n\"\n ATMOSPHERE: (24374..24395) \";; (test #t (odd? 1))\"\n ATMOSPHERE: (24395..24396) \"\n\"\n ATMOSPHERE: (24396..24418) \";; (test #t (odd? -1))\"\n ATMOSPHERE: (24418..24419) \"\n\"\n ATMOSPHERE: (24419..24442) \";; (test #f (odd? 102))\"\n ATMOSPHERE: (24442..24444) \"\n\n\"\n ATMOSPHERE: (24444..24466) \";; (test #t (even? 0))\"\n ATMOSPHERE: (24466..24467) \"\n\"\n ATMOSPHERE: (24467..24489) \";; (test #f (even? 1))\"\n ATMOSPHERE: (24489..24490) \"\n\"\n ATMOSPHERE: (24490..24513) \";; (test #t (even? -2))\"\n ATMOSPHERE: (24513..24514) \"\n\"\n ATMOSPHERE: (24514..24538) \";; (test #t (even? 102))\"\n ATMOSPHERE: (24538..24540) \"\n\n\"\n ATMOSPHERE: (24540..24559) \";; (test 3 (max 3))\"\n ATMOSPHERE: (24559..24560) \"\n\"\n ATMOSPHERE: (24560..24581) \";; (test 4 (max 3 4))\"\n ATMOSPHERE: (24581..24582) \"\n\"\n ATMOSPHERE: (24582..24607) \";; (test 4.0 (max 3.9 4))\"\n ATMOSPHERE: (24607..24608) \"\n\"\n ATMOSPHERE: (24608..24635) \";; (test 5.0 (max 5 3.9 4))\"\n ATMOSPHERE: (24635..24636) \"\n\"\n ATMOSPHERE: (24636..24669) \";; (test +inf.0 (max 100 +inf.0))\"\n ATMOSPHERE: (24669..24670) \"\n\"\n ATMOSPHERE: (24670..24689) \";; (test 3 (min 3))\"\n ATMOSPHERE: (24689..24690) \"\n\"\n ATMOSPHERE: (24690..24711) \";; (test 3 (min 3 4))\"\n ATMOSPHERE: (24711..24712) \"\n\"\n ATMOSPHERE: (24712..24737) \";; (test 3.0 (min 3 3.1))\"\n ATMOSPHERE: (24737..24738) \"\n\"\n ATMOSPHERE: (24738..24772) \";; (test -inf.0 (min -inf.0 -100))\"\n ATMOSPHERE: (24772..24774) \"\n\n\"\n ATMOSPHERE: (24774..24793) \";; (test 7 (+ 3 4))\"\n ATMOSPHERE: (24793..24794) \"\n\"\n ATMOSPHERE: (24794..24811) \";; (test 3 (+ 3))\"\n ATMOSPHERE: (24811..24812) \"\n\"\n ATMOSPHERE: (24812..24827) \";; (test 0 (+))\"\n ATMOSPHERE: (24827..24828) \"\n\"\n ATMOSPHERE: (24828..24845) \";; (test 4 (* 4))\"\n ATMOSPHERE: (24845..24846) \"\n\"\n ATMOSPHERE: (24846..24861) \";; (test 1 (*))\"\n ATMOSPHERE: (24861..24863) \"\n\n\"\n ATMOSPHERE: (24863..24883) \";; (test -1 (- 3 4))\"\n ATMOSPHERE: (24883..24884) \"\n\"\n ATMOSPHERE: (24884..24906) \";; (test -6 (- 3 4 5))\"\n ATMOSPHERE: (24906..24907) \"\n\"\n ATMOSPHERE: (24907..24925) \";; (test -3 (- 3))\"\n ATMOSPHERE: (24925..24926) \"\n\"\n ATMOSPHERE: (24926..24950) \";; (test 3/20 (/ 3 4 5))\"\n ATMOSPHERE: (24950..24951) \"\n\"\n ATMOSPHERE: (24951..24970) \";; (test 1/3 (/ 3))\"\n ATMOSPHERE: (24970..24972) \"\n\n\"\n ATMOSPHERE: (24972..24992) \";; (test 7 (abs -7))\"\n ATMOSPHERE: (24992..24993) \"\n\"\n ATMOSPHERE: (24993..25012) \";; (test 7 (abs 7))\"\n ATMOSPHERE: (25012..25014) \"\n\n\"\n ATMOSPHERE: (25014..25056) \";; (test-values (values 2 1) (floor/ 5 2))\"\n ATMOSPHERE: (25056..25057) \"\n\"\n ATMOSPHERE: (25057..25101) \";; (test-values (values -3 1) (floor/ -5 2))\"\n ATMOSPHERE: (25101..25102) \"\n\"\n ATMOSPHERE: (25102..25147) \";; (test-values (values -3 -1) (floor/ 5 -2))\"\n ATMOSPHERE: (25147..25148) \"\n\"\n ATMOSPHERE: (25148..25193) \";; (test-values (values 2 -1) (floor/ -5 -2))\"\n ATMOSPHERE: (25193..25194) \"\n\"\n ATMOSPHERE: (25194..25239) \";; (test-values (values 2 1) (truncate/ 5 2))\"\n ATMOSPHERE: (25239..25240) \"\n\"\n ATMOSPHERE: (25240..25288) \";; (test-values (values -2 -1) (truncate/ -5 2))\"\n ATMOSPHERE: (25288..25289) \"\n\"\n ATMOSPHERE: (25289..25336) \";; (test-values (values -2 1) (truncate/ 5 -2))\"\n ATMOSPHERE: (25336..25337) \"\n\"\n ATMOSPHERE: (25337..25385) \";; (test-values (values 2 -1) (truncate/ -5 -2))\"\n ATMOSPHERE: (25385..25386) \"\n\"\n ATMOSPHERE: (25386..25440) \";; (test-values (values 2.0 -1.0) (truncate/ -5.0 -2))\"\n ATMOSPHERE: (25440..25442) \"\n\n\"\n ATMOSPHERE: (25442..25467) \";; (test 1 (modulo 13 4))\"\n ATMOSPHERE: (25467..25468) \"\n\"\n ATMOSPHERE: (25468..25496) \";; (test 1 (remainder 13 4))\"\n ATMOSPHERE: (25496..25498) \"\n\n\"\n ATMOSPHERE: (25498..25524) \";; (test 3 (modulo -13 4))\"\n ATMOSPHERE: (25524..25525) \"\n\"\n ATMOSPHERE: (25525..25555) \";; (test -1 (remainder -13 4))\"\n ATMOSPHERE: (25555..25557) \"\n\n\"\n ATMOSPHERE: (25557..25584) \";; (test -3 (modulo 13 -4))\"\n ATMOSPHERE: (25584..25585) \"\n\"\n ATMOSPHERE: (25585..25614) \";; (test 1 (remainder 13 -4))\"\n ATMOSPHERE: (25614..25616) \"\n\n\"\n ATMOSPHERE: (25616..25644) \";; (test -1 (modulo -13 -4))\"\n ATMOSPHERE: (25644..25645) \"\n\"\n ATMOSPHERE: (25645..25676) \";; (test -1 (remainder -13 -4))\"\n ATMOSPHERE: (25676..25678) \"\n\n\"\n ATMOSPHERE: (25678..25713) \";; (test -1.0 (remainder -13 -4.0))\"\n ATMOSPHERE: (25713..25715) \"\n\n\"\n ATMOSPHERE: (25715..25739) \";; (test 4 (gcd 32 -36))\"\n ATMOSPHERE: (25739..25740) \"\n\"\n ATMOSPHERE: (25740..25757) \";; (test 0 (gcd))\"\n ATMOSPHERE: (25757..25758) \"\n\"\n ATMOSPHERE: (25758..25784) \";; (test 288 (lcm 32 -36))\"\n ATMOSPHERE: (25784..25785) \"\n\"\n ATMOSPHERE: (25785..25815) \";; (test 288.0 (lcm 32.0 -36))\"\n ATMOSPHERE: (25815..25816) \"\n\"\n ATMOSPHERE: (25816..25833) \";; (test 1 (lcm))\"\n ATMOSPHERE: (25833..25835) \"\n\n\"\n ATMOSPHERE: (25835..25866) \";; (test 3 (numerator (/ 6 4)))\"\n ATMOSPHERE: (25866..25867) \"\n\"\n ATMOSPHERE: (25867..25900) \";; (test 2 (denominator (/ 6 4)))\"\n ATMOSPHERE: (25900..25901) \"\n\"\n ATMOSPHERE: (25901..25946) \";; (test 2.0 (denominator (inexact (/ 6 4))))\"\n ATMOSPHERE: (25946..25947) \"\n\"\n ATMOSPHERE: (25947..25977) \";; (test 11.0 (numerator 5.5))\"\n ATMOSPHERE: (25977..25978) \"\n\"\n ATMOSPHERE: (25978..26009) \";; (test 2.0 (denominator 5.5))\"\n ATMOSPHERE: (26009..26010) \"\n\"\n ATMOSPHERE: (26010..26039) \";; (test 5.0 (numerator 5.0))\"\n ATMOSPHERE: (26039..26040) \"\n\"\n ATMOSPHERE: (26040..26071) \";; (test 1.0 (denominator 5.0))\"\n ATMOSPHERE: (26071..26073) \"\n\n\"\n ATMOSPHERE: (26073..26100) \";; (test -5.0 (floor -4.3))\"\n ATMOSPHERE: (26100..26101) \"\n\"\n ATMOSPHERE: (26101..26130) \";; (test -4.0 (ceiling -4.3))\"\n ATMOSPHERE: (26130..26131) \"\n\"\n ATMOSPHERE: (26131..26161) \";; (test -4.0 (truncate -4.3))\"\n ATMOSPHERE: (26161..26162) \"\n\"\n ATMOSPHERE: (26162..26189) \";; (test -4.0 (round -4.3))\"\n ATMOSPHERE: (26189..26191) \"\n\n\"\n ATMOSPHERE: (26191..26216) \";; (test 3.0 (floor 3.5))\"\n ATMOSPHERE: (26216..26217) \"\n\"\n ATMOSPHERE: (26217..26244) \";; (test 4.0 (ceiling 3.5))\"\n ATMOSPHERE: (26244..26245) \"\n\"\n ATMOSPHERE: (26245..26273) \";; (test 3.0 (truncate 3.5))\"\n ATMOSPHERE: (26273..26274) \"\n\"\n ATMOSPHERE: (26274..26299) \";; (test 4.0 (round 3.5))\"\n ATMOSPHERE: (26299..26301) \"\n\n\"\n ATMOSPHERE: (26301..26324) \";; (test 4 (round 7/2))\"\n ATMOSPHERE: (26324..26325) \"\n\"\n ATMOSPHERE: (26325..26346) \";; (test 7 (round 7))\"\n ATMOSPHERE: (26346..26347) \"\n\"\n ATMOSPHERE: (26347..26371) \";; (test 1 (round 7/10))\"\n ATMOSPHERE: (26371..26372) \"\n\"\n ATMOSPHERE: (26372..26397) \";; (test -4 (round -7/2))\"\n ATMOSPHERE: (26397..26398) \"\n\"\n ATMOSPHERE: (26398..26421) \";; (test -7 (round -7))\"\n ATMOSPHERE: (26421..26422) \"\n\"\n ATMOSPHERE: (26422..26448) \";; (test -1 (round -7/10))\"\n ATMOSPHERE: (26448..26450) \"\n\n\"\n ATMOSPHERE: (26450..26493) \";; (test 1/3 (rationalize (exact .3) 1/10))\"\n ATMOSPHERE: (26493..26494) \"\n\"\n ATMOSPHERE: (26494..26531) \";; (test #i1/3 (rationalize .3 1/10))\"\n ATMOSPHERE: (26531..26533) \"\n\n\"\n ATMOSPHERE: (26533..26591) \";; (test 1.0 (inexact (exp 0))) ;; may return exact number\"\n ATMOSPHERE: (26591..26592) \"\n\"\n ATMOSPHERE: (26592..26626) \";; (test 20.0855369231877 (exp 3))\"\n ATMOSPHERE: (26626..26628) \"\n\n\"\n ATMOSPHERE: (26628..26686) \";; (test 0.0 (inexact (log 1))) ;; may return exact number\"\n ATMOSPHERE: (26686..26687) \"\n\"\n ATMOSPHERE: (26687..26714) \";; (test 1.0 (log (exp 1)))\"\n ATMOSPHERE: (26714..26715) \"\n\"\n ATMOSPHERE: (26715..26744) \";; (test 42.0 (log (exp 42)))\"\n ATMOSPHERE: (26744..26745) \"\n\"\n ATMOSPHERE: (26745..26771) \";; (test 2.0 (log 100 10))\"\n ATMOSPHERE: (26771..26772) \"\n\"\n ATMOSPHERE: (26772..26799) \";; (test 12.0 (log 4096 2))\"\n ATMOSPHERE: (26799..26801) \"\n\n\"\n ATMOSPHERE: (26801..26859) \";; (test 0.0 (inexact (sin 0))) ;; may return exact number\"\n ATMOSPHERE: (26859..26860) \"\n\"\n ATMOSPHERE: (26860..26895) \";; (test 1.0 (sin 1.5707963267949))\"\n ATMOSPHERE: (26895..26896) \"\n\"\n ATMOSPHERE: (26896..26954) \";; (test 1.0 (inexact (cos 0))) ;; may return exact number\"\n ATMOSPHERE: (26954..26955) \"\n\"\n ATMOSPHERE: (26955..26992) \";; (test -1.0 (cos 3.14159265358979))\"\n ATMOSPHERE: (26992..26993) \"\n\"\n ATMOSPHERE: (26993..27051) \";; (test 0.0 (inexact (tan 0))) ;; may return exact number\"\n ATMOSPHERE: (27051..27052) \"\n\"\n ATMOSPHERE: (27052..27085) \";; (test 1.5574077246549 (tan 1))\"\n ATMOSPHERE: (27085..27087) \"\n\n\"\n ATMOSPHERE: (27087..27146) \";; (test 0.0 (inexact (asin 0))) ;; may return exact number\"\n ATMOSPHERE: (27146..27147) \"\n\"\n ATMOSPHERE: (27147..27181) \";; (test 1.5707963267949 (asin 1))\"\n ATMOSPHERE: (27181..27182) \"\n\"\n ATMOSPHERE: (27182..27241) \";; (test 0.0 (inexact (acos 1))) ;; may return exact number\"\n ATMOSPHERE: (27241..27242) \"\n\"\n ATMOSPHERE: (27242..27278) \";; (test 3.14159265358979 (acos -1))\"\n ATMOSPHERE: (27278..27280) \"\n\n\"\n ATMOSPHERE: (27280..27315) \";; ;; (test 0.0-0.0i (asin 0+0.0i))\"\n ATMOSPHERE: (27315..27316) \"\n\"\n ATMOSPHERE: (27316..27366) \";; ;; (test 1.5707963267948966+0.0i (acos 0+0.0i))\"\n ATMOSPHERE: (27366..27368) \"\n\n\"\n ATMOSPHERE: (27368..27396) \";; (test 0.0 (atan 0.0 1.0))\"\n ATMOSPHERE: (27396..27397) \"\n\"\n ATMOSPHERE: (27397..27427) \";; (test -0.0 (atan -0.0 1.0))\"\n ATMOSPHERE: (27427..27428) \"\n\"\n ATMOSPHERE: (27428..27470) \";; (test 0.785398163397448 (atan 1.0 1.0))\"\n ATMOSPHERE: (27470..27471) \"\n\"\n ATMOSPHERE: (27471..27511) \";; (test 1.5707963267949 (atan 1.0 0.0))\"\n ATMOSPHERE: (27511..27512) \"\n\"\n ATMOSPHERE: (27512..27554) \";; (test 2.35619449019234 (atan 1.0 -1.0))\"\n ATMOSPHERE: (27554..27555) \"\n\"\n ATMOSPHERE: (27555..27597) \";; (test 3.14159265358979 (atan 0.0 -1.0))\"\n ATMOSPHERE: (27597..27598) \"\n\"\n ATMOSPHERE: (27598..27644) \";; (test -3.14159265358979 (atan -0.0 -1.0)) ;\"\n ATMOSPHERE: (27644..27645) \"\n\"\n ATMOSPHERE: (27645..27689) \";; (test -2.35619449019234 (atan -1.0 -1.0))\"\n ATMOSPHERE: (27689..27690) \"\n\"\n ATMOSPHERE: (27690..27732) \";; (test -1.5707963267949 (atan -1.0 0.0))\"\n ATMOSPHERE: (27732..27733) \"\n\"\n ATMOSPHERE: (27733..27777) \";; (test -0.785398163397448 (atan -1.0 1.0))\"\n ATMOSPHERE: (27777..27778) \"\n\"\n ATMOSPHERE: (27778..27815) \";; ;; (test undefined (atan 0.0 0.0))\"\n ATMOSPHERE: (27815..27817) \"\n\n\"\n ATMOSPHERE: (27817..27843) \";; (test 1764 (square 42))\"\n ATMOSPHERE: (27843..27844) \"\n\"\n ATMOSPHERE: (27844..27866) \";; (test 4 (square 2))\"\n ATMOSPHERE: (27866..27868) \"\n\n\"\n ATMOSPHERE: (27868..27900) \";; (test 3.0 (inexact (sqrt 9)))\"\n ATMOSPHERE: (27900..27901) \"\n\"\n ATMOSPHERE: (27901..27935) \";; (test 1.4142135623731 (sqrt 2))\"\n ATMOSPHERE: (27935..27936) \"\n\"\n ATMOSPHERE: (27936..27974) \";; (test 0.0+1.0i (inexact (sqrt -1)))\"\n ATMOSPHERE: (27974..27976) \"\n\n\"\n ATMOSPHERE: (27976..28051) \";; (test '(2 0) (call-with-values (lambda () (exact-integer-sqrt 4)) list))\"\n ATMOSPHERE: (28051..28052) \"\n\"\n ATMOSPHERE: (28052..28127) \";; (test '(2 1) (call-with-values (lambda () (exact-integer-sqrt 5)) list))\"\n ATMOSPHERE: (28127..28129) \"\n\n\"\n ATMOSPHERE: (28129..28152) \";; (test 27 (expt 3 3))\"\n ATMOSPHERE: (28152..28153) \"\n\"\n ATMOSPHERE: (28153..28175) \";; (test 1 (expt 0 0))\"\n ATMOSPHERE: (28175..28176) \"\n\"\n ATMOSPHERE: (28176..28198) \";; (test 0 (expt 0 1))\"\n ATMOSPHERE: (28198..28199) \"\n\"\n ATMOSPHERE: (28199..28225) \";; (test 1.0 (expt 0.0 0))\"\n ATMOSPHERE: (28225..28226) \"\n\"\n ATMOSPHERE: (28226..28252) \";; (test 0.0 (expt 0 1.0))\"\n ATMOSPHERE: (28252..28254) \"\n\n\"\n ATMOSPHERE: (28254..28291) \";; (test 1+2i (make-rectangular 1 2))\"\n ATMOSPHERE: (28291..28293) \"\n\n\"\n ATMOSPHERE: (28293..28355) \";; (test 0.54030230586814+0.841470984807897i (make-polar 1 1))\"\n ATMOSPHERE: (28355..28357) \"\n\n\"\n ATMOSPHERE: (28357..28385) \";; (test 1 (real-part 1+2i))\"\n ATMOSPHERE: (28385..28387) \"\n\n\"\n ATMOSPHERE: (28387..28415) \";; (test 2 (imag-part 1+2i))\"\n ATMOSPHERE: (28415..28417) \"\n\n\"\n ATMOSPHERE: (28417..28460) \";; (test 2.23606797749979 (magnitude 1+2i))\"\n ATMOSPHERE: (28460..28462) \"\n\n\"\n ATMOSPHERE: (28462..28501) \";; (test 1.10714871779409 (angle 1+2i))\"\n ATMOSPHERE: (28501..28503) \"\n\n\"\n ATMOSPHERE: (28503..28528) \";; (test 1.0 (inexact 1))\"\n ATMOSPHERE: (28528..28529) \"\n\"\n ATMOSPHERE: (28529..28564) \";; (test #t (inexact? (inexact 1)))\"\n ATMOSPHERE: (28564..28565) \"\n\"\n ATMOSPHERE: (28565..28588) \";; (test 1 (exact 1.0))\"\n ATMOSPHERE: (28588..28589) \"\n\"\n ATMOSPHERE: (28589..28622) \";; (test #t (exact? (exact 1.0)))\"\n ATMOSPHERE: (28622..28624) \"\n\n\"\n FORM: (28624..28657)\n OPEN_PAREN: (28624..28625) \"(\"\n SYMBOL: (28625..28629)\n IDENTIFIER: (28625..28629) \"test\"\n ATMOSPHERE: (28629..28630) \" \"\n CONSTANT: (28630..28633)\n NUMBER: (28630..28633) \"100\"\n ATMOSPHERE: (28633..28634) \" \"\n FORM: (28634..28656)\n OPEN_PAREN: (28634..28635) \"(\"\n SYMBOL: (28635..28649)\n IDENTIFIER: (28635..28649) \"string->number\"\n ATMOSPHERE: (28649..28650) \" \"\n CONSTANT: (28650..28655)\n STRING: (28650..28655) \"\"100\"\"\n CLOSE_PAREN: (28655..28656) \")\"\n CLOSE_PAREN: (28656..28657) \")\"\n ATMOSPHERE: (28657..28658) \"\n\"\n FORM: (28658..28694)\n OPEN_PAREN: (28658..28659) \"(\"\n SYMBOL: (28659..28663)\n IDENTIFIER: (28659..28663) \"test\"\n ATMOSPHERE: (28663..28664) \" \"\n CONSTANT: (28664..28667)\n NUMBER: (28664..28667) \"256\"\n ATMOSPHERE: (28667..28668) \" \"\n FORM: (28668..28693)\n OPEN_PAREN: (28668..28669) \"(\"\n SYMBOL: (28669..28683)\n IDENTIFIER: (28669..28683) \"string->number\"\n ATMOSPHERE: (28683..28684) \" \"\n CONSTANT: (28684..28689)\n STRING: (28684..28689) \"\"100\"\"\n ATMOSPHERE: (28689..28690) \" \"\n CONSTANT: (28690..28692)\n NUMBER: (28690..28692) \"16\"\n CLOSE_PAREN: (28692..28693) \")\"\n CLOSE_PAREN: (28693..28694) \")\"\n ATMOSPHERE: (28694..28695) \"\n\"\n FORM: (28695..28730)\n OPEN_PAREN: (28695..28696) \"(\"\n SYMBOL: (28696..28700)\n IDENTIFIER: (28696..28700) \"test\"\n ATMOSPHERE: (28700..28701) \" \"\n CONSTANT: (28701..28706)\n NUMBER: (28701..28706) \"100.0\"\n ATMOSPHERE: (28706..28707) \" \"\n FORM: (28707..28729)\n OPEN_PAREN: (28707..28708) \"(\"\n SYMBOL: (28708..28722)\n IDENTIFIER: (28708..28722) \"string->number\"\n ATMOSPHERE: (28722..28723) \" \"\n CONSTANT: (28723..28728)\n STRING: (28723..28728) \"\"1e2\"\"\n CLOSE_PAREN: (28728..28729) \")\"\n CLOSE_PAREN: (28729..28730) \")\"\n ATMOSPHERE: (28730..28732) \"\n\n\"\n FORM: (28732..28742)\n OPEN_PAREN: (28732..28733) \"(\"\n SYMBOL: (28733..28741)\n IDENTIFIER: (28733..28741) \"test-end\"\n CLOSE_PAREN: (28741..28742) \")\"\n ATMOSPHERE: (28742..28744) \"\n\n\"\n FORM: (28744..28771)\n OPEN_PAREN: (28744..28745) \"(\"\n SYMBOL: (28745..28755)\n IDENTIFIER: (28745..28755) \"test-begin\"\n ATMOSPHERE: (28755..28756) \" \"\n CONSTANT: (28756..28770)\n STRING: (28756..28770) \"\"6.3 Booleans\"\"\n CLOSE_PAREN: (28770..28771) \")\"\n ATMOSPHERE: (28771..28773) \"\n\n\"\n FORM: (28773..28785)\n OPEN_PAREN: (28773..28774) \"(\"\n SYMBOL: (28774..28778)\n IDENTIFIER: (28774..28778) \"test\"\n ATMOSPHERE: (28778..28779) \" \"\n CONSTANT: (28779..28781)\n BOOLEAN: (28779..28781) \"#t\"\n ATMOSPHERE: (28781..28782) \" \"\n CONSTANT: (28782..28784)\n BOOLEAN: (28782..28784) \"#t\"\n CLOSE_PAREN: (28784..28785) \")\"\n ATMOSPHERE: (28785..28786) \"\n\"\n FORM: (28786..28798)\n OPEN_PAREN: (28786..28787) \"(\"\n SYMBOL: (28787..28791)\n IDENTIFIER: (28787..28791) \"test\"\n ATMOSPHERE: (28791..28792) \" \"\n CONSTANT: (28792..28794)\n BOOLEAN: (28792..28794) \"#f\"\n ATMOSPHERE: (28794..28795) \" \"\n CONSTANT: (28795..28797)\n BOOLEAN: (28795..28797) \"#f\"\n CLOSE_PAREN: (28797..28798) \")\"\n ATMOSPHERE: (28798..28799) \"\n\"\n FORM: (28799..28812)\n OPEN_PAREN: (28799..28800) \"(\"\n SYMBOL: (28800..28804)\n IDENTIFIER: (28800..28804) \"test\"\n ATMOSPHERE: (28804..28805) \" \"\n CONSTANT: (28805..28807)\n BOOLEAN: (28805..28807) \"#f\"\n ATMOSPHERE: (28807..28808) \" \"\n QUOTED_DATUM: (28808..28811)\n QUOTE: (28808..28809) \"'\"\n CONSTANT: (28809..28811)\n BOOLEAN: (28809..28811) \"#f\"\n CLOSE_PAREN: (28811..28812) \")\"\n ATMOSPHERE: (28812..28814) \"\n\n\"\n FORM: (28814..28832)\n OPEN_PAREN: (28814..28815) \"(\"\n SYMBOL: (28815..28819)\n IDENTIFIER: (28815..28819) \"test\"\n ATMOSPHERE: (28819..28820) \" \"\n CONSTANT: (28820..28822)\n BOOLEAN: (28820..28822) \"#f\"\n ATMOSPHERE: (28822..28823) \" \"\n FORM: (28823..28831)\n OPEN_PAREN: (28823..28824) \"(\"\n SYMBOL: (28824..28827)\n IDENTIFIER: (28824..28827) \"not\"\n ATMOSPHERE: (28827..28828) \" \"\n CONSTANT: (28828..28830)\n BOOLEAN: (28828..28830) \"#t\"\n CLOSE_PAREN: (28830..28831) \")\"\n CLOSE_PAREN: (28831..28832) \")\"\n ATMOSPHERE: (28832..28833) \"\n\"\n FORM: (28833..28850)\n OPEN_PAREN: (28833..28834) \"(\"\n SYMBOL: (28834..28838)\n IDENTIFIER: (28834..28838) \"test\"\n ATMOSPHERE: (28838..28839) \" \"\n CONSTANT: (28839..28841)\n BOOLEAN: (28839..28841) \"#f\"\n ATMOSPHERE: (28841..28842) \" \"\n FORM: (28842..28849)\n OPEN_PAREN: (28842..28843) \"(\"\n SYMBOL: (28843..28846)\n IDENTIFIER: (28843..28846) \"not\"\n ATMOSPHERE: (28846..28847) \" \"\n CONSTANT: (28847..28848)\n NUMBER: (28847..28848) \"3\"\n CLOSE_PAREN: (28848..28849) \")\"\n CLOSE_PAREN: (28849..28850) \")\"\n ATMOSPHERE: (28850..28851) \"\n\"\n FORM: (28851..28875)\n OPEN_PAREN: (28851..28852) \"(\"\n SYMBOL: (28852..28856)\n IDENTIFIER: (28852..28856) \"test\"\n ATMOSPHERE: (28856..28857) \" \"\n CONSTANT: (28857..28859)\n BOOLEAN: (28857..28859) \"#f\"\n ATMOSPHERE: (28859..28860) \" \"\n FORM: (28860..28874)\n OPEN_PAREN: (28860..28861) \"(\"\n SYMBOL: (28861..28864)\n IDENTIFIER: (28861..28864) \"not\"\n ATMOSPHERE: (28864..28865) \" \"\n FORM: (28865..28873)\n OPEN_PAREN: (28865..28866) \"(\"\n SYMBOL: (28866..28870)\n IDENTIFIER: (28866..28870) \"list\"\n ATMOSPHERE: (28870..28871) \" \"\n CONSTANT: (28871..28872)\n NUMBER: (28871..28872) \"3\"\n CLOSE_PAREN: (28872..28873) \")\"\n CLOSE_PAREN: (28873..28874) \")\"\n CLOSE_PAREN: (28874..28875) \")\"\n ATMOSPHERE: (28875..28876) \"\n\"\n FORM: (28876..28894)\n OPEN_PAREN: (28876..28877) \"(\"\n SYMBOL: (28877..28881)\n IDENTIFIER: (28877..28881) \"test\"\n ATMOSPHERE: (28881..28882) \" \"\n CONSTANT: (28882..28884)\n BOOLEAN: (28882..28884) \"#t\"\n ATMOSPHERE: (28884..28885) \" \"\n FORM: (28885..28893)\n OPEN_PAREN: (28885..28886) \"(\"\n SYMBOL: (28886..28889)\n IDENTIFIER: (28886..28889) \"not\"\n ATMOSPHERE: (28889..28890) \" \"\n CONSTANT: (28890..28892)\n BOOLEAN: (28890..28892) \"#f\"\n CLOSE_PAREN: (28892..28893) \")\"\n CLOSE_PAREN: (28893..28894) \")\"\n ATMOSPHERE: (28894..28895) \"\n\"\n FORM: (28895..28914)\n OPEN_PAREN: (28895..28896) \"(\"\n SYMBOL: (28896..28900)\n IDENTIFIER: (28896..28900) \"test\"\n ATMOSPHERE: (28900..28901) \" \"\n CONSTANT: (28901..28903)\n BOOLEAN: (28901..28903) \"#f\"\n ATMOSPHERE: (28903..28904) \" \"\n FORM: (28904..28913)\n OPEN_PAREN: (28904..28905) \"(\"\n SYMBOL: (28905..28908)\n IDENTIFIER: (28905..28908) \"not\"\n ATMOSPHERE: (28908..28909) \" \"\n QUOTED_DATUM: (28909..28912)\n QUOTE: (28909..28910) \"'\"\n FORM: (28910..28912)\n OPEN_PAREN: (28910..28911) \"(\"\n CLOSE_PAREN: (28911..28912) \")\"\n CLOSE_PAREN: (28912..28913) \")\"\n CLOSE_PAREN: (28913..28914) \")\"\n ATMOSPHERE: (28914..28915) \"\n\"\n FORM: (28915..28937)\n OPEN_PAREN: (28915..28916) \"(\"\n SYMBOL: (28916..28920)\n IDENTIFIER: (28916..28920) \"test\"\n ATMOSPHERE: (28920..28921) \" \"\n CONSTANT: (28921..28923)\n BOOLEAN: (28921..28923) \"#f\"\n ATMOSPHERE: (28923..28924) \" \"\n FORM: (28924..28936)\n OPEN_PAREN: (28924..28925) \"(\"\n SYMBOL: (28925..28928)\n IDENTIFIER: (28925..28928) \"not\"\n ATMOSPHERE: (28928..28929) \" \"\n FORM: (28929..28935)\n OPEN_PAREN: (28929..28930) \"(\"\n SYMBOL: (28930..28934)\n IDENTIFIER: (28930..28934) \"list\"\n CLOSE_PAREN: (28934..28935) \")\"\n CLOSE_PAREN: (28935..28936) \")\"\n CLOSE_PAREN: (28936..28937) \")\"\n ATMOSPHERE: (28937..28938) \"\n\"\n FORM: (28938..28958)\n OPEN_PAREN: (28938..28939) \"(\"\n SYMBOL: (28939..28943)\n IDENTIFIER: (28939..28943) \"test\"\n ATMOSPHERE: (28943..28944) \" \"\n CONSTANT: (28944..28946)\n BOOLEAN: (28944..28946) \"#f\"\n ATMOSPHERE: (28946..28947) \" \"\n FORM: (28947..28957)\n OPEN_PAREN: (28947..28948) \"(\"\n SYMBOL: (28948..28951)\n IDENTIFIER: (28948..28951) \"not\"\n ATMOSPHERE: (28951..28952) \" \"\n QUOTED_DATUM: (28952..28956)\n QUOTE: (28952..28953) \"'\"\n SYMBOL: (28953..28956)\n IDENTIFIER: (28953..28956) \"nil\"\n CLOSE_PAREN: (28956..28957) \")\"\n CLOSE_PAREN: (28957..28958) \")\"\n ATMOSPHERE: (28958..28960) \"\n\n\"\n FORM: (28960..28983)\n OPEN_PAREN: (28960..28961) \"(\"\n SYMBOL: (28961..28965)\n IDENTIFIER: (28961..28965) \"test\"\n ATMOSPHERE: (28965..28966) \" \"\n CONSTANT: (28966..28968)\n BOOLEAN: (28966..28968) \"#t\"\n ATMOSPHERE: (28968..28969) \" \"\n FORM: (28969..28982)\n OPEN_PAREN: (28969..28970) \"(\"\n SYMBOL: (28970..28978)\n IDENTIFIER: (28970..28978) \"boolean?\"\n ATMOSPHERE: (28978..28979) \" \"\n CONSTANT: (28979..28981)\n BOOLEAN: (28979..28981) \"#f\"\n CLOSE_PAREN: (28981..28982) \")\"\n CLOSE_PAREN: (28982..28983) \")\"\n ATMOSPHERE: (28983..28984) \"\n\"\n FORM: (28984..29006)\n OPEN_PAREN: (28984..28985) \"(\"\n SYMBOL: (28985..28989)\n IDENTIFIER: (28985..28989) \"test\"\n ATMOSPHERE: (28989..28990) \" \"\n CONSTANT: (28990..28992)\n BOOLEAN: (28990..28992) \"#f\"\n ATMOSPHERE: (28992..28993) \" \"\n FORM: (28993..29005)\n OPEN_PAREN: (28993..28994) \"(\"\n SYMBOL: (28994..29002)\n IDENTIFIER: (28994..29002) \"boolean?\"\n ATMOSPHERE: (29002..29003) \" \"\n CONSTANT: (29003..29004)\n NUMBER: (29003..29004) \"0\"\n CLOSE_PAREN: (29004..29005) \")\"\n CLOSE_PAREN: (29005..29006) \")\"\n ATMOSPHERE: (29006..29007) \"\n\"\n FORM: (29007..29031)\n OPEN_PAREN: (29007..29008) \"(\"\n SYMBOL: (29008..29012)\n IDENTIFIER: (29008..29012) \"test\"\n ATMOSPHERE: (29012..29013) \" \"\n CONSTANT: (29013..29015)\n BOOLEAN: (29013..29015) \"#f\"\n ATMOSPHERE: (29015..29016) \" \"\n FORM: (29016..29030)\n OPEN_PAREN: (29016..29017) \"(\"\n SYMBOL: (29017..29025)\n IDENTIFIER: (29017..29025) \"boolean?\"\n ATMOSPHERE: (29025..29026) \" \"\n QUOTED_DATUM: (29026..29029)\n QUOTE: (29026..29027) \"'\"\n FORM: (29027..29029)\n OPEN_PAREN: (29027..29028) \"(\"\n CLOSE_PAREN: (29028..29029) \")\"\n CLOSE_PAREN: (29029..29030) \")\"\n CLOSE_PAREN: (29030..29031) \")\"\n ATMOSPHERE: (29031..29033) \"\n\n\"\n FORM: (29033..29060)\n OPEN_PAREN: (29033..29034) \"(\"\n SYMBOL: (29034..29038)\n IDENTIFIER: (29034..29038) \"test\"\n ATMOSPHERE: (29038..29039) \" \"\n CONSTANT: (29039..29041)\n BOOLEAN: (29039..29041) \"#t\"\n ATMOSPHERE: (29041..29042) \" \"\n FORM: (29042..29059)\n OPEN_PAREN: (29042..29043) \"(\"\n SYMBOL: (29043..29052)\n IDENTIFIER: (29043..29052) \"boolean=?\"\n ATMOSPHERE: (29052..29053) \" \"\n CONSTANT: (29053..29055)\n BOOLEAN: (29053..29055) \"#t\"\n ATMOSPHERE: (29055..29056) \" \"\n CONSTANT: (29056..29058)\n BOOLEAN: (29056..29058) \"#t\"\n CLOSE_PAREN: (29058..29059) \")\"\n CLOSE_PAREN: (29059..29060) \")\"\n ATMOSPHERE: (29060..29061) \"\n\"\n FORM: (29061..29088)\n OPEN_PAREN: (29061..29062) \"(\"\n SYMBOL: (29062..29066)\n IDENTIFIER: (29062..29066) \"test\"\n ATMOSPHERE: (29066..29067) \" \"\n CONSTANT: (29067..29069)\n BOOLEAN: (29067..29069) \"#t\"\n ATMOSPHERE: (29069..29070) \" \"\n FORM: (29070..29087)\n OPEN_PAREN: (29070..29071) \"(\"\n SYMBOL: (29071..29080)\n IDENTIFIER: (29071..29080) \"boolean=?\"\n ATMOSPHERE: (29080..29081) \" \"\n CONSTANT: (29081..29083)\n BOOLEAN: (29081..29083) \"#f\"\n ATMOSPHERE: (29083..29084) \" \"\n CONSTANT: (29084..29086)\n BOOLEAN: (29084..29086) \"#f\"\n CLOSE_PAREN: (29086..29087) \")\"\n CLOSE_PAREN: (29087..29088) \")\"\n ATMOSPHERE: (29088..29089) \"\n\"\n FORM: (29089..29116)\n OPEN_PAREN: (29089..29090) \"(\"\n SYMBOL: (29090..29094)\n IDENTIFIER: (29090..29094) \"test\"\n ATMOSPHERE: (29094..29095) \" \"\n CONSTANT: (29095..29097)\n BOOLEAN: (29095..29097) \"#f\"\n ATMOSPHERE: (29097..29098) \" \"\n FORM: (29098..29115)\n OPEN_PAREN: (29098..29099) \"(\"\n SYMBOL: (29099..29108)\n IDENTIFIER: (29099..29108) \"boolean=?\"\n ATMOSPHERE: (29108..29109) \" \"\n CONSTANT: (29109..29111)\n BOOLEAN: (29109..29111) \"#t\"\n ATMOSPHERE: (29111..29112) \" \"\n CONSTANT: (29112..29114)\n BOOLEAN: (29112..29114) \"#f\"\n CLOSE_PAREN: (29114..29115) \")\"\n CLOSE_PAREN: (29115..29116) \")\"\n ATMOSPHERE: (29116..29117) \"\n\"\n FORM: (29117..29147)\n OPEN_PAREN: (29117..29118) \"(\"\n SYMBOL: (29118..29122)\n IDENTIFIER: (29118..29122) \"test\"\n ATMOSPHERE: (29122..29123) \" \"\n CONSTANT: (29123..29125)\n BOOLEAN: (29123..29125) \"#t\"\n ATMOSPHERE: (29125..29126) \" \"\n FORM: (29126..29146)\n OPEN_PAREN: (29126..29127) \"(\"\n SYMBOL: (29127..29136)\n IDENTIFIER: (29127..29136) \"boolean=?\"\n ATMOSPHERE: (29136..29137) \" \"\n CONSTANT: (29137..29139)\n BOOLEAN: (29137..29139) \"#f\"\n ATMOSPHERE: (29139..29140) \" \"\n CONSTANT: (29140..29142)\n BOOLEAN: (29140..29142) \"#f\"\n ATMOSPHERE: (29142..29143) \" \"\n CONSTANT: (29143..29145)\n BOOLEAN: (29143..29145) \"#f\"\n CLOSE_PAREN: (29145..29146) \")\"\n CLOSE_PAREN: (29146..29147) \")\"\n ATMOSPHERE: (29147..29148) \"\n\"\n FORM: (29148..29178)\n OPEN_PAREN: (29148..29149) \"(\"\n SYMBOL: (29149..29153)\n IDENTIFIER: (29149..29153) \"test\"\n ATMOSPHERE: (29153..29154) \" \"\n CONSTANT: (29154..29156)\n BOOLEAN: (29154..29156) \"#f\"\n ATMOSPHERE: (29156..29157) \" \"\n FORM: (29157..29177)\n OPEN_PAREN: (29157..29158) \"(\"\n SYMBOL: (29158..29167)\n IDENTIFIER: (29158..29167) \"boolean=?\"\n ATMOSPHERE: (29167..29168) \" \"\n CONSTANT: (29168..29170)\n BOOLEAN: (29168..29170) \"#t\"\n ATMOSPHERE: (29170..29171) \" \"\n CONSTANT: (29171..29173)\n BOOLEAN: (29171..29173) \"#t\"\n ATMOSPHERE: (29173..29174) \" \"\n CONSTANT: (29174..29176)\n BOOLEAN: (29174..29176) \"#f\"\n CLOSE_PAREN: (29176..29177) \")\"\n CLOSE_PAREN: (29177..29178) \")\"\n ATMOSPHERE: (29178..29180) \"\n\n\"\n FORM: (29180..29190)\n OPEN_PAREN: (29180..29181) \"(\"\n SYMBOL: (29181..29189)\n IDENTIFIER: (29181..29189) \"test-end\"\n CLOSE_PAREN: (29189..29190) \")\"\n ATMOSPHERE: (29190..29192) \"\n\n\"\n FORM: (29192..29216)\n OPEN_PAREN: (29192..29193) \"(\"\n SYMBOL: (29193..29203)\n IDENTIFIER: (29193..29203) \"test-begin\"\n ATMOSPHERE: (29203..29204) \" \"\n CONSTANT: (29204..29215)\n STRING: (29204..29215) \"\"6.4 Lists\"\"\n CLOSE_PAREN: (29215..29216) \")\"\n ATMOSPHERE: (29216..29218) \"\n\n\"\n ATMOSPHERE: (29218..29247) \";; (let* ((x (list 'a 'b 'c))\"\n ATMOSPHERE: (29247..29248) \"\n\"\n ATMOSPHERE: (29248..29264) \";; (y x))\"\n ATMOSPHERE: (29264..29265) \"\n\"\n ATMOSPHERE: (29265..29296) \";; (test '(a b c) (values y))\"\n ATMOSPHERE: (29296..29297) \"\n\"\n ATMOSPHERE: (29297..29321) \";; (test #t (list? y))\"\n ATMOSPHERE: (29321..29322) \"\n\"\n ATMOSPHERE: (29322..29341) \";; (set-cdr! x 4)\"\n ATMOSPHERE: (29341..29342) \"\n\"\n ATMOSPHERE: (29342..29373) \";; (test '(a . 4) (values x))\"\n ATMOSPHERE: (29373..29374) \"\n\"\n ATMOSPHERE: (29374..29399) \";; (test #t (eqv? x y))\"\n ATMOSPHERE: (29399..29400) \"\n\"\n ATMOSPHERE: (29400..29424) \";; (test #f (list? y))\"\n ATMOSPHERE: (29424..29425) \"\n\"\n ATMOSPHERE: (29425..29444) \";; (set-cdr! x x)\"\n ATMOSPHERE: (29444..29445) \"\n\"\n ATMOSPHERE: (29445..29470) \";; (test #f (list? x)))\"\n ATMOSPHERE: (29470..29472) \"\n\n\"\n FORM: (29472..29498)\n OPEN_PAREN: (29472..29473) \"(\"\n SYMBOL: (29473..29477)\n IDENTIFIER: (29473..29477) \"test\"\n ATMOSPHERE: (29477..29478) \" \"\n CONSTANT: (29478..29480)\n BOOLEAN: (29478..29480) \"#t\"\n ATMOSPHERE: (29480..29481) \" \"\n FORM: (29481..29497)\n OPEN_PAREN: (29481..29482) \"(\"\n SYMBOL: (29482..29487)\n IDENTIFIER: (29482..29487) \"pair?\"\n ATMOSPHERE: (29487..29488) \" \"\n QUOTED_DATUM: (29488..29496)\n QUOTE: (29488..29489) \"'\"\n FORM: (29489..29496)\n OPEN_PAREN: (29489..29490) \"(\"\n SYMBOL: (29490..29491)\n IDENTIFIER: (29490..29491) \"a\"\n ATMOSPHERE: (29491..29492) \" \"\n DOTTED_TAIL: (29492..29495)\n DOT: (29492..29493) \".\"\n ATMOSPHERE: (29493..29494) \" \"\n SYMBOL: (29494..29495)\n IDENTIFIER: (29494..29495) \"b\"\n CLOSE_PAREN: (29495..29496) \")\"\n CLOSE_PAREN: (29496..29497) \")\"\n CLOSE_PAREN: (29497..29498) \")\"\n ATMOSPHERE: (29498..29499) \"\n\"\n FORM: (29499..29525)\n OPEN_PAREN: (29499..29500) \"(\"\n SYMBOL: (29500..29504)\n IDENTIFIER: (29500..29504) \"test\"\n ATMOSPHERE: (29504..29505) \" \"\n CONSTANT: (29505..29507)\n BOOLEAN: (29505..29507) \"#t\"\n ATMOSPHERE: (29507..29508) \" \"\n FORM: (29508..29524)\n OPEN_PAREN: (29508..29509) \"(\"\n SYMBOL: (29509..29514)\n IDENTIFIER: (29509..29514) \"pair?\"\n ATMOSPHERE: (29514..29515) \" \"\n QUOTED_DATUM: (29515..29523)\n QUOTE: (29515..29516) \"'\"\n FORM: (29516..29523)\n OPEN_PAREN: (29516..29517) \"(\"\n SYMBOL: (29517..29518)\n IDENTIFIER: (29517..29518) \"a\"\n ATMOSPHERE: (29518..29519) \" \"\n SYMBOL: (29519..29520)\n IDENTIFIER: (29519..29520) \"b\"\n ATMOSPHERE: (29520..29521) \" \"\n SYMBOL: (29521..29522)\n IDENTIFIER: (29521..29522) \"c\"\n CLOSE_PAREN: (29522..29523) \")\"\n CLOSE_PAREN: (29523..29524) \")\"\n CLOSE_PAREN: (29524..29525) \")\"\n ATMOSPHERE: (29525..29526) \"\n\"\n FORM: (29526..29547)\n OPEN_PAREN: (29526..29527) \"(\"\n SYMBOL: (29527..29531)\n IDENTIFIER: (29527..29531) \"test\"\n ATMOSPHERE: (29531..29532) \" \"\n CONSTANT: (29532..29534)\n BOOLEAN: (29532..29534) \"#f\"\n ATMOSPHERE: (29534..29535) \" \"\n FORM: (29535..29546)\n OPEN_PAREN: (29535..29536) \"(\"\n SYMBOL: (29536..29541)\n IDENTIFIER: (29536..29541) \"pair?\"\n ATMOSPHERE: (29541..29542) \" \"\n QUOTED_DATUM: (29542..29545)\n QUOTE: (29542..29543) \"'\"\n FORM: (29543..29545)\n OPEN_PAREN: (29543..29544) \"(\"\n CLOSE_PAREN: (29544..29545) \")\"\n CLOSE_PAREN: (29545..29546) \")\"\n CLOSE_PAREN: (29546..29547) \")\"\n ATMOSPHERE: (29547..29548) \"\n\"\n FORM: (29548..29573)\n OPEN_PAREN: (29548..29549) \"(\"\n SYMBOL: (29549..29553)\n IDENTIFIER: (29549..29553) \"test\"\n ATMOSPHERE: (29553..29554) \" \"\n CONSTANT: (29554..29556)\n BOOLEAN: (29554..29556) \"#f\"\n ATMOSPHERE: (29556..29557) \" \"\n FORM: (29557..29572)\n OPEN_PAREN: (29557..29558) \"(\"\n SYMBOL: (29558..29563)\n IDENTIFIER: (29558..29563) \"pair?\"\n ATMOSPHERE: (29563..29564) \" \"\n QUOTED_DATUM: (29564..29571)\n QUOTE: (29564..29565) \"'\"\n VEC: (29565..29571)\n OPEN_PAREN: (29565..29567) \"#(\"\n SYMBOL: (29567..29568)\n IDENTIFIER: (29567..29568) \"a\"\n ATMOSPHERE: (29568..29569) \" \"\n SYMBOL: (29569..29570)\n IDENTIFIER: (29569..29570) \"b\"\n CLOSE_PAREN: (29570..29571) \")\"\n CLOSE_PAREN: (29571..29572) \")\"\n CLOSE_PAREN: (29572..29573) \")\"\n ATMOSPHERE: (29573..29575) \"\n\n\"\n FORM: (29575..29600)\n OPEN_PAREN: (29575..29576) \"(\"\n SYMBOL: (29576..29580)\n IDENTIFIER: (29576..29580) \"test\"\n ATMOSPHERE: (29580..29581) \" \"\n QUOTED_DATUM: (29581..29586)\n QUOTE: (29581..29582) \"'\"\n FORM: (29582..29585)\n OPEN_PAREN: (29582..29583) \"(\"\n SYMBOL: (29583..29584)\n IDENTIFIER: (29583..29584) \"a\"\n CLOSE_PAREN: (29584..29585) \")\"\n ATMOSPHERE: (29585..29586) \" \"\n FORM: (29586..29599)\n OPEN_PAREN: (29586..29587) \"(\"\n SYMBOL: (29587..29591)\n IDENTIFIER: (29587..29591) \"cons\"\n ATMOSPHERE: (29591..29592) \" \"\n QUOTED_DATUM: (29592..29595)\n QUOTE: (29592..29593) \"'\"\n SYMBOL: (29593..29594)\n IDENTIFIER: (29593..29594) \"a\"\n ATMOSPHERE: (29594..29595) \" \"\n QUOTED_DATUM: (29595..29598)\n QUOTE: (29595..29596) \"'\"\n FORM: (29596..29598)\n OPEN_PAREN: (29596..29597) \"(\"\n CLOSE_PAREN: (29597..29598) \")\"\n CLOSE_PAREN: (29598..29599) \")\"\n CLOSE_PAREN: (29599..29600) \")\"\n ATMOSPHERE: (29600..29601) \"\n\"\n FORM: (29601..29641)\n OPEN_PAREN: (29601..29602) \"(\"\n SYMBOL: (29602..29606)\n IDENTIFIER: (29602..29606) \"test\"\n ATMOSPHERE: (29606..29607) \" \"\n QUOTED_DATUM: (29607..29620)\n QUOTE: (29607..29608) \"'\"\n FORM: (29608..29619)\n OPEN_PAREN: (29608..29609) \"(\"\n FORM: (29609..29612)\n OPEN_PAREN: (29609..29610) \"(\"\n SYMBOL: (29610..29611)\n IDENTIFIER: (29610..29611) \"a\"\n CLOSE_PAREN: (29611..29612) \")\"\n ATMOSPHERE: (29612..29613) \" \"\n SYMBOL: (29613..29614)\n IDENTIFIER: (29613..29614) \"b\"\n ATMOSPHERE: (29614..29615) \" \"\n SYMBOL: (29615..29616)\n IDENTIFIER: (29615..29616) \"c\"\n ATMOSPHERE: (29616..29617) \" \"\n SYMBOL: (29617..29618)\n IDENTIFIER: (29617..29618) \"d\"\n CLOSE_PAREN: (29618..29619) \")\"\n ATMOSPHERE: (29619..29620) \" \"\n FORM: (29620..29640)\n OPEN_PAREN: (29620..29621) \"(\"\n SYMBOL: (29621..29625)\n IDENTIFIER: (29621..29625) \"cons\"\n ATMOSPHERE: (29625..29626) \" \"\n QUOTED_DATUM: (29626..29631)\n QUOTE: (29626..29627) \"'\"\n FORM: (29627..29630)\n OPEN_PAREN: (29627..29628) \"(\"\n SYMBOL: (29628..29629)\n IDENTIFIER: (29628..29629) \"a\"\n CLOSE_PAREN: (29629..29630) \")\"\n ATMOSPHERE: (29630..29631) \" \"\n QUOTED_DATUM: (29631..29639)\n QUOTE: (29631..29632) \"'\"\n FORM: (29632..29639)\n OPEN_PAREN: (29632..29633) \"(\"\n SYMBOL: (29633..29634)\n IDENTIFIER: (29633..29634) \"b\"\n ATMOSPHERE: (29634..29635) \" \"\n SYMBOL: (29635..29636)\n IDENTIFIER: (29635..29636) \"c\"\n ATMOSPHERE: (29636..29637) \" \"\n SYMBOL: (29637..29638)\n IDENTIFIER: (29637..29638) \"d\"\n CLOSE_PAREN: (29638..29639) \")\"\n CLOSE_PAREN: (29639..29640) \")\"\n CLOSE_PAREN: (29640..29641) \")\"\n ATMOSPHERE: (29641..29642) \"\n\"\n FORM: (29642..29677)\n OPEN_PAREN: (29642..29643) \"(\"\n SYMBOL: (29643..29647)\n IDENTIFIER: (29643..29647) \"test\"\n ATMOSPHERE: (29647..29648) \" \"\n QUOTED_DATUM: (29648..29659)\n QUOTE: (29648..29649) \"'\"\n FORM: (29649..29658)\n OPEN_PAREN: (29649..29650) \"(\"\n CONSTANT: (29650..29653)\n STRING: (29650..29653) \"\"a\"\"\n ATMOSPHERE: (29653..29654) \" \"\n SYMBOL: (29654..29655)\n IDENTIFIER: (29654..29655) \"b\"\n ATMOSPHERE: (29655..29656) \" \"\n SYMBOL: (29656..29657)\n IDENTIFIER: (29656..29657) \"c\"\n CLOSE_PAREN: (29657..29658) \")\"\n ATMOSPHERE: (29658..29659) \" \"\n FORM: (29659..29676)\n OPEN_PAREN: (29659..29660) \"(\"\n SYMBOL: (29660..29664)\n IDENTIFIER: (29660..29664) \"cons\"\n ATMOSPHERE: (29664..29665) \" \"\n CONSTANT: (29665..29668)\n STRING: (29665..29668) \"\"a\"\"\n ATMOSPHERE: (29668..29669) \" \"\n QUOTED_DATUM: (29669..29675)\n QUOTE: (29669..29670) \"'\"\n FORM: (29670..29675)\n OPEN_PAREN: (29670..29671) \"(\"\n SYMBOL: (29671..29672)\n IDENTIFIER: (29671..29672) \"b\"\n ATMOSPHERE: (29672..29673) \" \"\n SYMBOL: (29673..29674)\n IDENTIFIER: (29673..29674) \"c\"\n CLOSE_PAREN: (29674..29675) \")\"\n CLOSE_PAREN: (29675..29676) \")\"\n CLOSE_PAREN: (29676..29677) \")\"\n ATMOSPHERE: (29677..29678) \"\n\"\n ATMOSPHERE: (29678..29712) \";;; FIXME: Quoting of dotted forms\"\n ATMOSPHERE: (29712..29713) \"\n\"\n ATMOSPHERE: (29713..29743) \";; (test '(a . 3) (cons 'a 3))\"\n ATMOSPHERE: (29743..29744) \"\n\"\n ATMOSPHERE: (29744..29783) \";; (test '((a b) . c) (cons '(a b) 'c))\"\n ATMOSPHERE: (29783..29785) \"\n\n\"\n FORM: (29785..29809)\n OPEN_PAREN: (29785..29786) \"(\"\n SYMBOL: (29786..29790)\n IDENTIFIER: (29786..29790) \"test\"\n ATMOSPHERE: (29790..29791) \" \"\n QUOTED_DATUM: (29791..29794)\n QUOTE: (29791..29792) \"'\"\n SYMBOL: (29792..29793)\n IDENTIFIER: (29792..29793) \"a\"\n ATMOSPHERE: (29793..29794) \" \"\n FORM: (29794..29808)\n OPEN_PAREN: (29794..29795) \"(\"\n SYMBOL: (29795..29798)\n IDENTIFIER: (29795..29798) \"car\"\n ATMOSPHERE: (29798..29799) \" \"\n QUOTED_DATUM: (29799..29807)\n QUOTE: (29799..29800) \"'\"\n FORM: (29800..29807)\n OPEN_PAREN: (29800..29801) \"(\"\n SYMBOL: (29801..29802)\n IDENTIFIER: (29801..29802) \"a\"\n ATMOSPHERE: (29802..29803) \" \"\n SYMBOL: (29803..29804)\n IDENTIFIER: (29803..29804) \"b\"\n ATMOSPHERE: (29804..29805) \" \"\n SYMBOL: (29805..29806)\n IDENTIFIER: (29805..29806) \"c\"\n CLOSE_PAREN: (29806..29807) \")\"\n CLOSE_PAREN: (29807..29808) \")\"\n CLOSE_PAREN: (29808..29809) \")\"\n ATMOSPHERE: (29809..29810) \"\n\"\n FORM: (29810..29840)\n OPEN_PAREN: (29810..29811) \"(\"\n SYMBOL: (29811..29815)\n IDENTIFIER: (29811..29815) \"test\"\n ATMOSPHERE: (29815..29816) \" \"\n QUOTED_DATUM: (29816..29821)\n QUOTE: (29816..29817) \"'\"\n FORM: (29817..29820)\n OPEN_PAREN: (29817..29818) \"(\"\n SYMBOL: (29818..29819)\n IDENTIFIER: (29818..29819) \"a\"\n CLOSE_PAREN: (29819..29820) \")\"\n ATMOSPHERE: (29820..29821) \" \"\n FORM: (29821..29839)\n OPEN_PAREN: (29821..29822) \"(\"\n SYMBOL: (29822..29825)\n IDENTIFIER: (29822..29825) \"car\"\n ATMOSPHERE: (29825..29826) \" \"\n QUOTED_DATUM: (29826..29838)\n QUOTE: (29826..29827) \"'\"\n FORM: (29827..29838)\n OPEN_PAREN: (29827..29828) \"(\"\n FORM: (29828..29831)\n OPEN_PAREN: (29828..29829) \"(\"\n SYMBOL: (29829..29830)\n IDENTIFIER: (29829..29830) \"a\"\n CLOSE_PAREN: (29830..29831) \")\"\n ATMOSPHERE: (29831..29832) \" \"\n SYMBOL: (29832..29833)\n IDENTIFIER: (29832..29833) \"b\"\n ATMOSPHERE: (29833..29834) \" \"\n SYMBOL: (29834..29835)\n IDENTIFIER: (29834..29835) \"c\"\n ATMOSPHERE: (29835..29836) \" \"\n SYMBOL: (29836..29837)\n IDENTIFIER: (29836..29837) \"d\"\n CLOSE_PAREN: (29837..29838) \")\"\n CLOSE_PAREN: (29838..29839) \")\"\n CLOSE_PAREN: (29839..29840) \")\"\n ATMOSPHERE: (29840..29841) \"\n\"\n FORM: (29841..29864)\n OPEN_PAREN: (29841..29842) \"(\"\n SYMBOL: (29842..29846)\n IDENTIFIER: (29842..29846) \"test\"\n ATMOSPHERE: (29846..29847) \" \"\n CONSTANT: (29847..29848)\n NUMBER: (29847..29848) \"1\"\n ATMOSPHERE: (29848..29849) \" \"\n FORM: (29849..29863)\n OPEN_PAREN: (29849..29850) \"(\"\n SYMBOL: (29850..29853)\n IDENTIFIER: (29850..29853) \"car\"\n ATMOSPHERE: (29853..29854) \" \"\n QUOTED_DATUM: (29854..29862)\n QUOTE: (29854..29855) \"'\"\n FORM: (29855..29862)\n OPEN_PAREN: (29855..29856) \"(\"\n CONSTANT: (29856..29857)\n NUMBER: (29856..29857) \"1\"\n ATMOSPHERE: (29857..29858) \" \"\n DOTTED_TAIL: (29858..29861)\n DOT: (29858..29859) \".\"\n ATMOSPHERE: (29859..29860) \" \"\n CONSTANT: (29860..29861)\n NUMBER: (29860..29861) \"2\"\n CLOSE_PAREN: (29861..29862) \")\"\n CLOSE_PAREN: (29862..29863) \")\"\n CLOSE_PAREN: (29863..29864) \")\"\n ATMOSPHERE: (29864..29866) \"\n\n\"\n FORM: (29866..29900)\n OPEN_PAREN: (29866..29867) \"(\"\n SYMBOL: (29867..29871)\n IDENTIFIER: (29867..29871) \"test\"\n ATMOSPHERE: (29871..29872) \" \"\n QUOTED_DATUM: (29872..29881)\n QUOTE: (29872..29873) \"'\"\n FORM: (29873..29880)\n OPEN_PAREN: (29873..29874) \"(\"\n SYMBOL: (29874..29875)\n IDENTIFIER: (29874..29875) \"b\"\n ATMOSPHERE: (29875..29876) \" \"\n SYMBOL: (29876..29877)\n IDENTIFIER: (29876..29877) \"c\"\n ATMOSPHERE: (29877..29878) \" \"\n SYMBOL: (29878..29879)\n IDENTIFIER: (29878..29879) \"d\"\n CLOSE_PAREN: (29879..29880) \")\"\n ATMOSPHERE: (29880..29881) \" \"\n FORM: (29881..29899)\n OPEN_PAREN: (29881..29882) \"(\"\n SYMBOL: (29882..29885)\n IDENTIFIER: (29882..29885) \"cdr\"\n ATMOSPHERE: (29885..29886) \" \"\n QUOTED_DATUM: (29886..29898)\n QUOTE: (29886..29887) \"'\"\n FORM: (29887..29898)\n OPEN_PAREN: (29887..29888) \"(\"\n FORM: (29888..29891)\n OPEN_PAREN: (29888..29889) \"(\"\n SYMBOL: (29889..29890)\n IDENTIFIER: (29889..29890) \"a\"\n CLOSE_PAREN: (29890..29891) \")\"\n ATMOSPHERE: (29891..29892) \" \"\n SYMBOL: (29892..29893)\n IDENTIFIER: (29892..29893) \"b\"\n ATMOSPHERE: (29893..29894) \" \"\n SYMBOL: (29894..29895)\n IDENTIFIER: (29894..29895) \"c\"\n ATMOSPHERE: (29895..29896) \" \"\n SYMBOL: (29896..29897)\n IDENTIFIER: (29896..29897) \"d\"\n CLOSE_PAREN: (29897..29898) \")\"\n CLOSE_PAREN: (29898..29899) \")\"\n CLOSE_PAREN: (29899..29900) \")\"\n ATMOSPHERE: (29900..29901) \"\n\"\n ATMOSPHERE: (29901..29961) \";; (test 2 (cdr '(1 . 2))) ; FIXME: Quoting of dotted forms\"\n ATMOSPHERE: (29961..29962) \"\n\"\n FORM: (29962..29991)\n OPEN_PAREN: (29962..29963) \"(\"\n SYMBOL: (29963..29969)\n IDENTIFIER: (29963..29969) \"define\"\n ATMOSPHERE: (29969..29970) \" \"\n FORM: (29970..29973)\n OPEN_PAREN: (29970..29971) \"(\"\n SYMBOL: (29971..29972)\n IDENTIFIER: (29971..29972) \"g\"\n CLOSE_PAREN: (29972..29973) \")\"\n ATMOSPHERE: (29973..29974) \" \"\n QUOTED_DATUM: (29974..29990)\n QUOTE: (29974..29975) \"'\"\n FORM: (29975..29990)\n OPEN_PAREN: (29975..29976) \"(\"\n SYMBOL: (29976..29989)\n IDENTIFIER: (29976..29989) \"constant-list\"\n CLOSE_PAREN: (29989..29990) \")\"\n CLOSE_PAREN: (29990..29991) \")\"\n ATMOSPHERE: (29991..29993) \"\n\n\"\n FORM: (29993..30019)\n OPEN_PAREN: (29993..29994) \"(\"\n SYMBOL: (29994..29998)\n IDENTIFIER: (29994..29998) \"test\"\n ATMOSPHERE: (29998..29999) \" \"\n CONSTANT: (29999..30001)\n BOOLEAN: (29999..30001) \"#t\"\n ATMOSPHERE: (30001..30002) \" \"\n FORM: (30002..30018)\n OPEN_PAREN: (30002..30003) \"(\"\n SYMBOL: (30003..30008)\n IDENTIFIER: (30003..30008) \"list?\"\n ATMOSPHERE: (30008..30009) \" \"\n QUOTED_DATUM: (30009..30017)\n QUOTE: (30009..30010) \"'\"\n FORM: (30010..30017)\n OPEN_PAREN: (30010..30011) \"(\"\n SYMBOL: (30011..30012)\n IDENTIFIER: (30011..30012) \"a\"\n ATMOSPHERE: (30012..30013) \" \"\n SYMBOL: (30013..30014)\n IDENTIFIER: (30013..30014) \"b\"\n ATMOSPHERE: (30014..30015) \" \"\n SYMBOL: (30015..30016)\n IDENTIFIER: (30015..30016) \"c\"\n CLOSE_PAREN: (30016..30017) \")\"\n CLOSE_PAREN: (30017..30018) \")\"\n CLOSE_PAREN: (30018..30019) \")\"\n ATMOSPHERE: (30019..30020) \"\n\"\n FORM: (30020..30041)\n OPEN_PAREN: (30020..30021) \"(\"\n SYMBOL: (30021..30025)\n IDENTIFIER: (30021..30025) \"test\"\n ATMOSPHERE: (30025..30026) \" \"\n CONSTANT: (30026..30028)\n BOOLEAN: (30026..30028) \"#t\"\n ATMOSPHERE: (30028..30029) \" \"\n FORM: (30029..30040)\n OPEN_PAREN: (30029..30030) \"(\"\n SYMBOL: (30030..30035)\n IDENTIFIER: (30030..30035) \"list?\"\n ATMOSPHERE: (30035..30036) \" \"\n QUOTED_DATUM: (30036..30039)\n QUOTE: (30036..30037) \"'\"\n FORM: (30037..30039)\n OPEN_PAREN: (30037..30038) \"(\"\n CLOSE_PAREN: (30038..30039) \")\"\n CLOSE_PAREN: (30039..30040) \")\"\n CLOSE_PAREN: (30040..30041) \")\"\n ATMOSPHERE: (30041..30042) \"\n\"\n ATMOSPHERE: (30042..30105) \";; (test #f (list? '(a . b))) ; FIXME: Quoting of dotted forms\"\n ATMOSPHERE: (30105..30106) \"\n\"\n ATMOSPHERE: (30106..30192) \"; FIXME: recurse in `list?` ; (test #f (let ((x (list 'a))) (set-cdr! x x) (list? x)))\"\n ATMOSPHERE: (30192..30194) \"\n\n\"\n FORM: (30194..30223)\n OPEN_PAREN: (30194..30195) \"(\"\n SYMBOL: (30195..30199)\n IDENTIFIER: (30195..30199) \"test\"\n ATMOSPHERE: (30199..30200) \" \"\n QUOTED_DATUM: (30200..30207)\n QUOTE: (30200..30201) \"'\"\n FORM: (30201..30206)\n OPEN_PAREN: (30201..30202) \"(\"\n CONSTANT: (30202..30203)\n NUMBER: (30202..30203) \"3\"\n ATMOSPHERE: (30203..30204) \" \"\n CONSTANT: (30204..30205)\n NUMBER: (30204..30205) \"3\"\n CLOSE_PAREN: (30205..30206) \")\"\n ATMOSPHERE: (30206..30207) \" \"\n FORM: (30207..30222)\n OPEN_PAREN: (30207..30208) \"(\"\n SYMBOL: (30208..30217)\n IDENTIFIER: (30208..30217) \"make-list\"\n ATMOSPHERE: (30217..30218) \" \"\n CONSTANT: (30218..30219)\n NUMBER: (30218..30219) \"2\"\n ATMOSPHERE: (30219..30220) \" \"\n CONSTANT: (30220..30221)\n NUMBER: (30220..30221) \"3\"\n CLOSE_PAREN: (30221..30222) \")\"\n CLOSE_PAREN: (30222..30223) \")\"\n ATMOSPHERE: (30223..30225) \"\n\n\"\n FORM: (30225..30261)\n OPEN_PAREN: (30225..30226) \"(\"\n SYMBOL: (30226..30230)\n IDENTIFIER: (30226..30230) \"test\"\n ATMOSPHERE: (30230..30231) \" \"\n QUOTED_DATUM: (30231..30240)\n QUOTE: (30231..30232) \"'\"\n FORM: (30232..30239)\n OPEN_PAREN: (30232..30233) \"(\"\n SYMBOL: (30233..30234)\n IDENTIFIER: (30233..30234) \"a\"\n ATMOSPHERE: (30234..30235) \" \"\n CONSTANT: (30235..30236)\n NUMBER: (30235..30236) \"7\"\n ATMOSPHERE: (30236..30237) \" \"\n SYMBOL: (30237..30238)\n IDENTIFIER: (30237..30238) \"c\"\n CLOSE_PAREN: (30238..30239) \")\"\n ATMOSPHERE: (30239..30240) \" \"\n FORM: (30240..30260)\n OPEN_PAREN: (30240..30241) \"(\"\n SYMBOL: (30241..30245)\n IDENTIFIER: (30241..30245) \"list\"\n ATMOSPHERE: (30245..30246) \" \"\n QUOTED_DATUM: (30246..30249)\n QUOTE: (30246..30247) \"'\"\n SYMBOL: (30247..30248)\n IDENTIFIER: (30247..30248) \"a\"\n ATMOSPHERE: (30248..30249) \" \"\n FORM: (30249..30256)\n OPEN_PAREN: (30249..30250) \"(\"\n SYMBOL: (30250..30251)\n IDENTIFIER: (30250..30251) \"+\"\n ATMOSPHERE: (30251..30252) \" \"\n CONSTANT: (30252..30253)\n NUMBER: (30252..30253) \"3\"\n ATMOSPHERE: (30253..30254) \" \"\n CONSTANT: (30254..30255)\n NUMBER: (30254..30255) \"4\"\n CLOSE_PAREN: (30255..30256) \")\"\n ATMOSPHERE: (30256..30257) \" \"\n QUOTED_DATUM: (30257..30259)\n QUOTE: (30257..30258) \"'\"\n SYMBOL: (30258..30259)\n IDENTIFIER: (30258..30259) \"c\"\n CLOSE_PAREN: (30259..30260) \")\"\n CLOSE_PAREN: (30260..30261) \")\"\n ATMOSPHERE: (30261..30262) \"\n\"\n FORM: (30262..30279)\n OPEN_PAREN: (30262..30263) \"(\"\n SYMBOL: (30263..30267)\n IDENTIFIER: (30263..30267) \"test\"\n ATMOSPHERE: (30267..30268) \" \"\n QUOTED_DATUM: (30268..30272)\n QUOTE: (30268..30269) \"'\"\n FORM: (30269..30271)\n OPEN_PAREN: (30269..30270) \"(\"\n CLOSE_PAREN: (30270..30271) \")\"\n ATMOSPHERE: (30271..30272) \" \"\n FORM: (30272..30278)\n OPEN_PAREN: (30272..30273) \"(\"\n SYMBOL: (30273..30277)\n IDENTIFIER: (30273..30277) \"list\"\n CLOSE_PAREN: (30277..30278) \")\"\n CLOSE_PAREN: (30278..30279) \")\"\n ATMOSPHERE: (30279..30281) \"\n\n\"\n FORM: (30281..30307)\n OPEN_PAREN: (30281..30282) \"(\"\n SYMBOL: (30282..30286)\n IDENTIFIER: (30282..30286) \"test\"\n ATMOSPHERE: (30286..30287) \" \"\n CONSTANT: (30287..30288)\n NUMBER: (30287..30288) \"3\"\n ATMOSPHERE: (30288..30289) \" \"\n FORM: (30289..30306)\n OPEN_PAREN: (30289..30290) \"(\"\n SYMBOL: (30290..30296)\n IDENTIFIER: (30290..30296) \"length\"\n ATMOSPHERE: (30296..30297) \" \"\n QUOTED_DATUM: (30297..30305)\n QUOTE: (30297..30298) \"'\"\n FORM: (30298..30305)\n OPEN_PAREN: (30298..30299) \"(\"\n SYMBOL: (30299..30300)\n IDENTIFIER: (30299..30300) \"a\"\n ATMOSPHERE: (30300..30301) \" \"\n SYMBOL: (30301..30302)\n IDENTIFIER: (30301..30302) \"b\"\n ATMOSPHERE: (30302..30303) \" \"\n SYMBOL: (30303..30304)\n IDENTIFIER: (30303..30304) \"c\"\n CLOSE_PAREN: (30304..30305) \")\"\n CLOSE_PAREN: (30305..30306) \")\"\n CLOSE_PAREN: (30306..30307) \")\"\n ATMOSPHERE: (30307..30308) \"\n\"\n FORM: (30308..30342)\n OPEN_PAREN: (30308..30309) \"(\"\n SYMBOL: (30309..30313)\n IDENTIFIER: (30309..30313) \"test\"\n ATMOSPHERE: (30313..30314) \" \"\n CONSTANT: (30314..30315)\n NUMBER: (30314..30315) \"3\"\n ATMOSPHERE: (30315..30316) \" \"\n FORM: (30316..30341)\n OPEN_PAREN: (30316..30317) \"(\"\n SYMBOL: (30317..30323)\n IDENTIFIER: (30317..30323) \"length\"\n ATMOSPHERE: (30323..30324) \" \"\n QUOTED_DATUM: (30324..30340)\n QUOTE: (30324..30325) \"'\"\n FORM: (30325..30340)\n OPEN_PAREN: (30325..30326) \"(\"\n SYMBOL: (30326..30327)\n IDENTIFIER: (30326..30327) \"a\"\n ATMOSPHERE: (30327..30328) \" \"\n FORM: (30328..30331)\n OPEN_PAREN: (30328..30329) \"(\"\n SYMBOL: (30329..30330)\n IDENTIFIER: (30329..30330) \"b\"\n CLOSE_PAREN: (30330..30331) \")\"\n ATMOSPHERE: (30331..30332) \" \"\n FORM: (30332..30339)\n OPEN_PAREN: (30332..30333) \"(\"\n SYMBOL: (30333..30334)\n IDENTIFIER: (30333..30334) \"c\"\n ATMOSPHERE: (30334..30335) \" \"\n SYMBOL: (30335..30336)\n IDENTIFIER: (30335..30336) \"d\"\n ATMOSPHERE: (30336..30337) \" \"\n SYMBOL: (30337..30338)\n IDENTIFIER: (30337..30338) \"e\"\n CLOSE_PAREN: (30338..30339) \")\"\n CLOSE_PAREN: (30339..30340) \")\"\n CLOSE_PAREN: (30340..30341) \")\"\n CLOSE_PAREN: (30341..30342) \")\"\n ATMOSPHERE: (30342..30343) \"\n\"\n FORM: (30343..30364)\n OPEN_PAREN: (30343..30344) \"(\"\n SYMBOL: (30344..30348)\n IDENTIFIER: (30344..30348) \"test\"\n ATMOSPHERE: (30348..30349) \" \"\n CONSTANT: (30349..30350)\n NUMBER: (30349..30350) \"0\"\n ATMOSPHERE: (30350..30351) \" \"\n FORM: (30351..30363)\n OPEN_PAREN: (30351..30352) \"(\"\n SYMBOL: (30352..30358)\n IDENTIFIER: (30352..30358) \"length\"\n ATMOSPHERE: (30358..30359) \" \"\n QUOTED_DATUM: (30359..30362)\n QUOTE: (30359..30360) \"'\"\n FORM: (30360..30362)\n OPEN_PAREN: (30360..30361) \"(\"\n CLOSE_PAREN: (30361..30362) \")\"\n CLOSE_PAREN: (30362..30363) \")\"\n CLOSE_PAREN: (30363..30364) \")\"\n ATMOSPHERE: (30364..30366) \"\n\n\"\n FORM: (30366..30398)\n OPEN_PAREN: (30366..30367) \"(\"\n SYMBOL: (30367..30371)\n IDENTIFIER: (30367..30371) \"test\"\n ATMOSPHERE: (30371..30372) \" \"\n QUOTED_DATUM: (30372..30379)\n QUOTE: (30372..30373) \"'\"\n FORM: (30373..30378)\n OPEN_PAREN: (30373..30374) \"(\"\n SYMBOL: (30374..30375)\n IDENTIFIER: (30374..30375) \"x\"\n ATMOSPHERE: (30375..30376) \" \"\n SYMBOL: (30376..30377)\n IDENTIFIER: (30376..30377) \"y\"\n CLOSE_PAREN: (30377..30378) \")\"\n ATMOSPHERE: (30378..30379) \" \"\n FORM: (30379..30397)\n OPEN_PAREN: (30379..30380) \"(\"\n SYMBOL: (30380..30386)\n IDENTIFIER: (30380..30386) \"append\"\n ATMOSPHERE: (30386..30387) \" \"\n QUOTED_DATUM: (30387..30392)\n QUOTE: (30387..30388) \"'\"\n FORM: (30388..30391)\n OPEN_PAREN: (30388..30389) \"(\"\n SYMBOL: (30389..30390)\n IDENTIFIER: (30389..30390) \"x\"\n CLOSE_PAREN: (30390..30391) \")\"\n ATMOSPHERE: (30391..30392) \" \"\n QUOTED_DATUM: (30392..30396)\n QUOTE: (30392..30393) \"'\"\n FORM: (30393..30396)\n OPEN_PAREN: (30393..30394) \"(\"\n SYMBOL: (30394..30395)\n IDENTIFIER: (30394..30395) \"y\"\n CLOSE_PAREN: (30395..30396) \")\"\n CLOSE_PAREN: (30396..30397) \")\"\n CLOSE_PAREN: (30397..30398) \")\"\n ATMOSPHERE: (30398..30399) \"\n\"\n FORM: (30399..30439)\n OPEN_PAREN: (30399..30400) \"(\"\n SYMBOL: (30400..30404)\n IDENTIFIER: (30400..30404) \"test\"\n ATMOSPHERE: (30404..30405) \" \"\n QUOTED_DATUM: (30405..30416)\n QUOTE: (30405..30406) \"'\"\n FORM: (30406..30415)\n OPEN_PAREN: (30406..30407) \"(\"\n SYMBOL: (30407..30408)\n IDENTIFIER: (30407..30408) \"a\"\n ATMOSPHERE: (30408..30409) \" \"\n SYMBOL: (30409..30410)\n IDENTIFIER: (30409..30410) \"b\"\n ATMOSPHERE: (30410..30411) \" \"\n SYMBOL: (30411..30412)\n IDENTIFIER: (30411..30412) \"c\"\n ATMOSPHERE: (30412..30413) \" \"\n SYMBOL: (30413..30414)\n IDENTIFIER: (30413..30414) \"d\"\n CLOSE_PAREN: (30414..30415) \")\"\n ATMOSPHERE: (30415..30416) \" \"\n FORM: (30416..30438)\n OPEN_PAREN: (30416..30417) \"(\"\n SYMBOL: (30417..30423)\n IDENTIFIER: (30417..30423) \"append\"\n ATMOSPHERE: (30423..30424) \" \"\n QUOTED_DATUM: (30424..30429)\n QUOTE: (30424..30425) \"'\"\n FORM: (30425..30428)\n OPEN_PAREN: (30425..30426) \"(\"\n SYMBOL: (30426..30427)\n IDENTIFIER: (30426..30427) \"a\"\n CLOSE_PAREN: (30427..30428) \")\"\n ATMOSPHERE: (30428..30429) \" \"\n QUOTED_DATUM: (30429..30437)\n QUOTE: (30429..30430) \"'\"\n FORM: (30430..30437)\n OPEN_PAREN: (30430..30431) \"(\"\n SYMBOL: (30431..30432)\n IDENTIFIER: (30431..30432) \"b\"\n ATMOSPHERE: (30432..30433) \" \"\n SYMBOL: (30433..30434)\n IDENTIFIER: (30433..30434) \"c\"\n ATMOSPHERE: (30434..30435) \" \"\n SYMBOL: (30435..30436)\n IDENTIFIER: (30435..30436) \"d\"\n CLOSE_PAREN: (30436..30437) \")\"\n CLOSE_PAREN: (30437..30438) \")\"\n CLOSE_PAREN: (30438..30439) \")\"\n ATMOSPHERE: (30439..30440) \"\n\"\n FORM: (30440..30484)\n OPEN_PAREN: (30440..30441) \"(\"\n SYMBOL: (30441..30445)\n IDENTIFIER: (30441..30445) \"test\"\n ATMOSPHERE: (30445..30446) \" \"\n QUOTED_DATUM: (30446..30459)\n QUOTE: (30446..30447) \"'\"\n FORM: (30447..30458)\n OPEN_PAREN: (30447..30448) \"(\"\n SYMBOL: (30448..30449)\n IDENTIFIER: (30448..30449) \"a\"\n ATMOSPHERE: (30449..30450) \" \"\n FORM: (30450..30453)\n OPEN_PAREN: (30450..30451) \"(\"\n SYMBOL: (30451..30452)\n IDENTIFIER: (30451..30452) \"b\"\n CLOSE_PAREN: (30452..30453) \")\"\n ATMOSPHERE: (30453..30454) \" \"\n FORM: (30454..30457)\n OPEN_PAREN: (30454..30455) \"(\"\n SYMBOL: (30455..30456)\n IDENTIFIER: (30455..30456) \"c\"\n CLOSE_PAREN: (30456..30457) \")\"\n CLOSE_PAREN: (30457..30458) \")\"\n ATMOSPHERE: (30458..30459) \" \"\n FORM: (30459..30483)\n OPEN_PAREN: (30459..30460) \"(\"\n SYMBOL: (30460..30466)\n IDENTIFIER: (30460..30466) \"append\"\n ATMOSPHERE: (30466..30467) \" \"\n QUOTED_DATUM: (30467..30476)\n QUOTE: (30467..30468) \"'\"\n FORM: (30468..30475)\n OPEN_PAREN: (30468..30469) \"(\"\n SYMBOL: (30469..30470)\n IDENTIFIER: (30469..30470) \"a\"\n ATMOSPHERE: (30470..30471) \" \"\n FORM: (30471..30474)\n OPEN_PAREN: (30471..30472) \"(\"\n SYMBOL: (30472..30473)\n IDENTIFIER: (30472..30473) \"b\"\n CLOSE_PAREN: (30473..30474) \")\"\n CLOSE_PAREN: (30474..30475) \")\"\n ATMOSPHERE: (30475..30476) \" \"\n QUOTED_DATUM: (30476..30482)\n QUOTE: (30476..30477) \"'\"\n FORM: (30477..30482)\n OPEN_PAREN: (30477..30478) \"(\"\n FORM: (30478..30481)\n OPEN_PAREN: (30478..30479) \"(\"\n SYMBOL: (30479..30480)\n IDENTIFIER: (30479..30480) \"c\"\n CLOSE_PAREN: (30480..30481) \")\"\n CLOSE_PAREN: (30481..30482) \")\"\n CLOSE_PAREN: (30482..30483) \")\"\n CLOSE_PAREN: (30483..30484) \")\"\n ATMOSPHERE: (30484..30486) \"\n\n\"\n FORM: (30486..30530)\n OPEN_PAREN: (30486..30487) \"(\"\n SYMBOL: (30487..30491)\n IDENTIFIER: (30487..30491) \"test\"\n ATMOSPHERE: (30491..30492) \" \"\n QUOTED_DATUM: (30492..30505)\n QUOTE: (30492..30493) \"'\"\n FORM: (30493..30504)\n OPEN_PAREN: (30493..30494) \"(\"\n SYMBOL: (30494..30495)\n IDENTIFIER: (30494..30495) \"a\"\n ATMOSPHERE: (30495..30496) \" \"\n SYMBOL: (30496..30497)\n IDENTIFIER: (30496..30497) \"b\"\n ATMOSPHERE: (30497..30498) \" \"\n SYMBOL: (30498..30499)\n IDENTIFIER: (30498..30499) \"c\"\n ATMOSPHERE: (30499..30500) \" \"\n DOTTED_TAIL: (30500..30503)\n DOT: (30500..30501) \".\"\n ATMOSPHERE: (30501..30502) \" \"\n SYMBOL: (30502..30503)\n IDENTIFIER: (30502..30503) \"d\"\n CLOSE_PAREN: (30503..30504) \")\"\n ATMOSPHERE: (30504..30505) \" \"\n FORM: (30505..30529)\n OPEN_PAREN: (30505..30506) \"(\"\n SYMBOL: (30506..30512)\n IDENTIFIER: (30506..30512) \"append\"\n ATMOSPHERE: (30512..30513) \" \"\n QUOTED_DATUM: (30513..30520)\n QUOTE: (30513..30514) \"'\"\n FORM: (30514..30519)\n OPEN_PAREN: (30514..30515) \"(\"\n SYMBOL: (30515..30516)\n IDENTIFIER: (30515..30516) \"a\"\n ATMOSPHERE: (30516..30517) \" \"\n SYMBOL: (30517..30518)\n IDENTIFIER: (30517..30518) \"b\"\n CLOSE_PAREN: (30518..30519) \")\"\n ATMOSPHERE: (30519..30520) \" \"\n QUOTED_DATUM: (30520..30528)\n QUOTE: (30520..30521) \"'\"\n FORM: (30521..30528)\n OPEN_PAREN: (30521..30522) \"(\"\n SYMBOL: (30522..30523)\n IDENTIFIER: (30522..30523) \"c\"\n ATMOSPHERE: (30523..30524) \" \"\n DOTTED_TAIL: (30524..30527)\n DOT: (30524..30525) \".\"\n ATMOSPHERE: (30525..30526) \" \"\n SYMBOL: (30526..30527)\n IDENTIFIER: (30526..30527) \"d\"\n CLOSE_PAREN: (30527..30528) \")\"\n CLOSE_PAREN: (30528..30529) \")\"\n CLOSE_PAREN: (30529..30530) \")\"\n ATMOSPHERE: (30530..30531) \"\n\"\n FORM: (30531..30556)\n OPEN_PAREN: (30531..30532) \"(\"\n SYMBOL: (30532..30536)\n IDENTIFIER: (30532..30536) \"test\"\n ATMOSPHERE: (30536..30537) \" \"\n QUOTED_DATUM: (30537..30540)\n QUOTE: (30537..30538) \"'\"\n SYMBOL: (30538..30539)\n IDENTIFIER: (30538..30539) \"a\"\n ATMOSPHERE: (30539..30540) \" \"\n FORM: (30540..30555)\n OPEN_PAREN: (30540..30541) \"(\"\n SYMBOL: (30541..30547)\n IDENTIFIER: (30541..30547) \"append\"\n ATMOSPHERE: (30547..30548) \" \"\n QUOTED_DATUM: (30548..30552)\n QUOTE: (30548..30549) \"'\"\n FORM: (30549..30551)\n OPEN_PAREN: (30549..30550) \"(\"\n CLOSE_PAREN: (30550..30551) \")\"\n ATMOSPHERE: (30551..30552) \" \"\n QUOTED_DATUM: (30552..30554)\n QUOTE: (30552..30553) \"'\"\n SYMBOL: (30553..30554)\n IDENTIFIER: (30553..30554) \"a\"\n CLOSE_PAREN: (30554..30555) \")\"\n CLOSE_PAREN: (30555..30556) \")\"\n ATMOSPHERE: (30556..30558) \"\n\n\"\n FORM: (30558..30592)\n OPEN_PAREN: (30558..30559) \"(\"\n SYMBOL: (30559..30563)\n IDENTIFIER: (30559..30563) \"test\"\n ATMOSPHERE: (30563..30564) \" \"\n QUOTED_DATUM: (30564..30573)\n QUOTE: (30564..30565) \"'\"\n FORM: (30565..30572)\n OPEN_PAREN: (30565..30566) \"(\"\n SYMBOL: (30566..30567)\n IDENTIFIER: (30566..30567) \"c\"\n ATMOSPHERE: (30567..30568) \" \"\n SYMBOL: (30568..30569)\n IDENTIFIER: (30568..30569) \"b\"\n ATMOSPHERE: (30569..30570) \" \"\n SYMBOL: (30570..30571)\n IDENTIFIER: (30570..30571) \"a\"\n CLOSE_PAREN: (30571..30572) \")\"\n ATMOSPHERE: (30572..30573) \" \"\n FORM: (30573..30591)\n OPEN_PAREN: (30573..30574) \"(\"\n SYMBOL: (30574..30581)\n IDENTIFIER: (30574..30581) \"reverse\"\n ATMOSPHERE: (30581..30582) \" \"\n QUOTED_DATUM: (30582..30590)\n QUOTE: (30582..30583) \"'\"\n FORM: (30583..30590)\n OPEN_PAREN: (30583..30584) \"(\"\n SYMBOL: (30584..30585)\n IDENTIFIER: (30584..30585) \"a\"\n ATMOSPHERE: (30585..30586) \" \"\n SYMBOL: (30586..30587)\n IDENTIFIER: (30586..30587) \"b\"\n ATMOSPHERE: (30587..30588) \" \"\n SYMBOL: (30588..30589)\n IDENTIFIER: (30588..30589) \"c\"\n CLOSE_PAREN: (30589..30590) \")\"\n CLOSE_PAREN: (30590..30591) \")\"\n CLOSE_PAREN: (30591..30592) \")\"\n ATMOSPHERE: (30592..30593) \"\n\"\n FORM: (30593..30651)\n OPEN_PAREN: (30593..30594) \"(\"\n SYMBOL: (30594..30598)\n IDENTIFIER: (30594..30598) \"test\"\n ATMOSPHERE: (30598..30599) \" \"\n QUOTED_DATUM: (30599..30620)\n QUOTE: (30599..30600) \"'\"\n FORM: (30600..30619)\n OPEN_PAREN: (30600..30601) \"(\"\n FORM: (30601..30608)\n OPEN_PAREN: (30601..30602) \"(\"\n SYMBOL: (30602..30603)\n IDENTIFIER: (30602..30603) \"e\"\n ATMOSPHERE: (30603..30604) \" \"\n FORM: (30604..30607)\n OPEN_PAREN: (30604..30605) \"(\"\n SYMBOL: (30605..30606)\n IDENTIFIER: (30605..30606) \"f\"\n CLOSE_PAREN: (30606..30607) \")\"\n CLOSE_PAREN: (30607..30608) \")\"\n ATMOSPHERE: (30608..30609) \" \"\n SYMBOL: (30609..30610)\n IDENTIFIER: (30609..30610) \"d\"\n ATMOSPHERE: (30610..30611) \" \"\n FORM: (30611..30616)\n OPEN_PAREN: (30611..30612) \"(\"\n SYMBOL: (30612..30613)\n IDENTIFIER: (30612..30613) \"b\"\n ATMOSPHERE: (30613..30614) \" \"\n SYMBOL: (30614..30615)\n IDENTIFIER: (30614..30615) \"c\"\n CLOSE_PAREN: (30615..30616) \")\"\n ATMOSPHERE: (30616..30617) \" \"\n SYMBOL: (30617..30618)\n IDENTIFIER: (30617..30618) \"a\"\n CLOSE_PAREN: (30618..30619) \")\"\n ATMOSPHERE: (30619..30620) \" \"\n FORM: (30620..30650)\n OPEN_PAREN: (30620..30621) \"(\"\n SYMBOL: (30621..30628)\n IDENTIFIER: (30621..30628) \"reverse\"\n ATMOSPHERE: (30628..30629) \" \"\n QUOTED_DATUM: (30629..30649)\n QUOTE: (30629..30630) \"'\"\n FORM: (30630..30649)\n OPEN_PAREN: (30630..30631) \"(\"\n SYMBOL: (30631..30632)\n IDENTIFIER: (30631..30632) \"a\"\n ATMOSPHERE: (30632..30633) \" \"\n FORM: (30633..30638)\n OPEN_PAREN: (30633..30634) \"(\"\n SYMBOL: (30634..30635)\n IDENTIFIER: (30634..30635) \"b\"\n ATMOSPHERE: (30635..30636) \" \"\n SYMBOL: (30636..30637)\n IDENTIFIER: (30636..30637) \"c\"\n CLOSE_PAREN: (30637..30638) \")\"\n ATMOSPHERE: (30638..30639) \" \"\n SYMBOL: (30639..30640)\n IDENTIFIER: (30639..30640) \"d\"\n ATMOSPHERE: (30640..30641) \" \"\n FORM: (30641..30648)\n OPEN_PAREN: (30641..30642) \"(\"\n SYMBOL: (30642..30643)\n IDENTIFIER: (30642..30643) \"e\"\n ATMOSPHERE: (30643..30644) \" \"\n FORM: (30644..30647)\n OPEN_PAREN: (30644..30645) \"(\"\n SYMBOL: (30645..30646)\n IDENTIFIER: (30645..30646) \"f\"\n CLOSE_PAREN: (30646..30647) \")\"\n CLOSE_PAREN: (30647..30648) \")\"\n CLOSE_PAREN: (30648..30649) \")\"\n CLOSE_PAREN: (30649..30650) \")\"\n CLOSE_PAREN: (30650..30651) \")\"\n ATMOSPHERE: (30651..30653) \"\n\n\"\n FORM: (30653..30693)\n OPEN_PAREN: (30653..30654) \"(\"\n SYMBOL: (30654..30658)\n IDENTIFIER: (30654..30658) \"test\"\n ATMOSPHERE: (30658..30659) \" \"\n QUOTED_DATUM: (30659..30666)\n QUOTE: (30659..30660) \"'\"\n FORM: (30660..30665)\n OPEN_PAREN: (30660..30661) \"(\"\n SYMBOL: (30661..30662)\n IDENTIFIER: (30661..30662) \"d\"\n ATMOSPHERE: (30662..30663) \" \"\n SYMBOL: (30663..30664)\n IDENTIFIER: (30663..30664) \"e\"\n CLOSE_PAREN: (30664..30665) \")\"\n ATMOSPHERE: (30665..30666) \" \"\n FORM: (30666..30692)\n OPEN_PAREN: (30666..30667) \"(\"\n SYMBOL: (30667..30676)\n IDENTIFIER: (30667..30676) \"list-tail\"\n ATMOSPHERE: (30676..30677) \" \"\n QUOTED_DATUM: (30677..30690)\n QUOTE: (30677..30678) \"'\"\n FORM: (30678..30689)\n OPEN_PAREN: (30678..30679) \"(\"\n SYMBOL: (30679..30680)\n IDENTIFIER: (30679..30680) \"a\"\n ATMOSPHERE: (30680..30681) \" \"\n SYMBOL: (30681..30682)\n IDENTIFIER: (30681..30682) \"b\"\n ATMOSPHERE: (30682..30683) \" \"\n SYMBOL: (30683..30684)\n IDENTIFIER: (30683..30684) \"c\"\n ATMOSPHERE: (30684..30685) \" \"\n SYMBOL: (30685..30686)\n IDENTIFIER: (30685..30686) \"d\"\n ATMOSPHERE: (30686..30687) \" \"\n SYMBOL: (30687..30688)\n IDENTIFIER: (30687..30688) \"e\"\n CLOSE_PAREN: (30688..30689) \")\"\n ATMOSPHERE: (30689..30690) \" \"\n CONSTANT: (30690..30691)\n NUMBER: (30690..30691) \"3\"\n CLOSE_PAREN: (30691..30692) \")\"\n CLOSE_PAREN: (30692..30693) \")\"\n ATMOSPHERE: (30693..30695) \"\n\n\"\n FORM: (30695..30728)\n OPEN_PAREN: (30695..30696) \"(\"\n SYMBOL: (30696..30700)\n IDENTIFIER: (30696..30700) \"test\"\n ATMOSPHERE: (30700..30701) \" \"\n QUOTED_DATUM: (30701..30704)\n QUOTE: (30701..30702) \"'\"\n SYMBOL: (30702..30703)\n IDENTIFIER: (30702..30703) \"c\"\n ATMOSPHERE: (30703..30704) \" \"\n FORM: (30704..30727)\n OPEN_PAREN: (30704..30705) \"(\"\n SYMBOL: (30705..30713)\n IDENTIFIER: (30705..30713) \"list-ref\"\n ATMOSPHERE: (30713..30714) \" \"\n QUOTED_DATUM: (30714..30725)\n QUOTE: (30714..30715) \"'\"\n FORM: (30715..30724)\n OPEN_PAREN: (30715..30716) \"(\"\n SYMBOL: (30716..30717)\n IDENTIFIER: (30716..30717) \"a\"\n ATMOSPHERE: (30717..30718) \" \"\n SYMBOL: (30718..30719)\n IDENTIFIER: (30718..30719) \"b\"\n ATMOSPHERE: (30719..30720) \" \"\n SYMBOL: (30720..30721)\n IDENTIFIER: (30720..30721) \"c\"\n ATMOSPHERE: (30721..30722) \" \"\n SYMBOL: (30722..30723)\n IDENTIFIER: (30722..30723) \"d\"\n CLOSE_PAREN: (30723..30724) \")\"\n ATMOSPHERE: (30724..30725) \" \"\n CONSTANT: (30725..30726)\n NUMBER: (30725..30726) \"2\"\n CLOSE_PAREN: (30726..30727) \")\"\n CLOSE_PAREN: (30727..30728) \")\"\n ATMOSPHERE: (30728..30729) \"\n\"\n ATMOSPHERE: (30729..30761) \";; (test 'c (list-ref '(a b c d)\"\n ATMOSPHERE: (30761..30762) \"\n\"\n ATMOSPHERE: (30762..30831) \";; (exact (round 1.8)))) FIXME: support `round` and `exact`\"\n ATMOSPHERE: (30831..30833) \"\n\n\"\n FORM: (30833..30959)\n OPEN_PAREN: (30833..30834) \"(\"\n SYMBOL: (30834..30838)\n IDENTIFIER: (30834..30838) \"test\"\n ATMOSPHERE: (30838..30839) \" \"\n QUOTED_DATUM: (30839..30869)\n QUOTE: (30839..30840) \"'\"\n FORM: (30840..30864)\n OPEN_PAREN: (30840..30841) \"(\"\n CONSTANT: (30841..30842)\n NUMBER: (30841..30842) \"0\"\n ATMOSPHERE: (30842..30843) \" \"\n FORM: (30843..30856)\n OPEN_PAREN: (30843..30844) \"(\"\n CONSTANT: (30844..30849)\n STRING: (30844..30849) \"\"Sue\"\"\n ATMOSPHERE: (30849..30850) \" \"\n CONSTANT: (30850..30855)\n STRING: (30850..30855) \"\"Sue\"\"\n CLOSE_PAREN: (30855..30856) \")\"\n ATMOSPHERE: (30856..30857) \" \"\n CONSTANT: (30857..30863)\n STRING: (30857..30863) \"\"Anna\"\"\n CLOSE_PAREN: (30863..30864) \")\"\n ATMOSPHERE: (30864..30869) \"\n \"\n FORM: (30869..30958)\n OPEN_PAREN: (30869..30870) \"(\"\n SYMBOL: (30870..30873)\n IDENTIFIER: (30870..30873) \"let\"\n ATMOSPHERE: (30873..30874) \" \"\n FORM: (30874..30908)\n OPEN_PAREN: (30874..30875) \"(\"\n FORM: (30875..30907)\n OPEN_PAREN: (30875..30876) \"(\"\n SYMBOL: (30876..30879)\n IDENTIFIER: (30876..30879) \"lst\"\n ATMOSPHERE: (30879..30880) \" \"\n FORM: (30880..30906)\n OPEN_PAREN: (30880..30881) \"(\"\n SYMBOL: (30881..30885)\n IDENTIFIER: (30881..30885) \"list\"\n ATMOSPHERE: (30885..30886) \" \"\n CONSTANT: (30886..30887)\n NUMBER: (30886..30887) \"0\"\n ATMOSPHERE: (30887..30888) \" \"\n QUOTED_DATUM: (30888..30899)\n QUOTE: (30888..30889) \"'\"\n FORM: (30889..30898)\n OPEN_PAREN: (30889..30890) \"(\"\n CONSTANT: (30890..30891)\n NUMBER: (30890..30891) \"2\"\n ATMOSPHERE: (30891..30892) \" \"\n CONSTANT: (30892..30893)\n NUMBER: (30892..30893) \"2\"\n ATMOSPHERE: (30893..30894) \" \"\n CONSTANT: (30894..30895)\n NUMBER: (30894..30895) \"2\"\n ATMOSPHERE: (30895..30896) \" \"\n CONSTANT: (30896..30897)\n NUMBER: (30896..30897) \"2\"\n CLOSE_PAREN: (30897..30898) \")\"\n ATMOSPHERE: (30898..30899) \" \"\n CONSTANT: (30899..30905)\n STRING: (30899..30905) \"\"Anna\"\"\n CLOSE_PAREN: (30905..30906) \")\"\n CLOSE_PAREN: (30906..30907) \")\"\n CLOSE_PAREN: (30907..30908) \")\"\n ATMOSPHERE: (30908..30915) \"\n \"\n FORM: (30915..30947)\n OPEN_PAREN: (30915..30916) \"(\"\n SYMBOL: (30916..30925)\n IDENTIFIER: (30916..30925) \"list-set!\"\n ATMOSPHERE: (30925..30926) \" \"\n SYMBOL: (30926..30929)\n IDENTIFIER: (30926..30929) \"lst\"\n ATMOSPHERE: (30929..30930) \" \"\n CONSTANT: (30930..30931)\n NUMBER: (30930..30931) \"1\"\n ATMOSPHERE: (30931..30932) \" \"\n QUOTED_DATUM: (30932..30946)\n QUOTE: (30932..30933) \"'\"\n FORM: (30933..30946)\n OPEN_PAREN: (30933..30934) \"(\"\n CONSTANT: (30934..30939)\n STRING: (30934..30939) \"\"Sue\"\"\n ATMOSPHERE: (30939..30940) \" \"\n CONSTANT: (30940..30945)\n STRING: (30940..30945) \"\"Sue\"\"\n CLOSE_PAREN: (30945..30946) \")\"\n CLOSE_PAREN: (30946..30947) \")\"\n ATMOSPHERE: (30947..30954) \"\n \"\n SYMBOL: (30954..30957)\n IDENTIFIER: (30954..30957) \"lst\"\n CLOSE_PAREN: (30957..30958) \")\"\n CLOSE_PAREN: (30958..30959) \")\"\n ATMOSPHERE: (30959..30961) \"\n\n\"\n FORM: (30961..30995)\n OPEN_PAREN: (30961..30962) \"(\"\n SYMBOL: (30962..30966)\n IDENTIFIER: (30962..30966) \"test\"\n ATMOSPHERE: (30966..30967) \" \"\n QUOTED_DATUM: (30967..30976)\n QUOTE: (30967..30968) \"'\"\n FORM: (30968..30975)\n OPEN_PAREN: (30968..30969) \"(\"\n SYMBOL: (30969..30970)\n IDENTIFIER: (30969..30970) \"a\"\n ATMOSPHERE: (30970..30971) \" \"\n SYMBOL: (30971..30972)\n IDENTIFIER: (30971..30972) \"b\"\n ATMOSPHERE: (30972..30973) \" \"\n SYMBOL: (30973..30974)\n IDENTIFIER: (30973..30974) \"c\"\n CLOSE_PAREN: (30974..30975) \")\"\n ATMOSPHERE: (30975..30976) \" \"\n FORM: (30976..30994)\n OPEN_PAREN: (30976..30977) \"(\"\n SYMBOL: (30977..30981)\n IDENTIFIER: (30977..30981) \"memq\"\n ATMOSPHERE: (30981..30982) \" \"\n QUOTED_DATUM: (30982..30985)\n QUOTE: (30982..30983) \"'\"\n SYMBOL: (30983..30984)\n IDENTIFIER: (30983..30984) \"a\"\n ATMOSPHERE: (30984..30985) \" \"\n QUOTED_DATUM: (30985..30993)\n QUOTE: (30985..30986) \"'\"\n FORM: (30986..30993)\n OPEN_PAREN: (30986..30987) \"(\"\n SYMBOL: (30987..30988)\n IDENTIFIER: (30987..30988) \"a\"\n ATMOSPHERE: (30988..30989) \" \"\n SYMBOL: (30989..30990)\n IDENTIFIER: (30989..30990) \"b\"\n ATMOSPHERE: (30990..30991) \" \"\n SYMBOL: (30991..30992)\n IDENTIFIER: (30991..30992) \"c\"\n CLOSE_PAREN: (30992..30993) \")\"\n CLOSE_PAREN: (30993..30994) \")\"\n CLOSE_PAREN: (30994..30995) \")\"\n ATMOSPHERE: (30995..30996) \"\n\"\n FORM: (30996..31028)\n OPEN_PAREN: (30996..30997) \"(\"\n SYMBOL: (30997..31001)\n IDENTIFIER: (30997..31001) \"test\"\n ATMOSPHERE: (31001..31002) \" \"\n QUOTED_DATUM: (31002..31009)\n QUOTE: (31002..31003) \"'\"\n FORM: (31003..31008)\n OPEN_PAREN: (31003..31004) \"(\"\n SYMBOL: (31004..31005)\n IDENTIFIER: (31004..31005) \"b\"\n ATMOSPHERE: (31005..31006) \" \"\n SYMBOL: (31006..31007)\n IDENTIFIER: (31006..31007) \"c\"\n CLOSE_PAREN: (31007..31008) \")\"\n ATMOSPHERE: (31008..31009) \" \"\n FORM: (31009..31027)\n OPEN_PAREN: (31009..31010) \"(\"\n SYMBOL: (31010..31014)\n IDENTIFIER: (31010..31014) \"memq\"\n ATMOSPHERE: (31014..31015) \" \"\n QUOTED_DATUM: (31015..31018)\n QUOTE: (31015..31016) \"'\"\n SYMBOL: (31016..31017)\n IDENTIFIER: (31016..31017) \"b\"\n ATMOSPHERE: (31017..31018) \" \"\n QUOTED_DATUM: (31018..31026)\n QUOTE: (31018..31019) \"'\"\n FORM: (31019..31026)\n OPEN_PAREN: (31019..31020) \"(\"\n SYMBOL: (31020..31021)\n IDENTIFIER: (31020..31021) \"a\"\n ATMOSPHERE: (31021..31022) \" \"\n SYMBOL: (31022..31023)\n IDENTIFIER: (31022..31023) \"b\"\n ATMOSPHERE: (31023..31024) \" \"\n SYMBOL: (31024..31025)\n IDENTIFIER: (31024..31025) \"c\"\n CLOSE_PAREN: (31025..31026) \")\"\n CLOSE_PAREN: (31026..31027) \")\"\n CLOSE_PAREN: (31027..31028) \")\"\n ATMOSPHERE: (31028..31029) \"\n\"\n FORM: (31029..31057)\n OPEN_PAREN: (31029..31030) \"(\"\n SYMBOL: (31030..31034)\n IDENTIFIER: (31030..31034) \"test\"\n ATMOSPHERE: (31034..31035) \" \"\n CONSTANT: (31035..31037)\n BOOLEAN: (31035..31037) \"#f\"\n ATMOSPHERE: (31037..31038) \" \"\n FORM: (31038..31056)\n OPEN_PAREN: (31038..31039) \"(\"\n SYMBOL: (31039..31043)\n IDENTIFIER: (31039..31043) \"memq\"\n ATMOSPHERE: (31043..31044) \" \"\n QUOTED_DATUM: (31044..31047)\n QUOTE: (31044..31045) \"'\"\n SYMBOL: (31045..31046)\n IDENTIFIER: (31045..31046) \"a\"\n ATMOSPHERE: (31046..31047) \" \"\n QUOTED_DATUM: (31047..31055)\n QUOTE: (31047..31048) \"'\"\n FORM: (31048..31055)\n OPEN_PAREN: (31048..31049) \"(\"\n SYMBOL: (31049..31050)\n IDENTIFIER: (31049..31050) \"b\"\n ATMOSPHERE: (31050..31051) \" \"\n SYMBOL: (31051..31052)\n IDENTIFIER: (31051..31052) \"c\"\n ATMOSPHERE: (31052..31053) \" \"\n SYMBOL: (31053..31054)\n IDENTIFIER: (31053..31054) \"d\"\n CLOSE_PAREN: (31054..31055) \")\"\n CLOSE_PAREN: (31055..31056) \")\"\n CLOSE_PAREN: (31056..31057) \")\"\n ATMOSPHERE: (31057..31058) \"\n\"\n FORM: (31058..31095)\n OPEN_PAREN: (31058..31059) \"(\"\n SYMBOL: (31059..31063)\n IDENTIFIER: (31059..31063) \"test\"\n ATMOSPHERE: (31063..31064) \" \"\n CONSTANT: (31064..31066)\n BOOLEAN: (31064..31066) \"#f\"\n ATMOSPHERE: (31066..31067) \" \"\n FORM: (31067..31094)\n OPEN_PAREN: (31067..31068) \"(\"\n SYMBOL: (31068..31072)\n IDENTIFIER: (31068..31072) \"memq\"\n ATMOSPHERE: (31072..31073) \" \"\n FORM: (31073..31082)\n OPEN_PAREN: (31073..31074) \"(\"\n SYMBOL: (31074..31078)\n IDENTIFIER: (31074..31078) \"list\"\n ATMOSPHERE: (31078..31079) \" \"\n QUOTED_DATUM: (31079..31081)\n QUOTE: (31079..31080) \"'\"\n SYMBOL: (31080..31081)\n IDENTIFIER: (31080..31081) \"a\"\n CLOSE_PAREN: (31081..31082) \")\"\n ATMOSPHERE: (31082..31083) \" \"\n QUOTED_DATUM: (31083..31093)\n QUOTE: (31083..31084) \"'\"\n FORM: (31084..31093)\n OPEN_PAREN: (31084..31085) \"(\"\n SYMBOL: (31085..31086)\n IDENTIFIER: (31085..31086) \"b\"\n ATMOSPHERE: (31086..31087) \" \"\n FORM: (31087..31090)\n OPEN_PAREN: (31087..31088) \"(\"\n SYMBOL: (31088..31089)\n IDENTIFIER: (31088..31089) \"a\"\n CLOSE_PAREN: (31089..31090) \")\"\n ATMOSPHERE: (31090..31091) \" \"\n SYMBOL: (31091..31092)\n IDENTIFIER: (31091..31092) \"c\"\n CLOSE_PAREN: (31092..31093) \")\"\n CLOSE_PAREN: (31093..31094) \")\"\n CLOSE_PAREN: (31094..31095) \")\"\n ATMOSPHERE: (31095..31096) \"\n\"\n FORM: (31096..31141)\n OPEN_PAREN: (31096..31097) \"(\"\n SYMBOL: (31097..31101)\n IDENTIFIER: (31097..31101) \"test\"\n ATMOSPHERE: (31101..31102) \" \"\n QUOTED_DATUM: (31102..31111)\n QUOTE: (31102..31103) \"'\"\n FORM: (31103..31110)\n OPEN_PAREN: (31103..31104) \"(\"\n FORM: (31104..31107)\n OPEN_PAREN: (31104..31105) \"(\"\n SYMBOL: (31105..31106)\n IDENTIFIER: (31105..31106) \"a\"\n CLOSE_PAREN: (31106..31107) \")\"\n ATMOSPHERE: (31107..31108) \" \"\n SYMBOL: (31108..31109)\n IDENTIFIER: (31108..31109) \"c\"\n CLOSE_PAREN: (31109..31110) \")\"\n ATMOSPHERE: (31110..31111) \" \"\n FORM: (31111..31140)\n OPEN_PAREN: (31111..31112) \"(\"\n SYMBOL: (31112..31118)\n IDENTIFIER: (31112..31118) \"member\"\n ATMOSPHERE: (31118..31119) \" \"\n FORM: (31119..31128)\n OPEN_PAREN: (31119..31120) \"(\"\n SYMBOL: (31120..31124)\n IDENTIFIER: (31120..31124) \"list\"\n ATMOSPHERE: (31124..31125) \" \"\n QUOTED_DATUM: (31125..31127)\n QUOTE: (31125..31126) \"'\"\n SYMBOL: (31126..31127)\n IDENTIFIER: (31126..31127) \"a\"\n CLOSE_PAREN: (31127..31128) \")\"\n ATMOSPHERE: (31128..31129) \" \"\n QUOTED_DATUM: (31129..31139)\n QUOTE: (31129..31130) \"'\"\n FORM: (31130..31139)\n OPEN_PAREN: (31130..31131) \"(\"\n SYMBOL: (31131..31132)\n IDENTIFIER: (31131..31132) \"b\"\n ATMOSPHERE: (31132..31133) \" \"\n FORM: (31133..31136)\n OPEN_PAREN: (31133..31134) \"(\"\n SYMBOL: (31134..31135)\n IDENTIFIER: (31134..31135) \"a\"\n CLOSE_PAREN: (31135..31136) \")\"\n ATMOSPHERE: (31136..31137) \" \"\n SYMBOL: (31137..31138)\n IDENTIFIER: (31137..31138) \"c\"\n CLOSE_PAREN: (31138..31139) \")\"\n CLOSE_PAREN: (31139..31140) \")\"\n CLOSE_PAREN: (31140..31141) \")\"\n ATMOSPHERE: (31141..31142) \"\n\"\n ATMOSPHERE: (31142..31201) \"; (test '(\"b\" \"c\") (member \"B\" '(\"a\" \"b\" \"c\") string-ci=?))\"\n ATMOSPHERE: (31201..31202) \"\n\"\n FORM: (31202..31257)\n OPEN_PAREN: (31202..31203) \"(\"\n SYMBOL: (31203..31207)\n IDENTIFIER: (31203..31207) \"test\"\n ATMOSPHERE: (31207..31208) \" \"\n QUOTED_DATUM: (31208..31219)\n QUOTE: (31208..31209) \"'\"\n FORM: (31209..31218)\n OPEN_PAREN: (31209..31210) \"(\"\n CONSTANT: (31210..31213)\n CHARACTER: (31210..31213) \"#\\b\"\n ATMOSPHERE: (31213..31214) \" \"\n CONSTANT: (31214..31217)\n CHARACTER: (31214..31217) \"#\\c\"\n CLOSE_PAREN: (31217..31218) \")\"\n ATMOSPHERE: (31218..31219) \" \"\n FORM: (31219..31256)\n OPEN_PAREN: (31219..31220) \"(\"\n SYMBOL: (31220..31226)\n IDENTIFIER: (31220..31226) \"member\"\n ATMOSPHERE: (31226..31227) \" \"\n CONSTANT: (31227..31230)\n CHARACTER: (31227..31230) \"#\\B\"\n ATMOSPHERE: (31230..31231) \" \"\n QUOTED_DATUM: (31231..31246)\n QUOTE: (31231..31232) \"'\"\n FORM: (31232..31245)\n OPEN_PAREN: (31232..31233) \"(\"\n CONSTANT: (31233..31236)\n CHARACTER: (31233..31236) \"#\\a\"\n ATMOSPHERE: (31236..31237) \" \"\n CONSTANT: (31237..31240)\n CHARACTER: (31237..31240) \"#\\b\"\n ATMOSPHERE: (31240..31241) \" \"\n CONSTANT: (31241..31244)\n CHARACTER: (31241..31244) \"#\\c\"\n CLOSE_PAREN: (31244..31245) \")\"\n ATMOSPHERE: (31245..31246) \" \"\n SYMBOL: (31246..31255)\n IDENTIFIER: (31246..31255) \"char-ci=?\"\n CLOSE_PAREN: (31255..31256) \")\"\n CLOSE_PAREN: (31256..31257) \")\"\n ATMOSPHERE: (31257..31258) \"\n\"\n FORM: (31258..31301)\n OPEN_PAREN: (31258..31259) \"(\"\n SYMBOL: (31259..31263)\n IDENTIFIER: (31259..31263) \"test\"\n ATMOSPHERE: (31263..31264) \" \"\n QUOTED_DATUM: (31264..31275)\n QUOTE: (31264..31265) \"'\"\n FORM: (31265..31274)\n OPEN_PAREN: (31265..31266) \"(\"\n CONSTANT: (31266..31269)\n NUMBER: (31266..31269) \"101\"\n ATMOSPHERE: (31269..31270) \" \"\n CONSTANT: (31270..31273)\n NUMBER: (31270..31273) \"102\"\n CLOSE_PAREN: (31273..31274) \")\"\n ATMOSPHERE: (31274..31275) \" \"\n FORM: (31275..31300)\n OPEN_PAREN: (31275..31276) \"(\"\n SYMBOL: (31276..31280)\n IDENTIFIER: (31276..31280) \"memv\"\n ATMOSPHERE: (31280..31281) \" \"\n CONSTANT: (31281..31284)\n NUMBER: (31281..31284) \"101\"\n ATMOSPHERE: (31284..31285) \" \"\n QUOTED_DATUM: (31285..31299)\n QUOTE: (31285..31286) \"'\"\n FORM: (31286..31299)\n OPEN_PAREN: (31286..31287) \"(\"\n CONSTANT: (31287..31290)\n NUMBER: (31287..31290) \"100\"\n ATMOSPHERE: (31290..31291) \" \"\n CONSTANT: (31291..31294)\n NUMBER: (31291..31294) \"101\"\n ATMOSPHERE: (31294..31295) \" \"\n CONSTANT: (31295..31298)\n NUMBER: (31295..31298) \"102\"\n CLOSE_PAREN: (31298..31299) \")\"\n CLOSE_PAREN: (31299..31300) \")\"\n CLOSE_PAREN: (31300..31301) \")\"\n ATMOSPHERE: (31301..31303) \"\n\n\"\n FORM: (31303..31425)\n OPEN_PAREN: (31303..31304) \"(\"\n SYMBOL: (31304..31307)\n IDENTIFIER: (31304..31307) \"let\"\n ATMOSPHERE: (31307..31308) \" \"\n FORM: (31308..31310)\n OPEN_PAREN: (31308..31309) \"(\"\n CLOSE_PAREN: (31309..31310) \")\"\n ATMOSPHERE: (31310..31313) \"\n \"\n FORM: (31313..31344)\n OPEN_PAREN: (31313..31314) \"(\"\n SYMBOL: (31314..31320)\n IDENTIFIER: (31314..31320) \"define\"\n ATMOSPHERE: (31320..31321) \" \"\n SYMBOL: (31321..31322)\n IDENTIFIER: (31321..31322) \"e\"\n ATMOSPHERE: (31322..31323) \" \"\n QUOTED_DATUM: (31323..31343)\n QUOTE: (31323..31324) \"'\"\n FORM: (31324..31343)\n OPEN_PAREN: (31324..31325) \"(\"\n FORM: (31325..31330)\n OPEN_PAREN: (31325..31326) \"(\"\n SYMBOL: (31326..31327)\n IDENTIFIER: (31326..31327) \"a\"\n ATMOSPHERE: (31327..31328) \" \"\n CONSTANT: (31328..31329)\n NUMBER: (31328..31329) \"1\"\n CLOSE_PAREN: (31329..31330) \")\"\n ATMOSPHERE: (31330..31331) \" \"\n FORM: (31331..31336)\n OPEN_PAREN: (31331..31332) \"(\"\n SYMBOL: (31332..31333)\n IDENTIFIER: (31332..31333) \"b\"\n ATMOSPHERE: (31333..31334) \" \"\n CONSTANT: (31334..31335)\n NUMBER: (31334..31335) \"2\"\n CLOSE_PAREN: (31335..31336) \")\"\n ATMOSPHERE: (31336..31337) \" \"\n FORM: (31337..31342)\n OPEN_PAREN: (31337..31338) \"(\"\n SYMBOL: (31338..31339)\n IDENTIFIER: (31338..31339) \"c\"\n ATMOSPHERE: (31339..31340) \" \"\n CONSTANT: (31340..31341)\n NUMBER: (31340..31341) \"3\"\n CLOSE_PAREN: (31341..31342) \")\"\n CLOSE_PAREN: (31342..31343) \")\"\n CLOSE_PAREN: (31343..31344) \")\"\n ATMOSPHERE: (31344..31347) \"\n \"\n FORM: (31347..31372)\n OPEN_PAREN: (31347..31348) \"(\"\n SYMBOL: (31348..31352)\n IDENTIFIER: (31348..31352) \"test\"\n ATMOSPHERE: (31352..31353) \" \"\n QUOTED_DATUM: (31353..31360)\n QUOTE: (31353..31354) \"'\"\n FORM: (31354..31359)\n OPEN_PAREN: (31354..31355) \"(\"\n SYMBOL: (31355..31356)\n IDENTIFIER: (31355..31356) \"a\"\n ATMOSPHERE: (31356..31357) \" \"\n CONSTANT: (31357..31358)\n NUMBER: (31357..31358) \"1\"\n CLOSE_PAREN: (31358..31359) \")\"\n ATMOSPHERE: (31359..31360) \" \"\n FORM: (31360..31371)\n OPEN_PAREN: (31360..31361) \"(\"\n SYMBOL: (31361..31365)\n IDENTIFIER: (31361..31365) \"assq\"\n ATMOSPHERE: (31365..31366) \" \"\n QUOTED_DATUM: (31366..31369)\n QUOTE: (31366..31367) \"'\"\n SYMBOL: (31367..31368)\n IDENTIFIER: (31367..31368) \"a\"\n ATMOSPHERE: (31368..31369) \" \"\n SYMBOL: (31369..31370)\n IDENTIFIER: (31369..31370) \"e\"\n CLOSE_PAREN: (31370..31371) \")\"\n CLOSE_PAREN: (31371..31372) \")\"\n ATMOSPHERE: (31372..31375) \"\n \"\n FORM: (31375..31400)\n OPEN_PAREN: (31375..31376) \"(\"\n SYMBOL: (31376..31380)\n IDENTIFIER: (31376..31380) \"test\"\n ATMOSPHERE: (31380..31381) \" \"\n QUOTED_DATUM: (31381..31388)\n QUOTE: (31381..31382) \"'\"\n FORM: (31382..31387)\n OPEN_PAREN: (31382..31383) \"(\"\n SYMBOL: (31383..31384)\n IDENTIFIER: (31383..31384) \"b\"\n ATMOSPHERE: (31384..31385) \" \"\n CONSTANT: (31385..31386)\n NUMBER: (31385..31386) \"2\"\n CLOSE_PAREN: (31386..31387) \")\"\n ATMOSPHERE: (31387..31388) \" \"\n FORM: (31388..31399)\n OPEN_PAREN: (31388..31389) \"(\"\n SYMBOL: (31389..31393)\n IDENTIFIER: (31389..31393) \"assq\"\n ATMOSPHERE: (31393..31394) \" \"\n QUOTED_DATUM: (31394..31397)\n QUOTE: (31394..31395) \"'\"\n SYMBOL: (31395..31396)\n IDENTIFIER: (31395..31396) \"b\"\n ATMOSPHERE: (31396..31397) \" \"\n SYMBOL: (31397..31398)\n IDENTIFIER: (31397..31398) \"e\"\n CLOSE_PAREN: (31398..31399) \")\"\n CLOSE_PAREN: (31399..31400) \")\"\n ATMOSPHERE: (31400..31403) \"\n \"\n FORM: (31403..31424)\n OPEN_PAREN: (31403..31404) \"(\"\n SYMBOL: (31404..31408)\n IDENTIFIER: (31404..31408) \"test\"\n ATMOSPHERE: (31408..31409) \" \"\n CONSTANT: (31409..31411)\n BOOLEAN: (31409..31411) \"#f\"\n ATMOSPHERE: (31411..31412) \" \"\n FORM: (31412..31423)\n OPEN_PAREN: (31412..31413) \"(\"\n SYMBOL: (31413..31417)\n IDENTIFIER: (31413..31417) \"assq\"\n ATMOSPHERE: (31417..31418) \" \"\n QUOTED_DATUM: (31418..31421)\n QUOTE: (31418..31419) \"'\"\n SYMBOL: (31419..31420)\n IDENTIFIER: (31419..31420) \"d\"\n ATMOSPHERE: (31420..31421) \" \"\n SYMBOL: (31421..31422)\n IDENTIFIER: (31421..31422) \"e\"\n CLOSE_PAREN: (31422..31423) \")\"\n CLOSE_PAREN: (31423..31424) \")\"\n CLOSE_PAREN: (31424..31425) \")\"\n ATMOSPHERE: (31425..31427) \"\n\n\"\n FORM: (31427..31474)\n OPEN_PAREN: (31427..31428) \"(\"\n SYMBOL: (31428..31432)\n IDENTIFIER: (31428..31432) \"test\"\n ATMOSPHERE: (31432..31433) \" \"\n CONSTANT: (31433..31435)\n BOOLEAN: (31433..31435) \"#f\"\n ATMOSPHERE: (31435..31436) \" \"\n FORM: (31436..31473)\n OPEN_PAREN: (31436..31437) \"(\"\n SYMBOL: (31437..31441)\n IDENTIFIER: (31437..31441) \"assq\"\n ATMOSPHERE: (31441..31442) \" \"\n FORM: (31442..31451)\n OPEN_PAREN: (31442..31443) \"(\"\n SYMBOL: (31443..31447)\n IDENTIFIER: (31443..31447) \"list\"\n ATMOSPHERE: (31447..31448) \" \"\n QUOTED_DATUM: (31448..31450)\n QUOTE: (31448..31449) \"'\"\n SYMBOL: (31449..31450)\n IDENTIFIER: (31449..31450) \"a\"\n CLOSE_PAREN: (31450..31451) \")\"\n ATMOSPHERE: (31451..31452) \" \"\n QUOTED_DATUM: (31452..31472)\n QUOTE: (31452..31453) \"'\"\n FORM: (31453..31472)\n OPEN_PAREN: (31453..31454) \"(\"\n FORM: (31454..31459)\n OPEN_PAREN: (31454..31455) \"(\"\n FORM: (31455..31458)\n OPEN_PAREN: (31455..31456) \"(\"\n SYMBOL: (31456..31457)\n IDENTIFIER: (31456..31457) \"a\"\n CLOSE_PAREN: (31457..31458) \")\"\n CLOSE_PAREN: (31458..31459) \")\"\n ATMOSPHERE: (31459..31460) \" \"\n FORM: (31460..31465)\n OPEN_PAREN: (31460..31461) \"(\"\n FORM: (31461..31464)\n OPEN_PAREN: (31461..31462) \"(\"\n SYMBOL: (31462..31463)\n IDENTIFIER: (31462..31463) \"b\"\n CLOSE_PAREN: (31463..31464) \")\"\n CLOSE_PAREN: (31464..31465) \")\"\n ATMOSPHERE: (31465..31466) \" \"\n FORM: (31466..31471)\n OPEN_PAREN: (31466..31467) \"(\"\n FORM: (31467..31470)\n OPEN_PAREN: (31467..31468) \"(\"\n SYMBOL: (31468..31469)\n IDENTIFIER: (31468..31469) \"c\"\n CLOSE_PAREN: (31469..31470) \")\"\n CLOSE_PAREN: (31470..31471) \")\"\n CLOSE_PAREN: (31471..31472) \")\"\n CLOSE_PAREN: (31472..31473) \")\"\n CLOSE_PAREN: (31473..31474) \")\"\n ATMOSPHERE: (31474..31475) \"\n\"\n FORM: (31475..31527)\n OPEN_PAREN: (31475..31476) \"(\"\n SYMBOL: (31476..31480)\n IDENTIFIER: (31476..31480) \"test\"\n ATMOSPHERE: (31480..31481) \" \"\n QUOTED_DATUM: (31481..31488)\n QUOTE: (31481..31482) \"'\"\n FORM: (31482..31487)\n OPEN_PAREN: (31482..31483) \"(\"\n FORM: (31483..31486)\n OPEN_PAREN: (31483..31484) \"(\"\n SYMBOL: (31484..31485)\n IDENTIFIER: (31484..31485) \"a\"\n CLOSE_PAREN: (31485..31486) \")\"\n CLOSE_PAREN: (31486..31487) \")\"\n ATMOSPHERE: (31487..31488) \" \"\n FORM: (31488..31526)\n OPEN_PAREN: (31488..31489) \"(\"\n SYMBOL: (31489..31494)\n IDENTIFIER: (31489..31494) \"assoc\"\n ATMOSPHERE: (31494..31495) \" \"\n FORM: (31495..31504)\n OPEN_PAREN: (31495..31496) \"(\"\n SYMBOL: (31496..31500)\n IDENTIFIER: (31496..31500) \"list\"\n ATMOSPHERE: (31500..31501) \" \"\n QUOTED_DATUM: (31501..31503)\n QUOTE: (31501..31502) \"'\"\n SYMBOL: (31502..31503)\n IDENTIFIER: (31502..31503) \"a\"\n CLOSE_PAREN: (31503..31504) \")\"\n ATMOSPHERE: (31504..31505) \" \"\n QUOTED_DATUM: (31505..31525)\n QUOTE: (31505..31506) \"'\"\n FORM: (31506..31525)\n OPEN_PAREN: (31506..31507) \"(\"\n FORM: (31507..31512)\n OPEN_PAREN: (31507..31508) \"(\"\n FORM: (31508..31511)\n OPEN_PAREN: (31508..31509) \"(\"\n SYMBOL: (31509..31510)\n IDENTIFIER: (31509..31510) \"a\"\n CLOSE_PAREN: (31510..31511) \")\"\n CLOSE_PAREN: (31511..31512) \")\"\n ATMOSPHERE: (31512..31513) \" \"\n FORM: (31513..31518)\n OPEN_PAREN: (31513..31514) \"(\"\n FORM: (31514..31517)\n OPEN_PAREN: (31514..31515) \"(\"\n SYMBOL: (31515..31516)\n IDENTIFIER: (31515..31516) \"b\"\n CLOSE_PAREN: (31516..31517) \")\"\n CLOSE_PAREN: (31517..31518) \")\"\n ATMOSPHERE: (31518..31519) \" \"\n FORM: (31519..31524)\n OPEN_PAREN: (31519..31520) \"(\"\n FORM: (31520..31523)\n OPEN_PAREN: (31520..31521) \"(\"\n SYMBOL: (31521..31522)\n IDENTIFIER: (31521..31522) \"c\"\n CLOSE_PAREN: (31522..31523) \")\"\n CLOSE_PAREN: (31523..31524) \")\"\n CLOSE_PAREN: (31524..31525) \")\"\n CLOSE_PAREN: (31525..31526) \")\"\n CLOSE_PAREN: (31526..31527) \")\"\n ATMOSPHERE: (31527..31528) \"\n\"\n FORM: (31528..31576)\n OPEN_PAREN: (31528..31529) \"(\"\n SYMBOL: (31529..31533)\n IDENTIFIER: (31529..31533) \"test\"\n ATMOSPHERE: (31533..31534) \" \"\n QUOTED_DATUM: (31534..31541)\n QUOTE: (31534..31535) \"'\"\n FORM: (31535..31540)\n OPEN_PAREN: (31535..31536) \"(\"\n CONSTANT: (31536..31537)\n NUMBER: (31536..31537) \"2\"\n ATMOSPHERE: (31537..31538) \" \"\n CONSTANT: (31538..31539)\n NUMBER: (31538..31539) \"4\"\n CLOSE_PAREN: (31539..31540) \")\"\n ATMOSPHERE: (31540..31541) \" \"\n FORM: (31541..31575)\n OPEN_PAREN: (31541..31542) \"(\"\n SYMBOL: (31542..31547)\n IDENTIFIER: (31542..31547) \"assoc\"\n ATMOSPHERE: (31547..31548) \" \"\n CONSTANT: (31548..31551)\n NUMBER: (31548..31551) \"2.0\"\n ATMOSPHERE: (31551..31552) \" \"\n QUOTED_DATUM: (31552..31573)\n QUOTE: (31552..31553) \"'\"\n FORM: (31553..31572)\n OPEN_PAREN: (31553..31554) \"(\"\n FORM: (31554..31559)\n OPEN_PAREN: (31554..31555) \"(\"\n CONSTANT: (31555..31556)\n NUMBER: (31555..31556) \"1\"\n ATMOSPHERE: (31556..31557) \" \"\n CONSTANT: (31557..31558)\n NUMBER: (31557..31558) \"1\"\n CLOSE_PAREN: (31558..31559) \")\"\n ATMOSPHERE: (31559..31560) \" \"\n FORM: (31560..31565)\n OPEN_PAREN: (31560..31561) \"(\"\n CONSTANT: (31561..31562)\n NUMBER: (31561..31562) \"2\"\n ATMOSPHERE: (31562..31563) \" \"\n CONSTANT: (31563..31564)\n NUMBER: (31563..31564) \"4\"\n CLOSE_PAREN: (31564..31565) \")\"\n ATMOSPHERE: (31565..31566) \" \"\n FORM: (31566..31571)\n OPEN_PAREN: (31566..31567) \"(\"\n CONSTANT: (31567..31568)\n NUMBER: (31567..31568) \"3\"\n ATMOSPHERE: (31568..31569) \" \"\n CONSTANT: (31569..31570)\n NUMBER: (31569..31570) \"9\"\n CLOSE_PAREN: (31570..31571) \")\"\n CLOSE_PAREN: (31571..31572) \")\"\n ATMOSPHERE: (31572..31573) \" \"\n SYMBOL: (31573..31574)\n IDENTIFIER: (31573..31574) \"=\"\n CLOSE_PAREN: (31574..31575) \")\"\n CLOSE_PAREN: (31575..31576) \")\"\n ATMOSPHERE: (31576..31577) \"\n\"\n FORM: (31577..31622)\n OPEN_PAREN: (31577..31578) \"(\"\n SYMBOL: (31578..31582)\n IDENTIFIER: (31578..31582) \"test\"\n ATMOSPHERE: (31582..31583) \" \"\n QUOTED_DATUM: (31583..31590)\n QUOTE: (31583..31584) \"'\"\n FORM: (31584..31589)\n OPEN_PAREN: (31584..31585) \"(\"\n CONSTANT: (31585..31586)\n NUMBER: (31585..31586) \"5\"\n ATMOSPHERE: (31586..31587) \" \"\n CONSTANT: (31587..31588)\n NUMBER: (31587..31588) \"7\"\n CLOSE_PAREN: (31588..31589) \")\"\n ATMOSPHERE: (31589..31590) \" \"\n FORM: (31590..31621)\n OPEN_PAREN: (31590..31591) \"(\"\n SYMBOL: (31591..31595)\n IDENTIFIER: (31591..31595) \"assv\"\n ATMOSPHERE: (31595..31596) \" \"\n CONSTANT: (31596..31597)\n NUMBER: (31596..31597) \"5\"\n ATMOSPHERE: (31597..31598) \" \"\n QUOTED_DATUM: (31598..31620)\n QUOTE: (31598..31599) \"'\"\n FORM: (31599..31620)\n OPEN_PAREN: (31599..31600) \"(\"\n FORM: (31600..31605)\n OPEN_PAREN: (31600..31601) \"(\"\n CONSTANT: (31601..31602)\n NUMBER: (31601..31602) \"2\"\n ATMOSPHERE: (31602..31603) \" \"\n CONSTANT: (31603..31604)\n NUMBER: (31603..31604) \"3\"\n CLOSE_PAREN: (31604..31605) \")\"\n ATMOSPHERE: (31605..31606) \" \"\n FORM: (31606..31611)\n OPEN_PAREN: (31606..31607) \"(\"\n CONSTANT: (31607..31608)\n NUMBER: (31607..31608) \"5\"\n ATMOSPHERE: (31608..31609) \" \"\n CONSTANT: (31609..31610)\n NUMBER: (31609..31610) \"7\"\n CLOSE_PAREN: (31610..31611) \")\"\n ATMOSPHERE: (31611..31612) \" \"\n FORM: (31612..31619)\n OPEN_PAREN: (31612..31613) \"(\"\n CONSTANT: (31613..31615)\n NUMBER: (31613..31615) \"11\"\n ATMOSPHERE: (31615..31616) \" \"\n CONSTANT: (31616..31618)\n NUMBER: (31616..31618) \"13\"\n CLOSE_PAREN: (31618..31619) \")\"\n CLOSE_PAREN: (31619..31620) \")\"\n CLOSE_PAREN: (31620..31621) \")\"\n CLOSE_PAREN: (31621..31622) \")\"\n ATMOSPHERE: (31622..31624) \"\n\n\"\n FORM: (31624..31660)\n OPEN_PAREN: (31624..31625) \"(\"\n SYMBOL: (31625..31629)\n IDENTIFIER: (31625..31629) \"test\"\n ATMOSPHERE: (31629..31630) \" \"\n QUOTED_DATUM: (31630..31639)\n QUOTE: (31630..31631) \"'\"\n FORM: (31631..31638)\n OPEN_PAREN: (31631..31632) \"(\"\n CONSTANT: (31632..31633)\n NUMBER: (31632..31633) \"1\"\n ATMOSPHERE: (31633..31634) \" \"\n CONSTANT: (31634..31635)\n NUMBER: (31634..31635) \"2\"\n ATMOSPHERE: (31635..31636) \" \"\n CONSTANT: (31636..31637)\n NUMBER: (31636..31637) \"3\"\n CLOSE_PAREN: (31637..31638) \")\"\n ATMOSPHERE: (31638..31639) \" \"\n FORM: (31639..31659)\n OPEN_PAREN: (31639..31640) \"(\"\n SYMBOL: (31640..31649)\n IDENTIFIER: (31640..31649) \"list-copy\"\n ATMOSPHERE: (31649..31650) \" \"\n QUOTED_DATUM: (31650..31658)\n QUOTE: (31650..31651) \"'\"\n FORM: (31651..31658)\n OPEN_PAREN: (31651..31652) \"(\"\n CONSTANT: (31652..31653)\n NUMBER: (31652..31653) \"1\"\n ATMOSPHERE: (31653..31654) \" \"\n CONSTANT: (31654..31655)\n NUMBER: (31654..31655) \"2\"\n ATMOSPHERE: (31655..31656) \" \"\n CONSTANT: (31656..31657)\n NUMBER: (31656..31657) \"3\"\n CLOSE_PAREN: (31657..31658) \")\"\n CLOSE_PAREN: (31658..31659) \")\"\n CLOSE_PAREN: (31659..31660) \")\"\n ATMOSPHERE: (31660..31661) \"\n\"\n FORM: (31661..31691)\n OPEN_PAREN: (31661..31662) \"(\"\n SYMBOL: (31662..31666)\n IDENTIFIER: (31662..31666) \"test\"\n ATMOSPHERE: (31666..31667) \" \"\n CONSTANT: (31667..31672)\n STRING: (31667..31672) \"\"foo\"\"\n ATMOSPHERE: (31672..31673) \" \"\n FORM: (31673..31690)\n OPEN_PAREN: (31673..31674) \"(\"\n SYMBOL: (31674..31683)\n IDENTIFIER: (31674..31683) \"list-copy\"\n ATMOSPHERE: (31683..31684) \" \"\n CONSTANT: (31684..31689)\n STRING: (31684..31689) \"\"foo\"\"\n CLOSE_PAREN: (31689..31690) \")\"\n CLOSE_PAREN: (31690..31691) \")\"\n ATMOSPHERE: (31691..31692) \"\n\"\n FORM: (31692..31718)\n OPEN_PAREN: (31692..31693) \"(\"\n SYMBOL: (31693..31697)\n IDENTIFIER: (31693..31697) \"test\"\n ATMOSPHERE: (31697..31698) \" \"\n QUOTED_DATUM: (31698..31702)\n QUOTE: (31698..31699) \"'\"\n FORM: (31699..31701)\n OPEN_PAREN: (31699..31700) \"(\"\n CLOSE_PAREN: (31700..31701) \")\"\n ATMOSPHERE: (31701..31702) \" \"\n FORM: (31702..31717)\n OPEN_PAREN: (31702..31703) \"(\"\n SYMBOL: (31703..31712)\n IDENTIFIER: (31703..31712) \"list-copy\"\n ATMOSPHERE: (31712..31713) \" \"\n QUOTED_DATUM: (31713..31716)\n QUOTE: (31713..31714) \"'\"\n FORM: (31714..31716)\n OPEN_PAREN: (31714..31715) \"(\"\n CLOSE_PAREN: (31715..31716) \")\"\n CLOSE_PAREN: (31716..31717) \")\"\n CLOSE_PAREN: (31717..31718) \")\"\n ATMOSPHERE: (31718..31719) \"\n\"\n FORM: (31719..31755)\n OPEN_PAREN: (31719..31720) \"(\"\n SYMBOL: (31720..31724)\n IDENTIFIER: (31720..31724) \"test\"\n ATMOSPHERE: (31724..31725) \" \"\n QUOTED_DATUM: (31725..31734)\n QUOTE: (31725..31726) \"'\"\n FORM: (31726..31733)\n OPEN_PAREN: (31726..31727) \"(\"\n CONSTANT: (31727..31728)\n NUMBER: (31727..31728) \"3\"\n ATMOSPHERE: (31728..31729) \" \"\n DOTTED_TAIL: (31729..31732)\n DOT: (31729..31730) \".\"\n ATMOSPHERE: (31730..31731) \" \"\n CONSTANT: (31731..31732)\n NUMBER: (31731..31732) \"4\"\n CLOSE_PAREN: (31732..31733) \")\"\n ATMOSPHERE: (31733..31734) \" \"\n FORM: (31734..31754)\n OPEN_PAREN: (31734..31735) \"(\"\n SYMBOL: (31735..31744)\n IDENTIFIER: (31735..31744) \"list-copy\"\n ATMOSPHERE: (31744..31745) \" \"\n QUOTED_DATUM: (31745..31753)\n QUOTE: (31745..31746) \"'\"\n FORM: (31746..31753)\n OPEN_PAREN: (31746..31747) \"(\"\n CONSTANT: (31747..31748)\n NUMBER: (31747..31748) \"3\"\n ATMOSPHERE: (31748..31749) \" \"\n DOTTED_TAIL: (31749..31752)\n DOT: (31749..31750) \".\"\n ATMOSPHERE: (31750..31751) \" \"\n CONSTANT: (31751..31752)\n NUMBER: (31751..31752) \"4\"\n CLOSE_PAREN: (31752..31753) \")\"\n CLOSE_PAREN: (31753..31754) \")\"\n CLOSE_PAREN: (31754..31755) \")\"\n ATMOSPHERE: (31755..31756) \"\n\"\n FORM: (31756..31800)\n OPEN_PAREN: (31756..31757) \"(\"\n SYMBOL: (31757..31761)\n IDENTIFIER: (31757..31761) \"test\"\n ATMOSPHERE: (31761..31762) \" \"\n QUOTED_DATUM: (31762..31775)\n QUOTE: (31762..31763) \"'\"\n FORM: (31763..31774)\n OPEN_PAREN: (31763..31764) \"(\"\n CONSTANT: (31764..31765)\n NUMBER: (31764..31765) \"6\"\n ATMOSPHERE: (31765..31766) \" \"\n CONSTANT: (31766..31767)\n NUMBER: (31766..31767) \"7\"\n ATMOSPHERE: (31767..31768) \" \"\n CONSTANT: (31768..31769)\n NUMBER: (31768..31769) \"8\"\n ATMOSPHERE: (31769..31770) \" \"\n DOTTED_TAIL: (31770..31773)\n DOT: (31770..31771) \".\"\n ATMOSPHERE: (31771..31772) \" \"\n CONSTANT: (31772..31773)\n NUMBER: (31772..31773) \"9\"\n CLOSE_PAREN: (31773..31774) \")\"\n ATMOSPHERE: (31774..31775) \" \"\n FORM: (31775..31799)\n OPEN_PAREN: (31775..31776) \"(\"\n SYMBOL: (31776..31785)\n IDENTIFIER: (31776..31785) \"list-copy\"\n ATMOSPHERE: (31785..31786) \" \"\n QUOTED_DATUM: (31786..31798)\n QUOTE: (31786..31787) \"'\"\n FORM: (31787..31798)\n OPEN_PAREN: (31787..31788) \"(\"\n CONSTANT: (31788..31789)\n NUMBER: (31788..31789) \"6\"\n ATMOSPHERE: (31789..31790) \" \"\n CONSTANT: (31790..31791)\n NUMBER: (31790..31791) \"7\"\n ATMOSPHERE: (31791..31792) \" \"\n CONSTANT: (31792..31793)\n NUMBER: (31792..31793) \"8\"\n ATMOSPHERE: (31793..31794) \" \"\n DOTTED_TAIL: (31794..31797)\n DOT: (31794..31795) \".\"\n ATMOSPHERE: (31795..31796) \" \"\n CONSTANT: (31796..31797)\n NUMBER: (31796..31797) \"9\"\n CLOSE_PAREN: (31797..31798) \")\"\n CLOSE_PAREN: (31798..31799) \")\"\n CLOSE_PAREN: (31799..31800) \")\"\n ATMOSPHERE: (31800..31801) \"\n\"\n FORM: (31801..32035)\n OPEN_PAREN: (31801..31802) \"(\"\n SYMBOL: (31802..31806)\n IDENTIFIER: (31802..31806) \"let*\"\n ATMOSPHERE: (31806..31807) \" \"\n FORM: (31807..31857)\n OPEN_PAREN: (31807..31808) \"(\"\n FORM: (31808..31829)\n OPEN_PAREN: (31808..31809) \"(\"\n SYMBOL: (31809..31811)\n IDENTIFIER: (31809..31811) \"l1\"\n ATMOSPHERE: (31811..31812) \" \"\n QUOTED_DATUM: (31812..31828)\n QUOTE: (31812..31813) \"'\"\n FORM: (31813..31828)\n OPEN_PAREN: (31813..31814) \"(\"\n FORM: (31814..31819)\n OPEN_PAREN: (31814..31815) \"(\"\n SYMBOL: (31815..31816)\n IDENTIFIER: (31815..31816) \"a\"\n ATMOSPHERE: (31816..31817) \" \"\n SYMBOL: (31817..31818)\n IDENTIFIER: (31817..31818) \"b\"\n CLOSE_PAREN: (31818..31819) \")\"\n ATMOSPHERE: (31819..31820) \" \"\n FORM: (31820..31825)\n OPEN_PAREN: (31820..31821) \"(\"\n SYMBOL: (31821..31822)\n IDENTIFIER: (31821..31822) \"c\"\n ATMOSPHERE: (31822..31823) \" \"\n SYMBOL: (31823..31824)\n IDENTIFIER: (31823..31824) \"d\"\n CLOSE_PAREN: (31824..31825) \")\"\n ATMOSPHERE: (31825..31826) \" \"\n SYMBOL: (31826..31827)\n IDENTIFIER: (31826..31827) \"e\"\n CLOSE_PAREN: (31827..31828) \")\"\n CLOSE_PAREN: (31828..31829) \")\"\n ATMOSPHERE: (31829..31837) \"\n \"\n FORM: (31837..31856)\n OPEN_PAREN: (31837..31838) \"(\"\n SYMBOL: (31838..31840)\n IDENTIFIER: (31838..31840) \"l2\"\n ATMOSPHERE: (31840..31841) \" \"\n FORM: (31841..31855)\n OPEN_PAREN: (31841..31842) \"(\"\n SYMBOL: (31842..31851)\n IDENTIFIER: (31842..31851) \"list-copy\"\n ATMOSPHERE: (31851..31852) \" \"\n SYMBOL: (31852..31854)\n IDENTIFIER: (31852..31854) \"l1\"\n CLOSE_PAREN: (31854..31855) \")\"\n CLOSE_PAREN: (31855..31856) \")\"\n CLOSE_PAREN: (31856..31857) \")\"\n ATMOSPHERE: (31857..31860) \"\n \"\n FORM: (31860..31886)\n OPEN_PAREN: (31860..31861) \"(\"\n SYMBOL: (31861..31865)\n IDENTIFIER: (31861..31865) \"test\"\n ATMOSPHERE: (31865..31866) \" \"\n SYMBOL: (31866..31868)\n IDENTIFIER: (31866..31868) \"l2\"\n ATMOSPHERE: (31868..31869) \" \"\n QUOTED_DATUM: (31869..31885)\n QUOTE: (31869..31870) \"'\"\n FORM: (31870..31885)\n OPEN_PAREN: (31870..31871) \"(\"\n FORM: (31871..31876)\n OPEN_PAREN: (31871..31872) \"(\"\n SYMBOL: (31872..31873)\n IDENTIFIER: (31872..31873) \"a\"\n ATMOSPHERE: (31873..31874) \" \"\n SYMBOL: (31874..31875)\n IDENTIFIER: (31874..31875) \"b\"\n CLOSE_PAREN: (31875..31876) \")\"\n ATMOSPHERE: (31876..31877) \" \"\n FORM: (31877..31882)\n OPEN_PAREN: (31877..31878) \"(\"\n SYMBOL: (31878..31879)\n IDENTIFIER: (31878..31879) \"c\"\n ATMOSPHERE: (31879..31880) \" \"\n SYMBOL: (31880..31881)\n IDENTIFIER: (31880..31881) \"d\"\n CLOSE_PAREN: (31881..31882) \")\"\n ATMOSPHERE: (31882..31883) \" \"\n SYMBOL: (31883..31884)\n IDENTIFIER: (31883..31884) \"e\"\n CLOSE_PAREN: (31884..31885) \")\"\n CLOSE_PAREN: (31885..31886) \")\"\n ATMOSPHERE: (31886..31889) \"\n \"\n FORM: (31889..31922)\n OPEN_PAREN: (31889..31890) \"(\"\n SYMBOL: (31890..31894)\n IDENTIFIER: (31890..31894) \"test\"\n ATMOSPHERE: (31894..31895) \" \"\n CONSTANT: (31895..31897)\n BOOLEAN: (31895..31897) \"#t\"\n ATMOSPHERE: (31897..31898) \" \"\n FORM: (31898..31921)\n OPEN_PAREN: (31898..31899) \"(\"\n SYMBOL: (31899..31902)\n IDENTIFIER: (31899..31902) \"eq?\"\n ATMOSPHERE: (31902..31903) \" \"\n FORM: (31903..31911)\n OPEN_PAREN: (31903..31904) \"(\"\n SYMBOL: (31904..31907)\n IDENTIFIER: (31904..31907) \"car\"\n ATMOSPHERE: (31907..31908) \" \"\n SYMBOL: (31908..31910)\n IDENTIFIER: (31908..31910) \"l1\"\n CLOSE_PAREN: (31910..31911) \")\"\n ATMOSPHERE: (31911..31912) \" \"\n FORM: (31912..31920)\n OPEN_PAREN: (31912..31913) \"(\"\n SYMBOL: (31913..31916)\n IDENTIFIER: (31913..31916) \"car\"\n ATMOSPHERE: (31916..31917) \" \"\n SYMBOL: (31917..31919)\n IDENTIFIER: (31917..31919) \"l2\"\n CLOSE_PAREN: (31919..31920) \")\"\n CLOSE_PAREN: (31920..31921) \")\"\n CLOSE_PAREN: (31921..31922) \")\"\n ATMOSPHERE: (31922..31925) \"\n \"\n FORM: (31925..31960)\n OPEN_PAREN: (31925..31926) \"(\"\n SYMBOL: (31926..31930)\n IDENTIFIER: (31926..31930) \"test\"\n ATMOSPHERE: (31930..31931) \" \"\n CONSTANT: (31931..31933)\n BOOLEAN: (31931..31933) \"#t\"\n ATMOSPHERE: (31933..31934) \" \"\n FORM: (31934..31959)\n OPEN_PAREN: (31934..31935) \"(\"\n SYMBOL: (31935..31938)\n IDENTIFIER: (31935..31938) \"eq?\"\n ATMOSPHERE: (31938..31939) \" \"\n FORM: (31939..31948)\n OPEN_PAREN: (31939..31940) \"(\"\n SYMBOL: (31940..31944)\n IDENTIFIER: (31940..31944) \"cadr\"\n ATMOSPHERE: (31944..31945) \" \"\n SYMBOL: (31945..31947)\n IDENTIFIER: (31945..31947) \"l1\"\n CLOSE_PAREN: (31947..31948) \")\"\n ATMOSPHERE: (31948..31949) \" \"\n FORM: (31949..31958)\n OPEN_PAREN: (31949..31950) \"(\"\n SYMBOL: (31950..31954)\n IDENTIFIER: (31950..31954) \"cadr\"\n ATMOSPHERE: (31954..31955) \" \"\n SYMBOL: (31955..31957)\n IDENTIFIER: (31955..31957) \"l2\"\n CLOSE_PAREN: (31957..31958) \")\"\n CLOSE_PAREN: (31958..31959) \")\"\n CLOSE_PAREN: (31959..31960) \")\"\n ATMOSPHERE: (31960..31963) \"\n \"\n FORM: (31963..31996)\n OPEN_PAREN: (31963..31964) \"(\"\n SYMBOL: (31964..31968)\n IDENTIFIER: (31964..31968) \"test\"\n ATMOSPHERE: (31968..31969) \" \"\n CONSTANT: (31969..31971)\n BOOLEAN: (31969..31971) \"#f\"\n ATMOSPHERE: (31971..31972) \" \"\n FORM: (31972..31995)\n OPEN_PAREN: (31972..31973) \"(\"\n SYMBOL: (31973..31976)\n IDENTIFIER: (31973..31976) \"eq?\"\n ATMOSPHERE: (31976..31977) \" \"\n FORM: (31977..31985)\n OPEN_PAREN: (31977..31978) \"(\"\n SYMBOL: (31978..31981)\n IDENTIFIER: (31978..31981) \"cdr\"\n ATMOSPHERE: (31981..31982) \" \"\n SYMBOL: (31982..31984)\n IDENTIFIER: (31982..31984) \"l1\"\n CLOSE_PAREN: (31984..31985) \")\"\n ATMOSPHERE: (31985..31986) \" \"\n FORM: (31986..31994)\n OPEN_PAREN: (31986..31987) \"(\"\n SYMBOL: (31987..31990)\n IDENTIFIER: (31987..31990) \"cdr\"\n ATMOSPHERE: (31990..31991) \" \"\n SYMBOL: (31991..31993)\n IDENTIFIER: (31991..31993) \"l2\"\n CLOSE_PAREN: (31993..31994) \")\"\n CLOSE_PAREN: (31994..31995) \")\"\n CLOSE_PAREN: (31995..31996) \")\"\n ATMOSPHERE: (31996..31999) \"\n \"\n FORM: (31999..32034)\n OPEN_PAREN: (31999..32000) \"(\"\n SYMBOL: (32000..32004)\n IDENTIFIER: (32000..32004) \"test\"\n ATMOSPHERE: (32004..32005) \" \"\n CONSTANT: (32005..32007)\n BOOLEAN: (32005..32007) \"#f\"\n ATMOSPHERE: (32007..32008) \" \"\n FORM: (32008..32033)\n OPEN_PAREN: (32008..32009) \"(\"\n SYMBOL: (32009..32012)\n IDENTIFIER: (32009..32012) \"eq?\"\n ATMOSPHERE: (32012..32013) \" \"\n FORM: (32013..32022)\n OPEN_PAREN: (32013..32014) \"(\"\n SYMBOL: (32014..32018)\n IDENTIFIER: (32014..32018) \"cddr\"\n ATMOSPHERE: (32018..32019) \" \"\n SYMBOL: (32019..32021)\n IDENTIFIER: (32019..32021) \"l1\"\n CLOSE_PAREN: (32021..32022) \")\"\n ATMOSPHERE: (32022..32023) \" \"\n FORM: (32023..32032)\n OPEN_PAREN: (32023..32024) \"(\"\n SYMBOL: (32024..32028)\n IDENTIFIER: (32024..32028) \"cddr\"\n ATMOSPHERE: (32028..32029) \" \"\n SYMBOL: (32029..32031)\n IDENTIFIER: (32029..32031) \"l2\"\n CLOSE_PAREN: (32031..32032) \")\"\n CLOSE_PAREN: (32032..32033) \")\"\n CLOSE_PAREN: (32033..32034) \")\"\n CLOSE_PAREN: (32034..32035) \")\"\n ATMOSPHERE: (32035..32037) \"\n\n\"\n FORM: (32037..32047)\n OPEN_PAREN: (32037..32038) \"(\"\n SYMBOL: (32038..32046)\n IDENTIFIER: (32038..32046) \"test-end\"\n CLOSE_PAREN: (32046..32047) \")\"\n ATMOSPHERE: (32047..32049) \"\n\n\"\n FORM: (32049..32075)\n OPEN_PAREN: (32049..32050) \"(\"\n SYMBOL: (32050..32060)\n IDENTIFIER: (32050..32060) \"test-begin\"\n ATMOSPHERE: (32060..32061) \" \"\n CONSTANT: (32061..32074)\n STRING: (32061..32074) \"\"6.5 Symbols\"\"\n CLOSE_PAREN: (32074..32075) \")\"\n ATMOSPHERE: (32075..32077) \"\n\n\"\n FORM: (32077..32101)\n OPEN_PAREN: (32077..32078) \"(\"\n SYMBOL: (32078..32082)\n IDENTIFIER: (32078..32082) \"test\"\n ATMOSPHERE: (32082..32083) \" \"\n CONSTANT: (32083..32085)\n BOOLEAN: (32083..32085) \"#t\"\n ATMOSPHERE: (32085..32086) \" \"\n FORM: (32086..32100)\n OPEN_PAREN: (32086..32087) \"(\"\n SYMBOL: (32087..32094)\n IDENTIFIER: (32087..32094) \"symbol?\"\n ATMOSPHERE: (32094..32095) \" \"\n QUOTED_DATUM: (32095..32099)\n QUOTE: (32095..32096) \"'\"\n SYMBOL: (32096..32099)\n IDENTIFIER: (32096..32099) \"foo\"\n CLOSE_PAREN: (32099..32100) \")\"\n CLOSE_PAREN: (32100..32101) \")\"\n ATMOSPHERE: (32101..32102) \"\n\"\n FORM: (32102..32134)\n OPEN_PAREN: (32102..32103) \"(\"\n SYMBOL: (32103..32107)\n IDENTIFIER: (32103..32107) \"test\"\n ATMOSPHERE: (32107..32108) \" \"\n CONSTANT: (32108..32110)\n BOOLEAN: (32108..32110) \"#t\"\n ATMOSPHERE: (32110..32111) \" \"\n FORM: (32111..32133)\n OPEN_PAREN: (32111..32112) \"(\"\n SYMBOL: (32112..32119)\n IDENTIFIER: (32112..32119) \"symbol?\"\n ATMOSPHERE: (32119..32120) \" \"\n FORM: (32120..32132)\n OPEN_PAREN: (32120..32121) \"(\"\n SYMBOL: (32121..32124)\n IDENTIFIER: (32121..32124) \"car\"\n ATMOSPHERE: (32124..32125) \" \"\n QUOTED_DATUM: (32125..32131)\n QUOTE: (32125..32126) \"'\"\n FORM: (32126..32131)\n OPEN_PAREN: (32126..32127) \"(\"\n SYMBOL: (32127..32128)\n IDENTIFIER: (32127..32128) \"a\"\n ATMOSPHERE: (32128..32129) \" \"\n SYMBOL: (32129..32130)\n IDENTIFIER: (32129..32130) \"b\"\n CLOSE_PAREN: (32130..32131) \")\"\n CLOSE_PAREN: (32131..32132) \")\"\n CLOSE_PAREN: (32132..32133) \")\"\n CLOSE_PAREN: (32133..32134) \")\"\n ATMOSPHERE: (32134..32135) \"\n\"\n FORM: (32135..32160)\n OPEN_PAREN: (32135..32136) \"(\"\n SYMBOL: (32136..32140)\n IDENTIFIER: (32136..32140) \"test\"\n ATMOSPHERE: (32140..32141) \" \"\n CONSTANT: (32141..32143)\n BOOLEAN: (32141..32143) \"#f\"\n ATMOSPHERE: (32143..32144) \" \"\n FORM: (32144..32159)\n OPEN_PAREN: (32144..32145) \"(\"\n SYMBOL: (32145..32152)\n IDENTIFIER: (32145..32152) \"symbol?\"\n ATMOSPHERE: (32152..32153) \" \"\n CONSTANT: (32153..32158)\n STRING: (32153..32158) \"\"bar\"\"\n CLOSE_PAREN: (32158..32159) \")\"\n CLOSE_PAREN: (32159..32160) \")\"\n ATMOSPHERE: (32160..32161) \"\n\"\n FORM: (32161..32185)\n OPEN_PAREN: (32161..32162) \"(\"\n SYMBOL: (32162..32166)\n IDENTIFIER: (32162..32166) \"test\"\n ATMOSPHERE: (32166..32167) \" \"\n CONSTANT: (32167..32169)\n BOOLEAN: (32167..32169) \"#t\"\n ATMOSPHERE: (32169..32170) \" \"\n FORM: (32170..32184)\n OPEN_PAREN: (32170..32171) \"(\"\n SYMBOL: (32171..32178)\n IDENTIFIER: (32171..32178) \"symbol?\"\n ATMOSPHERE: (32178..32179) \" \"\n QUOTED_DATUM: (32179..32183)\n QUOTE: (32179..32180) \"'\"\n SYMBOL: (32180..32183)\n IDENTIFIER: (32180..32183) \"nil\"\n CLOSE_PAREN: (32183..32184) \")\"\n CLOSE_PAREN: (32184..32185) \")\"\n ATMOSPHERE: (32185..32186) \"\n\"\n FORM: (32186..32209)\n OPEN_PAREN: (32186..32187) \"(\"\n SYMBOL: (32187..32191)\n IDENTIFIER: (32187..32191) \"test\"\n ATMOSPHERE: (32191..32192) \" \"\n CONSTANT: (32192..32194)\n BOOLEAN: (32192..32194) \"#f\"\n ATMOSPHERE: (32194..32195) \" \"\n FORM: (32195..32208)\n OPEN_PAREN: (32195..32196) \"(\"\n SYMBOL: (32196..32203)\n IDENTIFIER: (32196..32203) \"symbol?\"\n ATMOSPHERE: (32203..32204) \" \"\n QUOTED_DATUM: (32204..32207)\n QUOTE: (32204..32205) \"'\"\n FORM: (32205..32207)\n OPEN_PAREN: (32205..32206) \"(\"\n CLOSE_PAREN: (32206..32207) \")\"\n CLOSE_PAREN: (32207..32208) \")\"\n CLOSE_PAREN: (32208..32209) \")\"\n ATMOSPHERE: (32209..32210) \"\n\"\n FORM: (32210..32232)\n OPEN_PAREN: (32210..32211) \"(\"\n SYMBOL: (32211..32215)\n IDENTIFIER: (32211..32215) \"test\"\n ATMOSPHERE: (32215..32216) \" \"\n CONSTANT: (32216..32218)\n BOOLEAN: (32216..32218) \"#f\"\n ATMOSPHERE: (32218..32219) \" \"\n FORM: (32219..32231)\n OPEN_PAREN: (32219..32220) \"(\"\n SYMBOL: (32220..32227)\n IDENTIFIER: (32220..32227) \"symbol?\"\n ATMOSPHERE: (32227..32228) \" \"\n CONSTANT: (32228..32230)\n BOOLEAN: (32228..32230) \"#f\"\n CLOSE_PAREN: (32230..32231) \")\"\n CLOSE_PAREN: (32231..32232) \")\"\n ATMOSPHERE: (32232..32234) \"\n\n\"\n FORM: (32234..32260)\n OPEN_PAREN: (32234..32235) \"(\"\n SYMBOL: (32235..32239)\n IDENTIFIER: (32235..32239) \"test\"\n ATMOSPHERE: (32239..32240) \" \"\n CONSTANT: (32240..32242)\n BOOLEAN: (32240..32242) \"#t\"\n ATMOSPHERE: (32242..32243) \" \"\n FORM: (32243..32259)\n OPEN_PAREN: (32243..32244) \"(\"\n SYMBOL: (32244..32252)\n IDENTIFIER: (32244..32252) \"symbol=?\"\n ATMOSPHERE: (32252..32253) \" \"\n QUOTED_DATUM: (32253..32256)\n QUOTE: (32253..32254) \"'\"\n SYMBOL: (32254..32255)\n IDENTIFIER: (32254..32255) \"a\"\n ATMOSPHERE: (32255..32256) \" \"\n QUOTED_DATUM: (32256..32258)\n QUOTE: (32256..32257) \"'\"\n SYMBOL: (32257..32258)\n IDENTIFIER: (32257..32258) \"a\"\n CLOSE_PAREN: (32258..32259) \")\"\n CLOSE_PAREN: (32259..32260) \")\"\n ATMOSPHERE: (32260..32261) \"\n\"\n FORM: (32261..32287)\n OPEN_PAREN: (32261..32262) \"(\"\n SYMBOL: (32262..32266)\n IDENTIFIER: (32262..32266) \"test\"\n ATMOSPHERE: (32266..32267) \" \"\n CONSTANT: (32267..32269)\n BOOLEAN: (32267..32269) \"#f\"\n ATMOSPHERE: (32269..32270) \" \"\n FORM: (32270..32286)\n OPEN_PAREN: (32270..32271) \"(\"\n SYMBOL: (32271..32279)\n IDENTIFIER: (32271..32279) \"symbol=?\"\n ATMOSPHERE: (32279..32280) \" \"\n QUOTED_DATUM: (32280..32283)\n QUOTE: (32280..32281) \"'\"\n SYMBOL: (32281..32282)\n IDENTIFIER: (32281..32282) \"a\"\n ATMOSPHERE: (32282..32283) \" \"\n QUOTED_DATUM: (32283..32285)\n QUOTE: (32283..32284) \"'\"\n SYMBOL: (32284..32285)\n IDENTIFIER: (32284..32285) \"A\"\n CLOSE_PAREN: (32285..32286) \")\"\n CLOSE_PAREN: (32286..32287) \")\"\n ATMOSPHERE: (32287..32288) \"\n\"\n FORM: (32288..32317)\n OPEN_PAREN: (32288..32289) \"(\"\n SYMBOL: (32289..32293)\n IDENTIFIER: (32289..32293) \"test\"\n ATMOSPHERE: (32293..32294) \" \"\n CONSTANT: (32294..32296)\n BOOLEAN: (32294..32296) \"#t\"\n ATMOSPHERE: (32296..32297) \" \"\n FORM: (32297..32316)\n OPEN_PAREN: (32297..32298) \"(\"\n SYMBOL: (32298..32306)\n IDENTIFIER: (32298..32306) \"symbol=?\"\n ATMOSPHERE: (32306..32307) \" \"\n QUOTED_DATUM: (32307..32310)\n QUOTE: (32307..32308) \"'\"\n SYMBOL: (32308..32309)\n IDENTIFIER: (32308..32309) \"a\"\n ATMOSPHERE: (32309..32310) \" \"\n QUOTED_DATUM: (32310..32313)\n QUOTE: (32310..32311) \"'\"\n SYMBOL: (32311..32312)\n IDENTIFIER: (32311..32312) \"a\"\n ATMOSPHERE: (32312..32313) \" \"\n QUOTED_DATUM: (32313..32315)\n QUOTE: (32313..32314) \"'\"\n SYMBOL: (32314..32315)\n IDENTIFIER: (32314..32315) \"a\"\n CLOSE_PAREN: (32315..32316) \")\"\n CLOSE_PAREN: (32316..32317) \")\"\n ATMOSPHERE: (32317..32318) \"\n\"\n FORM: (32318..32347)\n OPEN_PAREN: (32318..32319) \"(\"\n SYMBOL: (32319..32323)\n IDENTIFIER: (32319..32323) \"test\"\n ATMOSPHERE: (32323..32324) \" \"\n CONSTANT: (32324..32326)\n BOOLEAN: (32324..32326) \"#f\"\n ATMOSPHERE: (32326..32327) \" \"\n FORM: (32327..32346)\n OPEN_PAREN: (32327..32328) \"(\"\n SYMBOL: (32328..32336)\n IDENTIFIER: (32328..32336) \"symbol=?\"\n ATMOSPHERE: (32336..32337) \" \"\n QUOTED_DATUM: (32337..32340)\n QUOTE: (32337..32338) \"'\"\n SYMBOL: (32338..32339)\n IDENTIFIER: (32338..32339) \"a\"\n ATMOSPHERE: (32339..32340) \" \"\n QUOTED_DATUM: (32340..32343)\n QUOTE: (32340..32341) \"'\"\n SYMBOL: (32341..32342)\n IDENTIFIER: (32341..32342) \"a\"\n ATMOSPHERE: (32342..32343) \" \"\n QUOTED_DATUM: (32343..32345)\n QUOTE: (32343..32344) \"'\"\n SYMBOL: (32344..32345)\n IDENTIFIER: (32344..32345) \"A\"\n CLOSE_PAREN: (32345..32346) \")\"\n CLOSE_PAREN: (32346..32347) \")\"\n ATMOSPHERE: (32347..32349) \"\n\n\"\n FORM: (32349..32404)\n OPEN_PAREN: (32349..32350) \"(\"\n SYMBOL: (32350..32354)\n IDENTIFIER: (32350..32354) \"test\"\n ATMOSPHERE: (32354..32355) \" \"\n CONSTANT: (32355..32368)\n STRING: (32355..32368) \"\"flying-fish\"\"\n ATMOSPHERE: (32368..32374) \" \n\"\n FORM: (32374..32403)\n OPEN_PAREN: (32374..32375) \"(\"\n SYMBOL: (32375..32389)\n IDENTIFIER: (32375..32389) \"symbol->string\"\n ATMOSPHERE: (32389..32390) \" \"\n QUOTED_DATUM: (32390..32402)\n QUOTE: (32390..32391) \"'\"\n SYMBOL: (32391..32402)\n IDENTIFIER: (32391..32402) \"flying-fish\"\n CLOSE_PAREN: (32402..32403) \")\"\n CLOSE_PAREN: (32403..32404) \")\"\n ATMOSPHERE: (32404..32405) \"\n\"\n FORM: (32405..32445)\n OPEN_PAREN: (32405..32406) \"(\"\n SYMBOL: (32406..32410)\n IDENTIFIER: (32406..32410) \"test\"\n ATMOSPHERE: (32410..32411) \" \"\n CONSTANT: (32411..32419)\n STRING: (32411..32419) \"\"Martin\"\"\n ATMOSPHERE: (32419..32420) \" \"\n FORM: (32420..32444)\n OPEN_PAREN: (32420..32421) \"(\"\n SYMBOL: (32421..32435)\n IDENTIFIER: (32421..32435) \"symbol->string\"\n ATMOSPHERE: (32435..32436) \" \"\n QUOTED_DATUM: (32436..32443)\n QUOTE: (32436..32437) \"'\"\n SYMBOL: (32437..32443)\n IDENTIFIER: (32437..32443) \"Martin\"\n CLOSE_PAREN: (32443..32444) \")\"\n CLOSE_PAREN: (32444..32445) \")\"\n ATMOSPHERE: (32445..32446) \"\n\"\n FORM: (32446..32506)\n OPEN_PAREN: (32446..32447) \"(\"\n SYMBOL: (32447..32451)\n IDENTIFIER: (32447..32451) \"test\"\n ATMOSPHERE: (32451..32452) \" \"\n CONSTANT: (32452..32461)\n STRING: (32452..32461) \"\"Malvina\"\"\n ATMOSPHERE: (32461..32462) \" \"\n FORM: (32462..32505)\n OPEN_PAREN: (32462..32463) \"(\"\n SYMBOL: (32463..32477)\n IDENTIFIER: (32463..32477) \"symbol->string\"\n ATMOSPHERE: (32477..32478) \" \"\n FORM: (32478..32504)\n OPEN_PAREN: (32478..32479) \"(\"\n SYMBOL: (32479..32493)\n IDENTIFIER: (32479..32493) \"string->symbol\"\n ATMOSPHERE: (32493..32494) \" \"\n CONSTANT: (32494..32503)\n STRING: (32494..32503) \"\"Malvina\"\"\n CLOSE_PAREN: (32503..32504) \")\"\n CLOSE_PAREN: (32504..32505) \")\"\n CLOSE_PAREN: (32505..32506) \")\"\n ATMOSPHERE: (32506..32508) \"\n\n\"\n FORM: (32508..32558)\n OPEN_PAREN: (32508..32509) \"(\"\n SYMBOL: (32509..32513)\n IDENTIFIER: (32509..32513) \"test\"\n ATMOSPHERE: (32513..32514) \" \"\n QUOTED_DATUM: (32514..32527)\n QUOTE: (32514..32515) \"'\"\n SYMBOL: (32515..32526)\n IDENTIFIER: (32515..32526) \"mISSISSIppi\"\n ATMOSPHERE: (32526..32527) \" \"\n FORM: (32527..32557)\n OPEN_PAREN: (32527..32528) \"(\"\n SYMBOL: (32528..32542)\n IDENTIFIER: (32528..32542) \"string->symbol\"\n ATMOSPHERE: (32542..32543) \" \"\n CONSTANT: (32543..32556)\n STRING: (32543..32556) \"\"mISSISSIppi\"\"\n CLOSE_PAREN: (32556..32557) \")\"\n CLOSE_PAREN: (32557..32558) \")\"\n ATMOSPHERE: (32558..32559) \"\n\"\n FORM: (32559..32608)\n OPEN_PAREN: (32559..32560) \"(\"\n SYMBOL: (32560..32564)\n IDENTIFIER: (32560..32564) \"test\"\n ATMOSPHERE: (32564..32565) \" \"\n CONSTANT: (32565..32567)\n BOOLEAN: (32565..32567) \"#t\"\n ATMOSPHERE: (32567..32568) \" \"\n FORM: (32568..32607)\n OPEN_PAREN: (32568..32569) \"(\"\n SYMBOL: (32569..32572)\n IDENTIFIER: (32569..32572) \"eq?\"\n ATMOSPHERE: (32572..32573) \" \"\n QUOTED_DATUM: (32573..32581)\n QUOTE: (32573..32574) \"'\"\n SYMBOL: (32574..32580)\n IDENTIFIER: (32574..32580) \"bitBlt\"\n ATMOSPHERE: (32580..32581) \" \"\n FORM: (32581..32606)\n OPEN_PAREN: (32581..32582) \"(\"\n SYMBOL: (32582..32596)\n IDENTIFIER: (32582..32596) \"string->symbol\"\n ATMOSPHERE: (32596..32597) \" \"\n CONSTANT: (32597..32605)\n STRING: (32597..32605) \"\"bitBlt\"\"\n CLOSE_PAREN: (32605..32606) \")\"\n CLOSE_PAREN: (32606..32607) \")\"\n CLOSE_PAREN: (32607..32608) \")\"\n ATMOSPHERE: (32608..32609) \"\n\"\n FORM: (32609..32678)\n OPEN_PAREN: (32609..32610) \"(\"\n SYMBOL: (32610..32614)\n IDENTIFIER: (32610..32614) \"test\"\n ATMOSPHERE: (32614..32615) \" \"\n CONSTANT: (32615..32617)\n BOOLEAN: (32615..32617) \"#t\"\n ATMOSPHERE: (32617..32618) \" \"\n FORM: (32618..32677)\n OPEN_PAREN: (32618..32619) \"(\"\n SYMBOL: (32619..32622)\n IDENTIFIER: (32619..32622) \"eq?\"\n ATMOSPHERE: (32622..32623) \" \"\n QUOTED_DATUM: (32623..32633)\n QUOTE: (32623..32624) \"'\"\n SYMBOL: (32624..32632)\n IDENTIFIER: (32624..32632) \"LollyPop\"\n ATMOSPHERE: (32632..32633) \" \"\n FORM: (32633..32676)\n OPEN_PAREN: (32633..32634) \"(\"\n SYMBOL: (32634..32648)\n IDENTIFIER: (32634..32648) \"string->symbol\"\n ATMOSPHERE: (32648..32649) \" \"\n FORM: (32649..32675)\n OPEN_PAREN: (32649..32650) \"(\"\n SYMBOL: (32650..32664)\n IDENTIFIER: (32650..32664) \"symbol->string\"\n ATMOSPHERE: (32664..32665) \" \"\n QUOTED_DATUM: (32665..32674)\n QUOTE: (32665..32666) \"'\"\n SYMBOL: (32666..32674)\n IDENTIFIER: (32666..32674) \"LollyPop\"\n CLOSE_PAREN: (32674..32675) \")\"\n CLOSE_PAREN: (32675..32676) \")\"\n CLOSE_PAREN: (32676..32677) \")\"\n CLOSE_PAREN: (32677..32678) \")\"\n ATMOSPHERE: (32678..32679) \"\n\"\n FORM: (32679..32788)\n OPEN_PAREN: (32679..32680) \"(\"\n SYMBOL: (32680..32684)\n IDENTIFIER: (32680..32684) \"test\"\n ATMOSPHERE: (32684..32685) \" \"\n CONSTANT: (32685..32687)\n BOOLEAN: (32685..32687) \"#t\"\n ATMOSPHERE: (32687..32688) \" \"\n FORM: (32688..32787)\n OPEN_PAREN: (32688..32689) \"(\"\n SYMBOL: (32689..32697)\n IDENTIFIER: (32689..32697) \"string=?\"\n ATMOSPHERE: (32697..32698) \" \"\n CONSTANT: (32698..32715)\n STRING: (32698..32715) \"\"K. Harper, M.D.\"\"\n ATMOSPHERE: (32715..32735) \"\n \"\n FORM: (32735..32786)\n OPEN_PAREN: (32735..32736) \"(\"\n SYMBOL: (32736..32750)\n IDENTIFIER: (32736..32750) \"symbol->string\"\n ATMOSPHERE: (32750..32751) \" \"\n FORM: (32751..32785)\n OPEN_PAREN: (32751..32752) \"(\"\n SYMBOL: (32752..32766)\n IDENTIFIER: (32752..32766) \"string->symbol\"\n ATMOSPHERE: (32766..32767) \" \"\n CONSTANT: (32767..32784)\n STRING: (32767..32784) \"\"K. Harper, M.D.\"\"\n CLOSE_PAREN: (32784..32785) \")\"\n CLOSE_PAREN: (32785..32786) \")\"\n CLOSE_PAREN: (32786..32787) \")\"\n CLOSE_PAREN: (32787..32788) \")\"\n ATMOSPHERE: (32788..32790) \"\n\n\"\n FORM: (32790..32800)\n OPEN_PAREN: (32790..32791) \"(\"\n SYMBOL: (32791..32799)\n IDENTIFIER: (32791..32799) \"test-end\"\n CLOSE_PAREN: (32799..32800) \")\"\n ATMOSPHERE: (32800..32802) \"\n\n\"\n FORM: (32802..32831)\n OPEN_PAREN: (32802..32803) \"(\"\n SYMBOL: (32803..32813)\n IDENTIFIER: (32803..32813) \"test-begin\"\n ATMOSPHERE: (32813..32814) \" \"\n CONSTANT: (32814..32830)\n STRING: (32814..32830) \"\"6.6 Characters\"\"\n CLOSE_PAREN: (32830..32831) \")\"\n ATMOSPHERE: (32831..32833) \"\n\n\"\n FORM: (32833..32854)\n OPEN_PAREN: (32833..32834) \"(\"\n SYMBOL: (32834..32838)\n IDENTIFIER: (32834..32838) \"test\"\n ATMOSPHERE: (32838..32839) \" \"\n CONSTANT: (32839..32841)\n BOOLEAN: (32839..32841) \"#t\"\n ATMOSPHERE: (32841..32842) \" \"\n FORM: (32842..32853)\n OPEN_PAREN: (32842..32843) \"(\"\n SYMBOL: (32843..32848)\n IDENTIFIER: (32843..32848) \"char?\"\n ATMOSPHERE: (32848..32849) \" \"\n CONSTANT: (32849..32852)\n CHARACTER: (32849..32852) \"#\\a\"\n CLOSE_PAREN: (32852..32853) \")\"\n CLOSE_PAREN: (32853..32854) \")\"\n ATMOSPHERE: (32854..32855) \"\n\"\n FORM: (32855..32876)\n OPEN_PAREN: (32855..32856) \"(\"\n SYMBOL: (32856..32860)\n IDENTIFIER: (32856..32860) \"test\"\n ATMOSPHERE: (32860..32861) \" \"\n CONSTANT: (32861..32863)\n BOOLEAN: (32861..32863) \"#f\"\n ATMOSPHERE: (32863..32864) \" \"\n FORM: (32864..32875)\n OPEN_PAREN: (32864..32865) \"(\"\n SYMBOL: (32865..32870)\n IDENTIFIER: (32865..32870) \"char?\"\n ATMOSPHERE: (32870..32871) \" \"\n CONSTANT: (32871..32874)\n STRING: (32871..32874) \"\"a\"\"\n CLOSE_PAREN: (32874..32875) \")\"\n CLOSE_PAREN: (32875..32876) \")\"\n ATMOSPHERE: (32876..32877) \"\n\"\n FORM: (32877..32897)\n OPEN_PAREN: (32877..32878) \"(\"\n SYMBOL: (32878..32882)\n IDENTIFIER: (32878..32882) \"test\"\n ATMOSPHERE: (32882..32883) \" \"\n CONSTANT: (32883..32885)\n BOOLEAN: (32883..32885) \"#f\"\n ATMOSPHERE: (32885..32886) \" \"\n FORM: (32886..32896)\n OPEN_PAREN: (32886..32887) \"(\"\n SYMBOL: (32887..32892)\n IDENTIFIER: (32887..32892) \"char?\"\n ATMOSPHERE: (32892..32893) \" \"\n QUOTED_DATUM: (32893..32895)\n QUOTE: (32893..32894) \"'\"\n SYMBOL: (32894..32895)\n IDENTIFIER: (32894..32895) \"a\"\n CLOSE_PAREN: (32895..32896) \")\"\n CLOSE_PAREN: (32896..32897) \")\"\n ATMOSPHERE: (32897..32898) \"\n\"\n FORM: (32898..32917)\n OPEN_PAREN: (32898..32899) \"(\"\n SYMBOL: (32899..32903)\n IDENTIFIER: (32899..32903) \"test\"\n ATMOSPHERE: (32903..32904) \" \"\n CONSTANT: (32904..32906)\n BOOLEAN: (32904..32906) \"#f\"\n ATMOSPHERE: (32906..32907) \" \"\n FORM: (32907..32916)\n OPEN_PAREN: (32907..32908) \"(\"\n SYMBOL: (32908..32913)\n IDENTIFIER: (32908..32913) \"char?\"\n ATMOSPHERE: (32913..32914) \" \"\n CONSTANT: (32914..32915)\n NUMBER: (32914..32915) \"0\"\n CLOSE_PAREN: (32915..32916) \")\"\n CLOSE_PAREN: (32916..32917) \")\"\n ATMOSPHERE: (32917..32919) \"\n\n\"\n FORM: (32919..32949)\n OPEN_PAREN: (32919..32920) \"(\"\n SYMBOL: (32920..32924)\n IDENTIFIER: (32920..32924) \"test\"\n ATMOSPHERE: (32924..32925) \" \"\n CONSTANT: (32925..32927)\n BOOLEAN: (32925..32927) \"#t\"\n ATMOSPHERE: (32927..32928) \" \"\n FORM: (32928..32948)\n OPEN_PAREN: (32928..32929) \"(\"\n SYMBOL: (32929..32935)\n IDENTIFIER: (32929..32935) \"char=?\"\n ATMOSPHERE: (32935..32936) \" \"\n CONSTANT: (32936..32939)\n CHARACTER: (32936..32939) \"#\\a\"\n ATMOSPHERE: (32939..32940) \" \"\n CONSTANT: (32940..32943)\n CHARACTER: (32940..32943) \"#\\a\"\n ATMOSPHERE: (32943..32944) \" \"\n CONSTANT: (32944..32947)\n CHARACTER: (32944..32947) \"#\\a\"\n CLOSE_PAREN: (32947..32948) \")\"\n CLOSE_PAREN: (32948..32949) \")\"\n ATMOSPHERE: (32949..32950) \"\n\"\n FORM: (32950..32976)\n OPEN_PAREN: (32950..32951) \"(\"\n SYMBOL: (32951..32955)\n IDENTIFIER: (32951..32955) \"test\"\n ATMOSPHERE: (32955..32956) \" \"\n CONSTANT: (32956..32958)\n BOOLEAN: (32956..32958) \"#f\"\n ATMOSPHERE: (32958..32959) \" \"\n FORM: (32959..32975)\n OPEN_PAREN: (32959..32960) \"(\"\n SYMBOL: (32960..32966)\n IDENTIFIER: (32960..32966) \"char=?\"\n ATMOSPHERE: (32966..32967) \" \"\n CONSTANT: (32967..32970)\n CHARACTER: (32967..32970) \"#\\a\"\n ATMOSPHERE: (32970..32971) \" \"\n CONSTANT: (32971..32974)\n CHARACTER: (32971..32974) \"#\\A\"\n CLOSE_PAREN: (32974..32975) \")\"\n CLOSE_PAREN: (32975..32976) \")\"\n ATMOSPHERE: (32976..32977) \"\n\"\n FORM: (32977..33007)\n OPEN_PAREN: (32977..32978) \"(\"\n SYMBOL: (32978..32982)\n IDENTIFIER: (32978..32982) \"test\"\n ATMOSPHERE: (32982..32983) \" \"\n CONSTANT: (32983..32985)\n BOOLEAN: (32983..32985) \"#t\"\n ATMOSPHERE: (32985..32986) \" \"\n FORM: (32986..33006)\n OPEN_PAREN: (32986..32987) \"(\"\n SYMBOL: (32987..32993)\n IDENTIFIER: (32987..32993) \"char\"\n ATMOSPHERE: (32993..32994) \" \"\n CONSTANT: (32994..32997)\n CHARACTER: (32994..32997) \"#\\a\"\n ATMOSPHERE: (32997..32998) \" \"\n CONSTANT: (32998..33001)\n CHARACTER: (32998..33001) \"#\\b\"\n ATMOSPHERE: (33001..33002) \" \"\n CONSTANT: (33002..33005)\n CHARACTER: (33002..33005) \"#\\c\"\n CLOSE_PAREN: (33005..33006) \")\"\n CLOSE_PAREN: (33006..33007) \")\"\n ATMOSPHERE: (33007..33008) \"\n\"\n FORM: (33008..33034)\n OPEN_PAREN: (33008..33009) \"(\"\n SYMBOL: (33009..33013)\n IDENTIFIER: (33009..33013) \"test\"\n ATMOSPHERE: (33013..33014) \" \"\n CONSTANT: (33014..33016)\n BOOLEAN: (33014..33016) \"#f\"\n ATMOSPHERE: (33016..33017) \" \"\n FORM: (33017..33033)\n OPEN_PAREN: (33017..33018) \"(\"\n SYMBOL: (33018..33024)\n IDENTIFIER: (33018..33024) \"char\"\n ATMOSPHERE: (33024..33025) \" \"\n CONSTANT: (33025..33028)\n CHARACTER: (33025..33028) \"#\\a\"\n ATMOSPHERE: (33028..33029) \" \"\n CONSTANT: (33029..33032)\n CHARACTER: (33029..33032) \"#\\a\"\n CLOSE_PAREN: (33032..33033) \")\"\n CLOSE_PAREN: (33033..33034) \")\"\n ATMOSPHERE: (33034..33035) \"\n\"\n FORM: (33035..33061)\n OPEN_PAREN: (33035..33036) \"(\"\n SYMBOL: (33036..33040)\n IDENTIFIER: (33036..33040) \"test\"\n ATMOSPHERE: (33040..33041) \" \"\n CONSTANT: (33041..33043)\n BOOLEAN: (33041..33043) \"#f\"\n ATMOSPHERE: (33043..33044) \" \"\n FORM: (33044..33060)\n OPEN_PAREN: (33044..33045) \"(\"\n SYMBOL: (33045..33051)\n IDENTIFIER: (33045..33051) \"char\"\n ATMOSPHERE: (33051..33052) \" \"\n CONSTANT: (33052..33055)\n CHARACTER: (33052..33055) \"#\\b\"\n ATMOSPHERE: (33055..33056) \" \"\n CONSTANT: (33056..33059)\n CHARACTER: (33056..33059) \"#\\a\"\n CLOSE_PAREN: (33059..33060) \")\"\n CLOSE_PAREN: (33060..33061) \")\"\n ATMOSPHERE: (33061..33062) \"\n\"\n FORM: (33062..33088)\n OPEN_PAREN: (33062..33063) \"(\"\n SYMBOL: (33063..33067)\n IDENTIFIER: (33063..33067) \"test\"\n ATMOSPHERE: (33067..33068) \" \"\n CONSTANT: (33068..33070)\n BOOLEAN: (33068..33070) \"#f\"\n ATMOSPHERE: (33070..33071) \" \"\n FORM: (33071..33087)\n OPEN_PAREN: (33071..33072) \"(\"\n SYMBOL: (33072..33078)\n IDENTIFIER: (33072..33078) \"char>?\"\n ATMOSPHERE: (33078..33079) \" \"\n CONSTANT: (33079..33082)\n CHARACTER: (33079..33082) \"#\\a\"\n ATMOSPHERE: (33082..33083) \" \"\n CONSTANT: (33083..33086)\n CHARACTER: (33083..33086) \"#\\b\"\n CLOSE_PAREN: (33086..33087) \")\"\n CLOSE_PAREN: (33087..33088) \")\"\n ATMOSPHERE: (33088..33089) \"\n\"\n FORM: (33089..33115)\n OPEN_PAREN: (33089..33090) \"(\"\n SYMBOL: (33090..33094)\n IDENTIFIER: (33090..33094) \"test\"\n ATMOSPHERE: (33094..33095) \" \"\n CONSTANT: (33095..33097)\n BOOLEAN: (33095..33097) \"#f\"\n ATMOSPHERE: (33097..33098) \" \"\n FORM: (33098..33114)\n OPEN_PAREN: (33098..33099) \"(\"\n SYMBOL: (33099..33105)\n IDENTIFIER: (33099..33105) \"char>?\"\n ATMOSPHERE: (33105..33106) \" \"\n CONSTANT: (33106..33109)\n CHARACTER: (33106..33109) \"#\\a\"\n ATMOSPHERE: (33109..33110) \" \"\n CONSTANT: (33110..33113)\n CHARACTER: (33110..33113) \"#\\a\"\n CLOSE_PAREN: (33113..33114) \")\"\n CLOSE_PAREN: (33114..33115) \")\"\n ATMOSPHERE: (33115..33116) \"\n\"\n FORM: (33116..33146)\n OPEN_PAREN: (33116..33117) \"(\"\n SYMBOL: (33117..33121)\n IDENTIFIER: (33117..33121) \"test\"\n ATMOSPHERE: (33121..33122) \" \"\n CONSTANT: (33122..33124)\n BOOLEAN: (33122..33124) \"#t\"\n ATMOSPHERE: (33124..33125) \" \"\n FORM: (33125..33145)\n OPEN_PAREN: (33125..33126) \"(\"\n SYMBOL: (33126..33132)\n IDENTIFIER: (33126..33132) \"char>?\"\n ATMOSPHERE: (33132..33133) \" \"\n CONSTANT: (33133..33136)\n CHARACTER: (33133..33136) \"#\\c\"\n ATMOSPHERE: (33136..33137) \" \"\n CONSTANT: (33137..33140)\n CHARACTER: (33137..33140) \"#\\b\"\n ATMOSPHERE: (33140..33141) \" \"\n CONSTANT: (33141..33144)\n CHARACTER: (33141..33144) \"#\\a\"\n CLOSE_PAREN: (33144..33145) \")\"\n CLOSE_PAREN: (33145..33146) \")\"\n ATMOSPHERE: (33146..33147) \"\n\"\n FORM: (33147..33178)\n OPEN_PAREN: (33147..33148) \"(\"\n SYMBOL: (33148..33152)\n IDENTIFIER: (33148..33152) \"test\"\n ATMOSPHERE: (33152..33153) \" \"\n CONSTANT: (33153..33155)\n BOOLEAN: (33153..33155) \"#t\"\n ATMOSPHERE: (33155..33156) \" \"\n FORM: (33156..33177)\n OPEN_PAREN: (33156..33157) \"(\"\n SYMBOL: (33157..33164)\n IDENTIFIER: (33157..33164) \"char<=?\"\n ATMOSPHERE: (33164..33165) \" \"\n CONSTANT: (33165..33168)\n CHARACTER: (33165..33168) \"#\\a\"\n ATMOSPHERE: (33168..33169) \" \"\n CONSTANT: (33169..33172)\n CHARACTER: (33169..33172) \"#\\b\"\n ATMOSPHERE: (33172..33173) \" \"\n CONSTANT: (33173..33176)\n CHARACTER: (33173..33176) \"#\\b\"\n CLOSE_PAREN: (33176..33177) \")\"\n CLOSE_PAREN: (33177..33178) \")\"\n ATMOSPHERE: (33178..33179) \"\n\"\n FORM: (33179..33206)\n OPEN_PAREN: (33179..33180) \"(\"\n SYMBOL: (33180..33184)\n IDENTIFIER: (33180..33184) \"test\"\n ATMOSPHERE: (33184..33185) \" \"\n CONSTANT: (33185..33187)\n BOOLEAN: (33185..33187) \"#t\"\n ATMOSPHERE: (33187..33188) \" \"\n FORM: (33188..33205)\n OPEN_PAREN: (33188..33189) \"(\"\n SYMBOL: (33189..33196)\n IDENTIFIER: (33189..33196) \"char<=?\"\n ATMOSPHERE: (33196..33197) \" \"\n CONSTANT: (33197..33200)\n CHARACTER: (33197..33200) \"#\\a\"\n ATMOSPHERE: (33200..33201) \" \"\n CONSTANT: (33201..33204)\n CHARACTER: (33201..33204) \"#\\a\"\n CLOSE_PAREN: (33204..33205) \")\"\n CLOSE_PAREN: (33205..33206) \")\"\n ATMOSPHERE: (33206..33207) \"\n\"\n FORM: (33207..33234)\n OPEN_PAREN: (33207..33208) \"(\"\n SYMBOL: (33208..33212)\n IDENTIFIER: (33208..33212) \"test\"\n ATMOSPHERE: (33212..33213) \" \"\n CONSTANT: (33213..33215)\n BOOLEAN: (33213..33215) \"#f\"\n ATMOSPHERE: (33215..33216) \" \"\n FORM: (33216..33233)\n OPEN_PAREN: (33216..33217) \"(\"\n SYMBOL: (33217..33224)\n IDENTIFIER: (33217..33224) \"char<=?\"\n ATMOSPHERE: (33224..33225) \" \"\n CONSTANT: (33225..33228)\n CHARACTER: (33225..33228) \"#\\b\"\n ATMOSPHERE: (33228..33229) \" \"\n CONSTANT: (33229..33232)\n CHARACTER: (33229..33232) \"#\\a\"\n CLOSE_PAREN: (33232..33233) \")\"\n CLOSE_PAREN: (33233..33234) \")\"\n ATMOSPHERE: (33234..33235) \"\n\"\n FORM: (33235..33262)\n OPEN_PAREN: (33235..33236) \"(\"\n SYMBOL: (33236..33240)\n IDENTIFIER: (33236..33240) \"test\"\n ATMOSPHERE: (33240..33241) \" \"\n CONSTANT: (33241..33243)\n BOOLEAN: (33241..33243) \"#f\"\n ATMOSPHERE: (33243..33244) \" \"\n FORM: (33244..33261)\n OPEN_PAREN: (33244..33245) \"(\"\n SYMBOL: (33245..33252)\n IDENTIFIER: (33245..33252) \"char>=?\"\n ATMOSPHERE: (33252..33253) \" \"\n CONSTANT: (33253..33256)\n CHARACTER: (33253..33256) \"#\\a\"\n ATMOSPHERE: (33256..33257) \" \"\n CONSTANT: (33257..33260)\n CHARACTER: (33257..33260) \"#\\b\"\n CLOSE_PAREN: (33260..33261) \")\"\n CLOSE_PAREN: (33261..33262) \")\"\n ATMOSPHERE: (33262..33263) \"\n\"\n FORM: (33263..33290)\n OPEN_PAREN: (33263..33264) \"(\"\n SYMBOL: (33264..33268)\n IDENTIFIER: (33264..33268) \"test\"\n ATMOSPHERE: (33268..33269) \" \"\n CONSTANT: (33269..33271)\n BOOLEAN: (33269..33271) \"#t\"\n ATMOSPHERE: (33271..33272) \" \"\n FORM: (33272..33289)\n OPEN_PAREN: (33272..33273) \"(\"\n SYMBOL: (33273..33280)\n IDENTIFIER: (33273..33280) \"char>=?\"\n ATMOSPHERE: (33280..33281) \" \"\n CONSTANT: (33281..33284)\n CHARACTER: (33281..33284) \"#\\a\"\n ATMOSPHERE: (33284..33285) \" \"\n CONSTANT: (33285..33288)\n CHARACTER: (33285..33288) \"#\\a\"\n CLOSE_PAREN: (33288..33289) \")\"\n CLOSE_PAREN: (33289..33290) \")\"\n ATMOSPHERE: (33290..33291) \"\n\"\n FORM: (33291..33322)\n OPEN_PAREN: (33291..33292) \"(\"\n SYMBOL: (33292..33296)\n IDENTIFIER: (33292..33296) \"test\"\n ATMOSPHERE: (33296..33297) \" \"\n CONSTANT: (33297..33299)\n BOOLEAN: (33297..33299) \"#t\"\n ATMOSPHERE: (33299..33300) \" \"\n FORM: (33300..33321)\n OPEN_PAREN: (33300..33301) \"(\"\n SYMBOL: (33301..33308)\n IDENTIFIER: (33301..33308) \"char>=?\"\n ATMOSPHERE: (33308..33309) \" \"\n CONSTANT: (33309..33312)\n CHARACTER: (33309..33312) \"#\\b\"\n ATMOSPHERE: (33312..33313) \" \"\n CONSTANT: (33313..33316)\n CHARACTER: (33313..33316) \"#\\b\"\n ATMOSPHERE: (33316..33317) \" \"\n CONSTANT: (33317..33320)\n CHARACTER: (33317..33320) \"#\\a\"\n CLOSE_PAREN: (33320..33321) \")\"\n CLOSE_PAREN: (33321..33322) \")\"\n ATMOSPHERE: (33322..33324) \"\n\n\"\n FORM: (33324..33353)\n OPEN_PAREN: (33324..33325) \"(\"\n SYMBOL: (33325..33329)\n IDENTIFIER: (33325..33329) \"test\"\n ATMOSPHERE: (33329..33330) \" \"\n CONSTANT: (33330..33332)\n BOOLEAN: (33330..33332) \"#t\"\n ATMOSPHERE: (33332..33333) \" \"\n FORM: (33333..33352)\n OPEN_PAREN: (33333..33334) \"(\"\n SYMBOL: (33334..33343)\n IDENTIFIER: (33334..33343) \"char-ci=?\"\n ATMOSPHERE: (33343..33344) \" \"\n CONSTANT: (33344..33347)\n CHARACTER: (33344..33347) \"#\\a\"\n ATMOSPHERE: (33347..33348) \" \"\n CONSTANT: (33348..33351)\n CHARACTER: (33348..33351) \"#\\a\"\n CLOSE_PAREN: (33351..33352) \")\"\n CLOSE_PAREN: (33352..33353) \")\"\n ATMOSPHERE: (33353..33354) \"\n\"\n FORM: (33354..33387)\n OPEN_PAREN: (33354..33355) \"(\"\n SYMBOL: (33355..33359)\n IDENTIFIER: (33355..33359) \"test\"\n ATMOSPHERE: (33359..33360) \" \"\n CONSTANT: (33360..33362)\n BOOLEAN: (33360..33362) \"#t\"\n ATMOSPHERE: (33362..33363) \" \"\n FORM: (33363..33386)\n OPEN_PAREN: (33363..33364) \"(\"\n SYMBOL: (33364..33373)\n IDENTIFIER: (33364..33373) \"char-ci=?\"\n ATMOSPHERE: (33373..33374) \" \"\n CONSTANT: (33374..33377)\n CHARACTER: (33374..33377) \"#\\a\"\n ATMOSPHERE: (33377..33378) \" \"\n CONSTANT: (33378..33381)\n CHARACTER: (33378..33381) \"#\\A\"\n ATMOSPHERE: (33381..33382) \" \"\n CONSTANT: (33382..33385)\n CHARACTER: (33382..33385) \"#\\a\"\n CLOSE_PAREN: (33385..33386) \")\"\n CLOSE_PAREN: (33386..33387) \")\"\n ATMOSPHERE: (33387..33388) \"\n\"\n FORM: (33388..33417)\n OPEN_PAREN: (33388..33389) \"(\"\n SYMBOL: (33389..33393)\n IDENTIFIER: (33389..33393) \"test\"\n ATMOSPHERE: (33393..33394) \" \"\n CONSTANT: (33394..33396)\n BOOLEAN: (33394..33396) \"#f\"\n ATMOSPHERE: (33396..33397) \" \"\n FORM: (33397..33416)\n OPEN_PAREN: (33397..33398) \"(\"\n SYMBOL: (33398..33407)\n IDENTIFIER: (33398..33407) \"char-ci=?\"\n ATMOSPHERE: (33407..33408) \" \"\n CONSTANT: (33408..33411)\n CHARACTER: (33408..33411) \"#\\a\"\n ATMOSPHERE: (33411..33412) \" \"\n CONSTANT: (33412..33415)\n CHARACTER: (33412..33415) \"#\\b\"\n CLOSE_PAREN: (33415..33416) \")\"\n CLOSE_PAREN: (33416..33417) \")\"\n ATMOSPHERE: (33417..33418) \"\n\"\n FORM: (33418..33451)\n OPEN_PAREN: (33418..33419) \"(\"\n SYMBOL: (33419..33423)\n IDENTIFIER: (33419..33423) \"test\"\n ATMOSPHERE: (33423..33424) \" \"\n CONSTANT: (33424..33426)\n BOOLEAN: (33424..33426) \"#t\"\n ATMOSPHERE: (33426..33427) \" \"\n FORM: (33427..33450)\n OPEN_PAREN: (33427..33428) \"(\"\n SYMBOL: (33428..33437)\n IDENTIFIER: (33428..33437) \"char-ci\"\n ATMOSPHERE: (33437..33438) \" \"\n CONSTANT: (33438..33441)\n CHARACTER: (33438..33441) \"#\\a\"\n ATMOSPHERE: (33441..33442) \" \"\n CONSTANT: (33442..33445)\n CHARACTER: (33442..33445) \"#\\B\"\n ATMOSPHERE: (33445..33446) \" \"\n CONSTANT: (33446..33449)\n CHARACTER: (33446..33449) \"#\\c\"\n CLOSE_PAREN: (33449..33450) \")\"\n CLOSE_PAREN: (33450..33451) \")\"\n ATMOSPHERE: (33451..33452) \"\n\"\n FORM: (33452..33481)\n OPEN_PAREN: (33452..33453) \"(\"\n SYMBOL: (33453..33457)\n IDENTIFIER: (33453..33457) \"test\"\n ATMOSPHERE: (33457..33458) \" \"\n CONSTANT: (33458..33460)\n BOOLEAN: (33458..33460) \"#f\"\n ATMOSPHERE: (33460..33461) \" \"\n FORM: (33461..33480)\n OPEN_PAREN: (33461..33462) \"(\"\n SYMBOL: (33462..33471)\n IDENTIFIER: (33462..33471) \"char-ci\"\n ATMOSPHERE: (33471..33472) \" \"\n CONSTANT: (33472..33475)\n CHARACTER: (33472..33475) \"#\\A\"\n ATMOSPHERE: (33475..33476) \" \"\n CONSTANT: (33476..33479)\n CHARACTER: (33476..33479) \"#\\a\"\n CLOSE_PAREN: (33479..33480) \")\"\n CLOSE_PAREN: (33480..33481) \")\"\n ATMOSPHERE: (33481..33482) \"\n\"\n FORM: (33482..33511)\n OPEN_PAREN: (33482..33483) \"(\"\n SYMBOL: (33483..33487)\n IDENTIFIER: (33483..33487) \"test\"\n ATMOSPHERE: (33487..33488) \" \"\n CONSTANT: (33488..33490)\n BOOLEAN: (33488..33490) \"#f\"\n ATMOSPHERE: (33490..33491) \" \"\n FORM: (33491..33510)\n OPEN_PAREN: (33491..33492) \"(\"\n SYMBOL: (33492..33501)\n IDENTIFIER: (33492..33501) \"char-ci\"\n ATMOSPHERE: (33501..33502) \" \"\n CONSTANT: (33502..33505)\n CHARACTER: (33502..33505) \"#\\b\"\n ATMOSPHERE: (33505..33506) \" \"\n CONSTANT: (33506..33509)\n CHARACTER: (33506..33509) \"#\\A\"\n CLOSE_PAREN: (33509..33510) \")\"\n CLOSE_PAREN: (33510..33511) \")\"\n ATMOSPHERE: (33511..33512) \"\n\"\n FORM: (33512..33541)\n OPEN_PAREN: (33512..33513) \"(\"\n SYMBOL: (33513..33517)\n IDENTIFIER: (33513..33517) \"test\"\n ATMOSPHERE: (33517..33518) \" \"\n CONSTANT: (33518..33520)\n BOOLEAN: (33518..33520) \"#f\"\n ATMOSPHERE: (33520..33521) \" \"\n FORM: (33521..33540)\n OPEN_PAREN: (33521..33522) \"(\"\n SYMBOL: (33522..33531)\n IDENTIFIER: (33522..33531) \"char-ci>?\"\n ATMOSPHERE: (33531..33532) \" \"\n CONSTANT: (33532..33535)\n CHARACTER: (33532..33535) \"#\\A\"\n ATMOSPHERE: (33535..33536) \" \"\n CONSTANT: (33536..33539)\n CHARACTER: (33536..33539) \"#\\b\"\n CLOSE_PAREN: (33539..33540) \")\"\n CLOSE_PAREN: (33540..33541) \")\"\n ATMOSPHERE: (33541..33542) \"\n\"\n FORM: (33542..33571)\n OPEN_PAREN: (33542..33543) \"(\"\n SYMBOL: (33543..33547)\n IDENTIFIER: (33543..33547) \"test\"\n ATMOSPHERE: (33547..33548) \" \"\n CONSTANT: (33548..33550)\n BOOLEAN: (33548..33550) \"#f\"\n ATMOSPHERE: (33550..33551) \" \"\n FORM: (33551..33570)\n OPEN_PAREN: (33551..33552) \"(\"\n SYMBOL: (33552..33561)\n IDENTIFIER: (33552..33561) \"char-ci>?\"\n ATMOSPHERE: (33561..33562) \" \"\n CONSTANT: (33562..33565)\n CHARACTER: (33562..33565) \"#\\a\"\n ATMOSPHERE: (33565..33566) \" \"\n CONSTANT: (33566..33569)\n CHARACTER: (33566..33569) \"#\\A\"\n CLOSE_PAREN: (33569..33570) \")\"\n CLOSE_PAREN: (33570..33571) \")\"\n ATMOSPHERE: (33571..33572) \"\n\"\n FORM: (33572..33605)\n OPEN_PAREN: (33572..33573) \"(\"\n SYMBOL: (33573..33577)\n IDENTIFIER: (33573..33577) \"test\"\n ATMOSPHERE: (33577..33578) \" \"\n CONSTANT: (33578..33580)\n BOOLEAN: (33578..33580) \"#t\"\n ATMOSPHERE: (33580..33581) \" \"\n FORM: (33581..33604)\n OPEN_PAREN: (33581..33582) \"(\"\n SYMBOL: (33582..33591)\n IDENTIFIER: (33582..33591) \"char-ci>?\"\n ATMOSPHERE: (33591..33592) \" \"\n CONSTANT: (33592..33595)\n CHARACTER: (33592..33595) \"#\\c\"\n ATMOSPHERE: (33595..33596) \" \"\n CONSTANT: (33596..33599)\n CHARACTER: (33596..33599) \"#\\B\"\n ATMOSPHERE: (33599..33600) \" \"\n CONSTANT: (33600..33603)\n CHARACTER: (33600..33603) \"#\\a\"\n CLOSE_PAREN: (33603..33604) \")\"\n CLOSE_PAREN: (33604..33605) \")\"\n ATMOSPHERE: (33605..33606) \"\n\"\n FORM: (33606..33640)\n OPEN_PAREN: (33606..33607) \"(\"\n SYMBOL: (33607..33611)\n IDENTIFIER: (33607..33611) \"test\"\n ATMOSPHERE: (33611..33612) \" \"\n CONSTANT: (33612..33614)\n BOOLEAN: (33612..33614) \"#t\"\n ATMOSPHERE: (33614..33615) \" \"\n FORM: (33615..33639)\n OPEN_PAREN: (33615..33616) \"(\"\n SYMBOL: (33616..33626)\n IDENTIFIER: (33616..33626) \"char-ci<=?\"\n ATMOSPHERE: (33626..33627) \" \"\n CONSTANT: (33627..33630)\n CHARACTER: (33627..33630) \"#\\a\"\n ATMOSPHERE: (33630..33631) \" \"\n CONSTANT: (33631..33634)\n CHARACTER: (33631..33634) \"#\\B\"\n ATMOSPHERE: (33634..33635) \" \"\n CONSTANT: (33635..33638)\n CHARACTER: (33635..33638) \"#\\b\"\n CLOSE_PAREN: (33638..33639) \")\"\n CLOSE_PAREN: (33639..33640) \")\"\n ATMOSPHERE: (33640..33641) \"\n\"\n FORM: (33641..33671)\n OPEN_PAREN: (33641..33642) \"(\"\n SYMBOL: (33642..33646)\n IDENTIFIER: (33642..33646) \"test\"\n ATMOSPHERE: (33646..33647) \" \"\n CONSTANT: (33647..33649)\n BOOLEAN: (33647..33649) \"#t\"\n ATMOSPHERE: (33649..33650) \" \"\n FORM: (33650..33670)\n OPEN_PAREN: (33650..33651) \"(\"\n SYMBOL: (33651..33661)\n IDENTIFIER: (33651..33661) \"char-ci<=?\"\n ATMOSPHERE: (33661..33662) \" \"\n CONSTANT: (33662..33665)\n CHARACTER: (33662..33665) \"#\\A\"\n ATMOSPHERE: (33665..33666) \" \"\n CONSTANT: (33666..33669)\n CHARACTER: (33666..33669) \"#\\a\"\n CLOSE_PAREN: (33669..33670) \")\"\n CLOSE_PAREN: (33670..33671) \")\"\n ATMOSPHERE: (33671..33672) \"\n\"\n FORM: (33672..33702)\n OPEN_PAREN: (33672..33673) \"(\"\n SYMBOL: (33673..33677)\n IDENTIFIER: (33673..33677) \"test\"\n ATMOSPHERE: (33677..33678) \" \"\n CONSTANT: (33678..33680)\n BOOLEAN: (33678..33680) \"#f\"\n ATMOSPHERE: (33680..33681) \" \"\n FORM: (33681..33701)\n OPEN_PAREN: (33681..33682) \"(\"\n SYMBOL: (33682..33692)\n IDENTIFIER: (33682..33692) \"char-ci<=?\"\n ATMOSPHERE: (33692..33693) \" \"\n CONSTANT: (33693..33696)\n CHARACTER: (33693..33696) \"#\\b\"\n ATMOSPHERE: (33696..33697) \" \"\n CONSTANT: (33697..33700)\n CHARACTER: (33697..33700) \"#\\A\"\n CLOSE_PAREN: (33700..33701) \")\"\n CLOSE_PAREN: (33701..33702) \")\"\n ATMOSPHERE: (33702..33703) \"\n\"\n FORM: (33703..33733)\n OPEN_PAREN: (33703..33704) \"(\"\n SYMBOL: (33704..33708)\n IDENTIFIER: (33704..33708) \"test\"\n ATMOSPHERE: (33708..33709) \" \"\n CONSTANT: (33709..33711)\n BOOLEAN: (33709..33711) \"#f\"\n ATMOSPHERE: (33711..33712) \" \"\n FORM: (33712..33732)\n OPEN_PAREN: (33712..33713) \"(\"\n SYMBOL: (33713..33723)\n IDENTIFIER: (33713..33723) \"char-ci>=?\"\n ATMOSPHERE: (33723..33724) \" \"\n CONSTANT: (33724..33727)\n CHARACTER: (33724..33727) \"#\\A\"\n ATMOSPHERE: (33727..33728) \" \"\n CONSTANT: (33728..33731)\n CHARACTER: (33728..33731) \"#\\b\"\n CLOSE_PAREN: (33731..33732) \")\"\n CLOSE_PAREN: (33732..33733) \")\"\n ATMOSPHERE: (33733..33734) \"\n\"\n FORM: (33734..33764)\n OPEN_PAREN: (33734..33735) \"(\"\n SYMBOL: (33735..33739)\n IDENTIFIER: (33735..33739) \"test\"\n ATMOSPHERE: (33739..33740) \" \"\n CONSTANT: (33740..33742)\n BOOLEAN: (33740..33742) \"#t\"\n ATMOSPHERE: (33742..33743) \" \"\n FORM: (33743..33763)\n OPEN_PAREN: (33743..33744) \"(\"\n SYMBOL: (33744..33754)\n IDENTIFIER: (33744..33754) \"char-ci>=?\"\n ATMOSPHERE: (33754..33755) \" \"\n CONSTANT: (33755..33758)\n CHARACTER: (33755..33758) \"#\\a\"\n ATMOSPHERE: (33758..33759) \" \"\n CONSTANT: (33759..33762)\n CHARACTER: (33759..33762) \"#\\A\"\n CLOSE_PAREN: (33762..33763) \")\"\n CLOSE_PAREN: (33763..33764) \")\"\n ATMOSPHERE: (33764..33765) \"\n\"\n FORM: (33765..33799)\n OPEN_PAREN: (33765..33766) \"(\"\n SYMBOL: (33766..33770)\n IDENTIFIER: (33766..33770) \"test\"\n ATMOSPHERE: (33770..33771) \" \"\n CONSTANT: (33771..33773)\n BOOLEAN: (33771..33773) \"#t\"\n ATMOSPHERE: (33773..33774) \" \"\n FORM: (33774..33798)\n OPEN_PAREN: (33774..33775) \"(\"\n SYMBOL: (33775..33785)\n IDENTIFIER: (33775..33785) \"char-ci>=?\"\n ATMOSPHERE: (33785..33786) \" \"\n CONSTANT: (33786..33789)\n CHARACTER: (33786..33789) \"#\\b\"\n ATMOSPHERE: (33789..33790) \" \"\n CONSTANT: (33790..33793)\n CHARACTER: (33790..33793) \"#\\B\"\n ATMOSPHERE: (33793..33794) \" \"\n CONSTANT: (33794..33797)\n CHARACTER: (33794..33797) \"#\\a\"\n CLOSE_PAREN: (33797..33798) \")\"\n CLOSE_PAREN: (33798..33799) \")\"\n ATMOSPHERE: (33799..33801) \"\n\n\"\n FORM: (33801..33833)\n OPEN_PAREN: (33801..33802) \"(\"\n SYMBOL: (33802..33806)\n IDENTIFIER: (33802..33806) \"test\"\n ATMOSPHERE: (33806..33807) \" \"\n CONSTANT: (33807..33809)\n BOOLEAN: (33807..33809) \"#t\"\n ATMOSPHERE: (33809..33810) \" \"\n FORM: (33810..33832)\n OPEN_PAREN: (33810..33811) \"(\"\n SYMBOL: (33811..33827)\n IDENTIFIER: (33811..33827) \"char-alphabetic?\"\n ATMOSPHERE: (33827..33828) \" \"\n CONSTANT: (33828..33831)\n CHARACTER: (33828..33831) \"#\\a\"\n CLOSE_PAREN: (33831..33832) \")\"\n CLOSE_PAREN: (33832..33833) \")\"\n ATMOSPHERE: (33833..33834) \"\n\"\n FORM: (33834..33870)\n OPEN_PAREN: (33834..33835) \"(\"\n SYMBOL: (33835..33839)\n IDENTIFIER: (33835..33839) \"test\"\n ATMOSPHERE: (33839..33840) \" \"\n CONSTANT: (33840..33842)\n BOOLEAN: (33840..33842) \"#f\"\n ATMOSPHERE: (33842..33843) \" \"\n FORM: (33843..33869)\n OPEN_PAREN: (33843..33844) \"(\"\n SYMBOL: (33844..33860)\n IDENTIFIER: (33844..33860) \"char-alphabetic?\"\n ATMOSPHERE: (33860..33861) \" \"\n CONSTANT: (33861..33868)\n CHARACTER: (33861..33868) \"#\\space\"\n CLOSE_PAREN: (33868..33869) \")\"\n CLOSE_PAREN: (33869..33870) \")\"\n ATMOSPHERE: (33870..33871) \"\n\"\n FORM: (33871..33900)\n OPEN_PAREN: (33871..33872) \"(\"\n SYMBOL: (33872..33876)\n IDENTIFIER: (33872..33876) \"test\"\n ATMOSPHERE: (33876..33877) \" \"\n CONSTANT: (33877..33879)\n BOOLEAN: (33877..33879) \"#t\"\n ATMOSPHERE: (33879..33880) \" \"\n FORM: (33880..33899)\n OPEN_PAREN: (33880..33881) \"(\"\n SYMBOL: (33881..33894)\n IDENTIFIER: (33881..33894) \"char-numeric?\"\n ATMOSPHERE: (33894..33895) \" \"\n CONSTANT: (33895..33898)\n CHARACTER: (33895..33898) \"#\\0\"\n CLOSE_PAREN: (33898..33899) \")\"\n CLOSE_PAREN: (33899..33900) \")\"\n ATMOSPHERE: (33900..33901) \"\n\"\n FORM: (33901..33930)\n OPEN_PAREN: (33901..33902) \"(\"\n SYMBOL: (33902..33906)\n IDENTIFIER: (33902..33906) \"test\"\n ATMOSPHERE: (33906..33907) \" \"\n CONSTANT: (33907..33909)\n BOOLEAN: (33907..33909) \"#f\"\n ATMOSPHERE: (33909..33910) \" \"\n FORM: (33910..33929)\n OPEN_PAREN: (33910..33911) \"(\"\n SYMBOL: (33911..33924)\n IDENTIFIER: (33911..33924) \"char-numeric?\"\n ATMOSPHERE: (33924..33925) \" \"\n CONSTANT: (33925..33928)\n CHARACTER: (33925..33928) \"#\\.\"\n CLOSE_PAREN: (33928..33929) \")\"\n CLOSE_PAREN: (33929..33930) \")\"\n ATMOSPHERE: (33930..33931) \"\n\"\n FORM: (33931..33960)\n OPEN_PAREN: (33931..33932) \"(\"\n SYMBOL: (33932..33936)\n IDENTIFIER: (33932..33936) \"test\"\n ATMOSPHERE: (33936..33937) \" \"\n CONSTANT: (33937..33939)\n BOOLEAN: (33937..33939) \"#f\"\n ATMOSPHERE: (33939..33940) \" \"\n FORM: (33940..33959)\n OPEN_PAREN: (33940..33941) \"(\"\n SYMBOL: (33941..33954)\n IDENTIFIER: (33941..33954) \"char-numeric?\"\n ATMOSPHERE: (33954..33955) \" \"\n CONSTANT: (33955..33958)\n CHARACTER: (33955..33958) \"#\\a\"\n CLOSE_PAREN: (33958..33959) \")\"\n CLOSE_PAREN: (33959..33960) \")\"\n ATMOSPHERE: (33960..33961) \"\n\"\n FORM: (33961..33997)\n OPEN_PAREN: (33961..33962) \"(\"\n SYMBOL: (33962..33966)\n IDENTIFIER: (33962..33966) \"test\"\n ATMOSPHERE: (33966..33967) \" \"\n CONSTANT: (33967..33969)\n BOOLEAN: (33967..33969) \"#t\"\n ATMOSPHERE: (33969..33970) \" \"\n FORM: (33970..33996)\n OPEN_PAREN: (33970..33971) \"(\"\n SYMBOL: (33971..33987)\n IDENTIFIER: (33971..33987) \"char-whitespace?\"\n ATMOSPHERE: (33987..33988) \" \"\n CONSTANT: (33988..33995)\n CHARACTER: (33988..33995) \"#\\space\"\n CLOSE_PAREN: (33995..33996) \")\"\n CLOSE_PAREN: (33996..33997) \")\"\n ATMOSPHERE: (33997..33998) \"\n\"\n FORM: (33998..34032)\n OPEN_PAREN: (33998..33999) \"(\"\n SYMBOL: (33999..34003)\n IDENTIFIER: (33999..34003) \"test\"\n ATMOSPHERE: (34003..34004) \" \"\n CONSTANT: (34004..34006)\n BOOLEAN: (34004..34006) \"#t\"\n ATMOSPHERE: (34006..34007) \" \"\n FORM: (34007..34031)\n OPEN_PAREN: (34007..34008) \"(\"\n SYMBOL: (34008..34024)\n IDENTIFIER: (34008..34024) \"char-whitespace?\"\n ATMOSPHERE: (34024..34025) \" \"\n CONSTANT: (34025..34030)\n CHARACTER: (34025..34030) \"#\\tab\"\n CLOSE_PAREN: (34030..34031) \")\"\n CLOSE_PAREN: (34031..34032) \")\"\n ATMOSPHERE: (34032..34033) \"\n\"\n FORM: (34033..34071)\n OPEN_PAREN: (34033..34034) \"(\"\n SYMBOL: (34034..34038)\n IDENTIFIER: (34034..34038) \"test\"\n ATMOSPHERE: (34038..34039) \" \"\n CONSTANT: (34039..34041)\n BOOLEAN: (34039..34041) \"#t\"\n ATMOSPHERE: (34041..34042) \" \"\n FORM: (34042..34070)\n OPEN_PAREN: (34042..34043) \"(\"\n SYMBOL: (34043..34059)\n IDENTIFIER: (34043..34059) \"char-whitespace?\"\n ATMOSPHERE: (34059..34060) \" \"\n CONSTANT: (34060..34069)\n CHARACTER: (34060..34069) \"#\\newline\"\n CLOSE_PAREN: (34069..34070) \")\"\n CLOSE_PAREN: (34070..34071) \")\"\n ATMOSPHERE: (34071..34072) \"\n\"\n FORM: (34072..34104)\n OPEN_PAREN: (34072..34073) \"(\"\n SYMBOL: (34073..34077)\n IDENTIFIER: (34073..34077) \"test\"\n ATMOSPHERE: (34077..34078) \" \"\n CONSTANT: (34078..34080)\n BOOLEAN: (34078..34080) \"#f\"\n ATMOSPHERE: (34080..34081) \" \"\n FORM: (34081..34103)\n OPEN_PAREN: (34081..34082) \"(\"\n SYMBOL: (34082..34098)\n IDENTIFIER: (34082..34098) \"char-whitespace?\"\n ATMOSPHERE: (34098..34099) \" \"\n CONSTANT: (34099..34102)\n CHARACTER: (34099..34102) \"#\\_\"\n CLOSE_PAREN: (34102..34103) \")\"\n CLOSE_PAREN: (34103..34104) \")\"\n ATMOSPHERE: (34104..34105) \"\n\"\n FORM: (34105..34137)\n OPEN_PAREN: (34105..34106) \"(\"\n SYMBOL: (34106..34110)\n IDENTIFIER: (34106..34110) \"test\"\n ATMOSPHERE: (34110..34111) \" \"\n CONSTANT: (34111..34113)\n BOOLEAN: (34111..34113) \"#f\"\n ATMOSPHERE: (34113..34114) \" \"\n FORM: (34114..34136)\n OPEN_PAREN: (34114..34115) \"(\"\n SYMBOL: (34115..34131)\n IDENTIFIER: (34115..34131) \"char-whitespace?\"\n ATMOSPHERE: (34131..34132) \" \"\n CONSTANT: (34132..34135)\n CHARACTER: (34132..34135) \"#\\a\"\n CLOSE_PAREN: (34135..34136) \")\"\n CLOSE_PAREN: (34136..34137) \")\"\n ATMOSPHERE: (34137..34138) \"\n\"\n FORM: (34138..34170)\n OPEN_PAREN: (34138..34139) \"(\"\n SYMBOL: (34139..34143)\n IDENTIFIER: (34139..34143) \"test\"\n ATMOSPHERE: (34143..34144) \" \"\n CONSTANT: (34144..34146)\n BOOLEAN: (34144..34146) \"#t\"\n ATMOSPHERE: (34146..34147) \" \"\n FORM: (34147..34169)\n OPEN_PAREN: (34147..34148) \"(\"\n SYMBOL: (34148..34164)\n IDENTIFIER: (34148..34164) \"char-upper-case?\"\n ATMOSPHERE: (34164..34165) \" \"\n CONSTANT: (34165..34168)\n CHARACTER: (34165..34168) \"#\\A\"\n CLOSE_PAREN: (34168..34169) \")\"\n CLOSE_PAREN: (34169..34170) \")\"\n ATMOSPHERE: (34170..34171) \"\n\"\n FORM: (34171..34203)\n OPEN_PAREN: (34171..34172) \"(\"\n SYMBOL: (34172..34176)\n IDENTIFIER: (34172..34176) \"test\"\n ATMOSPHERE: (34176..34177) \" \"\n CONSTANT: (34177..34179)\n BOOLEAN: (34177..34179) \"#f\"\n ATMOSPHERE: (34179..34180) \" \"\n FORM: (34180..34202)\n OPEN_PAREN: (34180..34181) \"(\"\n SYMBOL: (34181..34197)\n IDENTIFIER: (34181..34197) \"char-upper-case?\"\n ATMOSPHERE: (34197..34198) \" \"\n CONSTANT: (34198..34201)\n CHARACTER: (34198..34201) \"#\\a\"\n CLOSE_PAREN: (34201..34202) \")\"\n CLOSE_PAREN: (34202..34203) \")\"\n ATMOSPHERE: (34203..34204) \"\n\"\n FORM: (34204..34236)\n OPEN_PAREN: (34204..34205) \"(\"\n SYMBOL: (34205..34209)\n IDENTIFIER: (34205..34209) \"test\"\n ATMOSPHERE: (34209..34210) \" \"\n CONSTANT: (34210..34212)\n BOOLEAN: (34210..34212) \"#f\"\n ATMOSPHERE: (34212..34213) \" \"\n FORM: (34213..34235)\n OPEN_PAREN: (34213..34214) \"(\"\n SYMBOL: (34214..34230)\n IDENTIFIER: (34214..34230) \"char-upper-case?\"\n ATMOSPHERE: (34230..34231) \" \"\n CONSTANT: (34231..34234)\n CHARACTER: (34231..34234) \"#\\3\"\n CLOSE_PAREN: (34234..34235) \")\"\n CLOSE_PAREN: (34235..34236) \")\"\n ATMOSPHERE: (34236..34237) \"\n\"\n FORM: (34237..34269)\n OPEN_PAREN: (34237..34238) \"(\"\n SYMBOL: (34238..34242)\n IDENTIFIER: (34238..34242) \"test\"\n ATMOSPHERE: (34242..34243) \" \"\n CONSTANT: (34243..34245)\n BOOLEAN: (34243..34245) \"#t\"\n ATMOSPHERE: (34245..34246) \" \"\n FORM: (34246..34268)\n OPEN_PAREN: (34246..34247) \"(\"\n SYMBOL: (34247..34263)\n IDENTIFIER: (34247..34263) \"char-lower-case?\"\n ATMOSPHERE: (34263..34264) \" \"\n CONSTANT: (34264..34267)\n CHARACTER: (34264..34267) \"#\\a\"\n CLOSE_PAREN: (34267..34268) \")\"\n CLOSE_PAREN: (34268..34269) \")\"\n ATMOSPHERE: (34269..34270) \"\n\"\n FORM: (34270..34302)\n OPEN_PAREN: (34270..34271) \"(\"\n SYMBOL: (34271..34275)\n IDENTIFIER: (34271..34275) \"test\"\n ATMOSPHERE: (34275..34276) \" \"\n CONSTANT: (34276..34278)\n BOOLEAN: (34276..34278) \"#f\"\n ATMOSPHERE: (34278..34279) \" \"\n FORM: (34279..34301)\n OPEN_PAREN: (34279..34280) \"(\"\n SYMBOL: (34280..34296)\n IDENTIFIER: (34280..34296) \"char-lower-case?\"\n ATMOSPHERE: (34296..34297) \" \"\n CONSTANT: (34297..34300)\n CHARACTER: (34297..34300) \"#\\A\"\n CLOSE_PAREN: (34300..34301) \")\"\n CLOSE_PAREN: (34301..34302) \")\"\n ATMOSPHERE: (34302..34303) \"\n\"\n FORM: (34303..34335)\n OPEN_PAREN: (34303..34304) \"(\"\n SYMBOL: (34304..34308)\n IDENTIFIER: (34304..34308) \"test\"\n ATMOSPHERE: (34308..34309) \" \"\n CONSTANT: (34309..34311)\n BOOLEAN: (34309..34311) \"#f\"\n ATMOSPHERE: (34311..34312) \" \"\n FORM: (34312..34334)\n OPEN_PAREN: (34312..34313) \"(\"\n SYMBOL: (34313..34329)\n IDENTIFIER: (34313..34329) \"char-lower-case?\"\n ATMOSPHERE: (34329..34330) \" \"\n CONSTANT: (34330..34333)\n CHARACTER: (34330..34333) \"#\\3\"\n CLOSE_PAREN: (34333..34334) \")\"\n CLOSE_PAREN: (34334..34335) \")\"\n ATMOSPHERE: (34335..34337) \"\n\n\"\n FORM: (34337..34369)\n OPEN_PAREN: (34337..34338) \"(\"\n SYMBOL: (34338..34342)\n IDENTIFIER: (34338..34342) \"test\"\n ATMOSPHERE: (34342..34343) \" \"\n CONSTANT: (34343..34345)\n BOOLEAN: (34343..34345) \"#t\"\n ATMOSPHERE: (34345..34346) \" \"\n FORM: (34346..34368)\n OPEN_PAREN: (34346..34347) \"(\"\n SYMBOL: (34347..34363)\n IDENTIFIER: (34347..34363) \"char-alphabetic?\"\n ATMOSPHERE: (34363..34364) \" \"\n CONSTANT: (34364..34367)\n CHARACTER: (34364..34367) \"#\\Λ\"\n CLOSE_PAREN: (34367..34368) \")\"\n CLOSE_PAREN: (34368..34369) \")\"\n ATMOSPHERE: (34369..34370) \"\n\"\n FORM: (34370..34406)\n OPEN_PAREN: (34370..34371) \"(\"\n SYMBOL: (34371..34375)\n IDENTIFIER: (34371..34375) \"test\"\n ATMOSPHERE: (34375..34376) \" \"\n CONSTANT: (34376..34378)\n BOOLEAN: (34376..34378) \"#f\"\n ATMOSPHERE: (34378..34379) \" \"\n FORM: (34379..34405)\n OPEN_PAREN: (34379..34380) \"(\"\n SYMBOL: (34380..34396)\n IDENTIFIER: (34380..34396) \"char-alphabetic?\"\n ATMOSPHERE: (34396..34397) \" \"\n CONSTANT: (34397..34404)\n CHARACTER: (34397..34404) \"#\\x0E50\"\n CLOSE_PAREN: (34404..34405) \")\"\n CLOSE_PAREN: (34405..34406) \")\"\n ATMOSPHERE: (34406..34407) \"\n\"\n FORM: (34407..34439)\n OPEN_PAREN: (34407..34408) \"(\"\n SYMBOL: (34408..34412)\n IDENTIFIER: (34408..34412) \"test\"\n ATMOSPHERE: (34412..34413) \" \"\n CONSTANT: (34413..34415)\n BOOLEAN: (34413..34415) \"#t\"\n ATMOSPHERE: (34415..34416) \" \"\n FORM: (34416..34438)\n OPEN_PAREN: (34416..34417) \"(\"\n SYMBOL: (34417..34433)\n IDENTIFIER: (34417..34433) \"char-upper-case?\"\n ATMOSPHERE: (34433..34434) \" \"\n CONSTANT: (34434..34437)\n CHARACTER: (34434..34437) \"#\\Λ\"\n CLOSE_PAREN: (34437..34438) \")\"\n CLOSE_PAREN: (34438..34439) \")\"\n ATMOSPHERE: (34439..34440) \"\n\"\n FORM: (34440..34472)\n OPEN_PAREN: (34440..34441) \"(\"\n SYMBOL: (34441..34445)\n IDENTIFIER: (34441..34445) \"test\"\n ATMOSPHERE: (34445..34446) \" \"\n CONSTANT: (34446..34448)\n BOOLEAN: (34446..34448) \"#f\"\n ATMOSPHERE: (34448..34449) \" \"\n FORM: (34449..34471)\n OPEN_PAREN: (34449..34450) \"(\"\n SYMBOL: (34450..34466)\n IDENTIFIER: (34450..34466) \"char-upper-case?\"\n ATMOSPHERE: (34466..34467) \" \"\n CONSTANT: (34467..34470)\n CHARACTER: (34467..34470) \"#\\λ\"\n CLOSE_PAREN: (34470..34471) \")\"\n CLOSE_PAREN: (34471..34472) \")\"\n ATMOSPHERE: (34472..34473) \"\n\"\n FORM: (34473..34505)\n OPEN_PAREN: (34473..34474) \"(\"\n SYMBOL: (34474..34478)\n IDENTIFIER: (34474..34478) \"test\"\n ATMOSPHERE: (34478..34479) \" \"\n CONSTANT: (34479..34481)\n BOOLEAN: (34479..34481) \"#f\"\n ATMOSPHERE: (34481..34482) \" \"\n FORM: (34482..34504)\n OPEN_PAREN: (34482..34483) \"(\"\n SYMBOL: (34483..34499)\n IDENTIFIER: (34483..34499) \"char-lower-case?\"\n ATMOSPHERE: (34499..34500) \" \"\n CONSTANT: (34500..34503)\n CHARACTER: (34500..34503) \"#\\Λ\"\n CLOSE_PAREN: (34503..34504) \")\"\n CLOSE_PAREN: (34504..34505) \")\"\n ATMOSPHERE: (34505..34506) \"\n\"\n FORM: (34506..34538)\n OPEN_PAREN: (34506..34507) \"(\"\n SYMBOL: (34507..34511)\n IDENTIFIER: (34507..34511) \"test\"\n ATMOSPHERE: (34511..34512) \" \"\n CONSTANT: (34512..34514)\n BOOLEAN: (34512..34514) \"#t\"\n ATMOSPHERE: (34514..34515) \" \"\n FORM: (34515..34537)\n OPEN_PAREN: (34515..34516) \"(\"\n SYMBOL: (34516..34532)\n IDENTIFIER: (34516..34532) \"char-lower-case?\"\n ATMOSPHERE: (34532..34533) \" \"\n CONSTANT: (34533..34536)\n CHARACTER: (34533..34536) \"#\\λ\"\n CLOSE_PAREN: (34536..34537) \")\"\n CLOSE_PAREN: (34537..34538) \")\"\n ATMOSPHERE: (34538..34539) \"\n\"\n FORM: (34539..34568)\n OPEN_PAREN: (34539..34540) \"(\"\n SYMBOL: (34540..34544)\n IDENTIFIER: (34540..34544) \"test\"\n ATMOSPHERE: (34544..34545) \" \"\n CONSTANT: (34545..34547)\n BOOLEAN: (34545..34547) \"#f\"\n ATMOSPHERE: (34547..34548) \" \"\n FORM: (34548..34567)\n OPEN_PAREN: (34548..34549) \"(\"\n SYMBOL: (34549..34562)\n IDENTIFIER: (34549..34562) \"char-numeric?\"\n ATMOSPHERE: (34562..34563) \" \"\n CONSTANT: (34563..34566)\n CHARACTER: (34563..34566) \"#\\Λ\"\n CLOSE_PAREN: (34566..34567) \")\"\n CLOSE_PAREN: (34567..34568) \")\"\n ATMOSPHERE: (34568..34569) \"\n\"\n FORM: (34569..34602)\n OPEN_PAREN: (34569..34570) \"(\"\n SYMBOL: (34570..34574)\n IDENTIFIER: (34570..34574) \"test\"\n ATMOSPHERE: (34574..34575) \" \"\n CONSTANT: (34575..34577)\n BOOLEAN: (34575..34577) \"#t\"\n ATMOSPHERE: (34577..34578) \" \"\n FORM: (34578..34601)\n OPEN_PAREN: (34578..34579) \"(\"\n SYMBOL: (34579..34592)\n IDENTIFIER: (34579..34592) \"char-numeric?\"\n ATMOSPHERE: (34592..34593) \" \"\n CONSTANT: (34593..34600)\n CHARACTER: (34593..34600) \"#\\x0E50\"\n CLOSE_PAREN: (34600..34601) \")\"\n CLOSE_PAREN: (34601..34602) \")\"\n ATMOSPHERE: (34602..34603) \"\n\"\n FORM: (34603..34639)\n OPEN_PAREN: (34603..34604) \"(\"\n SYMBOL: (34604..34608)\n IDENTIFIER: (34604..34608) \"test\"\n ATMOSPHERE: (34608..34609) \" \"\n CONSTANT: (34609..34611)\n BOOLEAN: (34609..34611) \"#t\"\n ATMOSPHERE: (34611..34612) \" \"\n FORM: (34612..34638)\n OPEN_PAREN: (34612..34613) \"(\"\n SYMBOL: (34613..34629)\n IDENTIFIER: (34613..34629) \"char-whitespace?\"\n ATMOSPHERE: (34629..34630) \" \"\n CONSTANT: (34630..34637)\n CHARACTER: (34630..34637) \"#\\x1680\"\n CLOSE_PAREN: (34637..34638) \")\"\n CLOSE_PAREN: (34638..34639) \")\"\n ATMOSPHERE: (34639..34641) \"\n\n\"\n FORM: (34641..34667)\n OPEN_PAREN: (34641..34642) \"(\"\n SYMBOL: (34642..34646)\n IDENTIFIER: (34642..34646) \"test\"\n ATMOSPHERE: (34646..34647) \" \"\n CONSTANT: (34647..34648)\n NUMBER: (34647..34648) \"0\"\n ATMOSPHERE: (34648..34649) \" \"\n FORM: (34649..34666)\n OPEN_PAREN: (34649..34650) \"(\"\n SYMBOL: (34650..34661)\n IDENTIFIER: (34650..34661) \"digit-value\"\n ATMOSPHERE: (34661..34662) \" \"\n CONSTANT: (34662..34665)\n CHARACTER: (34662..34665) \"#\\0\"\n CLOSE_PAREN: (34665..34666) \")\"\n CLOSE_PAREN: (34666..34667) \")\"\n ATMOSPHERE: (34667..34668) \"\n\"\n FORM: (34668..34694)\n OPEN_PAREN: (34668..34669) \"(\"\n SYMBOL: (34669..34673)\n IDENTIFIER: (34669..34673) \"test\"\n ATMOSPHERE: (34673..34674) \" \"\n CONSTANT: (34674..34675)\n NUMBER: (34674..34675) \"3\"\n ATMOSPHERE: (34675..34676) \" \"\n FORM: (34676..34693)\n OPEN_PAREN: (34676..34677) \"(\"\n SYMBOL: (34677..34688)\n IDENTIFIER: (34677..34688) \"digit-value\"\n ATMOSPHERE: (34688..34689) \" \"\n CONSTANT: (34689..34692)\n CHARACTER: (34689..34692) \"#\\3\"\n CLOSE_PAREN: (34692..34693) \")\"\n CLOSE_PAREN: (34693..34694) \")\"\n ATMOSPHERE: (34694..34695) \"\n\"\n FORM: (34695..34721)\n OPEN_PAREN: (34695..34696) \"(\"\n SYMBOL: (34696..34700)\n IDENTIFIER: (34696..34700) \"test\"\n ATMOSPHERE: (34700..34701) \" \"\n CONSTANT: (34701..34702)\n NUMBER: (34701..34702) \"9\"\n ATMOSPHERE: (34702..34703) \" \"\n FORM: (34703..34720)\n OPEN_PAREN: (34703..34704) \"(\"\n SYMBOL: (34704..34715)\n IDENTIFIER: (34704..34715) \"digit-value\"\n ATMOSPHERE: (34715..34716) \" \"\n CONSTANT: (34716..34719)\n CHARACTER: (34716..34719) \"#\\9\"\n CLOSE_PAREN: (34719..34720) \")\"\n CLOSE_PAREN: (34720..34721) \")\"\n ATMOSPHERE: (34721..34722) \"\n\"\n FORM: (34722..34752)\n OPEN_PAREN: (34722..34723) \"(\"\n SYMBOL: (34723..34727)\n IDENTIFIER: (34723..34727) \"test\"\n ATMOSPHERE: (34727..34728) \" \"\n CONSTANT: (34728..34729)\n NUMBER: (34728..34729) \"4\"\n ATMOSPHERE: (34729..34730) \" \"\n FORM: (34730..34751)\n OPEN_PAREN: (34730..34731) \"(\"\n SYMBOL: (34731..34742)\n IDENTIFIER: (34731..34742) \"digit-value\"\n ATMOSPHERE: (34742..34743) \" \"\n CONSTANT: (34743..34750)\n CHARACTER: (34743..34750) \"#\\x0664\"\n CLOSE_PAREN: (34750..34751) \")\"\n CLOSE_PAREN: (34751..34752) \")\"\n ATMOSPHERE: (34752..34753) \"\n\"\n FORM: (34753..34783)\n OPEN_PAREN: (34753..34754) \"(\"\n SYMBOL: (34754..34758)\n IDENTIFIER: (34754..34758) \"test\"\n ATMOSPHERE: (34758..34759) \" \"\n CONSTANT: (34759..34760)\n NUMBER: (34759..34760) \"0\"\n ATMOSPHERE: (34760..34761) \" \"\n FORM: (34761..34782)\n OPEN_PAREN: (34761..34762) \"(\"\n SYMBOL: (34762..34773)\n IDENTIFIER: (34762..34773) \"digit-value\"\n ATMOSPHERE: (34773..34774) \" \"\n CONSTANT: (34774..34781)\n CHARACTER: (34774..34781) \"#\\x0AE6\"\n CLOSE_PAREN: (34781..34782) \")\"\n CLOSE_PAREN: (34782..34783) \")\"\n ATMOSPHERE: (34783..34784) \"\n\"\n FORM: (34784..34811)\n OPEN_PAREN: (34784..34785) \"(\"\n SYMBOL: (34785..34789)\n IDENTIFIER: (34785..34789) \"test\"\n ATMOSPHERE: (34789..34790) \" \"\n CONSTANT: (34790..34792)\n BOOLEAN: (34790..34792) \"#f\"\n ATMOSPHERE: (34792..34793) \" \"\n FORM: (34793..34810)\n OPEN_PAREN: (34793..34794) \"(\"\n SYMBOL: (34794..34805)\n IDENTIFIER: (34794..34805) \"digit-value\"\n ATMOSPHERE: (34805..34806) \" \"\n CONSTANT: (34806..34809)\n CHARACTER: (34806..34809) \"#\\.\"\n CLOSE_PAREN: (34809..34810) \")\"\n CLOSE_PAREN: (34810..34811) \")\"\n ATMOSPHERE: (34811..34812) \"\n\"\n FORM: (34812..34839)\n OPEN_PAREN: (34812..34813) \"(\"\n SYMBOL: (34813..34817)\n IDENTIFIER: (34813..34817) \"test\"\n ATMOSPHERE: (34817..34818) \" \"\n CONSTANT: (34818..34820)\n BOOLEAN: (34818..34820) \"#f\"\n ATMOSPHERE: (34820..34821) \" \"\n FORM: (34821..34838)\n OPEN_PAREN: (34821..34822) \"(\"\n SYMBOL: (34822..34833)\n IDENTIFIER: (34822..34833) \"digit-value\"\n ATMOSPHERE: (34833..34834) \" \"\n CONSTANT: (34834..34837)\n CHARACTER: (34834..34837) \"#\\-\"\n CLOSE_PAREN: (34837..34838) \")\"\n CLOSE_PAREN: (34838..34839) \")\"\n ATMOSPHERE: (34839..34841) \"\n\n\"\n FORM: (34841..34870)\n OPEN_PAREN: (34841..34842) \"(\"\n SYMBOL: (34842..34846)\n IDENTIFIER: (34842..34846) \"test\"\n ATMOSPHERE: (34846..34847) \" \"\n CONSTANT: (34847..34849)\n NUMBER: (34847..34849) \"97\"\n ATMOSPHERE: (34849..34850) \" \"\n FORM: (34850..34869)\n OPEN_PAREN: (34850..34851) \"(\"\n SYMBOL: (34851..34864)\n IDENTIFIER: (34851..34864) \"char->integer\"\n ATMOSPHERE: (34864..34865) \" \"\n CONSTANT: (34865..34868)\n CHARACTER: (34865..34868) \"#\\a\"\n CLOSE_PAREN: (34868..34869) \")\"\n CLOSE_PAREN: (34869..34870) \")\"\n ATMOSPHERE: (34870..34871) \"\n\"\n FORM: (34871..34900)\n OPEN_PAREN: (34871..34872) \"(\"\n SYMBOL: (34872..34876)\n IDENTIFIER: (34872..34876) \"test\"\n ATMOSPHERE: (34876..34877) \" \"\n CONSTANT: (34877..34880)\n CHARACTER: (34877..34880) \"#\\a\"\n ATMOSPHERE: (34880..34881) \" \"\n FORM: (34881..34899)\n OPEN_PAREN: (34881..34882) \"(\"\n SYMBOL: (34882..34895)\n IDENTIFIER: (34882..34895) \"integer->char\"\n ATMOSPHERE: (34895..34896) \" \"\n CONSTANT: (34896..34898)\n NUMBER: (34896..34898) \"97\"\n CLOSE_PAREN: (34898..34899) \")\"\n CLOSE_PAREN: (34899..34900) \")\"\n ATMOSPHERE: (34900..34902) \"\n\n\"\n FORM: (34902..34930)\n OPEN_PAREN: (34902..34903) \"(\"\n SYMBOL: (34903..34907)\n IDENTIFIER: (34903..34907) \"test\"\n ATMOSPHERE: (34907..34908) \" \"\n CONSTANT: (34908..34911)\n CHARACTER: (34908..34911) \"#\\A\"\n ATMOSPHERE: (34911..34912) \" \"\n FORM: (34912..34929)\n OPEN_PAREN: (34912..34913) \"(\"\n SYMBOL: (34913..34924)\n IDENTIFIER: (34913..34924) \"char-upcase\"\n ATMOSPHERE: (34924..34925) \" \"\n CONSTANT: (34925..34928)\n CHARACTER: (34925..34928) \"#\\a\"\n CLOSE_PAREN: (34928..34929) \")\"\n CLOSE_PAREN: (34929..34930) \")\"\n ATMOSPHERE: (34930..34931) \"\n\"\n FORM: (34931..34959)\n OPEN_PAREN: (34931..34932) \"(\"\n SYMBOL: (34932..34936)\n IDENTIFIER: (34932..34936) \"test\"\n ATMOSPHERE: (34936..34937) \" \"\n CONSTANT: (34937..34940)\n CHARACTER: (34937..34940) \"#\\A\"\n ATMOSPHERE: (34940..34941) \" \"\n FORM: (34941..34958)\n OPEN_PAREN: (34941..34942) \"(\"\n SYMBOL: (34942..34953)\n IDENTIFIER: (34942..34953) \"char-upcase\"\n ATMOSPHERE: (34953..34954) \" \"\n CONSTANT: (34954..34957)\n CHARACTER: (34954..34957) \"#\\A\"\n CLOSE_PAREN: (34957..34958) \")\"\n CLOSE_PAREN: (34958..34959) \")\"\n ATMOSPHERE: (34959..34960) \"\n\"\n FORM: (34960..34990)\n OPEN_PAREN: (34960..34961) \"(\"\n SYMBOL: (34961..34965)\n IDENTIFIER: (34961..34965) \"test\"\n ATMOSPHERE: (34965..34966) \" \"\n CONSTANT: (34966..34969)\n CHARACTER: (34966..34969) \"#\\a\"\n ATMOSPHERE: (34969..34970) \" \"\n FORM: (34970..34989)\n OPEN_PAREN: (34970..34971) \"(\"\n SYMBOL: (34971..34984)\n IDENTIFIER: (34971..34984) \"char-downcase\"\n ATMOSPHERE: (34984..34985) \" \"\n CONSTANT: (34985..34988)\n CHARACTER: (34985..34988) \"#\\a\"\n CLOSE_PAREN: (34988..34989) \")\"\n CLOSE_PAREN: (34989..34990) \")\"\n ATMOSPHERE: (34990..34991) \"\n\"\n FORM: (34991..35021)\n OPEN_PAREN: (34991..34992) \"(\"\n SYMBOL: (34992..34996)\n IDENTIFIER: (34992..34996) \"test\"\n ATMOSPHERE: (34996..34997) \" \"\n CONSTANT: (34997..35000)\n CHARACTER: (34997..35000) \"#\\a\"\n ATMOSPHERE: (35000..35001) \" \"\n FORM: (35001..35020)\n OPEN_PAREN: (35001..35002) \"(\"\n SYMBOL: (35002..35015)\n IDENTIFIER: (35002..35015) \"char-downcase\"\n ATMOSPHERE: (35015..35016) \" \"\n CONSTANT: (35016..35019)\n CHARACTER: (35016..35019) \"#\\A\"\n CLOSE_PAREN: (35019..35020) \")\"\n CLOSE_PAREN: (35020..35021) \")\"\n ATMOSPHERE: (35021..35022) \"\n\"\n FORM: (35022..35052)\n OPEN_PAREN: (35022..35023) \"(\"\n SYMBOL: (35023..35027)\n IDENTIFIER: (35023..35027) \"test\"\n ATMOSPHERE: (35027..35028) \" \"\n CONSTANT: (35028..35031)\n CHARACTER: (35028..35031) \"#\\a\"\n ATMOSPHERE: (35031..35032) \" \"\n FORM: (35032..35051)\n OPEN_PAREN: (35032..35033) \"(\"\n SYMBOL: (35033..35046)\n IDENTIFIER: (35033..35046) \"char-foldcase\"\n ATMOSPHERE: (35046..35047) \" \"\n CONSTANT: (35047..35050)\n CHARACTER: (35047..35050) \"#\\a\"\n CLOSE_PAREN: (35050..35051) \")\"\n CLOSE_PAREN: (35051..35052) \")\"\n ATMOSPHERE: (35052..35053) \"\n\"\n FORM: (35053..35083)\n OPEN_PAREN: (35053..35054) \"(\"\n SYMBOL: (35054..35058)\n IDENTIFIER: (35054..35058) \"test\"\n ATMOSPHERE: (35058..35059) \" \"\n CONSTANT: (35059..35062)\n CHARACTER: (35059..35062) \"#\\a\"\n ATMOSPHERE: (35062..35063) \" \"\n FORM: (35063..35082)\n OPEN_PAREN: (35063..35064) \"(\"\n SYMBOL: (35064..35077)\n IDENTIFIER: (35064..35077) \"char-foldcase\"\n ATMOSPHERE: (35077..35078) \" \"\n CONSTANT: (35078..35081)\n CHARACTER: (35078..35081) \"#\\A\"\n CLOSE_PAREN: (35081..35082) \")\"\n CLOSE_PAREN: (35082..35083) \")\"\n ATMOSPHERE: (35083..35085) \"\n\n\"\n FORM: (35085..35113)\n OPEN_PAREN: (35085..35086) \"(\"\n SYMBOL: (35086..35090)\n IDENTIFIER: (35086..35090) \"test\"\n ATMOSPHERE: (35090..35091) \" \"\n CONSTANT: (35091..35094)\n CHARACTER: (35091..35094) \"#\\Λ\"\n ATMOSPHERE: (35094..35095) \" \"\n FORM: (35095..35112)\n OPEN_PAREN: (35095..35096) \"(\"\n SYMBOL: (35096..35107)\n IDENTIFIER: (35096..35107) \"char-upcase\"\n ATMOSPHERE: (35107..35108) \" \"\n CONSTANT: (35108..35111)\n CHARACTER: (35108..35111) \"#\\λ\"\n CLOSE_PAREN: (35111..35112) \")\"\n CLOSE_PAREN: (35112..35113) \")\"\n ATMOSPHERE: (35113..35114) \"\n\"\n FORM: (35114..35142)\n OPEN_PAREN: (35114..35115) \"(\"\n SYMBOL: (35115..35119)\n IDENTIFIER: (35115..35119) \"test\"\n ATMOSPHERE: (35119..35120) \" \"\n CONSTANT: (35120..35123)\n CHARACTER: (35120..35123) \"#\\Λ\"\n ATMOSPHERE: (35123..35124) \" \"\n FORM: (35124..35141)\n OPEN_PAREN: (35124..35125) \"(\"\n SYMBOL: (35125..35136)\n IDENTIFIER: (35125..35136) \"char-upcase\"\n ATMOSPHERE: (35136..35137) \" \"\n CONSTANT: (35137..35140)\n CHARACTER: (35137..35140) \"#\\Λ\"\n CLOSE_PAREN: (35140..35141) \")\"\n CLOSE_PAREN: (35141..35142) \")\"\n ATMOSPHERE: (35142..35143) \"\n\"\n FORM: (35143..35173)\n OPEN_PAREN: (35143..35144) \"(\"\n SYMBOL: (35144..35148)\n IDENTIFIER: (35144..35148) \"test\"\n ATMOSPHERE: (35148..35149) \" \"\n CONSTANT: (35149..35152)\n CHARACTER: (35149..35152) \"#\\λ\"\n ATMOSPHERE: (35152..35153) \" \"\n FORM: (35153..35172)\n OPEN_PAREN: (35153..35154) \"(\"\n SYMBOL: (35154..35167)\n IDENTIFIER: (35154..35167) \"char-downcase\"\n ATMOSPHERE: (35167..35168) \" \"\n CONSTANT: (35168..35171)\n CHARACTER: (35168..35171) \"#\\λ\"\n CLOSE_PAREN: (35171..35172) \")\"\n CLOSE_PAREN: (35172..35173) \")\"\n ATMOSPHERE: (35173..35174) \"\n\"\n FORM: (35174..35204)\n OPEN_PAREN: (35174..35175) \"(\"\n SYMBOL: (35175..35179)\n IDENTIFIER: (35175..35179) \"test\"\n ATMOSPHERE: (35179..35180) \" \"\n CONSTANT: (35180..35183)\n CHARACTER: (35180..35183) \"#\\λ\"\n ATMOSPHERE: (35183..35184) \" \"\n FORM: (35184..35203)\n OPEN_PAREN: (35184..35185) \"(\"\n SYMBOL: (35185..35198)\n IDENTIFIER: (35185..35198) \"char-downcase\"\n ATMOSPHERE: (35198..35199) \" \"\n CONSTANT: (35199..35202)\n CHARACTER: (35199..35202) \"#\\Λ\"\n CLOSE_PAREN: (35202..35203) \")\"\n CLOSE_PAREN: (35203..35204) \")\"\n ATMOSPHERE: (35204..35205) \"\n\"\n FORM: (35205..35235)\n OPEN_PAREN: (35205..35206) \"(\"\n SYMBOL: (35206..35210)\n IDENTIFIER: (35206..35210) \"test\"\n ATMOSPHERE: (35210..35211) \" \"\n CONSTANT: (35211..35214)\n CHARACTER: (35211..35214) \"#\\λ\"\n ATMOSPHERE: (35214..35215) \" \"\n FORM: (35215..35234)\n OPEN_PAREN: (35215..35216) \"(\"\n SYMBOL: (35216..35229)\n IDENTIFIER: (35216..35229) \"char-foldcase\"\n ATMOSPHERE: (35229..35230) \" \"\n CONSTANT: (35230..35233)\n CHARACTER: (35230..35233) \"#\\λ\"\n CLOSE_PAREN: (35233..35234) \")\"\n CLOSE_PAREN: (35234..35235) \")\"\n ATMOSPHERE: (35235..35236) \"\n\"\n FORM: (35236..35266)\n OPEN_PAREN: (35236..35237) \"(\"\n SYMBOL: (35237..35241)\n IDENTIFIER: (35237..35241) \"test\"\n ATMOSPHERE: (35241..35242) \" \"\n CONSTANT: (35242..35245)\n CHARACTER: (35242..35245) \"#\\λ\"\n ATMOSPHERE: (35245..35246) \" \"\n FORM: (35246..35265)\n OPEN_PAREN: (35246..35247) \"(\"\n SYMBOL: (35247..35260)\n IDENTIFIER: (35247..35260) \"char-foldcase\"\n ATMOSPHERE: (35260..35261) \" \"\n CONSTANT: (35261..35264)\n CHARACTER: (35261..35264) \"#\\Λ\"\n CLOSE_PAREN: (35264..35265) \")\"\n CLOSE_PAREN: (35265..35266) \")\"\n ATMOSPHERE: (35266..35268) \"\n\n\"\n FORM: (35268..35278)\n OPEN_PAREN: (35268..35269) \"(\"\n SYMBOL: (35269..35277)\n IDENTIFIER: (35269..35277) \"test-end\"\n CLOSE_PAREN: (35277..35278) \")\"\n ATMOSPHERE: (35278..35280) \"\n\n\"\n FORM: (35280..35306)\n OPEN_PAREN: (35280..35281) \"(\"\n SYMBOL: (35281..35291)\n IDENTIFIER: (35281..35291) \"test-begin\"\n ATMOSPHERE: (35291..35292) \" \"\n CONSTANT: (35292..35305)\n STRING: (35292..35305) \"\"6.7 Strings\"\"\n CLOSE_PAREN: (35305..35306) \")\"\n ATMOSPHERE: (35306..35308) \"\n\n\"\n ATMOSPHERE: (35308..35333) \";; (test #t (string? \"\"))\"\n ATMOSPHERE: (35333..35334) \"\n\"\n ATMOSPHERE: (35334..35360) \";; (test #t (string? \" \"))\"\n ATMOSPHERE: (35360..35361) \"\n\"\n ATMOSPHERE: (35361..35386) \";; (test #f (string? 'a))\"\n ATMOSPHERE: (35386..35387) \"\n\"\n ATMOSPHERE: (35387..35413) \";; (test #f (string? #\\a))\"\n ATMOSPHERE: (35413..35415) \"\n\n\"\n ATMOSPHERE: (35415..35458) \";; (test 3 (string-length (make-string 3)))\"\n ATMOSPHERE: (35458..35459) \"\n\"\n ATMOSPHERE: (35459..35494) \";; (test \"---\" (make-string 3 #\\-))\"\n ATMOSPHERE: (35494..35496) \"\n\n\"\n ATMOSPHERE: (35496..35517) \";; (test \"\" (string))\"\n ATMOSPHERE: (35517..35518) \"\n\"\n ATMOSPHERE: (35518..35554) \";; (test \"---\" (string #\\- #\\- #\\-))\"\n ATMOSPHERE: (35554..35555) \"\n\"\n ATMOSPHERE: (35555..35606) \";; (test \"kitten\" (string #\\k #\\i #\\t #\\t #\\e #\\n))\"\n ATMOSPHERE: (35606..35608) \"\n\n\"\n ATMOSPHERE: (35608..35638) \";; (test 0 (string-length \"\"))\"\n ATMOSPHERE: (35638..35639) \"\n\"\n ATMOSPHERE: (35639..35670) \";; (test 1 (string-length \"a\"))\"\n ATMOSPHERE: (35670..35671) \"\n\"\n ATMOSPHERE: (35671..35704) \";; (test 3 (string-length \"abc\"))\"\n ATMOSPHERE: (35704..35706) \"\n\n\"\n ATMOSPHERE: (35706..35740) \";; (test #\\a (string-ref \"abc\" 0))\"\n ATMOSPHERE: (35740..35741) \"\n\"\n ATMOSPHERE: (35741..35775) \";; (test #\\b (string-ref \"abc\" 1))\"\n ATMOSPHERE: (35775..35776) \"\n\"\n ATMOSPHERE: (35776..35810) \";; (test #\\c (string-ref \"abc\" 2))\"\n ATMOSPHERE: (35810..35812) \"\n\n\"\n ATMOSPHERE: (35812..35890) \";; (test \"a-c\" (let ((str (string #\\a #\\b #\\c))) (string-set! str 1 #\\-) str))\"\n ATMOSPHERE: (35890..35892) \"\n\n\"\n ATMOSPHERE: (35892..35926) \";; (test (string #\\a #\\x1F700 #\\c)\"\n ATMOSPHERE: (35926..35927) \"\n\"\n ATMOSPHERE: (35927..35965) \";; (let ((s (string #\\a #\\b #\\c)))\"\n ATMOSPHERE: (35965..35966) \"\n\"\n ATMOSPHERE: (35966..36001) \";; (string-set! s 1 #\\x1F700)\"\n ATMOSPHERE: (36001..36002) \"\n\"\n ATMOSPHERE: (36002..36014) \";; s))\"\n ATMOSPHERE: (36014..36016) \"\n\n\"\n ATMOSPHERE: (36016..36045) \";; (test #t (string=? \"\" \"\"))\"\n ATMOSPHERE: (36045..36046) \"\n\"\n ATMOSPHERE: (36046..36087) \";; (test #t (string=? \"abc\" \"abc\" \"abc\"))\"\n ATMOSPHERE: (36087..36088) \"\n\"\n ATMOSPHERE: (36088..36120) \";; (test #f (string=? \"\" \"abc\"))\"\n ATMOSPHERE: (36120..36121) \"\n\"\n ATMOSPHERE: (36121..36156) \";; (test #f (string=? \"abc\" \"aBc\"))\"\n ATMOSPHERE: (36156..36158) \"\n\n\"\n ATMOSPHERE: (36158..36187) \";; (test #f (string \"\" \"\"))\"\n ATMOSPHERE: (36187..36188) \"\n\"\n ATMOSPHERE: (36188..36223) \";; (test #f (string \"abc\" \"abc\"))\"\n ATMOSPHERE: (36223..36224) \"\n\"\n ATMOSPHERE: (36224..36266) \";; (test #t (string \"abc\" \"abcd\" \"acd\"))\"\n ATMOSPHERE: (36266..36267) \"\n\"\n ATMOSPHERE: (36267..36303) \";; (test #f (string \"abcd\" \"abc\"))\"\n ATMOSPHERE: (36303..36304) \"\n\"\n ATMOSPHERE: (36304..36339) \";; (test #t (string \"abc\" \"bbc\"))\"\n ATMOSPHERE: (36339..36341) \"\n\n\"\n ATMOSPHERE: (36341..36370) \";; (test #f (string>? \"\" \"\"))\"\n ATMOSPHERE: (36370..36371) \"\n\"\n ATMOSPHERE: (36371..36406) \";; (test #f (string>? \"abc\" \"abc\"))\"\n ATMOSPHERE: (36406..36407) \"\n\"\n ATMOSPHERE: (36407..36443) \";; (test #f (string>? \"abc\" \"abcd\"))\"\n ATMOSPHERE: (36443..36444) \"\n\"\n ATMOSPHERE: (36444..36486) \";; (test #t (string>? \"acd\" \"abcd\" \"abc\"))\"\n ATMOSPHERE: (36486..36487) \"\n\"\n ATMOSPHERE: (36487..36522) \";; (test #f (string>? \"abc\" \"bbc\"))\"\n ATMOSPHERE: (36522..36524) \"\n\n\"\n ATMOSPHERE: (36524..36554) \";; (test #t (string<=? \"\" \"\"))\"\n ATMOSPHERE: (36554..36555) \"\n\"\n ATMOSPHERE: (36555..36591) \";; (test #t (string<=? \"abc\" \"abc\"))\"\n ATMOSPHERE: (36591..36592) \"\n\"\n ATMOSPHERE: (36592..36636) \";; (test #t (string<=? \"abc\" \"abcd\" \"abcd\"))\"\n ATMOSPHERE: (36636..36637) \"\n\"\n ATMOSPHERE: (36637..36674) \";; (test #f (string<=? \"abcd\" \"abc\"))\"\n ATMOSPHERE: (36674..36675) \"\n\"\n ATMOSPHERE: (36675..36711) \";; (test #t (string<=? \"abc\" \"bbc\"))\"\n ATMOSPHERE: (36711..36713) \"\n\n\"\n ATMOSPHERE: (36713..36743) \";; (test #t (string>=? \"\" \"\"))\"\n ATMOSPHERE: (36743..36744) \"\n\"\n ATMOSPHERE: (36744..36780) \";; (test #t (string>=? \"abc\" \"abc\"))\"\n ATMOSPHERE: (36780..36781) \"\n\"\n ATMOSPHERE: (36781..36818) \";; (test #f (string>=? \"abc\" \"abcd\"))\"\n ATMOSPHERE: (36818..36819) \"\n\"\n ATMOSPHERE: (36819..36863) \";; (test #t (string>=? \"abcd\" \"abcd\" \"abc\"))\"\n ATMOSPHERE: (36863..36864) \"\n\"\n ATMOSPHERE: (36864..36900) \";; (test #f (string>=? \"abc\" \"bbc\"))\"\n ATMOSPHERE: (36900..36902) \"\n\n\"\n ATMOSPHERE: (36902..36934) \";; (test #t (string-ci=? \"\" \"\"))\"\n ATMOSPHERE: (36934..36935) \"\n\"\n ATMOSPHERE: (36935..36973) \";; (test #t (string-ci=? \"abc\" \"abc\"))\"\n ATMOSPHERE: (36973..36974) \"\n\"\n ATMOSPHERE: (36974..37009) \";; (test #f (string-ci=? \"\" \"abc\"))\"\n ATMOSPHERE: (37009..37010) \"\n\"\n ATMOSPHERE: (37010..37048) \";; (test #t (string-ci=? \"abc\" \"aBc\"))\"\n ATMOSPHERE: (37048..37049) \"\n\"\n ATMOSPHERE: (37049..37088) \";; (test #f (string-ci=? \"abc\" \"aBcD\"))\"\n ATMOSPHERE: (37088..37090) \"\n\n\"\n ATMOSPHERE: (37090..37128) \";; (test #f (string-ci \"abc\" \"aBc\"))\"\n ATMOSPHERE: (37128..37129) \"\n\"\n ATMOSPHERE: (37129..37168) \";; (test #t (string-ci \"abc\" \"aBcD\"))\"\n ATMOSPHERE: (37168..37169) \"\n\"\n ATMOSPHERE: (37169..37208) \";; (test #f (string-ci \"ABCd\" \"aBc\"))\"\n ATMOSPHERE: (37208..37210) \"\n\n\"\n ATMOSPHERE: (37210..37248) \";; (test #f (string-ci>? \"abc\" \"aBc\"))\"\n ATMOSPHERE: (37248..37249) \"\n\"\n ATMOSPHERE: (37249..37288) \";; (test #f (string-ci>? \"abc\" \"aBcD\"))\"\n ATMOSPHERE: (37288..37289) \"\n\"\n ATMOSPHERE: (37289..37328) \";; (test #t (string-ci>? \"ABCd\" \"aBc\"))\"\n ATMOSPHERE: (37328..37330) \"\n\n\"\n ATMOSPHERE: (37330..37369) \";; (test #t (string-ci<=? \"abc\" \"aBc\"))\"\n ATMOSPHERE: (37369..37370) \"\n\"\n ATMOSPHERE: (37370..37410) \";; (test #t (string-ci<=? \"abc\" \"aBcD\"))\"\n ATMOSPHERE: (37410..37411) \"\n\"\n ATMOSPHERE: (37411..37451) \";; (test #f (string-ci<=? \"ABCd\" \"aBc\"))\"\n ATMOSPHERE: (37451..37453) \"\n\n\"\n ATMOSPHERE: (37453..37492) \";; (test #t (string-ci>=? \"abc\" \"aBc\"))\"\n ATMOSPHERE: (37492..37493) \"\n\"\n ATMOSPHERE: (37493..37533) \";; (test #f (string-ci>=? \"abc\" \"aBcD\"))\"\n ATMOSPHERE: (37533..37534) \"\n\"\n ATMOSPHERE: (37534..37574) \";; (test #t (string-ci>=? \"ABCd\" \"aBc\"))\"\n ATMOSPHERE: (37574..37576) \"\n\n\"\n ATMOSPHERE: (37576..37620) \";; (test #t (string-ci=? \"ΑΒΓ\" \"αβγ\" \"αβγ\"))\"\n ATMOSPHERE: (37620..37621) \"\n\"\n ATMOSPHERE: (37621..37659) \";; (test #f (string-ci \"ΑΒΓ\" \"αβγ\"))\"\n ATMOSPHERE: (37659..37660) \"\n\"\n ATMOSPHERE: (37660..37698) \";; (test #f (string-ci>? \"ΑΒΓ\" \"αβγ\"))\"\n ATMOSPHERE: (37698..37699) \"\n\"\n ATMOSPHERE: (37699..37738) \";; (test #t (string-ci<=? \"ΑΒΓ\" \"αβγ\"))\"\n ATMOSPHERE: (37738..37739) \"\n\"\n ATMOSPHERE: (37739..37778) \";; (test #t (string-ci>=? \"ΑΒΓ\" \"αβγ\"))\"\n ATMOSPHERE: (37778..37780) \"\n\n\"\n ATMOSPHERE: (37780..37791) \";; ;; latin\"\n ATMOSPHERE: (37791..37792) \"\n\"\n ATMOSPHERE: (37792..37829) \";; (test \"ABC\" (string-upcase \"abc\"))\"\n ATMOSPHERE: (37829..37830) \"\n\"\n ATMOSPHERE: (37830..37867) \";; (test \"ABC\" (string-upcase \"ABC\"))\"\n ATMOSPHERE: (37867..37868) \"\n\"\n ATMOSPHERE: (37868..37907) \";; (test \"abc\" (string-downcase \"abc\"))\"\n ATMOSPHERE: (37907..37908) \"\n\"\n ATMOSPHERE: (37908..37947) \";; (test \"abc\" (string-downcase \"ABC\"))\"\n ATMOSPHERE: (37947..37948) \"\n\"\n ATMOSPHERE: (37948..37987) \";; (test \"abc\" (string-foldcase \"abc\"))\"\n ATMOSPHERE: (37987..37988) \"\n\"\n ATMOSPHERE: (37988..38027) \";; (test \"abc\" (string-foldcase \"ABC\"))\"\n ATMOSPHERE: (38027..38029) \"\n\n\"\n ATMOSPHERE: (38029..38043) \";; ;; cyrillic\"\n ATMOSPHERE: (38043..38044) \"\n\"\n ATMOSPHERE: (38044..38081) \";; (test \"ΑΒΓ\" (string-upcase \"αβγ\"))\"\n ATMOSPHERE: (38081..38082) \"\n\"\n ATMOSPHERE: (38082..38119) \";; (test \"ΑΒΓ\" (string-upcase \"ΑΒΓ\"))\"\n ATMOSPHERE: (38119..38120) \"\n\"\n ATMOSPHERE: (38120..38159) \";; (test \"αβγ\" (string-downcase \"αβγ\"))\"\n ATMOSPHERE: (38159..38160) \"\n\"\n ATMOSPHERE: (38160..38199) \";; (test \"αβγ\" (string-downcase \"ΑΒΓ\"))\"\n ATMOSPHERE: (38199..38200) \"\n\"\n ATMOSPHERE: (38200..38239) \";; (test \"αβγ\" (string-foldcase \"αβγ\"))\"\n ATMOSPHERE: (38239..38240) \"\n\"\n ATMOSPHERE: (38240..38279) \";; (test \"αβγ\" (string-foldcase \"ΑΒΓ\"))\"\n ATMOSPHERE: (38279..38281) \"\n\n\"\n ATMOSPHERE: (38281..38300) \";; ;; special cases\"\n ATMOSPHERE: (38300..38301) \"\n\"\n ATMOSPHERE: (38301..38337) \";; (test \"SSA\" (string-upcase \"ßa\"))\"\n ATMOSPHERE: (38337..38338) \"\n\"\n ATMOSPHERE: (38338..38375) \";; (test \"ßa\" (string-downcase \"ßa\"))\"\n ATMOSPHERE: (38375..38376) \"\n\"\n ATMOSPHERE: (38376..38415) \";; (test \"ssa\" (string-downcase \"SSA\"))\"\n ATMOSPHERE: (38415..38416) \"\n\"\n ATMOSPHERE: (38416..38455) \";; (test \"maß\" (string-downcase \"Maß\"))\"\n ATMOSPHERE: (38455..38456) \"\n\"\n ATMOSPHERE: (38456..38496) \";; (test \"mass\" (string-foldcase \"Maß\"))\"\n ATMOSPHERE: (38496..38497) \"\n\"\n ATMOSPHERE: (38497..38530) \";; (test \"İ\" (string-upcase \"İ\"))\"\n ATMOSPHERE: (38530..38531) \"\n\"\n ATMOSPHERE: (38531..38573) \";; (test \"i\\x0307;\" (string-downcase \"İ\"))\"\n ATMOSPHERE: (38573..38574) \"\n\"\n ATMOSPHERE: (38574..38616) \";; (test \"i\\x0307;\" (string-foldcase \"İ\"))\"\n ATMOSPHERE: (38616..38617) \"\n\"\n ATMOSPHERE: (38617..38651) \";; (test \"J̌\" (string-upcase \"ǰ\"))\"\n ATMOSPHERE: (38651..38652) \"\n\"\n ATMOSPHERE: (38652..38687) \";; (test \"ſ\" (string-downcase \"ſ\"))\"\n ATMOSPHERE: (38687..38688) \"\n\"\n ATMOSPHERE: (38688..38723) \";; (test \"s\" (string-foldcase \"ſ\"))\"\n ATMOSPHERE: (38723..38725) \"\n\n\"\n ATMOSPHERE: (38725..38762) \";; ;; context-sensitive (final sigma)\"\n ATMOSPHERE: (38762..38763) \"\n\"\n ATMOSPHERE: (38763..38806) \";; (test \"ΓΛΏΣΣΑ\" (string-upcase \"γλώσσα\"))\"\n ATMOSPHERE: (38806..38807) \"\n\"\n ATMOSPHERE: (38807..38852) \";; (test \"γλώσσα\" (string-downcase \"ΓΛΏΣΣΑ\"))\"\n ATMOSPHERE: (38852..38853) \"\n\"\n ATMOSPHERE: (38853..38898) \";; (test \"γλώσσα\" (string-foldcase \"ΓΛΏΣΣΑ\"))\"\n ATMOSPHERE: (38898..38899) \"\n\"\n ATMOSPHERE: (38899..38940) \";; (test \"ΜΈΛΟΣ\" (string-upcase \"μέλος\"))\"\n ATMOSPHERE: (38940..38941) \"\n\"\n ATMOSPHERE: (38941..39016) \";; (test #t (and (member (string-downcase \"ΜΈΛΟΣ\") '(\"μέλος\" \"μέλοσ\")) #t))\"\n ATMOSPHERE: (39016..39017) \"\n\"\n ATMOSPHERE: (39017..39060) \";; (test \"μέλοσ\" (string-foldcase \"ΜΈΛΟΣ\"))\"\n ATMOSPHERE: (39060..39061) \"\n\"\n ATMOSPHERE: (39061..39116) \";; (test #t (and (member (string-downcase \"ΜΈΛΟΣ ΕΝΌΣ\")\"\n ATMOSPHERE: (39116..39117) \"\n\"\n ATMOSPHERE: (39117..39171) \";; '(\"μέλος ενός\" \"μέλοσ ενόσ\"))\"\n ATMOSPHERE: (39171..39172) \"\n\"\n ATMOSPHERE: (39172..39193) \";; #t))\"\n ATMOSPHERE: (39193..39195) \"\n\n\"\n ATMOSPHERE: (39195..39226) \";; (test \"\" (substring \"\" 0 0))\"\n ATMOSPHERE: (39226..39227) \"\n\"\n ATMOSPHERE: (39227..39259) \";; (test \"\" (substring \"a\" 0 0))\"\n ATMOSPHERE: (39259..39260) \"\n\"\n ATMOSPHERE: (39260..39294) \";; (test \"\" (substring \"abc\" 1 1))\"\n ATMOSPHERE: (39294..39295) \"\n\"\n ATMOSPHERE: (39295..39331) \";; (test \"ab\" (substring \"abc\" 0 2))\"\n ATMOSPHERE: (39331..39332) \"\n\"\n ATMOSPHERE: (39332..39368) \";; (test \"bc\" (substring \"abc\" 1 3))\"\n ATMOSPHERE: (39368..39370) \"\n\n\"\n FORM: (39370..39398)\n OPEN_PAREN: (39370..39371) \"(\"\n SYMBOL: (39371..39375)\n IDENTIFIER: (39371..39375) \"test\"\n ATMOSPHERE: (39375..39376) \" \"\n CONSTANT: (39376..39378)\n STRING: (39376..39378) \"\"\"\"\n ATMOSPHERE: (39378..39379) \" \"\n FORM: (39379..39397)\n OPEN_PAREN: (39379..39380) \"(\"\n SYMBOL: (39380..39393)\n IDENTIFIER: (39380..39393) \"string-append\"\n ATMOSPHERE: (39393..39394) \" \"\n CONSTANT: (39394..39396)\n STRING: (39394..39396) \"\"\"\"\n CLOSE_PAREN: (39396..39397) \")\"\n CLOSE_PAREN: (39397..39398) \")\"\n ATMOSPHERE: (39398..39399) \"\n\"\n FORM: (39399..39430)\n OPEN_PAREN: (39399..39400) \"(\"\n SYMBOL: (39400..39404)\n IDENTIFIER: (39400..39404) \"test\"\n ATMOSPHERE: (39404..39405) \" \"\n CONSTANT: (39405..39407)\n STRING: (39405..39407) \"\"\"\"\n ATMOSPHERE: (39407..39408) \" \"\n FORM: (39408..39429)\n OPEN_PAREN: (39408..39409) \"(\"\n SYMBOL: (39409..39422)\n IDENTIFIER: (39409..39422) \"string-append\"\n ATMOSPHERE: (39422..39423) \" \"\n CONSTANT: (39423..39425)\n STRING: (39423..39425) \"\"\"\"\n ATMOSPHERE: (39425..39426) \" \"\n CONSTANT: (39426..39428)\n STRING: (39426..39428) \"\"\"\"\n CLOSE_PAREN: (39428..39429) \")\"\n CLOSE_PAREN: (39429..39430) \")\"\n ATMOSPHERE: (39430..39431) \"\n\"\n FORM: (39431..39468)\n OPEN_PAREN: (39431..39432) \"(\"\n SYMBOL: (39432..39436)\n IDENTIFIER: (39432..39436) \"test\"\n ATMOSPHERE: (39436..39437) \" \"\n CONSTANT: (39437..39442)\n STRING: (39437..39442) \"\"abc\"\"\n ATMOSPHERE: (39442..39443) \" \"\n FORM: (39443..39467)\n OPEN_PAREN: (39443..39444) \"(\"\n SYMBOL: (39444..39457)\n IDENTIFIER: (39444..39457) \"string-append\"\n ATMOSPHERE: (39457..39458) \" \"\n CONSTANT: (39458..39460)\n STRING: (39458..39460) \"\"\"\"\n ATMOSPHERE: (39460..39461) \" \"\n CONSTANT: (39461..39466)\n STRING: (39461..39466) \"\"abc\"\"\n CLOSE_PAREN: (39466..39467) \")\"\n CLOSE_PAREN: (39467..39468) \")\"\n ATMOSPHERE: (39468..39469) \"\n\"\n FORM: (39469..39506)\n OPEN_PAREN: (39469..39470) \"(\"\n SYMBOL: (39470..39474)\n IDENTIFIER: (39470..39474) \"test\"\n ATMOSPHERE: (39474..39475) \" \"\n CONSTANT: (39475..39480)\n STRING: (39475..39480) \"\"abc\"\"\n ATMOSPHERE: (39480..39481) \" \"\n FORM: (39481..39505)\n OPEN_PAREN: (39481..39482) \"(\"\n SYMBOL: (39482..39495)\n IDENTIFIER: (39482..39495) \"string-append\"\n ATMOSPHERE: (39495..39496) \" \"\n CONSTANT: (39496..39501)\n STRING: (39496..39501) \"\"abc\"\"\n ATMOSPHERE: (39501..39502) \" \"\n CONSTANT: (39502..39504)\n STRING: (39502..39504) \"\"\"\"\n CLOSE_PAREN: (39504..39505) \")\"\n CLOSE_PAREN: (39505..39506) \")\"\n ATMOSPHERE: (39506..39507) \"\n\"\n FORM: (39507..39548)\n OPEN_PAREN: (39507..39508) \"(\"\n SYMBOL: (39508..39512)\n IDENTIFIER: (39508..39512) \"test\"\n ATMOSPHERE: (39512..39513) \" \"\n CONSTANT: (39513..39520)\n STRING: (39513..39520) \"\"abcde\"\"\n ATMOSPHERE: (39520..39521) \" \"\n FORM: (39521..39547)\n OPEN_PAREN: (39521..39522) \"(\"\n SYMBOL: (39522..39535)\n IDENTIFIER: (39522..39535) \"string-append\"\n ATMOSPHERE: (39535..39536) \" \"\n CONSTANT: (39536..39541)\n STRING: (39536..39541) \"\"abc\"\"\n ATMOSPHERE: (39541..39542) \" \"\n CONSTANT: (39542..39546)\n STRING: (39542..39546) \"\"de\"\"\n CLOSE_PAREN: (39546..39547) \")\"\n CLOSE_PAREN: (39547..39548) \")\"\n ATMOSPHERE: (39548..39549) \"\n\"\n FORM: (39549..39595)\n OPEN_PAREN: (39549..39550) \"(\"\n SYMBOL: (39550..39554)\n IDENTIFIER: (39550..39554) \"test\"\n ATMOSPHERE: (39554..39555) \" \"\n CONSTANT: (39555..39563)\n STRING: (39555..39563) \"\"abcdef\"\"\n ATMOSPHERE: (39563..39564) \" \"\n FORM: (39564..39594)\n OPEN_PAREN: (39564..39565) \"(\"\n SYMBOL: (39565..39578)\n IDENTIFIER: (39565..39578) \"string-append\"\n ATMOSPHERE: (39578..39579) \" \"\n CONSTANT: (39579..39584)\n STRING: (39579..39584) \"\"abc\"\"\n ATMOSPHERE: (39584..39585) \" \"\n CONSTANT: (39585..39589)\n STRING: (39585..39589) \"\"de\"\"\n ATMOSPHERE: (39589..39590) \" \"\n CONSTANT: (39590..39593)\n STRING: (39590..39593) \"\"f\"\"\n CLOSE_PAREN: (39593..39594) \")\"\n CLOSE_PAREN: (39594..39595) \")\"\n ATMOSPHERE: (39595..39597) \"\n\n\"\n ATMOSPHERE: (39597..39628) \";; (test '() (string->list \"\"))\"\n ATMOSPHERE: (39628..39629) \"\n\"\n ATMOSPHERE: (39629..39664) \";; (test '(#\\a) (string->list \"a\"))\"\n ATMOSPHERE: (39664..39665) \"\n\"\n ATMOSPHERE: (39665..39710) \";; (test '(#\\a #\\b #\\c) (string->list \"abc\"))\"\n ATMOSPHERE: (39710..39711) \"\n\"\n ATMOSPHERE: (39711..39758) \";; (test '(#\\a #\\b #\\c) (string->list \"abc\" 0))\"\n ATMOSPHERE: (39758..39759) \"\n\"\n ATMOSPHERE: (39759..39802) \";; (test '(#\\b #\\c) (string->list \"abc\" 1))\"\n ATMOSPHERE: (39802..39803) \"\n\"\n ATMOSPHERE: (39803..39848) \";; (test '(#\\b #\\c) (string->list \"abc\" 1 3))\"\n ATMOSPHERE: (39848..39850) \"\n\n\"\n ATMOSPHERE: (39850..39881) \";; (test \"\" (list->string '()))\"\n ATMOSPHERE: (39881..39882) \"\n\"\n ATMOSPHERE: (39882..39927) \";; (test \"abc\" (list->string '(#\\a #\\b #\\c)))\"\n ATMOSPHERE: (39927..39929) \"\n\n\"\n ATMOSPHERE: (39929..39958) \";; (test \"\" (string-copy \"\"))\"\n ATMOSPHERE: (39958..39959) \"\n\"\n ATMOSPHERE: (39959..39990) \";; (test \"\" (string-copy \"\" 0))\"\n ATMOSPHERE: (39990..39991) \"\n\"\n ATMOSPHERE: (39991..40024) \";; (test \"\" (string-copy \"\" 0 0))\"\n ATMOSPHERE: (40024..40025) \"\n\"\n ATMOSPHERE: (40025..40060) \";; (test \"abc\" (string-copy \"abc\"))\"\n ATMOSPHERE: (40060..40061) \"\n\"\n ATMOSPHERE: (40061..40098) \";; (test \"abc\" (string-copy \"abc\" 0))\"\n ATMOSPHERE: (40098..40099) \"\n\"\n ATMOSPHERE: (40099..40135) \";; (test \"bc\" (string-copy \"abc\" 1))\"\n ATMOSPHERE: (40135..40136) \"\n\"\n ATMOSPHERE: (40136..40173) \";; (test \"b\" (string-copy \"abc\" 1 2))\"\n ATMOSPHERE: (40173..40174) \"\n\"\n ATMOSPHERE: (40174..40212) \";; (test \"bc\" (string-copy \"abc\" 1 3))\"\n ATMOSPHERE: (40212..40214) \"\n\n\"\n ATMOSPHERE: (40214..40230) \";; (test \"-----\"\"\n ATMOSPHERE: (40230..40231) \"\n\"\n ATMOSPHERE: (40231..40299) \";; (let ((str (make-string 5 #\\x))) (string-fill! str #\\-) str))\"\n ATMOSPHERE: (40299..40300) \"\n\"\n ATMOSPHERE: (40300..40316) \";; (test \"xx---\"\"\n ATMOSPHERE: (40316..40317) \"\n\"\n ATMOSPHERE: (40317..40387) \";; (let ((str (make-string 5 #\\x))) (string-fill! str #\\- 2) str))\"\n ATMOSPHERE: (40387..40388) \"\n\"\n ATMOSPHERE: (40388..40404) \";; (test \"xx-xx\"\"\n ATMOSPHERE: (40404..40405) \"\n\"\n ATMOSPHERE: (40405..40477) \";; (let ((str (make-string 5 #\\x))) (string-fill! str #\\- 2 3) str))\"\n ATMOSPHERE: (40477..40479) \"\n\n\"\n ATMOSPHERE: (40479..40495) \";; (test \"a12de\"\"\n ATMOSPHERE: (40495..40496) \"\n\"\n ATMOSPHERE: (40496..40576) \";; (let ((str (string-copy \"abcde\"))) (string-copy! str 1 \"12345\" 0 2) str))\"\n ATMOSPHERE: (40576..40577) \"\n\"\n ATMOSPHERE: (40577..40593) \";; (test \"-----\"\"\n ATMOSPHERE: (40593..40594) \"\n\"\n ATMOSPHERE: (40594..40668) \";; (let ((str (make-string 5 #\\x))) (string-copy! str 0 \"-----\") str))\"\n ATMOSPHERE: (40668..40669) \"\n\"\n ATMOSPHERE: (40669..40685) \";; (test \"---xx\"\"\n ATMOSPHERE: (40685..40686) \"\n\"\n ATMOSPHERE: (40686..40762) \";; (let ((str (make-string 5 #\\x))) (string-copy! str 0 \"-----\" 2) str))\"\n ATMOSPHERE: (40762..40763) \"\n\"\n ATMOSPHERE: (40763..40779) \";; (test \"xx---\"\"\n ATMOSPHERE: (40779..40780) \"\n\"\n ATMOSPHERE: (40780..40858) \";; (let ((str (make-string 5 #\\x))) (string-copy! str 2 \"-----\" 0 3) str))\"\n ATMOSPHERE: (40858..40859) \"\n\"\n ATMOSPHERE: (40859..40875) \";; (test \"xx-xx\"\"\n ATMOSPHERE: (40875..40876) \"\n\"\n ATMOSPHERE: (40876..40954) \";; (let ((str (make-string 5 #\\x))) (string-copy! str 2 \"-----\" 2 3) str))\"\n ATMOSPHERE: (40954..40956) \"\n\n\"\n ATMOSPHERE: (40956..40982) \";; ;; same source and dest\"\n ATMOSPHERE: (40982..40983) \"\n\"\n ATMOSPHERE: (40983..40999) \";; (test \"aabde\"\"\n ATMOSPHERE: (40999..41000) \"\n\"\n ATMOSPHERE: (41000..41076) \";; (let ((str (string-copy \"abcde\"))) (string-copy! str 1 str 0 2) str))\"\n ATMOSPHERE: (41076..41077) \"\n\"\n ATMOSPHERE: (41077..41093) \";; (test \"abcab\"\"\n ATMOSPHERE: (41093..41094) \"\n\"\n ATMOSPHERE: (41094..41170) \";; (let ((str (string-copy \"abcde\"))) (string-copy! str 3 str 0 2) str))\"\n ATMOSPHERE: (41170..41172) \"\n\n\"\n FORM: (41172..41182)\n OPEN_PAREN: (41172..41173) \"(\"\n SYMBOL: (41173..41181)\n IDENTIFIER: (41173..41181) \"test-end\"\n CLOSE_PAREN: (41181..41182) \")\"\n ATMOSPHERE: (41182..41184) \"\n\n\"\n FORM: (41184..41210)\n OPEN_PAREN: (41184..41185) \"(\"\n SYMBOL: (41185..41195)\n IDENTIFIER: (41185..41195) \"test-begin\"\n ATMOSPHERE: (41195..41196) \" \"\n CONSTANT: (41196..41209)\n STRING: (41196..41209) \"\"6.8 Vectors\"\"\n CLOSE_PAREN: (41209..41210) \")\"\n ATMOSPHERE: (41210..41212) \"\n\n\"\n FORM: (41212..41235)\n OPEN_PAREN: (41212..41213) \"(\"\n SYMBOL: (41213..41217)\n IDENTIFIER: (41213..41217) \"test\"\n ATMOSPHERE: (41217..41218) \" \"\n CONSTANT: (41218..41220)\n BOOLEAN: (41218..41220) \"#t\"\n ATMOSPHERE: (41220..41221) \" \"\n FORM: (41221..41234)\n OPEN_PAREN: (41221..41222) \"(\"\n SYMBOL: (41222..41229)\n IDENTIFIER: (41222..41229) \"vector?\"\n ATMOSPHERE: (41229..41230) \" \"\n VEC: (41230..41233)\n OPEN_PAREN: (41230..41232) \"#(\"\n CLOSE_PAREN: (41232..41233) \")\"\n CLOSE_PAREN: (41233..41234) \")\"\n CLOSE_PAREN: (41234..41235) \")\"\n ATMOSPHERE: (41235..41236) \"\n\"\n FORM: (41236..41264)\n OPEN_PAREN: (41236..41237) \"(\"\n SYMBOL: (41237..41241)\n IDENTIFIER: (41237..41241) \"test\"\n ATMOSPHERE: (41241..41242) \" \"\n CONSTANT: (41242..41244)\n BOOLEAN: (41242..41244) \"#t\"\n ATMOSPHERE: (41244..41245) \" \"\n FORM: (41245..41263)\n OPEN_PAREN: (41245..41246) \"(\"\n SYMBOL: (41246..41253)\n IDENTIFIER: (41246..41253) \"vector?\"\n ATMOSPHERE: (41253..41254) \" \"\n VEC: (41254..41262)\n OPEN_PAREN: (41254..41256) \"#(\"\n CONSTANT: (41256..41257)\n NUMBER: (41256..41257) \"1\"\n ATMOSPHERE: (41257..41258) \" \"\n CONSTANT: (41258..41259)\n NUMBER: (41258..41259) \"2\"\n ATMOSPHERE: (41259..41260) \" \"\n CONSTANT: (41260..41261)\n NUMBER: (41260..41261) \"3\"\n CLOSE_PAREN: (41261..41262) \")\"\n CLOSE_PAREN: (41262..41263) \")\"\n CLOSE_PAREN: (41263..41264) \")\"\n ATMOSPHERE: (41264..41265) \"\n\"\n FORM: (41265..41294)\n OPEN_PAREN: (41265..41266) \"(\"\n SYMBOL: (41266..41270)\n IDENTIFIER: (41266..41270) \"test\"\n ATMOSPHERE: (41270..41271) \" \"\n CONSTANT: (41271..41273)\n BOOLEAN: (41271..41273) \"#t\"\n ATMOSPHERE: (41273..41274) \" \"\n FORM: (41274..41293)\n OPEN_PAREN: (41274..41275) \"(\"\n SYMBOL: (41275..41282)\n IDENTIFIER: (41275..41282) \"vector?\"\n ATMOSPHERE: (41282..41283) \" \"\n QUOTED_DATUM: (41283..41292)\n QUOTE: (41283..41284) \"'\"\n VEC: (41284..41292)\n OPEN_PAREN: (41284..41286) \"#(\"\n CONSTANT: (41286..41287)\n NUMBER: (41286..41287) \"1\"\n ATMOSPHERE: (41287..41288) \" \"\n CONSTANT: (41288..41289)\n NUMBER: (41288..41289) \"2\"\n ATMOSPHERE: (41289..41290) \" \"\n CONSTANT: (41290..41291)\n NUMBER: (41290..41291) \"3\"\n CLOSE_PAREN: (41291..41292) \")\"\n CLOSE_PAREN: (41292..41293) \")\"\n CLOSE_PAREN: (41293..41294) \")\"\n ATMOSPHERE: (41294..41296) \"\n\n\"\n FORM: (41296..41336)\n OPEN_PAREN: (41296..41297) \"(\"\n SYMBOL: (41297..41301)\n IDENTIFIER: (41297..41301) \"test\"\n ATMOSPHERE: (41301..41302) \" \"\n CONSTANT: (41302..41303)\n NUMBER: (41302..41303) \"0\"\n ATMOSPHERE: (41303..41304) \" \"\n FORM: (41304..41335)\n OPEN_PAREN: (41304..41305) \"(\"\n SYMBOL: (41305..41318)\n IDENTIFIER: (41305..41318) \"vector-length\"\n ATMOSPHERE: (41318..41319) \" \"\n FORM: (41319..41334)\n OPEN_PAREN: (41319..41320) \"(\"\n SYMBOL: (41320..41331)\n IDENTIFIER: (41320..41331) \"make-vector\"\n ATMOSPHERE: (41331..41332) \" \"\n CONSTANT: (41332..41333)\n NUMBER: (41332..41333) \"0\"\n CLOSE_PAREN: (41333..41334) \")\"\n CLOSE_PAREN: (41334..41335) \")\"\n CLOSE_PAREN: (41335..41336) \")\"\n ATMOSPHERE: (41336..41337) \"\n\"\n FORM: (41337..41383)\n OPEN_PAREN: (41337..41338) \"(\"\n SYMBOL: (41338..41342)\n IDENTIFIER: (41338..41342) \"test\"\n ATMOSPHERE: (41342..41343) \" \"\n CONSTANT: (41343..41347)\n NUMBER: (41343..41347) \"1000\"\n ATMOSPHERE: (41347..41348) \" \"\n FORM: (41348..41382)\n OPEN_PAREN: (41348..41349) \"(\"\n SYMBOL: (41349..41362)\n IDENTIFIER: (41349..41362) \"vector-length\"\n ATMOSPHERE: (41362..41363) \" \"\n FORM: (41363..41381)\n OPEN_PAREN: (41363..41364) \"(\"\n SYMBOL: (41364..41375)\n IDENTIFIER: (41364..41375) \"make-vector\"\n ATMOSPHERE: (41375..41376) \" \"\n CONSTANT: (41376..41380)\n NUMBER: (41376..41380) \"1000\"\n CLOSE_PAREN: (41380..41381) \")\"\n CLOSE_PAREN: (41381..41382) \")\"\n CLOSE_PAREN: (41382..41383) \")\"\n ATMOSPHERE: (41383..41385) \"\n\n\"\n FORM: (41385..41436)\n OPEN_PAREN: (41385..41386) \"(\"\n SYMBOL: (41386..41390)\n IDENTIFIER: (41386..41390) \"test\"\n ATMOSPHERE: (41390..41391) \" \"\n VEC: (41391..41412)\n OPEN_PAREN: (41391..41393) \"#(\"\n CONSTANT: (41393..41394)\n NUMBER: (41393..41394) \"0\"\n ATMOSPHERE: (41394..41395) \" \"\n FORM: (41395..41404)\n OPEN_PAREN: (41395..41396) \"(\"\n CONSTANT: (41396..41397)\n NUMBER: (41396..41397) \"2\"\n ATMOSPHERE: (41397..41398) \" \"\n CONSTANT: (41398..41399)\n NUMBER: (41398..41399) \"2\"\n ATMOSPHERE: (41399..41400) \" \"\n CONSTANT: (41400..41401)\n NUMBER: (41400..41401) \"2\"\n ATMOSPHERE: (41401..41402) \" \"\n CONSTANT: (41402..41403)\n NUMBER: (41402..41403) \"2\"\n CLOSE_PAREN: (41403..41404) \")\"\n ATMOSPHERE: (41404..41405) \" \"\n CONSTANT: (41405..41411)\n STRING: (41405..41411) \"\"Anna\"\"\n CLOSE_PAREN: (41411..41412) \")\"\n ATMOSPHERE: (41412..41413) \" \"\n QUOTED_DATUM: (41413..41435)\n QUOTE: (41413..41414) \"'\"\n VEC: (41414..41435)\n OPEN_PAREN: (41414..41416) \"#(\"\n CONSTANT: (41416..41417)\n NUMBER: (41416..41417) \"0\"\n ATMOSPHERE: (41417..41418) \" \"\n FORM: (41418..41427)\n OPEN_PAREN: (41418..41419) \"(\"\n CONSTANT: (41419..41420)\n NUMBER: (41419..41420) \"2\"\n ATMOSPHERE: (41420..41421) \" \"\n CONSTANT: (41421..41422)\n NUMBER: (41421..41422) \"2\"\n ATMOSPHERE: (41422..41423) \" \"\n CONSTANT: (41423..41424)\n NUMBER: (41423..41424) \"2\"\n ATMOSPHERE: (41424..41425) \" \"\n CONSTANT: (41425..41426)\n NUMBER: (41425..41426) \"2\"\n CLOSE_PAREN: (41426..41427) \")\"\n ATMOSPHERE: (41427..41428) \" \"\n CONSTANT: (41428..41434)\n STRING: (41428..41434) \"\"Anna\"\"\n CLOSE_PAREN: (41434..41435) \")\"\n CLOSE_PAREN: (41435..41436) \")\"\n ATMOSPHERE: (41436..41438) \"\n\n\"\n FORM: (41438..41471)\n OPEN_PAREN: (41438..41439) \"(\"\n SYMBOL: (41439..41443)\n IDENTIFIER: (41439..41443) \"test\"\n ATMOSPHERE: (41443..41444) \" \"\n VEC: (41444..41452)\n OPEN_PAREN: (41444..41446) \"#(\"\n SYMBOL: (41446..41447)\n IDENTIFIER: (41446..41447) \"a\"\n ATMOSPHERE: (41447..41448) \" \"\n SYMBOL: (41448..41449)\n IDENTIFIER: (41448..41449) \"b\"\n ATMOSPHERE: (41449..41450) \" \"\n SYMBOL: (41450..41451)\n IDENTIFIER: (41450..41451) \"c\"\n CLOSE_PAREN: (41451..41452) \")\"\n ATMOSPHERE: (41452..41453) \" \"\n FORM: (41453..41470)\n OPEN_PAREN: (41453..41454) \"(\"\n SYMBOL: (41454..41460)\n IDENTIFIER: (41454..41460) \"vector\"\n ATMOSPHERE: (41460..41461) \" \"\n QUOTED_DATUM: (41461..41464)\n QUOTE: (41461..41462) \"'\"\n SYMBOL: (41462..41463)\n IDENTIFIER: (41462..41463) \"a\"\n ATMOSPHERE: (41463..41464) \" \"\n QUOTED_DATUM: (41464..41467)\n QUOTE: (41464..41465) \"'\"\n SYMBOL: (41465..41466)\n IDENTIFIER: (41465..41466) \"b\"\n ATMOSPHERE: (41466..41467) \" \"\n QUOTED_DATUM: (41467..41469)\n QUOTE: (41467..41468) \"'\"\n SYMBOL: (41468..41469)\n IDENTIFIER: (41468..41469) \"c\"\n CLOSE_PAREN: (41469..41470) \")\"\n CLOSE_PAREN: (41470..41471) \")\"\n ATMOSPHERE: (41471..41473) \"\n\n\"\n FORM: (41473..41518)\n OPEN_PAREN: (41473..41474) \"(\"\n SYMBOL: (41474..41478)\n IDENTIFIER: (41474..41478) \"test\"\n ATMOSPHERE: (41478..41479) \" \"\n CONSTANT: (41479..41480)\n NUMBER: (41479..41480) \"8\"\n ATMOSPHERE: (41480..41481) \" \"\n FORM: (41481..41517)\n OPEN_PAREN: (41481..41482) \"(\"\n SYMBOL: (41482..41492)\n IDENTIFIER: (41482..41492) \"vector-ref\"\n ATMOSPHERE: (41492..41493) \" \"\n QUOTED_DATUM: (41493..41515)\n QUOTE: (41493..41494) \"'\"\n VEC: (41494..41514)\n OPEN_PAREN: (41494..41496) \"#(\"\n CONSTANT: (41496..41497)\n NUMBER: (41496..41497) \"1\"\n ATMOSPHERE: (41497..41498) \" \"\n CONSTANT: (41498..41499)\n NUMBER: (41498..41499) \"1\"\n ATMOSPHERE: (41499..41500) \" \"\n CONSTANT: (41500..41501)\n NUMBER: (41500..41501) \"2\"\n ATMOSPHERE: (41501..41502) \" \"\n CONSTANT: (41502..41503)\n NUMBER: (41502..41503) \"3\"\n ATMOSPHERE: (41503..41504) \" \"\n CONSTANT: (41504..41505)\n NUMBER: (41504..41505) \"5\"\n ATMOSPHERE: (41505..41506) \" \"\n CONSTANT: (41506..41507)\n NUMBER: (41506..41507) \"8\"\n ATMOSPHERE: (41507..41508) \" \"\n CONSTANT: (41508..41510)\n NUMBER: (41508..41510) \"13\"\n ATMOSPHERE: (41510..41511) \" \"\n CONSTANT: (41511..41513)\n NUMBER: (41511..41513) \"21\"\n CLOSE_PAREN: (41513..41514) \")\"\n ATMOSPHERE: (41514..41515) \" \"\n CONSTANT: (41515..41516)\n NUMBER: (41515..41516) \"5\"\n CLOSE_PAREN: (41516..41517) \")\"\n CLOSE_PAREN: (41517..41518) \")\"\n ATMOSPHERE: (41518..41519) \"\n\"\n ATMOSPHERE: (41519..41564) \";; (test 13 (vector-ref '#(1 1 2 3 5 8 13 21)\"\n ATMOSPHERE: (41564..41565) \"\n\"\n ATMOSPHERE: (41565..41614) \";; (let ((i (round (* 2 (acos -1)))))\"\n ATMOSPHERE: (41614..41615) \"\n\"\n ATMOSPHERE: (41615..41648) \";; (if (inexact? i)\"\n ATMOSPHERE: (41648..41649) \"\n\"\n ATMOSPHERE: (41649..41679) \";; (exact i)\"\n ATMOSPHERE: (41679..41680) \"\n\"\n ATMOSPHERE: (41680..41706) \";; i))))\"\n ATMOSPHERE: (41706..41708) \"\n\n\"\n ATMOSPHERE: (41708..41784) \";; (test #(0 (\"Sue\" \"Sue\") \"Anna\") (let ((vec (vector 0 '(2 2 2 2) \"Anna\")))\"\n ATMOSPHERE: (41784..41785) \"\n\"\n ATMOSPHERE: (41785..41824) \";; (vector-set! vec 1 '(\"Sue\" \"Sue\"))\"\n ATMOSPHERE: (41824..41825) \"\n\"\n ATMOSPHERE: (41825..41835) \";; vec))\"\n ATMOSPHERE: (41835..41837) \"\n\n\"\n ATMOSPHERE: (41837..41896) \";; (test '(dah dah didah) (vector->list '#(dah dah didah)))\"\n ATMOSPHERE: (41896..41897) \"\n\"\n ATMOSPHERE: (41897..41954) \";; (test '(dah didah) (vector->list '#(dah dah didah) 1))\"\n ATMOSPHERE: (41954..41955) \"\n\"\n ATMOSPHERE: (41955..42008) \";; (test '(dah) (vector->list '#(dah dah didah) 1 2))\"\n ATMOSPHERE: (42008..42009) \"\n\"\n ATMOSPHERE: (42009..42063) \";; (test #(dididit dah) (list->vector '(dididit dah)))\"\n ATMOSPHERE: (42063..42065) \"\n\n\"\n ATMOSPHERE: (42065..42098) \";; (test #() (string->vector \"\"))\"\n ATMOSPHERE: (42098..42099) \"\n\"\n ATMOSPHERE: (42099..42146) \";; (test #(#\\A #\\B #\\C) (string->vector \"ABC\"))\"\n ATMOSPHERE: (42146..42147) \"\n\"\n ATMOSPHERE: (42147..42192) \";; (test #(#\\B #\\C) (string->vector \"ABC\" 1))\"\n ATMOSPHERE: (42192..42193) \"\n\"\n ATMOSPHERE: (42193..42236) \";; (test #(#\\B) (string->vector \"ABC\" 1 2))\"\n ATMOSPHERE: (42236..42238) \"\n\n\"\n ATMOSPHERE: (42238..42271) \";; (test \"\" (vector->string #()))\"\n ATMOSPHERE: (42271..42272) \"\n\"\n ATMOSPHERE: (42272..42319) \";; (test \"123\" (vector->string #(#\\1 #\\2 #\\3)))\"\n ATMOSPHERE: (42319..42320) \"\n\"\n ATMOSPHERE: (42320..42368) \";; (test \"23\" (vector->string #(#\\1 #\\2 #\\3) 1))\"\n ATMOSPHERE: (42368..42369) \"\n\"\n ATMOSPHERE: (42369..42418) \";; (test \"2\" (vector->string #(#\\1 #\\2 #\\3) 1 2))\"\n ATMOSPHERE: (42418..42420) \"\n\n\"\n ATMOSPHERE: (42420..42451) \";; (test #() (vector-copy #()))\"\n ATMOSPHERE: (42451..42452) \"\n\"\n ATMOSPHERE: (42452..42493) \";; (test #(a b c) (vector-copy #(a b c)))\"\n ATMOSPHERE: (42493..42494) \"\n\"\n ATMOSPHERE: (42494..42535) \";; (test #(b c) (vector-copy #(a b c) 1))\"\n ATMOSPHERE: (42535..42536) \"\n\"\n ATMOSPHERE: (42536..42577) \";; (test #(b) (vector-copy #(a b c) 1 2))\"\n ATMOSPHERE: (42577..42579) \"\n\n\"\n ATMOSPHERE: (42579..42612) \";; (test #() (vector-append #()))\"\n ATMOSPHERE: (42612..42613) \"\n\"\n ATMOSPHERE: (42613..42650) \";; (test #() (vector-append #() #()))\"\n ATMOSPHERE: (42650..42651) \"\n\"\n ATMOSPHERE: (42651..42698) \";; (test #(a b c) (vector-append #() #(a b c)))\"\n ATMOSPHERE: (42698..42699) \"\n\"\n ATMOSPHERE: (42699..42746) \";; (test #(a b c) (vector-append #(a b c) #()))\"\n ATMOSPHERE: (42746..42747) \"\n\"\n ATMOSPHERE: (42747..42801) \";; (test #(a b c d e) (vector-append #(a b c) #(d e)))\"\n ATMOSPHERE: (42801..42802) \"\n\"\n ATMOSPHERE: (42802..42863) \";; (test #(a b c d e f) (vector-append #(a b c) #(d e) #(f)))\"\n ATMOSPHERE: (42863..42865) \"\n\n\"\n ATMOSPHERE: (42865..42894) \";; (test #(1 2 smash smash 5)\"\n ATMOSPHERE: (42894..42895) \"\n\"\n ATMOSPHERE: (42895..42969) \";; (let ((vec (vector 1 2 3 4 5))) (vector-fill! vec 'smash 2 4) vec))\"\n ATMOSPHERE: (42969..42970) \"\n\"\n ATMOSPHERE: (42970..42991) \";; (test #(x x x x x)\"\n ATMOSPHERE: (42991..42992) \"\n\"\n ATMOSPHERE: (42992..43058) \";; (let ((vec (vector 1 2 3 4 5))) (vector-fill! vec 'x) vec))\"\n ATMOSPHERE: (43058..43059) \"\n\"\n ATMOSPHERE: (43059..43080) \";; (test #(1 2 x x x)\"\n ATMOSPHERE: (43080..43081) \"\n\"\n ATMOSPHERE: (43081..43149) \";; (let ((vec (vector 1 2 3 4 5))) (vector-fill! vec 'x 2) vec))\"\n ATMOSPHERE: (43149..43150) \"\n\"\n ATMOSPHERE: (43150..43171) \";; (test #(1 2 x 4 5)\"\n ATMOSPHERE: (43171..43172) \"\n\"\n ATMOSPHERE: (43172..43242) \";; (let ((vec (vector 1 2 3 4 5))) (vector-fill! vec 'x 2 3) vec))\"\n ATMOSPHERE: (43242..43244) \"\n\n\"\n ATMOSPHERE: (43244..43265) \";; (test #(1 a b 4 5)\"\n ATMOSPHERE: (43265..43266) \"\n\"\n ATMOSPHERE: (43266..43348) \";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 1 #(a b c d e) 0 2) vec))\"\n ATMOSPHERE: (43348..43349) \"\n\"\n ATMOSPHERE: (43349..43370) \";; (test #(a b c d e)\"\n ATMOSPHERE: (43370..43371) \"\n\"\n ATMOSPHERE: (43371..43449) \";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 0 #(a b c d e)) vec))\"\n ATMOSPHERE: (43449..43450) \"\n\"\n ATMOSPHERE: (43450..43471) \";; (test #(c d e 4 5)\"\n ATMOSPHERE: (43471..43472) \"\n\"\n ATMOSPHERE: (43472..43552) \";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 0 #(a b c d e) 2) vec))\"\n ATMOSPHERE: (43552..43553) \"\n\"\n ATMOSPHERE: (43553..43574) \";; (test #(1 2 a b c)\"\n ATMOSPHERE: (43574..43575) \"\n\"\n ATMOSPHERE: (43575..43657) \";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 2 #(a b c d e) 0 3) vec))\"\n ATMOSPHERE: (43657..43658) \"\n\"\n ATMOSPHERE: (43658..43679) \";; (test #(1 2 c 4 5)\"\n ATMOSPHERE: (43679..43680) \"\n\"\n ATMOSPHERE: (43680..43762) \";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 2 #(a b c d e) 2 3) vec))\"\n ATMOSPHERE: (43762..43764) \"\n\n\"\n ATMOSPHERE: (43764..43790) \";; ;; same source and dest\"\n ATMOSPHERE: (43790..43791) \"\n\"\n ATMOSPHERE: (43791..43812) \";; (test #(1 1 2 4 5)\"\n ATMOSPHERE: (43812..43813) \"\n\"\n ATMOSPHERE: (43813..43886) \";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 1 vec 0 2) vec))\"\n ATMOSPHERE: (43886..43887) \"\n\"\n ATMOSPHERE: (43887..43908) \";; (test #(1 2 3 1 2)\"\n ATMOSPHERE: (43908..43909) \"\n\"\n ATMOSPHERE: (43909..43982) \";; (let ((vec (vector 1 2 3 4 5))) (vector-copy! vec 3 vec 0 2) vec))\"\n ATMOSPHERE: (43982..43984) \"\n\n\"\n FORM: (43984..43994)\n OPEN_PAREN: (43984..43985) \"(\"\n SYMBOL: (43985..43993)\n IDENTIFIER: (43985..43993) \"test-end\"\n CLOSE_PAREN: (43993..43994) \")\"\n ATMOSPHERE: (43994..43996) \"\n\n\"\n FORM: (43996..44026)\n OPEN_PAREN: (43996..43997) \"(\"\n SYMBOL: (43997..44007)\n IDENTIFIER: (43997..44007) \"test-begin\"\n ATMOSPHERE: (44007..44008) \" \"\n CONSTANT: (44008..44025)\n STRING: (44008..44025) \"\"6.9 Bytevectors\"\"\n CLOSE_PAREN: (44025..44026) \")\"\n ATMOSPHERE: (44026..44028) \"\n\n\"\n FORM: (44028..44057)\n OPEN_PAREN: (44028..44029) \"(\"\n SYMBOL: (44029..44033)\n IDENTIFIER: (44029..44033) \"test\"\n ATMOSPHERE: (44033..44034) \" \"\n CONSTANT: (44034..44036)\n BOOLEAN: (44034..44036) \"#t\"\n ATMOSPHERE: (44036..44037) \" \"\n FORM: (44037..44056)\n OPEN_PAREN: (44037..44038) \"(\"\n SYMBOL: (44038..44049)\n IDENTIFIER: (44038..44049) \"bytevector?\"\n ATMOSPHERE: (44049..44050) \" \"\n BYTEVEC: (44050..44055)\n OPEN_PAREN: (44050..44054) \"#u8(\"\n CLOSE_PAREN: (44054..44055) \")\"\n CLOSE_PAREN: (44055..44056) \")\"\n CLOSE_PAREN: (44056..44057) \")\"\n ATMOSPHERE: (44057..44058) \"\n\"\n FORM: (44058..44092)\n OPEN_PAREN: (44058..44059) \"(\"\n SYMBOL: (44059..44063)\n IDENTIFIER: (44059..44063) \"test\"\n ATMOSPHERE: (44063..44064) \" \"\n CONSTANT: (44064..44066)\n BOOLEAN: (44064..44066) \"#t\"\n ATMOSPHERE: (44066..44067) \" \"\n FORM: (44067..44091)\n OPEN_PAREN: (44067..44068) \"(\"\n SYMBOL: (44068..44079)\n IDENTIFIER: (44068..44079) \"bytevector?\"\n ATMOSPHERE: (44079..44080) \" \"\n BYTEVEC: (44080..44090)\n OPEN_PAREN: (44080..44084) \"#u8(\"\n CONSTANT: (44084..44085)\n NUMBER: (44084..44085) \"0\"\n ATMOSPHERE: (44085..44086) \" \"\n CONSTANT: (44086..44087)\n NUMBER: (44086..44087) \"1\"\n ATMOSPHERE: (44087..44088) \" \"\n CONSTANT: (44088..44089)\n NUMBER: (44088..44089) \"2\"\n CLOSE_PAREN: (44089..44090) \")\"\n CLOSE_PAREN: (44090..44091) \")\"\n CLOSE_PAREN: (44091..44092) \")\"\n ATMOSPHERE: (44092..44093) \"\n\"\n FORM: (44093..44120)\n OPEN_PAREN: (44093..44094) \"(\"\n SYMBOL: (44094..44098)\n IDENTIFIER: (44094..44098) \"test\"\n ATMOSPHERE: (44098..44099) \" \"\n CONSTANT: (44099..44101)\n BOOLEAN: (44099..44101) \"#f\"\n ATMOSPHERE: (44101..44102) \" \"\n FORM: (44102..44119)\n OPEN_PAREN: (44102..44103) \"(\"\n SYMBOL: (44103..44114)\n IDENTIFIER: (44103..44114) \"bytevector?\"\n ATMOSPHERE: (44114..44115) \" \"\n VEC: (44115..44118)\n OPEN_PAREN: (44115..44117) \"#(\"\n CLOSE_PAREN: (44117..44118) \")\"\n CLOSE_PAREN: (44118..44119) \")\"\n CLOSE_PAREN: (44119..44120) \")\"\n ATMOSPHERE: (44120..44121) \"\n\"\n FORM: (44121..44153)\n OPEN_PAREN: (44121..44122) \"(\"\n SYMBOL: (44122..44126)\n IDENTIFIER: (44122..44126) \"test\"\n ATMOSPHERE: (44126..44127) \" \"\n CONSTANT: (44127..44129)\n BOOLEAN: (44127..44129) \"#f\"\n ATMOSPHERE: (44129..44130) \" \"\n FORM: (44130..44152)\n OPEN_PAREN: (44130..44131) \"(\"\n SYMBOL: (44131..44142)\n IDENTIFIER: (44131..44142) \"bytevector?\"\n ATMOSPHERE: (44142..44143) \" \"\n VEC: (44143..44151)\n OPEN_PAREN: (44143..44145) \"#(\"\n CONSTANT: (44145..44146)\n NUMBER: (44145..44146) \"0\"\n ATMOSPHERE: (44146..44147) \" \"\n CONSTANT: (44147..44148)\n NUMBER: (44147..44148) \"1\"\n ATMOSPHERE: (44148..44149) \" \"\n CONSTANT: (44149..44150)\n NUMBER: (44149..44150) \"2\"\n CLOSE_PAREN: (44150..44151) \")\"\n CLOSE_PAREN: (44151..44152) \")\"\n CLOSE_PAREN: (44152..44153) \")\"\n ATMOSPHERE: (44153..44154) \"\n\"\n FORM: (44154..44181)\n OPEN_PAREN: (44154..44155) \"(\"\n SYMBOL: (44155..44159)\n IDENTIFIER: (44155..44159) \"test\"\n ATMOSPHERE: (44159..44160) \" \"\n CONSTANT: (44160..44162)\n BOOLEAN: (44160..44162) \"#f\"\n ATMOSPHERE: (44162..44163) \" \"\n FORM: (44163..44180)\n OPEN_PAREN: (44163..44164) \"(\"\n SYMBOL: (44164..44175)\n IDENTIFIER: (44164..44175) \"bytevector?\"\n ATMOSPHERE: (44175..44176) \" \"\n QUOTED_DATUM: (44176..44179)\n QUOTE: (44176..44177) \"'\"\n FORM: (44177..44179)\n OPEN_PAREN: (44177..44178) \"(\"\n CLOSE_PAREN: (44178..44179) \")\"\n CLOSE_PAREN: (44179..44180) \")\"\n CLOSE_PAREN: (44180..44181) \")\"\n ATMOSPHERE: (44181..44182) \"\n\"\n FORM: (44182..44225)\n OPEN_PAREN: (44182..44183) \"(\"\n SYMBOL: (44183..44187)\n IDENTIFIER: (44183..44187) \"test\"\n ATMOSPHERE: (44187..44188) \" \"\n CONSTANT: (44188..44190)\n BOOLEAN: (44188..44190) \"#t\"\n ATMOSPHERE: (44190..44191) \" \"\n FORM: (44191..44224)\n OPEN_PAREN: (44191..44192) \"(\"\n SYMBOL: (44192..44203)\n IDENTIFIER: (44192..44203) \"bytevector?\"\n ATMOSPHERE: (44203..44204) \" \"\n FORM: (44204..44223)\n OPEN_PAREN: (44204..44205) \"(\"\n SYMBOL: (44205..44220)\n IDENTIFIER: (44205..44220) \"make-bytevector\"\n ATMOSPHERE: (44220..44221) \" \"\n CONSTANT: (44221..44222)\n NUMBER: (44221..44222) \"0\"\n CLOSE_PAREN: (44222..44223) \")\"\n CLOSE_PAREN: (44223..44224) \")\"\n CLOSE_PAREN: (44224..44225) \")\"\n ATMOSPHERE: (44225..44227) \"\n\n\"\n FORM: (44227..44275)\n OPEN_PAREN: (44227..44228) \"(\"\n SYMBOL: (44228..44232)\n IDENTIFIER: (44228..44232) \"test\"\n ATMOSPHERE: (44232..44233) \" \"\n CONSTANT: (44233..44234)\n NUMBER: (44233..44234) \"0\"\n ATMOSPHERE: (44234..44235) \" \"\n FORM: (44235..44274)\n OPEN_PAREN: (44235..44236) \"(\"\n SYMBOL: (44236..44253)\n IDENTIFIER: (44236..44253) \"bytevector-length\"\n ATMOSPHERE: (44253..44254) \" \"\n FORM: (44254..44273)\n OPEN_PAREN: (44254..44255) \"(\"\n SYMBOL: (44255..44270)\n IDENTIFIER: (44255..44270) \"make-bytevector\"\n ATMOSPHERE: (44270..44271) \" \"\n CONSTANT: (44271..44272)\n NUMBER: (44271..44272) \"0\"\n CLOSE_PAREN: (44272..44273) \")\"\n CLOSE_PAREN: (44273..44274) \")\"\n CLOSE_PAREN: (44274..44275) \")\"\n ATMOSPHERE: (44275..44276) \"\n\"\n FORM: (44276..44330)\n OPEN_PAREN: (44276..44277) \"(\"\n SYMBOL: (44277..44281)\n IDENTIFIER: (44277..44281) \"test\"\n ATMOSPHERE: (44281..44282) \" \"\n CONSTANT: (44282..44286)\n NUMBER: (44282..44286) \"1024\"\n ATMOSPHERE: (44286..44287) \" \"\n FORM: (44287..44329)\n OPEN_PAREN: (44287..44288) \"(\"\n SYMBOL: (44288..44305)\n IDENTIFIER: (44288..44305) \"bytevector-length\"\n ATMOSPHERE: (44305..44306) \" \"\n FORM: (44306..44328)\n OPEN_PAREN: (44306..44307) \"(\"\n SYMBOL: (44307..44322)\n IDENTIFIER: (44307..44322) \"make-bytevector\"\n ATMOSPHERE: (44322..44323) \" \"\n CONSTANT: (44323..44327)\n NUMBER: (44323..44327) \"1024\"\n CLOSE_PAREN: (44327..44328) \")\"\n CLOSE_PAREN: (44328..44329) \")\"\n CLOSE_PAREN: (44329..44330) \")\"\n ATMOSPHERE: (44330..44331) \"\n\"\n FORM: (44331..44389)\n OPEN_PAREN: (44331..44332) \"(\"\n SYMBOL: (44332..44336)\n IDENTIFIER: (44332..44336) \"test\"\n ATMOSPHERE: (44336..44337) \" \"\n CONSTANT: (44337..44341)\n NUMBER: (44337..44341) \"1024\"\n ATMOSPHERE: (44341..44342) \" \"\n FORM: (44342..44388)\n OPEN_PAREN: (44342..44343) \"(\"\n SYMBOL: (44343..44360)\n IDENTIFIER: (44343..44360) \"bytevector-length\"\n ATMOSPHERE: (44360..44361) \" \"\n FORM: (44361..44387)\n OPEN_PAREN: (44361..44362) \"(\"\n SYMBOL: (44362..44377)\n IDENTIFIER: (44362..44377) \"make-bytevector\"\n ATMOSPHERE: (44377..44378) \" \"\n CONSTANT: (44378..44382)\n NUMBER: (44378..44382) \"1024\"\n ATMOSPHERE: (44382..44383) \" \"\n CONSTANT: (44383..44386)\n NUMBER: (44383..44386) \"255\"\n CLOSE_PAREN: (44386..44387) \")\"\n CLOSE_PAREN: (44387..44388) \")\"\n CLOSE_PAREN: (44388..44389) \")\"\n ATMOSPHERE: (44389..44391) \"\n\n\"\n FORM: (44391..44438)\n OPEN_PAREN: (44391..44392) \"(\"\n SYMBOL: (44392..44396)\n IDENTIFIER: (44392..44396) \"test\"\n ATMOSPHERE: (44396..44397) \" \"\n CONSTANT: (44397..44398)\n NUMBER: (44397..44398) \"3\"\n ATMOSPHERE: (44398..44399) \" \"\n FORM: (44399..44437)\n OPEN_PAREN: (44399..44400) \"(\"\n SYMBOL: (44400..44417)\n IDENTIFIER: (44400..44417) \"bytevector-length\"\n ATMOSPHERE: (44417..44418) \" \"\n FORM: (44418..44436)\n OPEN_PAREN: (44418..44419) \"(\"\n SYMBOL: (44419..44429)\n IDENTIFIER: (44419..44429) \"bytevector\"\n ATMOSPHERE: (44429..44430) \" \"\n CONSTANT: (44430..44431)\n NUMBER: (44430..44431) \"0\"\n ATMOSPHERE: (44431..44432) \" \"\n CONSTANT: (44432..44433)\n NUMBER: (44432..44433) \"1\"\n ATMOSPHERE: (44433..44434) \" \"\n CONSTANT: (44434..44435)\n NUMBER: (44434..44435) \"2\"\n CLOSE_PAREN: (44435..44436) \")\"\n CLOSE_PAREN: (44436..44437) \")\"\n CLOSE_PAREN: (44437..44438) \")\"\n ATMOSPHERE: (44438..44440) \"\n\n\"\n ATMOSPHERE: (44440..44492) \";; (test 0 (bytevector-u8-ref (bytevector 0 1 2) 0))\"\n ATMOSPHERE: (44492..44493) \"\n\"\n ATMOSPHERE: (44493..44545) \";; (test 1 (bytevector-u8-ref (bytevector 0 1 2) 1))\"\n ATMOSPHERE: (44545..44546) \"\n\"\n ATMOSPHERE: (44546..44598) \";; (test 2 (bytevector-u8-ref (bytevector 0 1 2) 2))\"\n ATMOSPHERE: (44598..44600) \"\n\n\"\n ATMOSPHERE: (44600..44621) \";; (test #u8(0 255 2)\"\n ATMOSPHERE: (44621..44622) \"\n\"\n ATMOSPHERE: (44622..44694) \";; (let ((bv (bytevector 0 1 2))) (bytevector-u8-set! bv 1 255) bv))\"\n ATMOSPHERE: (44694..44696) \"\n\n\"\n ATMOSPHERE: (44696..44735) \";; (test #u8() (bytevector-copy #u8()))\"\n ATMOSPHERE: (44735..44736) \"\n\"\n ATMOSPHERE: (44736..44785) \";; (test #u8(0 1 2) (bytevector-copy #u8(0 1 2)))\"\n ATMOSPHERE: (44785..44786) \"\n\"\n ATMOSPHERE: (44786..44835) \";; (test #u8(1 2) (bytevector-copy #u8(0 1 2) 1))\"\n ATMOSPHERE: (44835..44836) \"\n\"\n ATMOSPHERE: (44836..44885) \";; (test #u8(1) (bytevector-copy #u8(0 1 2) 1 2))\"\n ATMOSPHERE: (44885..44887) \"\n\n\"\n ATMOSPHERE: (44887..44910) \";; (test #u8(1 6 7 4 5)\"\n ATMOSPHERE: (44910..44911) \"\n\"\n ATMOSPHERE: (44911..44952) \";; (let ((bv (bytevector 1 2 3 4 5)))\"\n ATMOSPHERE: (44952..44953) \"\n\"\n ATMOSPHERE: (44953..45005) \";; (bytevector-copy! bv 1 #u8(6 7 8 9 10) 0 2)\"\n ATMOSPHERE: (45005..45006) \"\n\"\n ATMOSPHERE: (45006..45019) \";; bv))\"\n ATMOSPHERE: (45019..45020) \"\n\"\n ATMOSPHERE: (45020..45044) \";; (test #u8(6 7 8 9 10)\"\n ATMOSPHERE: (45044..45045) \"\n\"\n ATMOSPHERE: (45045..45086) \";; (let ((bv (bytevector 1 2 3 4 5)))\"\n ATMOSPHERE: (45086..45087) \"\n\"\n ATMOSPHERE: (45087..45135) \";; (bytevector-copy! bv 0 #u8(6 7 8 9 10))\"\n ATMOSPHERE: (45135..45136) \"\n\"\n ATMOSPHERE: (45136..45149) \";; bv))\"\n ATMOSPHERE: (45149..45150) \"\n\"\n ATMOSPHERE: (45150..45174) \";; (test #u8(8 9 10 4 5)\"\n ATMOSPHERE: (45174..45175) \"\n\"\n ATMOSPHERE: (45175..45216) \";; (let ((bv (bytevector 1 2 3 4 5)))\"\n ATMOSPHERE: (45216..45217) \"\n\"\n ATMOSPHERE: (45217..45267) \";; (bytevector-copy! bv 0 #u8(6 7 8 9 10) 2)\"\n ATMOSPHERE: (45267..45268) \"\n\"\n ATMOSPHERE: (45268..45281) \";; bv))\"\n ATMOSPHERE: (45281..45282) \"\n\"\n ATMOSPHERE: (45282..45305) \";; (test #u8(1 2 6 7 8)\"\n ATMOSPHERE: (45305..45306) \"\n\"\n ATMOSPHERE: (45306..45347) \";; (let ((bv (bytevector 1 2 3 4 5)))\"\n ATMOSPHERE: (45347..45348) \"\n\"\n ATMOSPHERE: (45348..45400) \";; (bytevector-copy! bv 2 #u8(6 7 8 9 10) 0 3)\"\n ATMOSPHERE: (45400..45401) \"\n\"\n ATMOSPHERE: (45401..45414) \";; bv))\"\n ATMOSPHERE: (45414..45415) \"\n\"\n ATMOSPHERE: (45415..45438) \";; (test #u8(1 2 8 4 5)\"\n ATMOSPHERE: (45438..45439) \"\n\"\n ATMOSPHERE: (45439..45480) \";; (let ((bv (bytevector 1 2 3 4 5)))\"\n ATMOSPHERE: (45480..45481) \"\n\"\n ATMOSPHERE: (45481..45533) \";; (bytevector-copy! bv 2 #u8(6 7 8 9 10) 2 3)\"\n ATMOSPHERE: (45533..45534) \"\n\"\n ATMOSPHERE: (45534..45547) \";; bv))\"\n ATMOSPHERE: (45547..45549) \"\n\n\"\n ATMOSPHERE: (45549..45575) \";; ;; same source and dest\"\n ATMOSPHERE: (45575..45576) \"\n\"\n ATMOSPHERE: (45576..45599) \";; (test #u8(1 1 2 4 5)\"\n ATMOSPHERE: (45599..45600) \"\n\"\n ATMOSPHERE: (45600..45641) \";; (let ((bv (bytevector 1 2 3 4 5)))\"\n ATMOSPHERE: (45641..45642) \"\n\"\n ATMOSPHERE: (45642..45681) \";; (bytevector-copy! bv 1 bv 0 2)\"\n ATMOSPHERE: (45681..45682) \"\n\"\n ATMOSPHERE: (45682..45695) \";; bv))\"\n ATMOSPHERE: (45695..45696) \"\n\"\n ATMOSPHERE: (45696..45719) \";; (test #u8(1 2 3 1 2)\"\n ATMOSPHERE: (45719..45720) \"\n\"\n ATMOSPHERE: (45720..45761) \";; (let ((bv (bytevector 1 2 3 4 5)))\"\n ATMOSPHERE: (45761..45762) \"\n\"\n ATMOSPHERE: (45762..45801) \";; (bytevector-copy! bv 3 bv 0 2)\"\n ATMOSPHERE: (45801..45802) \"\n\"\n ATMOSPHERE: (45802..45815) \";; bv))\"\n ATMOSPHERE: (45815..45817) \"\n\n\"\n ATMOSPHERE: (45817..45858) \";; (test #u8() (bytevector-append #u8()))\"\n ATMOSPHERE: (45858..45859) \"\n\"\n ATMOSPHERE: (45859..45906) \";; (test #u8() (bytevector-append #u8() #u8()))\"\n ATMOSPHERE: (45906..45907) \"\n\"\n ATMOSPHERE: (45907..45964) \";; (test #u8(0 1 2) (bytevector-append #u8() #u8(0 1 2)))\"\n ATMOSPHERE: (45964..45965) \"\n\"\n ATMOSPHERE: (45965..46022) \";; (test #u8(0 1 2) (bytevector-append #u8(0 1 2) #u8()))\"\n ATMOSPHERE: (46022..46023) \"\n\"\n ATMOSPHERE: (46023..46087) \";; (test #u8(0 1 2 3 4) (bytevector-append #u8(0 1 2) #u8(3 4)))\"\n ATMOSPHERE: (46087..46088) \"\n\"\n ATMOSPHERE: (46088..46161) \";; (test #u8(0 1 2 3 4 5) (bytevector-append #u8(0 1 2) #u8(3 4) #u8(5)))\"\n ATMOSPHERE: (46161..46163) \"\n\n\"\n ATMOSPHERE: (46163..46213) \";; (test \"ABC\" (utf8->string #u8(#x41 #x42 #x43)))\"\n ATMOSPHERE: (46213..46214) \"\n\"\n ATMOSPHERE: (46214..46268) \";; (test \"ABC\" (utf8->string #u8(0 #x41 #x42 #x43) 1))\"\n ATMOSPHERE: (46268..46269) \"\n\"\n ATMOSPHERE: (46269..46328) \";; (test \"ABC\" (utf8->string #u8(0 #x41 #x42 #x43 0) 1 4))\"\n ATMOSPHERE: (46328..46329) \"\n\"\n ATMOSPHERE: (46329..46380) \";; (test \"λ\" (utf8->string #u8(0 #xCE #xBB 0) 1 3))\"\n ATMOSPHERE: (46380..46381) \"\n\"\n ATMOSPHERE: (46381..46431) \";; (test #u8(#x41 #x42 #x43) (string->utf8 \"ABC\"))\"\n ATMOSPHERE: (46431..46432) \"\n\"\n ATMOSPHERE: (46432..46479) \";; (test #u8(#x42 #x43) (string->utf8 \"ABC\" 1))\"\n ATMOSPHERE: (46479..46480) \"\n\"\n ATMOSPHERE: (46480..46524) \";; (test #u8(#x42) (string->utf8 \"ABC\" 1 2))\"\n ATMOSPHERE: (46524..46525) \"\n\"\n ATMOSPHERE: (46525..46568) \";; (test #u8(#xCE #xBB) (string->utf8 \"λ\"))\"\n ATMOSPHERE: (46568..46570) \"\n\n\"\n FORM: (46570..46580)\n OPEN_PAREN: (46570..46571) \"(\"\n SYMBOL: (46571..46579)\n IDENTIFIER: (46571..46579) \"test-end\"\n CLOSE_PAREN: (46579..46580) \")\"\n ATMOSPHERE: (46580..46582) \"\n\n\"\n FORM: (46582..46618)\n OPEN_PAREN: (46582..46583) \"(\"\n SYMBOL: (46583..46593)\n IDENTIFIER: (46583..46593) \"test-begin\"\n ATMOSPHERE: (46593..46594) \" \"\n CONSTANT: (46594..46617)\n STRING: (46594..46617) \"\"6.10 Control Features\"\"\n CLOSE_PAREN: (46617..46618) \")\"\n ATMOSPHERE: (46618..46620) \"\n\n\"\n FORM: (46620..46646)\n OPEN_PAREN: (46620..46621) \"(\"\n SYMBOL: (46621..46625)\n IDENTIFIER: (46621..46625) \"test\"\n ATMOSPHERE: (46625..46626) \" \"\n CONSTANT: (46626..46628)\n BOOLEAN: (46626..46628) \"#t\"\n ATMOSPHERE: (46628..46629) \" \"\n FORM: (46629..46645)\n OPEN_PAREN: (46629..46630) \"(\"\n SYMBOL: (46630..46640)\n IDENTIFIER: (46630..46640) \"procedure?\"\n ATMOSPHERE: (46640..46641) \" \"\n SYMBOL: (46641..46644)\n IDENTIFIER: (46641..46644) \"car\"\n CLOSE_PAREN: (46644..46645) \")\"\n CLOSE_PAREN: (46645..46646) \")\"\n ATMOSPHERE: (46646..46647) \"\n\"\n FORM: (46647..46674)\n OPEN_PAREN: (46647..46648) \"(\"\n SYMBOL: (46648..46652)\n IDENTIFIER: (46648..46652) \"test\"\n ATMOSPHERE: (46652..46653) \" \"\n CONSTANT: (46653..46655)\n BOOLEAN: (46653..46655) \"#f\"\n ATMOSPHERE: (46655..46656) \" \"\n FORM: (46656..46673)\n OPEN_PAREN: (46656..46657) \"(\"\n SYMBOL: (46657..46667)\n IDENTIFIER: (46657..46667) \"procedure?\"\n ATMOSPHERE: (46667..46668) \" \"\n QUOTED_DATUM: (46668..46672)\n QUOTE: (46668..46669) \"'\"\n SYMBOL: (46669..46672)\n IDENTIFIER: (46669..46672) \"car\"\n CLOSE_PAREN: (46672..46673) \")\"\n CLOSE_PAREN: (46673..46674) \")\"\n ATMOSPHERE: (46674..46675) \"\n\"\n FORM: (46675..46718)\n OPEN_PAREN: (46675..46676) \"(\"\n SYMBOL: (46676..46680)\n IDENTIFIER: (46676..46680) \"test\"\n ATMOSPHERE: (46680..46681) \" \"\n CONSTANT: (46681..46683)\n BOOLEAN: (46681..46683) \"#t\"\n ATMOSPHERE: (46683..46684) \" \"\n FORM: (46684..46717)\n OPEN_PAREN: (46684..46685) \"(\"\n SYMBOL: (46685..46695)\n IDENTIFIER: (46685..46695) \"procedure?\"\n ATMOSPHERE: (46695..46696) \" \"\n FORM: (46696..46716)\n OPEN_PAREN: (46696..46697) \"(\"\n SYMBOL: (46697..46703)\n IDENTIFIER: (46697..46703) \"lambda\"\n ATMOSPHERE: (46703..46704) \" \"\n FORM: (46704..46707)\n OPEN_PAREN: (46704..46705) \"(\"\n SYMBOL: (46705..46706)\n IDENTIFIER: (46705..46706) \"x\"\n CLOSE_PAREN: (46706..46707) \")\"\n ATMOSPHERE: (46707..46708) \" \"\n FORM: (46708..46715)\n OPEN_PAREN: (46708..46709) \"(\"\n SYMBOL: (46709..46710)\n IDENTIFIER: (46709..46710) \"*\"\n ATMOSPHERE: (46710..46711) \" \"\n SYMBOL: (46711..46712)\n IDENTIFIER: (46711..46712) \"x\"\n ATMOSPHERE: (46712..46713) \" \"\n SYMBOL: (46713..46714)\n IDENTIFIER: (46713..46714) \"x\"\n CLOSE_PAREN: (46714..46715) \")\"\n CLOSE_PAREN: (46715..46716) \")\"\n CLOSE_PAREN: (46716..46717) \")\"\n CLOSE_PAREN: (46717..46718) \")\"\n ATMOSPHERE: (46718..46719) \"\n\"\n FORM: (46719..46763)\n OPEN_PAREN: (46719..46720) \"(\"\n SYMBOL: (46720..46724)\n IDENTIFIER: (46720..46724) \"test\"\n ATMOSPHERE: (46724..46725) \" \"\n CONSTANT: (46725..46727)\n BOOLEAN: (46725..46727) \"#f\"\n ATMOSPHERE: (46727..46728) \" \"\n FORM: (46728..46762)\n OPEN_PAREN: (46728..46729) \"(\"\n SYMBOL: (46729..46739)\n IDENTIFIER: (46729..46739) \"procedure?\"\n ATMOSPHERE: (46739..46740) \" \"\n QUOTED_DATUM: (46740..46761)\n QUOTE: (46740..46741) \"'\"\n FORM: (46741..46761)\n OPEN_PAREN: (46741..46742) \"(\"\n SYMBOL: (46742..46748)\n IDENTIFIER: (46742..46748) \"lambda\"\n ATMOSPHERE: (46748..46749) \" \"\n FORM: (46749..46752)\n OPEN_PAREN: (46749..46750) \"(\"\n SYMBOL: (46750..46751)\n IDENTIFIER: (46750..46751) \"x\"\n CLOSE_PAREN: (46751..46752) \")\"\n ATMOSPHERE: (46752..46753) \" \"\n FORM: (46753..46760)\n OPEN_PAREN: (46753..46754) \"(\"\n SYMBOL: (46754..46755)\n IDENTIFIER: (46754..46755) \"*\"\n ATMOSPHERE: (46755..46756) \" \"\n SYMBOL: (46756..46757)\n IDENTIFIER: (46756..46757) \"x\"\n ATMOSPHERE: (46757..46758) \" \"\n SYMBOL: (46758..46759)\n IDENTIFIER: (46758..46759) \"x\"\n CLOSE_PAREN: (46759..46760) \")\"\n CLOSE_PAREN: (46760..46761) \")\"\n CLOSE_PAREN: (46761..46762) \")\"\n CLOSE_PAREN: (46762..46763) \")\"\n ATMOSPHERE: (46763..46764) \"\n\"\n ATMOSPHERE: (46764..46820) \";; (test #t (call-with-current-continuation procedure?))\"\n ATMOSPHERE: (46820..46822) \"\n\n\"\n FORM: (46822..46851)\n OPEN_PAREN: (46822..46823) \"(\"\n SYMBOL: (46823..46827)\n IDENTIFIER: (46823..46827) \"test\"\n ATMOSPHERE: (46827..46828) \" \"\n CONSTANT: (46828..46829)\n NUMBER: (46828..46829) \"7\"\n ATMOSPHERE: (46829..46830) \" \"\n FORM: (46830..46850)\n OPEN_PAREN: (46830..46831) \"(\"\n SYMBOL: (46831..46836)\n IDENTIFIER: (46831..46836) \"apply\"\n ATMOSPHERE: (46836..46837) \" \"\n SYMBOL: (46837..46838)\n IDENTIFIER: (46837..46838) \"+\"\n ATMOSPHERE: (46838..46839) \" \"\n FORM: (46839..46849)\n OPEN_PAREN: (46839..46840) \"(\"\n SYMBOL: (46840..46844)\n IDENTIFIER: (46840..46844) \"list\"\n ATMOSPHERE: (46844..46845) \" \"\n CONSTANT: (46845..46846)\n NUMBER: (46845..46846) \"3\"\n ATMOSPHERE: (46846..46847) \" \"\n CONSTANT: (46847..46848)\n NUMBER: (46847..46848) \"4\"\n CLOSE_PAREN: (46848..46849) \")\"\n CLOSE_PAREN: (46849..46850) \")\"\n CLOSE_PAREN: (46850..46851) \")\"\n ATMOSPHERE: (46851..46852) \"\n\"\n FORM: (46852..46881)\n OPEN_PAREN: (46852..46853) \"(\"\n SYMBOL: (46853..46857)\n IDENTIFIER: (46853..46857) \"test\"\n ATMOSPHERE: (46857..46858) \" \"\n CONSTANT: (46858..46859)\n NUMBER: (46858..46859) \"7\"\n ATMOSPHERE: (46859..46860) \" \"\n FORM: (46860..46880)\n OPEN_PAREN: (46860..46861) \"(\"\n SYMBOL: (46861..46866)\n IDENTIFIER: (46861..46866) \"apply\"\n ATMOSPHERE: (46866..46867) \" \"\n SYMBOL: (46867..46868)\n IDENTIFIER: (46867..46868) \"+\"\n ATMOSPHERE: (46868..46869) \" \"\n CONSTANT: (46869..46870)\n NUMBER: (46869..46870) \"3\"\n ATMOSPHERE: (46870..46871) \" \"\n CONSTANT: (46871..46872)\n NUMBER: (46871..46872) \"4\"\n ATMOSPHERE: (46872..46873) \" \"\n FORM: (46873..46879)\n OPEN_PAREN: (46873..46874) \"(\"\n SYMBOL: (46874..46878)\n IDENTIFIER: (46874..46878) \"list\"\n CLOSE_PAREN: (46878..46879) \")\"\n CLOSE_PAREN: (46879..46880) \")\"\n CLOSE_PAREN: (46880..46881) \")\"\n ATMOSPHERE: (46881..46882) \"\n\"\n ATMOSPHERE: (46882..46926) \";; (test-error (apply +)) ;; not enough args\"\n ATMOSPHERE: (46926..46927) \"\n\"\n ATMOSPHERE: (46927..46978) \";; (test-error (apply + 3)) ;; final arg not a list\"\n ATMOSPHERE: (46978..46979) \"\n\"\n ATMOSPHERE: (46979..47032) \";; (test-error (apply + 3 4)) ;; final arg not a list\"\n ATMOSPHERE: (47032..47033) \"\n\"\n ATMOSPHERE: (47033..47094) \";; (test-error (apply + '(2 3 . 4))) ;; final arg is improper\"\n ATMOSPHERE: (47094..47097) \"\n\n\n\"\n ATMOSPHERE: (47097..47115) \";; (define compose\"\n ATMOSPHERE: (47115..47116) \"\n\"\n ATMOSPHERE: (47116..47134) \";; (lambda (f g)\"\n ATMOSPHERE: (47134..47135) \"\n\"\n ATMOSPHERE: (47135..47154) \";; (lambda args\"\n ATMOSPHERE: (47154..47155) \"\n\"\n ATMOSPHERE: (47155..47185) \";; (f (apply g args)))))\"\n ATMOSPHERE: (47185..47186) \"\n\"\n ATMOSPHERE: (47186..47202) \";; (test '(30 0)\"\n ATMOSPHERE: (47202..47203) \"\n\"\n ATMOSPHERE: (47203..47278) \";; (call-with-values (lambda () ((compose exact-integer-sqrt *) 12 75))\"\n ATMOSPHERE: (47278..47279) \"\n\"\n ATMOSPHERE: (47279..47294) \";; list))\"\n ATMOSPHERE: (47294..47296) \"\n\n\"\n ATMOSPHERE: (47296..47346) \";; (test '(b e h) (map cadr '((a b) (d e) (g h))))\"\n ATMOSPHERE: (47346..47348) \"\n\n\"\n ATMOSPHERE: (47348..47419) \";; (test '(1 4 27 256 3125) (map (lambda (n) (expt n n)) '(1 2 3 4 5)))\"\n ATMOSPHERE: (47419..47421) \"\n\n\"\n ATMOSPHERE: (47421..47467) \";; (test '(5 7 9) (map + '(1 2 3) '(4 5 6 7)))\"\n ATMOSPHERE: (47467..47469) \"\n\n\"\n ATMOSPHERE: (47469..47480) \";; (test #t\"\n ATMOSPHERE: (47480..47481) \"\n\"\n ATMOSPHERE: (47481..47515) \";; (let ((res (let ((count 0))\"\n ATMOSPHERE: (47515..47516) \"\n\"\n ATMOSPHERE: (47516..47558) \";; (map (lambda (ignored)\"\n ATMOSPHERE: (47558..47559) \"\n\"\n ATMOSPHERE: (47559..47610) \";; (set! count (+ count 1))\"\n ATMOSPHERE: (47610..47611) \"\n\"\n ATMOSPHERE: (47611..47644) \";; count)\"\n ATMOSPHERE: (47644..47645) \"\n\"\n ATMOSPHERE: (47645..47680) \";; '(a b)))))\"\n ATMOSPHERE: (47680..47681) \"\n\"\n ATMOSPHERE: (47681..47713) \";; (or (equal? res '(1 2))\"\n ATMOSPHERE: (47713..47714) \"\n\"\n ATMOSPHERE: (47714..47749) \";; (equal? res '(2 1)))))\"\n ATMOSPHERE: (47749..47751) \"\n\n\"\n ATMOSPHERE: (47751..47786) \";; (test '(10 200 3000 40 500 6000)\"\n ATMOSPHERE: (47786..47787) \"\n\"\n ATMOSPHERE: (47787..47824) \";; (let ((ls1 (list 10 100 1000))\"\n ATMOSPHERE: (47824..47825) \"\n\"\n ATMOSPHERE: (47825..47863) \";; (ls2 (list 1 2 3 4 5 6)))\"\n ATMOSPHERE: (47863..47864) \"\n\"\n ATMOSPHERE: (47864..47898) \";; (set-cdr! (cddr ls1) ls1)\"\n ATMOSPHERE: (47898..47899) \"\n\"\n ATMOSPHERE: (47899..47925) \";; (map * ls1 ls2)))\"\n ATMOSPHERE: (47925..47927) \"\n\n\"\n ATMOSPHERE: (47927..47981) \";; (test \"abdegh\" (string-map char-foldcase \"AbdEgH\"))\"\n ATMOSPHERE: (47981..47983) \"\n\n\"\n ATMOSPHERE: (47983..48009) \";; (test \"IBM\" (string-map\"\n ATMOSPHERE: (48009..48010) \"\n\"\n ATMOSPHERE: (48010..48025) \";; (lambda (c)\"\n ATMOSPHERE: (48025..48026) \"\n\"\n ATMOSPHERE: (48026..48072) \";; (integer->char (+ 1 (char->integer c))))\"\n ATMOSPHERE: (48072..48073) \"\n\"\n ATMOSPHERE: (48073..48084) \";; \"HAL\"))\"\n ATMOSPHERE: (48084..48086) \"\n\n\"\n ATMOSPHERE: (48086..48107) \";; (test \"StUdLyCaPs\"\"\n ATMOSPHERE: (48107..48108) \"\n\"\n ATMOSPHERE: (48108..48126) \";; (string-map\"\n ATMOSPHERE: (48126..48127) \"\n\"\n ATMOSPHERE: (48127..48201) \";; (lambda (c k) (if (eqv? k #\\u) (char-upcase c) (char-downcase c)))\"\n ATMOSPHERE: (48201..48202) \"\n\"\n ATMOSPHERE: (48202..48226) \";; \"studlycaps xxx\"\"\n ATMOSPHERE: (48226..48227) \"\n\"\n ATMOSPHERE: (48227..48249) \";; \"ululululul\"))\"\n ATMOSPHERE: (48249..48251) \"\n\n\"\n ATMOSPHERE: (48251..48309) \";; (test #(b e h) (vector-map cadr '#((a b) (d e) (g h))))\"\n ATMOSPHERE: (48309..48311) \"\n\n\"\n ATMOSPHERE: (48311..48338) \";; (test #(1 4 27 256 3125)\"\n ATMOSPHERE: (48338..48339) \"\n\"\n ATMOSPHERE: (48339..48381) \";; (vector-map (lambda (n) (expt n n))\"\n ATMOSPHERE: (48381..48382) \"\n\"\n ATMOSPHERE: (48382..48416) \";; '#(1 2 3 4 5)))\"\n ATMOSPHERE: (48416..48418) \"\n\n\"\n ATMOSPHERE: (48418..48473) \";; (test #(5 7 9) (vector-map + '#(1 2 3) '#(4 5 6 7)))\"\n ATMOSPHERE: (48473..48475) \"\n\n\"\n ATMOSPHERE: (48475..48486) \";; (test #t\"\n ATMOSPHERE: (48486..48487) \"\n\"\n ATMOSPHERE: (48487..48521) \";; (let ((res (let ((count 0))\"\n ATMOSPHERE: (48521..48522) \"\n\"\n ATMOSPHERE: (48522..48553) \";; (vector-map\"\n ATMOSPHERE: (48553..48554) \"\n\"\n ATMOSPHERE: (48554..48592) \";; (lambda (ignored)\"\n ATMOSPHERE: (48592..48593) \"\n\"\n ATMOSPHERE: (48593..48640) \";; (set! count (+ count 1))\"\n ATMOSPHERE: (48640..48641) \"\n\"\n ATMOSPHERE: (48641..48670) \";; count)\"\n ATMOSPHERE: (48670..48671) \"\n\"\n ATMOSPHERE: (48671..48703) \";; '#(a b)))))\"\n ATMOSPHERE: (48703..48704) \"\n\"\n ATMOSPHERE: (48704..48736) \";; (or (equal? res #(1 2))\"\n ATMOSPHERE: (48736..48737) \"\n\"\n ATMOSPHERE: (48737..48772) \";; (equal? res #(2 1)))))\"\n ATMOSPHERE: (48772..48774) \"\n\n\"\n ATMOSPHERE: (48774..48796) \";; (test #(0 1 4 9 16)\"\n ATMOSPHERE: (48796..48797) \"\n\"\n ATMOSPHERE: (48797..48830) \";; (let ((v (make-vector 5)))\"\n ATMOSPHERE: (48830..48831) \"\n\"\n ATMOSPHERE: (48831..48861) \";; (for-each (lambda (i)\"\n ATMOSPHERE: (48861..48862) \"\n\"\n ATMOSPHERE: (48862..48909) \";; (vector-set! v i (* i i)))\"\n ATMOSPHERE: (48909..48910) \"\n\"\n ATMOSPHERE: (48910..48942) \";; '(0 1 2 3 4))\"\n ATMOSPHERE: (48942..48943) \"\n\"\n ATMOSPHERE: (48943..48955) \";; v))\"\n ATMOSPHERE: (48955..48957) \"\n\n\"\n ATMOSPHERE: (48957..48970) \";; (test 9750\"\n ATMOSPHERE: (48970..48971) \"\n\"\n ATMOSPHERE: (48971..49008) \";; (let ((ls1 (list 10 100 1000))\"\n ATMOSPHERE: (49008..49009) \"\n\"\n ATMOSPHERE: (49009..49046) \";; (ls2 (list 1 2 3 4 5 6))\"\n ATMOSPHERE: (49046..49047) \"\n\"\n ATMOSPHERE: (49047..49070) \";; (count 0))\"\n ATMOSPHERE: (49070..49071) \"\n\"\n ATMOSPHERE: (49071..49105) \";; (set-cdr! (cddr ls1) ls1)\"\n ATMOSPHERE: (49105..49106) \"\n\"\n ATMOSPHERE: (49106..49179) \";; (for-each (lambda (x y) (set! count (+ count (* x y)))) ls2 ls1)\"\n ATMOSPHERE: (49179..49180) \"\n\"\n ATMOSPHERE: (49180..49196) \";; count))\"\n ATMOSPHERE: (49196..49198) \"\n\n\"\n ATMOSPHERE: (49198..49226) \";; (test '(101 100 99 98 97)\"\n ATMOSPHERE: (49226..49227) \"\n\"\n ATMOSPHERE: (49227..49248) \";; (let ((v '()))\"\n ATMOSPHERE: (49248..49249) \"\n\"\n ATMOSPHERE: (49249..49274) \";; (string-for-each\"\n ATMOSPHERE: (49274..49275) \"\n\"\n ATMOSPHERE: (49275..49333) \";; (lambda (c) (set! v (cons (char->integer c) v)))\"\n ATMOSPHERE: (49333..49334) \"\n\"\n ATMOSPHERE: (49334..49352) \";; \"abcde\")\"\n ATMOSPHERE: (49352..49353) \"\n\"\n ATMOSPHERE: (49353..49365) \";; v))\"\n ATMOSPHERE: (49365..49367) \"\n\n\"\n ATMOSPHERE: (49367..49414) \";; (test '(0 1 4 9 16) (let ((v (make-list 5)))\"\n ATMOSPHERE: (49414..49415) \"\n\"\n ATMOSPHERE: (49415..49436) \";; (vector-for-each\"\n ATMOSPHERE: (49436..49437) \"\n\"\n ATMOSPHERE: (49437..49479) \";; (lambda (i) (list-set! v i (* i i)))\"\n ATMOSPHERE: (49479..49480) \"\n\"\n ATMOSPHERE: (49480..49500) \";; '#(0 1 2 3 4))\"\n ATMOSPHERE: (49500..49501) \"\n\"\n ATMOSPHERE: (49501..49509) \";; v))\"\n ATMOSPHERE: (49509..49511) \"\n\n\"\n ATMOSPHERE: (49511..49554) \";; (test -3 (call-with-current-continuation\"\n ATMOSPHERE: (49554..49555) \"\n\"\n ATMOSPHERE: (49555..49574) \";; (lambda (exit)\"\n ATMOSPHERE: (49574..49575) \"\n\"\n ATMOSPHERE: (49575..49603) \";; (for-each (lambda (x)\"\n ATMOSPHERE: (49603..49604) \"\n\"\n ATMOSPHERE: (49604..49640) \";; (if (negative? x)\"\n ATMOSPHERE: (49640..49641) \"\n\"\n ATMOSPHERE: (49641..49674) \";; (exit x)))\"\n ATMOSPHERE: (49674..49675) \"\n\"\n ATMOSPHERE: (49675..49713) \";; '(54 0 37 -3 245 19))\"\n ATMOSPHERE: (49713..49714) \"\n\"\n ATMOSPHERE: (49714..49726) \";; #t)))\"\n ATMOSPHERE: (49726..49727) \"\n\"\n ATMOSPHERE: (49727..49749) \";; (define list-length\"\n ATMOSPHERE: (49749..49750) \"\n\"\n ATMOSPHERE: (49750..49768) \";; (lambda (obj)\"\n ATMOSPHERE: (49768..49769) \"\n\"\n ATMOSPHERE: (49769..49807) \";; (call-with-current-continuation\"\n ATMOSPHERE: (49807..49808) \"\n\"\n ATMOSPHERE: (49808..49833) \";; (lambda (return)\"\n ATMOSPHERE: (49833..49834) \"\n\"\n ATMOSPHERE: (49834..49856) \";; (letrec ((r\"\n ATMOSPHERE: (49856..49857) \"\n\"\n ATMOSPHERE: (49857..49891) \";; (lambda (obj)\"\n ATMOSPHERE: (49891..49892) \"\n\"\n ATMOSPHERE: (49892..49936) \";; (cond ((null? obj) 0)\"\n ATMOSPHERE: (49936..49937) \"\n\"\n ATMOSPHERE: (49937..49978) \";; ((pair? obj)\"\n ATMOSPHERE: (49978..49979) \"\n\"\n ATMOSPHERE: (49979..50029) \";; (+ (r (cdr obj)) 1))\"\n ATMOSPHERE: (50029..50030) \"\n\"\n ATMOSPHERE: (50030..50081) \";; (else (return #f))))))\"\n ATMOSPHERE: (50081..50082) \"\n\"\n ATMOSPHERE: (50082..50107) \";; (r obj))))))\"\n ATMOSPHERE: (50107..50109) \"\n\n\"\n ATMOSPHERE: (50109..50145) \";; (test 4 (list-length '(1 2 3 4)))\"\n ATMOSPHERE: (50145..50147) \"\n\n\"\n ATMOSPHERE: (50147..50184) \";; (test #f (list-length '(a b . c)))\"\n ATMOSPHERE: (50184..50186) \"\n\n\"\n ATMOSPHERE: (50186..50196) \";; (test 5\"\n ATMOSPHERE: (50196..50197) \"\n\"\n ATMOSPHERE: (50197..50246) \";; (call-with-values (lambda () (values 4 5))\"\n ATMOSPHERE: (50246..50247) \"\n\"\n ATMOSPHERE: (50247..50274) \";; (lambda (a b) b)))\"\n ATMOSPHERE: (50274..50276) \"\n\n\"\n ATMOSPHERE: (50276..50311) \";; (test -1 (call-with-values * -))\"\n ATMOSPHERE: (50311..50313) \"\n\n\"\n ATMOSPHERE: (50313..50348) \";; (test '(connect talk1 disconnect\"\n ATMOSPHERE: (50348..50349) \"\n\"\n ATMOSPHERE: (50349..50385) \";; connect talk2 disconnect)\"\n ATMOSPHERE: (50385..50386) \"\n\"\n ATMOSPHERE: (50386..50409) \";; (let ((path '())\"\n ATMOSPHERE: (50409..50410) \"\n\"\n ATMOSPHERE: (50410..50430) \";; (c #f))\"\n ATMOSPHERE: (50430..50431) \"\n\"\n ATMOSPHERE: (50431..50462) \";; (let ((add (lambda (s)\"\n ATMOSPHERE: (50462..50463) \"\n\"\n ATMOSPHERE: (50463..50513) \";; (set! path (cons s path)))))\"\n ATMOSPHERE: (50513..50514) \"\n\"\n ATMOSPHERE: (50514..50538) \";; (dynamic-wind\"\n ATMOSPHERE: (50538..50539) \"\n\"\n ATMOSPHERE: (50539..50578) \";; (lambda () (add 'connect))\"\n ATMOSPHERE: (50578..50579) \"\n\"\n ATMOSPHERE: (50579..50602) \";; (lambda ()\"\n ATMOSPHERE: (50602..50603) \"\n\"\n ATMOSPHERE: (50603..50654) \";; (add (call-with-current-continuation\"\n ATMOSPHERE: (50654..50655) \"\n\"\n ATMOSPHERE: (50655..50688) \";; (lambda (c0)\"\n ATMOSPHERE: (50688..50689) \"\n\"\n ATMOSPHERE: (50689..50723) \";; (set! c c0)\"\n ATMOSPHERE: (50723..50724) \"\n\"\n ATMOSPHERE: (50724..50757) \";; 'talk1))))\"\n ATMOSPHERE: (50757..50758) \"\n\"\n ATMOSPHERE: (50758..50801) \";; (lambda () (add 'disconnect)))\"\n ATMOSPHERE: (50801..50802) \"\n\"\n ATMOSPHERE: (50802..50836) \";; (if (< (length path) 4)\"\n ATMOSPHERE: (50836..50837) \"\n\"\n ATMOSPHERE: (50837..50862) \";; (c 'talk2)\"\n ATMOSPHERE: (50862..50863) \"\n\"\n ATMOSPHERE: (50863..50896) \";; (reverse path)))))\"\n ATMOSPHERE: (50896..50898) \"\n\n\"\n FORM: (50898..50908)\n OPEN_PAREN: (50898..50899) \"(\"\n SYMBOL: (50899..50907)\n IDENTIFIER: (50899..50907) \"test-end\"\n CLOSE_PAREN: (50907..50908) \")\"\n ATMOSPHERE: (50908..50910) \"\n\n\"\n FORM: (50910..50940)\n OPEN_PAREN: (50910..50911) \"(\"\n SYMBOL: (50911..50921)\n IDENTIFIER: (50911..50921) \"test-begin\"\n ATMOSPHERE: (50921..50922) \" \"\n CONSTANT: (50922..50939)\n STRING: (50922..50939) \"\"6.11 Exceptions\"\"\n CLOSE_PAREN: (50939..50940) \")\"\n ATMOSPHERE: (50940..50942) \"\n\n\"\n ATMOSPHERE: (50942..50953) \";; (test 65\"\n ATMOSPHERE: (50953..50954) \"\n\"\n ATMOSPHERE: (50954..50984) \";; (with-exception-handler\"\n ATMOSPHERE: (50984..50985) \"\n\"\n ATMOSPHERE: (50985..51010) \";; (lambda (con) 42)\"\n ATMOSPHERE: (51010..51011) \"\n\"\n ATMOSPHERE: (51011..51029) \";; (lambda ()\"\n ATMOSPHERE: (51029..51030) \"\n\"\n ATMOSPHERE: (51030..51083) \";; (+ (raise-continuable \"should be a number\")\"\n ATMOSPHERE: (51083..51084) \"\n\"\n ATMOSPHERE: (51084..51103) \";; 23))))\"\n ATMOSPHERE: (51103..51105) \"\n\n\"\n ATMOSPHERE: (51105..51116) \";; (test #t\"\n ATMOSPHERE: (51116..51117) \"\n\"\n ATMOSPHERE: (51117..51187) \";; (error-object? (guard (exn (else exn)) (error \"BOOM!\" 1 2 3))))\"\n ATMOSPHERE: (51187..51188) \"\n\"\n ATMOSPHERE: (51188..51204) \";; (test \"BOOM!\"\"\n ATMOSPHERE: (51204..51205) \"\n\"\n ATMOSPHERE: (51205..51282) \";; (error-object-message (guard (exn (else exn)) (error \"BOOM!\" 1 2 3))))\"\n ATMOSPHERE: (51282..51283) \"\n\"\n ATMOSPHERE: (51283..51300) \";; (test '(1 2 3)\"\n ATMOSPHERE: (51300..51301) \"\n\"\n ATMOSPHERE: (51301..51380) \";; (error-object-irritants (guard (exn (else exn)) (error \"BOOM!\" 1 2 3))))\"\n ATMOSPHERE: (51380..51382) \"\n\n\"\n ATMOSPHERE: (51382..51393) \";; (test #f\"\n ATMOSPHERE: (51393..51394) \"\n\"\n ATMOSPHERE: (51394..51456) \";; (file-error? (guard (exn (else exn)) (error \"BOOM!\"))))\"\n ATMOSPHERE: (51456..51457) \"\n\"\n ATMOSPHERE: (51457..51468) \";; (test #t\"\n ATMOSPHERE: (51468..51469) \"\n\"\n ATMOSPHERE: (51469..51550) \";; (file-error? (guard (exn (else exn)) (open-input-file \" no such file \"))))\"\n ATMOSPHERE: (51550..51552) \"\n\n\"\n ATMOSPHERE: (51552..51563) \";; (test #f\"\n ATMOSPHERE: (51563..51564) \"\n\"\n ATMOSPHERE: (51564..51626) \";; (read-error? (guard (exn (else exn)) (error \"BOOM!\"))))\"\n ATMOSPHERE: (51626..51627) \"\n\"\n ATMOSPHERE: (51627..51638) \";; (test #t\"\n ATMOSPHERE: (51638..51639) \"\n\"\n ATMOSPHERE: (51639..51716) \";; (read-error? (guard (exn (else exn)) (read (open-input-string \")\")))))\"\n ATMOSPHERE: (51716..51717) \"\n\"\n ATMOSPHERE: (51717..51728) \";; (test #t\"\n ATMOSPHERE: (51728..51729) \"\n\"\n ATMOSPHERE: (51729..51807) \";; (read-error? (guard (exn (else exn)) (read (open-input-string \"\\\"\")))))\"\n ATMOSPHERE: (51807..51809) \"\n\n\"\n ATMOSPHERE: (51809..51844) \";; (define something-went-wrong #f)\"\n ATMOSPHERE: (51844..51845) \"\n\"\n ATMOSPHERE: (51845..51884) \";; (define (test-exception-handler-1 v)\"\n ATMOSPHERE: (51884..51885) \"\n\"\n ATMOSPHERE: (51885..51921) \";; (call-with-current-continuation\"\n ATMOSPHERE: (51921..51922) \"\n\"\n ATMOSPHERE: (51922..51939) \";; (lambda (k)\"\n ATMOSPHERE: (51939..51940) \"\n\"\n ATMOSPHERE: (51940..51971) \";; (with-exception-handler\"\n ATMOSPHERE: (51971..51972) \"\n\"\n ATMOSPHERE: (51972..51992) \";; (lambda (x)\"\n ATMOSPHERE: (51992..51993) \"\n\"\n ATMOSPHERE: (51993..52054) \";; (set! something-went-wrong (list \"condition: \" x))\"\n ATMOSPHERE: (52054..52055) \"\n\"\n ATMOSPHERE: (52055..52081) \";; (k 'exception))\"\n ATMOSPHERE: (52081..52082) \"\n\"\n ATMOSPHERE: (52082..52101) \";; (lambda ()\"\n ATMOSPHERE: (52101..52102) \"\n\"\n ATMOSPHERE: (52102..52164) \";; (+ 1 (if (> v 0) (+ v 100) (raise 'an-error))))))))\"\n ATMOSPHERE: (52164..52165) \"\n\"\n ATMOSPHERE: (52165..52207) \";; (test 106 (test-exception-handler-1 5))\"\n ATMOSPHERE: (52207..52208) \"\n\"\n ATMOSPHERE: (52208..52241) \";; (test #f something-went-wrong)\"\n ATMOSPHERE: (52241..52242) \"\n\"\n ATMOSPHERE: (52242..52292) \";; (test 'exception (test-exception-handler-1 -1))\"\n ATMOSPHERE: (52292..52293) \"\n\"\n ATMOSPHERE: (52293..52349) \";; (test '(\"condition: \" an-error) something-went-wrong)\"\n ATMOSPHERE: (52349..52351) \"\n\n\"\n ATMOSPHERE: (52351..52384) \";; (set! something-went-wrong #f)\"\n ATMOSPHERE: (52384..52385) \"\n\"\n ATMOSPHERE: (52385..52424) \";; (define (test-exception-handler-2 v)\"\n ATMOSPHERE: (52424..52425) \"\n\"\n ATMOSPHERE: (52425..52474) \";; (guard (ex (else 'caught-another-exception))\"\n ATMOSPHERE: (52474..52475) \"\n\"\n ATMOSPHERE: (52475..52505) \";; (with-exception-handler\"\n ATMOSPHERE: (52505..52506) \"\n\"\n ATMOSPHERE: (52506..52525) \";; (lambda (x)\"\n ATMOSPHERE: (52525..52526) \"\n\"\n ATMOSPHERE: (52526..52566) \";; (set! something-went-wrong #t)\"\n ATMOSPHERE: (52566..52567) \"\n\"\n ATMOSPHERE: (52567..52599) \";; (list \"exception:\" x))\"\n ATMOSPHERE: (52599..52600) \"\n\"\n ATMOSPHERE: (52600..52618) \";; (lambda ()\"\n ATMOSPHERE: (52618..52619) \"\n\"\n ATMOSPHERE: (52619..52679) \";; (+ 1 (if (> v 0) (+ v 100) (raise 'an-error)))))))\"\n ATMOSPHERE: (52679..52680) \"\n\"\n ATMOSPHERE: (52680..52722) \";; (test 106 (test-exception-handler-2 5))\"\n ATMOSPHERE: (52722..52723) \"\n\"\n ATMOSPHERE: (52723..52756) \";; (test #f something-went-wrong)\"\n ATMOSPHERE: (52756..52757) \"\n\"\n ATMOSPHERE: (52757..52822) \";; (test 'caught-another-exception (test-exception-handler-2 -1))\"\n ATMOSPHERE: (52822..52823) \"\n\"\n ATMOSPHERE: (52823..52856) \";; (test #t something-went-wrong)\"\n ATMOSPHERE: (52856..52858) \"\n\n\"\n ATMOSPHERE: (52858..52921) \";; ;; Based on an example from R6RS-lib section 7.1 Exceptions.\"\n ATMOSPHERE: (52921..52922) \"\n\"\n ATMOSPHERE: (52922..52982) \";; ;; R7RS section 6.11 Exceptions has a simplified version.\"\n ATMOSPHERE: (52982..52983) \"\n\"\n ATMOSPHERE: (52983..53019) \";; (let* ((out (open-output-string))\"\n ATMOSPHERE: (53019..53020) \"\n\"\n ATMOSPHERE: (53020..53060) \";; (value (with-exception-handler\"\n ATMOSPHERE: (53060..53061) \"\n\"\n ATMOSPHERE: (53061..53092) \";; (lambda (con)\"\n ATMOSPHERE: (53092..53093) \"\n\"\n ATMOSPHERE: (53093..53118) \";; (cond\"\n ATMOSPHERE: (53118..53119) \"\n\"\n ATMOSPHERE: (53119..53158) \";; ((not (list? con))\"\n ATMOSPHERE: (53158..53159) \"\n\"\n ATMOSPHERE: (53159..53193) \";; (raise con))\"\n ATMOSPHERE: (53193..53194) \"\n\"\n ATMOSPHERE: (53194..53227) \";; ((list? con)\"\n ATMOSPHERE: (53227..53228) \"\n\"\n ATMOSPHERE: (53228..53274) \";; (display (car con) out))\"\n ATMOSPHERE: (53274..53275) \"\n\"\n ATMOSPHERE: (53275..53301) \";; (else\"\n ATMOSPHERE: (53301..53302) \"\n\"\n ATMOSPHERE: (53302..53367) \";; (display \"a warning has been issued\" out)))\"\n ATMOSPHERE: (53367..53368) \"\n\"\n ATMOSPHERE: (53368..53391) \";; 42)\"\n ATMOSPHERE: (53391..53392) \"\n\"\n ATMOSPHERE: (53392..53420) \";; (lambda ()\"\n ATMOSPHERE: (53420..53421) \"\n\"\n ATMOSPHERE: (53421..53462) \";; (+ (raise-continuable\"\n ATMOSPHERE: (53462..53463) \"\n\"\n ATMOSPHERE: (53463..53515) \";; (list \"should be a number\"))\"\n ATMOSPHERE: (53515..53516) \"\n\"\n ATMOSPHERE: (53516..53546) \";; 23)))))\"\n ATMOSPHERE: (53546..53547) \"\n\"\n ATMOSPHERE: (53547..53603) \";; (test \"should be a number\" (get-output-string out))\"\n ATMOSPHERE: (53603..53604) \"\n\"\n ATMOSPHERE: (53604..53625) \";; (test 65 value))\"\n ATMOSPHERE: (53625..53627) \"\n\n\"\n ATMOSPHERE: (53627..53669) \";; ;; From SRFI-34 \"Examples\" section - #3\"\n ATMOSPHERE: (53669..53670) \"\n\"\n ATMOSPHERE: (53670..53713) \";; (define (test-exception-handler-3 v out)\"\n ATMOSPHERE: (53713..53714) \"\n\"\n ATMOSPHERE: (53714..53736) \";; (guard (condition\"\n ATMOSPHERE: (53736..53737) \"\n\"\n ATMOSPHERE: (53737..53755) \";; (else\"\n ATMOSPHERE: (53755..53756) \"\n\"\n ATMOSPHERE: (53756..53797) \";; (display \"condition: \" out)\"\n ATMOSPHERE: (53797..53798) \"\n\"\n ATMOSPHERE: (53798..53833) \";; (write condition out)\"\n ATMOSPHERE: (53833..53834) \"\n\"\n ATMOSPHERE: (53834..53865) \";; (display #\\! out)\"\n ATMOSPHERE: (53865..53866) \"\n\"\n ATMOSPHERE: (53866..53892) \";; 'exception))\"\n ATMOSPHERE: (53892..53893) \"\n\"\n ATMOSPHERE: (53893..53952) \";; (+ 1 (if (= v 0) (raise 'an-error) (/ 10 v)))))\"\n ATMOSPHERE: (53952..53953) \"\n\"\n ATMOSPHERE: (53953..53989) \";; (let* ((out (open-output-string))\"\n ATMOSPHERE: (53989..53990) \"\n\"\n ATMOSPHERE: (53990..54041) \";; (value (test-exception-handler-3 0 out)))\"\n ATMOSPHERE: (54041..54042) \"\n\"\n ATMOSPHERE: (54042..54070) \";; (test 'exception value)\"\n ATMOSPHERE: (54070..54071) \"\n\"\n ATMOSPHERE: (54071..54130) \";; (test \"condition: an-error!\" (get-output-string out)))\"\n ATMOSPHERE: (54130..54132) \"\n\n\"\n ATMOSPHERE: (54132..54175) \";; (define (test-exception-handler-4 v out)\"\n ATMOSPHERE: (54175..54176) \"\n\"\n ATMOSPHERE: (54176..54212) \";; (call-with-current-continuation\"\n ATMOSPHERE: (54212..54213) \"\n\"\n ATMOSPHERE: (54213..54230) \";; (lambda (k)\"\n ATMOSPHERE: (54230..54231) \"\n\"\n ATMOSPHERE: (54231..54262) \";; (with-exception-handler\"\n ATMOSPHERE: (54262..54263) \"\n\"\n ATMOSPHERE: (54263..54283) \";; (lambda (x)\"\n ATMOSPHERE: (54283..54284) \"\n\"\n ATMOSPHERE: (54284..54320) \";; (display \"reraised \" out)\"\n ATMOSPHERE: (54320..54321) \"\n\"\n ATMOSPHERE: (54321..54363) \";; (write x out) (display #\\! out)\"\n ATMOSPHERE: (54363..54364) \"\n\"\n ATMOSPHERE: (54364..54385) \";; (k 'zero))\"\n ATMOSPHERE: (54385..54386) \"\n\"\n ATMOSPHERE: (54386..54405) \";; (lambda ()\"\n ATMOSPHERE: (54405..54406) \"\n\"\n ATMOSPHERE: (54406..54434) \";; (guard (condition\"\n ATMOSPHERE: (54434..54435) \"\n\"\n ATMOSPHERE: (54435..54476) \";; ((positive? condition)\"\n ATMOSPHERE: (54476..54477) \"\n\"\n ATMOSPHERE: (54477..54507) \";; 'positive)\"\n ATMOSPHERE: (54507..54508) \"\n\"\n ATMOSPHERE: (54508..54549) \";; ((negative? condition)\"\n ATMOSPHERE: (54549..54550) \"\n\"\n ATMOSPHERE: (54550..54581) \";; 'negative))\"\n ATMOSPHERE: (54581..54582) \"\n\"\n ATMOSPHERE: (54582..54610) \";; (raise v)))))))\"\n ATMOSPHERE: (54610..54612) \"\n\n\"\n ATMOSPHERE: (54612..54654) \";; ;; From SRFI-34 \"Examples\" section - #5\"\n ATMOSPHERE: (54654..54655) \"\n\"\n ATMOSPHERE: (54655..54691) \";; (let* ((out (open-output-string))\"\n ATMOSPHERE: (54691..54692) \"\n\"\n ATMOSPHERE: (54692..54743) \";; (value (test-exception-handler-4 1 out)))\"\n ATMOSPHERE: (54743..54744) \"\n\"\n ATMOSPHERE: (54744..54782) \";; (test \"\" (get-output-string out))\"\n ATMOSPHERE: (54782..54783) \"\n\"\n ATMOSPHERE: (54783..54811) \";; (test 'positive value))\"\n ATMOSPHERE: (54811..54812) \"\n\"\n ATMOSPHERE: (54812..54854) \";; ;; From SRFI-34 \"Examples\" section - #6\"\n ATMOSPHERE: (54854..54855) \"\n\"\n ATMOSPHERE: (54855..54891) \";; (let* ((out (open-output-string))\"\n ATMOSPHERE: (54891..54892) \"\n\"\n ATMOSPHERE: (54892..54944) \";; (value (test-exception-handler-4 -1 out)))\"\n ATMOSPHERE: (54944..54945) \"\n\"\n ATMOSPHERE: (54945..54983) \";; (test \"\" (get-output-string out))\"\n ATMOSPHERE: (54983..54984) \"\n\"\n ATMOSPHERE: (54984..55012) \";; (test 'negative value))\"\n ATMOSPHERE: (55012..55013) \"\n\"\n ATMOSPHERE: (55013..55055) \";; ;; From SRFI-34 \"Examples\" section - #7\"\n ATMOSPHERE: (55055..55056) \"\n\"\n ATMOSPHERE: (55056..55092) \";; (let* ((out (open-output-string))\"\n ATMOSPHERE: (55092..55093) \"\n\"\n ATMOSPHERE: (55093..55144) \";; (value (test-exception-handler-4 0 out)))\"\n ATMOSPHERE: (55144..55145) \"\n\"\n ATMOSPHERE: (55145..55194) \";; (test \"reraised 0!\" (get-output-string out))\"\n ATMOSPHERE: (55194..55195) \"\n\"\n ATMOSPHERE: (55195..55219) \";; (test 'zero value))\"\n ATMOSPHERE: (55219..55221) \"\n\n\"\n ATMOSPHERE: (55221..55263) \";; ;; From SRFI-34 \"Examples\" section - #8\"\n ATMOSPHERE: (55263..55264) \"\n\"\n ATMOSPHERE: (55264..55275) \";; (test 42\"\n ATMOSPHERE: (55275..55276) \"\n\"\n ATMOSPHERE: (55276..55300) \";; (guard (condition\"\n ATMOSPHERE: (55300..55301) \"\n\"\n ATMOSPHERE: (55301..55344) \";; ((assq 'a condition) => cdr)\"\n ATMOSPHERE: (55344..55345) \"\n\"\n ATMOSPHERE: (55345..55382) \";; ((assq 'b condition)))\"\n ATMOSPHERE: (55382..55383) \"\n\"\n ATMOSPHERE: (55383..55421) \";; (raise (list (cons 'a 42)))))\"\n ATMOSPHERE: (55421..55423) \"\n\n\"\n ATMOSPHERE: (55423..55465) \";; ;; From SRFI-34 \"Examples\" section - #9\"\n ATMOSPHERE: (55465..55466) \"\n\"\n ATMOSPHERE: (55466..55484) \";; (test '(b . 23)\"\n ATMOSPHERE: (55484..55485) \"\n\"\n ATMOSPHERE: (55485..55509) \";; (guard (condition\"\n ATMOSPHERE: (55509..55510) \"\n\"\n ATMOSPHERE: (55510..55553) \";; ((assq 'a condition) => cdr)\"\n ATMOSPHERE: (55553..55554) \"\n\"\n ATMOSPHERE: (55554..55591) \";; ((assq 'b condition)))\"\n ATMOSPHERE: (55591..55592) \"\n\"\n ATMOSPHERE: (55592..55630) \";; (raise (list (cons 'b 23)))))\"\n ATMOSPHERE: (55630..55632) \"\n\n\"\n ATMOSPHERE: (55632..55650) \";; (test 'caught-d\"\n ATMOSPHERE: (55650..55651) \"\n\"\n ATMOSPHERE: (55651..55675) \";; (guard (condition\"\n ATMOSPHERE: (55675..55676) \"\n\"\n ATMOSPHERE: (55676..55722) \";; ((assq 'c condition) 'caught-c)\"\n ATMOSPHERE: (55722..55723) \"\n\"\n ATMOSPHERE: (55723..55770) \";; ((assq 'd condition) 'caught-d))\"\n ATMOSPHERE: (55770..55771) \"\n\"\n ATMOSPHERE: (55771..55785) \";; (list\"\n ATMOSPHERE: (55785..55786) \"\n\"\n ATMOSPHERE: (55786..55804) \";; (sqrt 8)\"\n ATMOSPHERE: (55804..55805) \"\n\"\n ATMOSPHERE: (55805..55832) \";; (guard (condition\"\n ATMOSPHERE: (55832..55833) \"\n\"\n ATMOSPHERE: (55833..55879) \";; ((assq 'a condition) => cdr)\"\n ATMOSPHERE: (55879..55880) \"\n\"\n ATMOSPHERE: (55880..55920) \";; ((assq 'b condition)))\"\n ATMOSPHERE: (55920..55921) \"\n\"\n ATMOSPHERE: (55921..55964) \";; (raise (list (cons 'd 24)))))))\"\n ATMOSPHERE: (55964..55966) \"\n\n\"\n FORM: (55966..55976)\n OPEN_PAREN: (55966..55967) \"(\"\n SYMBOL: (55967..55975)\n IDENTIFIER: (55967..55975) \"test-end\"\n CLOSE_PAREN: (55975..55976) \")\"\n ATMOSPHERE: (55976..55978) \"\n\n\"\n FORM: (55978..56025)\n OPEN_PAREN: (55978..55979) \"(\"\n SYMBOL: (55979..55989)\n IDENTIFIER: (55979..55989) \"test-begin\"\n ATMOSPHERE: (55989..55990) \" \"\n CONSTANT: (55990..56024)\n STRING: (55990..56024) \"\"6.12 Environments and evaluation\"\"\n CLOSE_PAREN: (56024..56025) \")\"\n ATMOSPHERE: (56025..56027) \"\n\n\"\n ATMOSPHERE: (56027..56088) \";; ;; (test 21 (eval '(* 7 3) (scheme-report-environment 5)))\"\n ATMOSPHERE: (56088..56090) \"\n\n\"\n ATMOSPHERE: (56090..56101) \";; (test 20\"\n ATMOSPHERE: (56101..56102) \"\n\"\n ATMOSPHERE: (56102..56171) \";; (let ((f (eval '(lambda (f x) (f x x)) (null-environment 5))))\"\n ATMOSPHERE: (56171..56172) \"\n\"\n ATMOSPHERE: (56172..56191) \";; (f + 10)))\"\n ATMOSPHERE: (56191..56193) \"\n\n\"\n ATMOSPHERE: (56193..56256) \";; (test 1024 (eval '(expt 2 10) (environment '(scheme base))))\"\n ATMOSPHERE: (56256..56257) \"\n\"\n ATMOSPHERE: (56257..56294) \";; ;; (sin 0) may return exact number\"\n ATMOSPHERE: (56294..56295) \"\n\"\n ATMOSPHERE: (56295..56366) \";; (test 0.0 (inexact (eval '(sin 0) (environment '(scheme inexact)))))\"\n ATMOSPHERE: (56366..56367) \"\n\"\n ATMOSPHERE: (56367..56378) \";; ;; ditto\"\n ATMOSPHERE: (56378..56379) \"\n\"\n ATMOSPHERE: (56379..56435) \";; (test 1024.0 (eval '(+ (expt 2 10) (inexact (sin 0)))\"\n ATMOSPHERE: (56435..56436) \"\n\"\n ATMOSPHERE: (56436..56506) \";; (environment '(scheme base) '(scheme inexact))))\"\n ATMOSPHERE: (56506..56508) \"\n\n\"\n FORM: (56508..56518)\n OPEN_PAREN: (56508..56509) \"(\"\n SYMBOL: (56509..56517)\n IDENTIFIER: (56509..56517) \"test-end\"\n CLOSE_PAREN: (56517..56518) \")\"\n ATMOSPHERE: (56518..56520) \"\n\n\"\n FORM: (56520..56556)\n OPEN_PAREN: (56520..56521) \"(\"\n SYMBOL: (56521..56531)\n IDENTIFIER: (56521..56531) \"test-begin\"\n ATMOSPHERE: (56531..56532) \" \"\n CONSTANT: (56532..56555)\n STRING: (56532..56555) \"\"6.13 Input and output\"\"\n CLOSE_PAREN: (56555..56556) \")\"\n ATMOSPHERE: (56556..56558) \"\n\n\"\n ATMOSPHERE: (56558..56599) \";; (test #t (port? (current-input-port)))\"\n ATMOSPHERE: (56599..56600) \"\n\"\n ATMOSPHERE: (56600..56647) \";; (test #t (input-port? (current-input-port)))\"\n ATMOSPHERE: (56647..56648) \"\n\"\n ATMOSPHERE: (56648..56697) \";; (test #t (output-port? (current-output-port)))\"\n ATMOSPHERE: (56697..56698) \"\n\"\n ATMOSPHERE: (56698..56746) \";; (test #t (output-port? (current-error-port)))\"\n ATMOSPHERE: (56746..56747) \"\n\"\n ATMOSPHERE: (56747..56799) \";; (test #t (input-port? (open-input-string \"abc\")))\"\n ATMOSPHERE: (56799..56800) \"\n\"\n ATMOSPHERE: (56800..56848) \";; (test #t (output-port? (open-output-string)))\"\n ATMOSPHERE: (56848..56850) \"\n\n\"\n ATMOSPHERE: (56850..56904) \";; (test #t (textual-port? (open-input-string \"abc\")))\"\n ATMOSPHERE: (56904..56905) \"\n\"\n ATMOSPHERE: (56905..56954) \";; (test #t (textual-port? (open-output-string)))\"\n ATMOSPHERE: (56954..56955) \"\n\"\n ATMOSPHERE: (56955..57017) \";; (test #t (binary-port? (open-input-bytevector #u8(0 1 2))))\"\n ATMOSPHERE: (57017..57018) \"\n\"\n ATMOSPHERE: (57018..57070) \";; (test #t (binary-port? (open-output-bytevector)))\"\n ATMOSPHERE: (57070..57072) \"\n\n\"\n ATMOSPHERE: (57072..57129) \";; (test #t (input-port-open? (open-input-string \"abc\")))\"\n ATMOSPHERE: (57129..57130) \"\n\"\n ATMOSPHERE: (57130..57183) \";; (test #t (output-port-open? (open-output-string)))\"\n ATMOSPHERE: (57183..57185) \"\n\n\"\n ATMOSPHERE: (57185..57196) \";; (test #f\"\n ATMOSPHERE: (57196..57197) \"\n\"\n ATMOSPHERE: (57197..57241) \";; (let ((in (open-input-string \"abc\")))\"\n ATMOSPHERE: (57241..57242) \"\n\"\n ATMOSPHERE: (57242..57272) \";; (close-input-port in)\"\n ATMOSPHERE: (57272..57273) \"\n\"\n ATMOSPHERE: (57273..57305) \";; (input-port-open? in)))\"\n ATMOSPHERE: (57305..57307) \"\n\n\"\n ATMOSPHERE: (57307..57318) \";; (test #f\"\n ATMOSPHERE: (57318..57319) \"\n\"\n ATMOSPHERE: (57319..57359) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (57359..57360) \"\n\"\n ATMOSPHERE: (57360..57392) \";; (close-output-port out)\"\n ATMOSPHERE: (57392..57393) \"\n\"\n ATMOSPHERE: (57393..57427) \";; (output-port-open? out)))\"\n ATMOSPHERE: (57427..57429) \"\n\n\"\n ATMOSPHERE: (57429..57440) \";; (test #f\"\n ATMOSPHERE: (57440..57441) \"\n\"\n ATMOSPHERE: (57441..57481) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (57481..57482) \"\n\"\n ATMOSPHERE: (57482..57507) \";; (close-port out)\"\n ATMOSPHERE: (57507..57508) \"\n\"\n ATMOSPHERE: (57508..57542) \";; (output-port-open? out)))\"\n ATMOSPHERE: (57542..57544) \"\n\n\"\n ATMOSPHERE: (57544..57559) \";; (test 'error\"\n ATMOSPHERE: (57559..57560) \"\n\"\n ATMOSPHERE: (57560..57604) \";; (let ((in (open-input-string \"abc\")))\"\n ATMOSPHERE: (57604..57605) \"\n\"\n ATMOSPHERE: (57605..57635) \";; (close-input-port in)\"\n ATMOSPHERE: (57635..57636) \"\n\"\n ATMOSPHERE: (57636..57689) \";; (guard (exn (else 'error)) (read-char in))))\"\n ATMOSPHERE: (57689..57691) \"\n\n\"\n ATMOSPHERE: (57691..57706) \";; (test 'error\"\n ATMOSPHERE: (57706..57707) \"\n\"\n ATMOSPHERE: (57707..57747) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (57747..57748) \"\n\"\n ATMOSPHERE: (57748..57780) \";; (close-output-port out)\"\n ATMOSPHERE: (57780..57781) \"\n\"\n ATMOSPHERE: (57781..57840) \";; (guard (exn (else 'error)) (write-char #\\c out))))\"\n ATMOSPHERE: (57840..57842) \"\n\n\"\n ATMOSPHERE: (57842..57881) \";; (test #t (eof-object? (eof-object)))\"\n ATMOSPHERE: (57881..57882) \"\n\"\n ATMOSPHERE: (57882..57938) \";; (test #t (eof-object? (read (open-input-string \"\"))))\"\n ATMOSPHERE: (57938..57939) \"\n\"\n ATMOSPHERE: (57939..57990) \";; (test #t (char-ready? (open-input-string \"42\")))\"\n ATMOSPHERE: (57990..57991) \"\n\"\n ATMOSPHERE: (57991..58037) \";; (test 42 (read (open-input-string \" 42 \")))\"\n ATMOSPHERE: (58037..58039) \"\n\n\"\n ATMOSPHERE: (58039..58100) \";; (test #t (eof-object? (read-char (open-input-string \"\"))))\"\n ATMOSPHERE: (58100..58101) \"\n\"\n ATMOSPHERE: (58101..58152) \";; (test #\\a (read-char (open-input-string \"abc\")))\"\n ATMOSPHERE: (58152..58154) \"\n\n\"\n ATMOSPHERE: (58154..58215) \";; (test #t (eof-object? (read-line (open-input-string \"\"))))\"\n ATMOSPHERE: (58215..58216) \"\n\"\n ATMOSPHERE: (58216..58269) \";; (test \"abc\" (read-line (open-input-string \"abc\")))\"\n ATMOSPHERE: (58269..58270) \"\n\"\n ATMOSPHERE: (58270..58330) \";; (test \"abc\" (read-line (open-input-string \"abc\\ndef\\n\")))\"\n ATMOSPHERE: (58330..58332) \"\n\n\"\n ATMOSPHERE: (58332..58397) \";; (test #t (eof-object? (read-string 3 (open-input-string \"\"))))\"\n ATMOSPHERE: (58397..58398) \"\n\"\n ATMOSPHERE: (58398..58456) \";; (test \"abc\" (read-string 3 (open-input-string \"abcd\")))\"\n ATMOSPHERE: (58456..58457) \"\n\"\n ATMOSPHERE: (58457..58521) \";; (test \"abc\" (read-string 3 (open-input-string \"abc\\ndef\\n\")))\"\n ATMOSPHERE: (58521..58523) \"\n\n\"\n ATMOSPHERE: (58523..58596) \";; (let ((in (open-input-string (string #\\x10F700 #\\x10F701 #\\x10F702))))\"\n ATMOSPHERE: (58596..58597) \"\n\"\n ATMOSPHERE: (58597..58628) \";; (let* ((c0 (peek-char in))\"\n ATMOSPHERE: (58628..58629) \"\n\"\n ATMOSPHERE: (58629..58660) \";; (c1 (read-char in))\"\n ATMOSPHERE: (58660..58661) \"\n\"\n ATMOSPHERE: (58661..58692) \";; (c2 (read-char in))\"\n ATMOSPHERE: (58692..58693) \"\n\"\n ATMOSPHERE: (58693..58725) \";; (c3 (read-char in)))\"\n ATMOSPHERE: (58725..58726) \"\n\"\n ATMOSPHERE: (58726..58752) \";; (test #\\x10F700 c0)\"\n ATMOSPHERE: (58752..58753) \"\n\"\n ATMOSPHERE: (58753..58779) \";; (test #\\x10F700 c1)\"\n ATMOSPHERE: (58779..58780) \"\n\"\n ATMOSPHERE: (58780..58806) \";; (test #\\x10F701 c2)\"\n ATMOSPHERE: (58806..58807) \"\n\"\n ATMOSPHERE: (58807..58835) \";; (test #\\x10F702 c3)))\"\n ATMOSPHERE: (58835..58837) \"\n\n\"\n ATMOSPHERE: (58837..58864) \";; (test (string #\\x10F700)\"\n ATMOSPHERE: (58864..58865) \"\n\"\n ATMOSPHERE: (58865..58905) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (58905..58906) \"\n\"\n ATMOSPHERE: (58906..58941) \";; (write-char #\\x10F700 out)\"\n ATMOSPHERE: (58941..58942) \"\n\"\n ATMOSPHERE: (58942..58976) \";; (get-output-string out)))\"\n ATMOSPHERE: (58976..58978) \"\n\n\"\n ATMOSPHERE: (58978..58992) \";; (test \"abc\"\"\n ATMOSPHERE: (58992..58993) \"\n\"\n ATMOSPHERE: (58993..59033) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (59033..59034) \"\n\"\n ATMOSPHERE: (59034..59059) \";; (write 'abc out)\"\n ATMOSPHERE: (59059..59060) \"\n\"\n ATMOSPHERE: (59060..59094) \";; (get-output-string out)))\"\n ATMOSPHERE: (59094..59096) \"\n\n\"\n ATMOSPHERE: (59096..59114) \";; (test \"abc def\"\"\n ATMOSPHERE: (59114..59115) \"\n\"\n ATMOSPHERE: (59115..59155) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (59155..59156) \"\n\"\n ATMOSPHERE: (59156..59188) \";; (display \"abc def\" out)\"\n ATMOSPHERE: (59188..59189) \"\n\"\n ATMOSPHERE: (59189..59223) \";; (get-output-string out)))\"\n ATMOSPHERE: (59223..59225) \"\n\n\"\n ATMOSPHERE: (59225..59239) \";; (test \"abc\"\"\n ATMOSPHERE: (59239..59240) \"\n\"\n ATMOSPHERE: (59240..59280) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (59280..59281) \"\n\"\n ATMOSPHERE: (59281..59307) \";; (display #\\a out)\"\n ATMOSPHERE: (59307..59308) \"\n\"\n ATMOSPHERE: (59308..59334) \";; (display \"b\" out)\"\n ATMOSPHERE: (59334..59335) \"\n\"\n ATMOSPHERE: (59335..59361) \";; (display #\\c out)\"\n ATMOSPHERE: (59361..59362) \"\n\"\n ATMOSPHERE: (59362..59396) \";; (get-output-string out)))\"\n ATMOSPHERE: (59396..59398) \"\n\n\"\n ATMOSPHERE: (59398..59409) \";; (test #t\"\n ATMOSPHERE: (59409..59410) \"\n\"\n ATMOSPHERE: (59410..59452) \";; (let* ((out (open-output-string))\"\n ATMOSPHERE: (59452..59453) \"\n\"\n ATMOSPHERE: (59453..59519) \";; (r (begin (newline out) (get-output-string out))))\"\n ATMOSPHERE: (59519..59520) \"\n\"\n ATMOSPHERE: (59520..59571) \";; (or (equal? r \"\\n\") (equal? r \"\\r\\n\"))))\"\n ATMOSPHERE: (59571..59573) \"\n\n\"\n ATMOSPHERE: (59573..59591) \";; (test \"abc def\"\"\n ATMOSPHERE: (59591..59592) \"\n\"\n ATMOSPHERE: (59592..59632) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (59632..59633) \"\n\"\n ATMOSPHERE: (59633..59670) \";; (write-string \"abc def\" out)\"\n ATMOSPHERE: (59670..59671) \"\n\"\n ATMOSPHERE: (59671..59705) \";; (get-output-string out)))\"\n ATMOSPHERE: (59705..59707) \"\n\n\"\n ATMOSPHERE: (59707..59721) \";; (test \"def\"\"\n ATMOSPHERE: (59721..59722) \"\n\"\n ATMOSPHERE: (59722..59762) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (59762..59763) \"\n\"\n ATMOSPHERE: (59763..59802) \";; (write-string \"abc def\" out 4)\"\n ATMOSPHERE: (59802..59803) \"\n\"\n ATMOSPHERE: (59803..59837) \";; (get-output-string out)))\"\n ATMOSPHERE: (59837..59839) \"\n\n\"\n ATMOSPHERE: (59839..59853) \";; (test \"c d\"\"\n ATMOSPHERE: (59853..59854) \"\n\"\n ATMOSPHERE: (59854..59894) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (59894..59895) \"\n\"\n ATMOSPHERE: (59895..59936) \";; (write-string \"abc def\" out 2 5)\"\n ATMOSPHERE: (59936..59937) \"\n\"\n ATMOSPHERE: (59937..59971) \";; (get-output-string out)))\"\n ATMOSPHERE: (59971..59973) \"\n\n\"\n ATMOSPHERE: (59973..59984) \";; (test \"\"\"\n ATMOSPHERE: (59984..59985) \"\n\"\n ATMOSPHERE: (59985..60023) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (60023..60024) \"\n\"\n ATMOSPHERE: (60024..60054) \";; (flush-output-port out)\"\n ATMOSPHERE: (60054..60055) \"\n\"\n ATMOSPHERE: (60055..60087) \";; (get-output-string out)))\"\n ATMOSPHERE: (60087..60089) \"\n\n\"\n ATMOSPHERE: (60089..60155) \";; (test #t (eof-object? (read-u8 (open-input-bytevector #u8()))))\"\n ATMOSPHERE: (60155..60156) \"\n\"\n ATMOSPHERE: (60156..60212) \";; (test 1 (read-u8 (open-input-bytevector #u8(1 2 3))))\"\n ATMOSPHERE: (60212..60214) \"\n\n\"\n ATMOSPHERE: (60214..60290) \";; (test #t (eof-object? (read-bytevector 3 (open-input-bytevector #u8()))))\"\n ATMOSPHERE: (60290..60291) \"\n\"\n ATMOSPHERE: (60291..60346) \";; (test #t (u8-ready? (open-input-bytevector #u8(1))))\"\n ATMOSPHERE: (60346..60347) \"\n\"\n ATMOSPHERE: (60347..60414) \";; (test #u8(1) (read-bytevector 3 (open-input-bytevector #u8(1))))\"\n ATMOSPHERE: (60414..60415) \"\n\"\n ATMOSPHERE: (60415..60486) \";; (test #u8(1 2) (read-bytevector 3 (open-input-bytevector #u8(1 2))))\"\n ATMOSPHERE: (60486..60487) \"\n\"\n ATMOSPHERE: (60487..60562) \";; (test #u8(1 2 3) (read-bytevector 3 (open-input-bytevector #u8(1 2 3))))\"\n ATMOSPHERE: (60562..60563) \"\n\"\n ATMOSPHERE: (60563..60640) \";; (test #u8(1 2 3) (read-bytevector 3 (open-input-bytevector #u8(1 2 3 4))))\"\n ATMOSPHERE: (60640..60642) \"\n\n\"\n ATMOSPHERE: (60642..60653) \";; (test #t\"\n ATMOSPHERE: (60653..60654) \"\n\"\n ATMOSPHERE: (60654..60695) \";; (let ((bv (bytevector 1 2 3 4 5)))\"\n ATMOSPHERE: (60695..60696) \"\n\"\n ATMOSPHERE: (60696..60772) \";; (eof-object? (read-bytevector! bv (open-input-bytevector #u8())))))\"\n ATMOSPHERE: (60772..60774) \"\n\n\"\n ATMOSPHERE: (60774..60798) \";; (test #u8(6 7 8 9 10)\"\n ATMOSPHERE: (60798..60799) \"\n\"\n ATMOSPHERE: (60799..60838) \";; (let ((bv (bytevector 1 2 3 4 5)))\"\n ATMOSPHERE: (60838..60839) \"\n\"\n ATMOSPHERE: (60839..60911) \";; (read-bytevector! bv (open-input-bytevector #u8(6 7 8 9 10)) 0 5)\"\n ATMOSPHERE: (60911..60912) \"\n\"\n ATMOSPHERE: (60912..60923) \";; bv))\"\n ATMOSPHERE: (60923..60925) \"\n\n\"\n ATMOSPHERE: (60925..60948) \";; (test #u8(6 7 8 4 5)\"\n ATMOSPHERE: (60948..60949) \"\n\"\n ATMOSPHERE: (60949..60988) \";; (let ((bv (bytevector 1 2 3 4 5)))\"\n ATMOSPHERE: (60988..60989) \"\n\"\n ATMOSPHERE: (60989..61061) \";; (read-bytevector! bv (open-input-bytevector #u8(6 7 8 9 10)) 0 3)\"\n ATMOSPHERE: (61061..61062) \"\n\"\n ATMOSPHERE: (61062..61073) \";; bv))\"\n ATMOSPHERE: (61073..61075) \"\n\n\"\n ATMOSPHERE: (61075..61098) \";; (test #u8(1 2 3 6 5)\"\n ATMOSPHERE: (61098..61099) \"\n\"\n ATMOSPHERE: (61099..61138) \";; (let ((bv (bytevector 1 2 3 4 5)))\"\n ATMOSPHERE: (61138..61139) \"\n\"\n ATMOSPHERE: (61139..61211) \";; (read-bytevector! bv (open-input-bytevector #u8(6 7 8 9 10)) 3 4)\"\n ATMOSPHERE: (61211..61212) \"\n\"\n ATMOSPHERE: (61212..61223) \";; bv))\"\n ATMOSPHERE: (61223..61225) \"\n\n\"\n ATMOSPHERE: (61225..61244) \";; (test #u8(1 2 3)\"\n ATMOSPHERE: (61244..61245) \"\n\"\n ATMOSPHERE: (61245..61287) \";; (let ((out (open-output-bytevector)))\"\n ATMOSPHERE: (61287..61288) \"\n\"\n ATMOSPHERE: (61288..61311) \";; (write-u8 1 out)\"\n ATMOSPHERE: (61311..61312) \"\n\"\n ATMOSPHERE: (61312..61335) \";; (write-u8 2 out)\"\n ATMOSPHERE: (61335..61336) \"\n\"\n ATMOSPHERE: (61336..61359) \";; (write-u8 3 out)\"\n ATMOSPHERE: (61359..61360) \"\n\"\n ATMOSPHERE: (61360..61396) \";; (get-output-bytevector out)))\"\n ATMOSPHERE: (61396..61398) \"\n\n\"\n ATMOSPHERE: (61398..61421) \";; (test #u8(1 2 3 4 5)\"\n ATMOSPHERE: (61421..61422) \"\n\"\n ATMOSPHERE: (61422..61464) \";; (let ((out (open-output-bytevector)))\"\n ATMOSPHERE: (61464..61465) \"\n\"\n ATMOSPHERE: (61465..61509) \";; (write-bytevector #u8(1 2 3 4 5) out)\"\n ATMOSPHERE: (61509..61510) \"\n\"\n ATMOSPHERE: (61510..61546) \";; (get-output-bytevector out)))\"\n ATMOSPHERE: (61546..61548) \"\n\n\"\n ATMOSPHERE: (61548..61567) \";; (test #u8(3 4 5)\"\n ATMOSPHERE: (61567..61568) \"\n\"\n ATMOSPHERE: (61568..61610) \";; (let ((out (open-output-bytevector)))\"\n ATMOSPHERE: (61610..61611) \"\n\"\n ATMOSPHERE: (61611..61657) \";; (write-bytevector #u8(1 2 3 4 5) out 2)\"\n ATMOSPHERE: (61657..61658) \"\n\"\n ATMOSPHERE: (61658..61694) \";; (get-output-bytevector out)))\"\n ATMOSPHERE: (61694..61696) \"\n\n\"\n ATMOSPHERE: (61696..61713) \";; (test #u8(3 4)\"\n ATMOSPHERE: (61713..61714) \"\n\"\n ATMOSPHERE: (61714..61756) \";; (let ((out (open-output-bytevector)))\"\n ATMOSPHERE: (61756..61757) \"\n\"\n ATMOSPHERE: (61757..61805) \";; (write-bytevector #u8(1 2 3 4 5) out 2 4)\"\n ATMOSPHERE: (61805..61806) \"\n\"\n ATMOSPHERE: (61806..61842) \";; (get-output-bytevector out)))\"\n ATMOSPHERE: (61842..61844) \"\n\n\"\n ATMOSPHERE: (61844..61858) \";; (test #u8()\"\n ATMOSPHERE: (61858..61859) \"\n\"\n ATMOSPHERE: (61859..61901) \";; (let ((out (open-output-bytevector)))\"\n ATMOSPHERE: (61901..61902) \"\n\"\n ATMOSPHERE: (61902..61932) \";; (flush-output-port out)\"\n ATMOSPHERE: (61932..61933) \"\n\"\n ATMOSPHERE: (61933..61969) \";; (get-output-bytevector out)))\"\n ATMOSPHERE: (61969..61971) \"\n\n\"\n ATMOSPHERE: (61971..61982) \";; (test #t\"\n ATMOSPHERE: (61982..61983) \"\n\"\n ATMOSPHERE: (61983..62002) \";; (and (member\"\n ATMOSPHERE: (62002..62003) \"\n\"\n ATMOSPHERE: (62003..62048) \";; (let ((out (open-output-string))\"\n ATMOSPHERE: (62048..62049) \"\n\"\n ATMOSPHERE: (62049..62081) \";; (x (list 1)))\"\n ATMOSPHERE: (62081..62082) \"\n\"\n ATMOSPHERE: (62082..62111) \";; (set-cdr! x x)\"\n ATMOSPHERE: (62111..62112) \"\n\"\n ATMOSPHERE: (62112..62140) \";; (write x out)\"\n ATMOSPHERE: (62140..62141) \"\n\"\n ATMOSPHERE: (62141..62180) \";; (get-output-string out))\"\n ATMOSPHERE: (62180..62181) \"\n\"\n ATMOSPHERE: (62181..62254) \";; ;; labels not guaranteed to be 0 indexed, spacing may differ\"\n ATMOSPHERE: (62254..62255) \"\n\"\n ATMOSPHERE: (62255..62301) \";; '(\"#0=(1 . #0#)\" \"#1=(1 . #1#)\"))\"\n ATMOSPHERE: (62301..62302) \"\n\"\n ATMOSPHERE: (62302..62318) \";; #t))\"\n ATMOSPHERE: (62318..62320) \"\n\n\"\n ATMOSPHERE: (62320..62348) \";; (test \"((1 2 3) (1 2 3))\"\"\n ATMOSPHERE: (62348..62349) \"\n\"\n ATMOSPHERE: (62349..62388) \";; (let ((out (open-output-string))\"\n ATMOSPHERE: (62388..62389) \"\n\"\n ATMOSPHERE: (62389..62419) \";; (x (list 1 2 3)))\"\n ATMOSPHERE: (62419..62420) \"\n\"\n ATMOSPHERE: (62420..62451) \";; (write (list x x) out)\"\n ATMOSPHERE: (62451..62452) \"\n\"\n ATMOSPHERE: (62452..62486) \";; (get-output-string out)))\"\n ATMOSPHERE: (62486..62488) \"\n\n\"\n ATMOSPHERE: (62488..62516) \";; (test \"((1 2 3) (1 2 3))\"\"\n ATMOSPHERE: (62516..62517) \"\n\"\n ATMOSPHERE: (62517..62556) \";; (let ((out (open-output-string))\"\n ATMOSPHERE: (62556..62557) \"\n\"\n ATMOSPHERE: (62557..62587) \";; (x (list 1 2 3)))\"\n ATMOSPHERE: (62587..62588) \"\n\"\n ATMOSPHERE: (62588..62626) \";; (write-simple (list x x) out)\"\n ATMOSPHERE: (62626..62627) \"\n\"\n ATMOSPHERE: (62627..62661) \";; (get-output-string out)))\"\n ATMOSPHERE: (62661..62663) \"\n\n\"\n ATMOSPHERE: (62663..62674) \";; (test #t\"\n ATMOSPHERE: (62674..62675) \"\n\"\n ATMOSPHERE: (62675..62727) \";; (and (member (let ((out (open-output-string))\"\n ATMOSPHERE: (62727..62728) \"\n\"\n ATMOSPHERE: (62728..62771) \";; (x (list 1 2 3)))\"\n ATMOSPHERE: (62771..62772) \"\n\"\n ATMOSPHERE: (62772..62823) \";; (write-shared (list x x) out)\"\n ATMOSPHERE: (62823..62824) \"\n\"\n ATMOSPHERE: (62824..62870) \";; (get-output-string out))\"\n ATMOSPHERE: (62870..62871) \"\n\"\n ATMOSPHERE: (62871..62932) \";; '(\"(#0=(1 2 3) #0#)\" \"(#1=(1 2 3) #1#)\"))\"\n ATMOSPHERE: (62932..62933) \"\n\"\n ATMOSPHERE: (62933..62949) \";; #t))\"\n ATMOSPHERE: (62949..62951) \"\n\n\"\n FORM: (62951..62977)\n OPEN_PAREN: (62951..62952) \"(\"\n SYMBOL: (62952..62962)\n IDENTIFIER: (62952..62962) \"test-begin\"\n ATMOSPHERE: (62962..62963) \" \"\n CONSTANT: (62963..62976)\n STRING: (62963..62976) \"\"Read syntax\"\"\n CLOSE_PAREN: (62976..62977) \")\"\n ATMOSPHERE: (62977..62979) \"\n\n\"\n ATMOSPHERE: (62979..63022) \";; ;; check reading boolean followed by eof\"\n ATMOSPHERE: (63022..63023) \"\n\"\n ATMOSPHERE: (63023..63067) \";; (test #t (read (open-input-string \"#t\")))\"\n ATMOSPHERE: (63067..63068) \"\n\"\n ATMOSPHERE: (63068..63115) \";; (test #t (read (open-input-string \"#true\")))\"\n ATMOSPHERE: (63115..63116) \"\n\"\n ATMOSPHERE: (63116..63160) \";; (test #f (read (open-input-string \"#f\")))\"\n ATMOSPHERE: (63160..63161) \"\n\"\n ATMOSPHERE: (63161..63209) \";; (test #f (read (open-input-string \"#false\")))\"\n ATMOSPHERE: (63209..63210) \"\n\"\n ATMOSPHERE: (63210..63233) \";; (define (read2 port)\"\n ATMOSPHERE: (63233..63234) \"\n\"\n ATMOSPHERE: (63234..63280) \";; (let* ((o1 (read port)) (o2 (read port)))\"\n ATMOSPHERE: (63280..63281) \"\n\"\n ATMOSPHERE: (63281..63302) \";; (cons o1 o2)))\"\n ATMOSPHERE: (63302..63303) \"\n\"\n ATMOSPHERE: (63303..63352) \";; ;; check reading boolean followed by delimiter\"\n ATMOSPHERE: (63352..63353) \"\n\"\n ATMOSPHERE: (63353..63410) \";; (test '(#t . (5)) (read2 (open-input-string \"#t(5)\")))\"\n ATMOSPHERE: (63410..63411) \"\n\"\n ATMOSPHERE: (63411..63469) \";; (test '(#t . 6) (read2 (open-input-string \"#true 6 \")))\"\n ATMOSPHERE: (63469..63470) \"\n\"\n ATMOSPHERE: (63470..63524) \";; (test '(#f . 7) (read2 (open-input-string \"#f 7\")))\"\n ATMOSPHERE: (63524..63525) \"\n\"\n ATMOSPHERE: (63525..63588) \";; (test '(#f . \"8\") (read2 (open-input-string \"#false\\\"8\\\"\")))\"\n ATMOSPHERE: (63588..63590) \"\n\n\"\n ATMOSPHERE: (63590..63635) \";; (test '() (read (open-input-string \"()\")))\"\n ATMOSPHERE: (63635..63636) \"\n\"\n ATMOSPHERE: (63636..63687) \";; (test '(1 2) (read (open-input-string \"(1 2)\")))\"\n ATMOSPHERE: (63687..63688) \"\n\"\n ATMOSPHERE: (63688..63743) \";; (test '(1 . 2) (read (open-input-string \"(1 . 2)\")))\"\n ATMOSPHERE: (63743..63744) \"\n\"\n ATMOSPHERE: (63744..63799) \";; (test '(1 2) (read (open-input-string \"(1 . (2))\")))\"\n ATMOSPHERE: (63799..63800) \"\n\"\n ATMOSPHERE: (63800..63871) \";; (test '(1 2 3 4 5) (read (open-input-string \"(1 . (2 3 4 . (5)))\")))\"\n ATMOSPHERE: (63871..63872) \"\n\"\n ATMOSPHERE: (63872..63933) \";; (test '1 (cadr (read (open-input-string \"#0=(1 . #0#)\"))))\"\n ATMOSPHERE: (63933..63934) \"\n\"\n ATMOSPHERE: (63934..64005) \";; (test '(1 2 3) (cadr (read (open-input-string \"(#0=(1 2 3) #0#)\"))))\"\n ATMOSPHERE: (64005..64007) \"\n\n\"\n ATMOSPHERE: (64007..64067) \";; (test '(quote (1 2)) (read (open-input-string \"'(1 2)\")))\"\n ATMOSPHERE: (64067..64068) \"\n\"\n ATMOSPHERE: (64068..64139) \";; (test '(quote (1 (unquote 2))) (read (open-input-string \"'(1 ,2)\")))\"\n ATMOSPHERE: (64139..64140) \"\n\"\n ATMOSPHERE: (64140..64221) \";; (test '(quote (1 (unquote-splicing 2))) (read (open-input-string \"'(1 ,@2)\")))\"\n ATMOSPHERE: (64221..64222) \"\n\"\n ATMOSPHERE: (64222..64298) \";; (test '(quasiquote (1 (unquote 2))) (read (open-input-string \"`(1 ,2)\")))\"\n ATMOSPHERE: (64298..64300) \"\n\n\"\n ATMOSPHERE: (64300..64346) \";; (test #() (read (open-input-string \"#()\")))\"\n ATMOSPHERE: (64346..64347) \"\n\"\n ATMOSPHERE: (64347..64399) \";; (test #(a b) (read (open-input-string \"#(a b)\")))\"\n ATMOSPHERE: (64399..64401) \"\n\n\"\n ATMOSPHERE: (64401..64451) \";; (test #u8() (read (open-input-string \"#u8()\")))\"\n ATMOSPHERE: (64451..64452) \"\n\"\n ATMOSPHERE: (64452..64508) \";; (test #u8(0 1) (read (open-input-string \"#u8(0 1)\")))\"\n ATMOSPHERE: (64508..64510) \"\n\n\"\n ATMOSPHERE: (64510..64557) \";; (test 'abc (read (open-input-string \"abc\")))\"\n ATMOSPHERE: (64557..64558) \"\n\"\n ATMOSPHERE: (64558..64609) \";; (test 'abc (read (open-input-string \"abc def\")))\"\n ATMOSPHERE: (64609..64610) \"\n\"\n ATMOSPHERE: (64610..64657) \";; (test 'ABC (read (open-input-string \"ABC\")))\"\n ATMOSPHERE: (64657..64658) \"\n\"\n ATMOSPHERE: (64658..64716) \";; (test 'Hello (read (open-input-string \"|H\\\\x65;llo|\")))\"\n ATMOSPHERE: (64716..64718) \"\n\n\"\n ATMOSPHERE: (64718..64777) \";; (test 'abc (read (open-input-string \"#!fold-case ABC\")))\"\n ATMOSPHERE: (64777..64778) \"\n\"\n ATMOSPHERE: (64778..64852) \";; (test 'ABC (read (open-input-string \"#!fold-case #!no-fold-case ABC\")))\"\n ATMOSPHERE: (64852..64854) \"\n\n\"\n ATMOSPHERE: (64854..64908) \";; (test 'def (read (open-input-string \"#; abc def\")))\"\n ATMOSPHERE: (64908..64909) \"\n\"\n ATMOSPHERE: (64909..64964) \";; (test 'def (read (open-input-string \"; abc \\ndef\")))\"\n ATMOSPHERE: (64964..64965) \"\n\"\n ATMOSPHERE: (64965..65022) \";; (test 'def (read (open-input-string \"#| abc |# def\")))\"\n ATMOSPHERE: (65022..65023) \"\n\"\n ATMOSPHERE: (65023..65090) \";; (test 'ghi (read (open-input-string \"#| abc #| def |# |# ghi\")))\"\n ATMOSPHERE: (65090..65091) \"\n\"\n ATMOSPHERE: (65091..65153) \";; (test 'ghi (read (open-input-string \"#; ; abc\\n def ghi\")))\"\n ATMOSPHERE: (65153..65154) \"\n\"\n ATMOSPHERE: (65154..65220) \";; (test '(abs -16) (read (open-input-string \"(#;sqrt abs -16)\")))\"\n ATMOSPHERE: (65220..65221) \"\n\"\n ATMOSPHERE: (65221..65281) \";; (test '(a d) (read (open-input-string \"(a #; #;b c d)\")))\"\n ATMOSPHERE: (65281..65282) \"\n\"\n ATMOSPHERE: (65282..65345) \";; (test '(a e) (read (open-input-string \"(a #;(b #;c d) e)\")))\"\n ATMOSPHERE: (65345..65346) \"\n\"\n ATMOSPHERE: (65346..65405) \";; (test '(a . c) (read (open-input-string \"(a . #;b c)\")))\"\n ATMOSPHERE: (65405..65406) \"\n\"\n ATMOSPHERE: (65406..65465) \";; (test '(a . b) (read (open-input-string \"(a . b #;c)\")))\"\n ATMOSPHERE: (65465..65467) \"\n\n\"\n ATMOSPHERE: (65467..65499) \";; (define (test-read-error str)\"\n ATMOSPHERE: (65499..65500) \"\n\"\n ATMOSPHERE: (65500..65521) \";; (test-assert str\"\n ATMOSPHERE: (65521..65522) \"\n\"\n ATMOSPHERE: (65522..65553) \";; (guard (exn (else #t))\"\n ATMOSPHERE: (65553..65554) \"\n\"\n ATMOSPHERE: (65554..65595) \";; (read (open-input-string str))\"\n ATMOSPHERE: (65595..65596) \"\n\"\n ATMOSPHERE: (65596..65612) \";; #f)))\"\n ATMOSPHERE: (65612..65614) \"\n\n\"\n ATMOSPHERE: (65614..65646) \";; (test-read-error \"(#;a . b)\")\"\n ATMOSPHERE: (65646..65647) \"\n\"\n ATMOSPHERE: (65647..65679) \";; (test-read-error \"(a . #;b)\")\"\n ATMOSPHERE: (65679..65680) \"\n\"\n ATMOSPHERE: (65680..65712) \";; (test-read-error \"(a #;. b)\")\"\n ATMOSPHERE: (65712..65713) \"\n\"\n ATMOSPHERE: (65713..65749) \";; (test-read-error \"(#;x #;y . z)\")\"\n ATMOSPHERE: (65749..65750) \"\n\"\n ATMOSPHERE: (65750..65789) \";; (test-read-error \"(#; #;x #;y . z)\")\"\n ATMOSPHERE: (65789..65790) \"\n\"\n ATMOSPHERE: (65790..65825) \";; (test-read-error \"(#; #;x . z)\")\"\n ATMOSPHERE: (65825..65827) \"\n\n\"\n ATMOSPHERE: (65827..65874) \";; (test #\\a (read (open-input-string \"#\\\\a\")))\"\n ATMOSPHERE: (65874..65875) \"\n\"\n ATMOSPHERE: (65875..65930) \";; (test #\\space (read (open-input-string \"#\\\\space\")))\"\n ATMOSPHERE: (65930..65931) \"\n\"\n ATMOSPHERE: (65931..65995) \";; (test 0 (char->integer (read (open-input-string \"#\\\\null\"))))\"\n ATMOSPHERE: (65995..65996) \"\n\"\n ATMOSPHERE: (65996..66061) \";; (test 7 (char->integer (read (open-input-string \"#\\\\alarm\"))))\"\n ATMOSPHERE: (66061..66062) \"\n\"\n ATMOSPHERE: (66062..66131) \";; (test 8 (char->integer (read (open-input-string \"#\\\\backspace\"))))\"\n ATMOSPHERE: (66131..66132) \"\n\"\n ATMOSPHERE: (66132..66195) \";; (test 9 (char->integer (read (open-input-string \"#\\\\tab\"))))\"\n ATMOSPHERE: (66195..66196) \"\n\"\n ATMOSPHERE: (66196..66264) \";; (test 10 (char->integer (read (open-input-string \"#\\\\newline\"))))\"\n ATMOSPHERE: (66264..66265) \"\n\"\n ATMOSPHERE: (66265..66332) \";; (test 13 (char->integer (read (open-input-string \"#\\\\return\"))))\"\n ATMOSPHERE: (66332..66333) \"\n\"\n ATMOSPHERE: (66333..66402) \";; (test #x7F (char->integer (read (open-input-string \"#\\\\delete\"))))\"\n ATMOSPHERE: (66402..66403) \"\n\"\n ATMOSPHERE: (66403..66472) \";; (test #x1B (char->integer (read (open-input-string \"#\\\\escape\"))))\"\n ATMOSPHERE: (66472..66473) \"\n\"\n ATMOSPHERE: (66473..66539) \";; (test #x03BB (char->integer (read (open-input-string \"#\\\\λ\"))))\"\n ATMOSPHERE: (66539..66540) \"\n\"\n ATMOSPHERE: (66540..66610) \";; (test #x03BB (char->integer (read (open-input-string \"#\\\\x03BB\"))))\"\n ATMOSPHERE: (66610..66612) \"\n\n\"\n ATMOSPHERE: (66612..66664) \";; (test \"abc\" (read (open-input-string \"\\\"abc\\\"\")))\"\n ATMOSPHERE: (66664..66665) \"\n\"\n ATMOSPHERE: (66665..66725) \";; (test \"abc\" (read (open-input-string \"\\\"abc\\\" \\\"def\\\"\")))\"\n ATMOSPHERE: (66725..66726) \"\n\"\n ATMOSPHERE: (66726..66778) \";; (test \"ABC\" (read (open-input-string \"\\\"ABC\\\"\")))\"\n ATMOSPHERE: (66778..66779) \"\n\"\n ATMOSPHERE: (66779..66840) \";; (test \"Hello\" (read (open-input-string \"\\\"H\\\\x65;llo\\\"\")))\"\n ATMOSPHERE: (66840..66841) \"\n\"\n ATMOSPHERE: (66841..66920) \";; (test 7 (char->integer (string-ref (read (open-input-string \"\\\"\\\\a\\\"\")) 0)))\"\n ATMOSPHERE: (66920..66921) \"\n\"\n ATMOSPHERE: (66921..67000) \";; (test 8 (char->integer (string-ref (read (open-input-string \"\\\"\\\\b\\\"\")) 0)))\"\n ATMOSPHERE: (67000..67001) \"\n\"\n ATMOSPHERE: (67001..67080) \";; (test 9 (char->integer (string-ref (read (open-input-string \"\\\"\\\\t\\\"\")) 0)))\"\n ATMOSPHERE: (67080..67081) \"\n\"\n ATMOSPHERE: (67081..67161) \";; (test 10 (char->integer (string-ref (read (open-input-string \"\\\"\\\\n\\\"\")) 0)))\"\n ATMOSPHERE: (67161..67162) \"\n\"\n ATMOSPHERE: (67162..67242) \";; (test 13 (char->integer (string-ref (read (open-input-string \"\\\"\\\\r\\\"\")) 0)))\"\n ATMOSPHERE: (67242..67243) \"\n\"\n ATMOSPHERE: (67243..67326) \";; (test #x22 (char->integer (string-ref (read (open-input-string \"\\\"\\\\\\\"\\\"\")) 0)))\"\n ATMOSPHERE: (67326..67327) \"\n\"\n ATMOSPHERE: (67327..67409) \";; (test #x7C (char->integer (string-ref (read (open-input-string \"\\\"\\\\|\\\"\")) 0)))\"\n ATMOSPHERE: (67409..67410) \"\n\"\n ATMOSPHERE: (67410..67488) \";; (test \"line 1\\nline 2\\n\" (read (open-input-string \"\\\"line 1\\nline 2\\n\\\"\")))\"\n ATMOSPHERE: (67488..67489) \"\n\"\n ATMOSPHERE: (67489..67573) \";; (test \"line 1continued\\n\" (read (open-input-string \"\\\"line 1\\\\\\ncontinued\\n\\\"\")))\"\n ATMOSPHERE: (67573..67574) \"\n\"\n ATMOSPHERE: (67574..67659) \";; (test \"line 1continued\\n\" (read (open-input-string \"\\\"line 1\\\\ \\ncontinued\\n\\\"\")))\"\n ATMOSPHERE: (67659..67660) \"\n\"\n ATMOSPHERE: (67660..67745) \";; (test \"line 1continued\\n\" (read (open-input-string \"\\\"line 1\\\\\\n continued\\n\\\"\")))\"\n ATMOSPHERE: (67745..67746) \"\n\"\n ATMOSPHERE: (67746..67838) \";; (test \"line 1continued\\n\" (read (open-input-string \"\\\"line 1\\\\ \\t \\n \\t continued\\n\\\"\")))\"\n ATMOSPHERE: (67838..67839) \"\n\"\n ATMOSPHERE: (67839..67933) \";; (test \"line 1\\n\\nline 3\\n\" (read (open-input-string \"\\\"line 1\\\\ \\t \\n \\t \\n\\nline 3\\n\\\"\")))\"\n ATMOSPHERE: (67933..67934) \"\n\"\n ATMOSPHERE: (67934..68023) \";; (test #x03BB (char->integer (string-ref (read (open-input-string \"\\\"\\\\x03BB;\\\"\")) 0)))\"\n ATMOSPHERE: (68023..68025) \"\n\n\"\n ATMOSPHERE: (68025..68060) \";; (define-syntax test-write-syntax\"\n ATMOSPHERE: (68060..68061) \"\n\"\n ATMOSPHERE: (68061..68082) \";; (syntax-rules ()\"\n ATMOSPHERE: (68082..68083) \"\n\"\n ATMOSPHERE: (68083..68130) \";; ((test-write-syntax expect-str obj-expr)\"\n ATMOSPHERE: (68130..68131) \"\n\"\n ATMOSPHERE: (68131..68172) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (68172..68173) \"\n\"\n ATMOSPHERE: (68173..68203) \";; (write obj-expr out)\"\n ATMOSPHERE: (68203..68204) \"\n\"\n ATMOSPHERE: (68204..68259) \";; (test expect-str (get-output-string out))))))\"\n ATMOSPHERE: (68259..68261) \"\n\n\"\n ATMOSPHERE: (68261..68294) \";; (test-write-syntax \"|.|\" '|.|)\"\n ATMOSPHERE: (68294..68295) \"\n\"\n ATMOSPHERE: (68295..68332) \";; (test-write-syntax \"|a b|\" '|a b|)\"\n ATMOSPHERE: (68332..68333) \"\n\"\n ATMOSPHERE: (68333..68368) \";; (test-write-syntax \"|,a|\" '|,a|)\"\n ATMOSPHERE: (68368..68369) \"\n\"\n ATMOSPHERE: (68369..68404) \";; (test-write-syntax \"|\\\"|\" '|\\\"|)\"\n ATMOSPHERE: (68404..68405) \"\n\"\n ATMOSPHERE: (68405..68441) \";; (test-write-syntax \"|\\\\||\" '|\\||)\"\n ATMOSPHERE: (68441..68442) \"\n\"\n ATMOSPHERE: (68442..68473) \";; (test-write-syntax \"||\" '||)\"\n ATMOSPHERE: (68473..68474) \"\n\"\n ATMOSPHERE: (68474..68517) \";; (test-write-syntax \"|\\\\\\\\123|\" '|\\\\123|)\"\n ATMOSPHERE: (68517..68518) \"\n\"\n ATMOSPHERE: (68518..68549) \";; (test-write-syntax \"a\" '|a|)\"\n ATMOSPHERE: (68549..68550) \"\n\"\n ATMOSPHERE: (68550..68588) \";; ;; (test-write-syntax \"a.b\" '|a.b|)\"\n ATMOSPHERE: (68588..68589) \"\n\"\n ATMOSPHERE: (68589..68622) \";; (test-write-syntax \"|2|\" '|2|)\"\n ATMOSPHERE: (68622..68623) \"\n\"\n ATMOSPHERE: (68623..68658) \";; (test-write-syntax \"|+3|\" '|+3|)\"\n ATMOSPHERE: (68658..68659) \"\n\"\n ATMOSPHERE: (68659..68696) \";; (test-write-syntax \"|-.4|\" '|-.4|)\"\n ATMOSPHERE: (68696..68697) \"\n\"\n ATMOSPHERE: (68697..68732) \";; (test-write-syntax \"|+i|\" '|+i|)\"\n ATMOSPHERE: (68732..68733) \"\n\"\n ATMOSPHERE: (68733..68768) \";; (test-write-syntax \"|-i|\" '|-i|)\"\n ATMOSPHERE: (68768..68769) \"\n\"\n ATMOSPHERE: (68769..68812) \";; (test-write-syntax \"|+inf.0|\" '|+inf.0|)\"\n ATMOSPHERE: (68812..68813) \"\n\"\n ATMOSPHERE: (68813..68856) \";; (test-write-syntax \"|-inf.0|\" '|-inf.0|)\"\n ATMOSPHERE: (68856..68857) \"\n\"\n ATMOSPHERE: (68857..68900) \";; (test-write-syntax \"|+nan.0|\" '|+nan.0|)\"\n ATMOSPHERE: (68900..68901) \"\n\"\n ATMOSPHERE: (68901..68944) \";; (test-write-syntax \"|+NaN.0|\" '|+NaN.0|)\"\n ATMOSPHERE: (68944..68945) \"\n\"\n ATMOSPHERE: (68945..68994) \";; (test-write-syntax \"|+NaN.0abc|\" '|+NaN.0abc|)\"\n ATMOSPHERE: (68994..68996) \"\n\n\"\n FORM: (68996..69006)\n OPEN_PAREN: (68996..68997) \"(\"\n SYMBOL: (68997..69005)\n IDENTIFIER: (68997..69005) \"test-end\"\n CLOSE_PAREN: (69005..69006) \")\"\n ATMOSPHERE: (69006..69008) \"\n\n\"\n FORM: (69008..69037)\n OPEN_PAREN: (69008..69009) \"(\"\n SYMBOL: (69009..69019)\n IDENTIFIER: (69009..69019) \"test-begin\"\n ATMOSPHERE: (69019..69020) \" \"\n CONSTANT: (69020..69036)\n STRING: (69020..69036) \"\"Numeric syntax\"\"\n CLOSE_PAREN: (69036..69037) \")\"\n ATMOSPHERE: (69037..69039) \"\n\n\"\n ATMOSPHERE: (69039..69091) \";; ;; Numeric syntax adapted from Peter Bex's tests.\"\n ATMOSPHERE: (69091..69092) \"\n\"\n ATMOSPHERE: (69092..69097) \";; ;;\"\n ATMOSPHERE: (69097..69098) \"\n\"\n ATMOSPHERE: (69098..69160) \";; ;; These are updated to R7RS, using string ports instead of\"\n ATMOSPHERE: (69160..69161) \"\n\"\n ATMOSPHERE: (69161..69232) \";; ;; string->number, and \"error\" tests removed because implementations\"\n ATMOSPHERE: (69232..69233) \"\n\"\n ATMOSPHERE: (69233..69303) \";; ;; are free to provide their own numeric extensions. Currently all\"\n ATMOSPHERE: (69303..69304) \"\n\"\n ATMOSPHERE: (69304..69369) \";; ;; tests are run by default - need to cond-expand and test for\"\n ATMOSPHERE: (69369..69370) \"\n\"\n ATMOSPHERE: (69370..69396) \";; ;; infinities and -0.0.\"\n ATMOSPHERE: (69396..69398) \"\n\n\"\n ATMOSPHERE: (69398..69435) \";; (define-syntax test-numeric-syntax\"\n ATMOSPHERE: (69435..69436) \"\n\"\n ATMOSPHERE: (69436..69457) \";; (syntax-rules ()\"\n ATMOSPHERE: (69457..69458) \"\n\"\n ATMOSPHERE: (69458..69507) \";; ((test-numeric-syntax str expect strs ...)\"\n ATMOSPHERE: (69507..69508) \"\n\"\n ATMOSPHERE: (69508..69557) \";; (let* ((z (read (open-input-string str)))\"\n ATMOSPHERE: (69557..69558) \"\n\"\n ATMOSPHERE: (69558..69599) \";; (out (open-output-string))\"\n ATMOSPHERE: (69599..69600) \"\n\"\n ATMOSPHERE: (69600..69669) \";; (z-str (begin (write z out) (get-output-string out))))\"\n ATMOSPHERE: (69669..69670) \"\n\"\n ATMOSPHERE: (69670..69704) \";; (test expect (values z))\"\n ATMOSPHERE: (69704..69705) \"\n\"\n ATMOSPHERE: (69705..69768) \";; (test #t (and (member z-str '(str strs ...)) #t))))))\"\n ATMOSPHERE: (69768..69770) \"\n\n\"\n ATMOSPHERE: (69770..69801) \";; ;; Each test is of the form:\"\n ATMOSPHERE: (69801..69802) \"\n\"\n ATMOSPHERE: (69802..69807) \";; ;;\"\n ATMOSPHERE: (69807..69808) \"\n\"\n ATMOSPHERE: (69808..69888) \";; ;; (test-numeric-syntax input-str expected-value expected-write-values ...)\"\n ATMOSPHERE: (69888..69889) \"\n\"\n ATMOSPHERE: (69889..69894) \";; ;;\"\n ATMOSPHERE: (69894..69895) \"\n\"\n ATMOSPHERE: (69895..69962) \";; ;; where the input should be eqv? to the expected-value, and the\"\n ATMOSPHERE: (69962..69963) \"\n\"\n ATMOSPHERE: (69963..70034) \";; ;; written output the same as any of the expected-write-values. The\"\n ATMOSPHERE: (70034..70035) \"\n\"\n ATMOSPHERE: (70035..70045) \";; ;; form\"\n ATMOSPHERE: (70045..70046) \"\n\"\n ATMOSPHERE: (70046..70051) \";; ;;\"\n ATMOSPHERE: (70051..70052) \"\n\"\n ATMOSPHERE: (70052..70106) \";; ;; (test-numeric-syntax input-str expected-value)\"\n ATMOSPHERE: (70106..70107) \"\n\"\n ATMOSPHERE: (70107..70112) \";; ;;\"\n ATMOSPHERE: (70112..70113) \"\n\"\n ATMOSPHERE: (70113..70137) \";; ;; is a shorthand for\"\n ATMOSPHERE: (70137..70138) \"\n\"\n ATMOSPHERE: (70138..70143) \";; ;;\"\n ATMOSPHERE: (70143..70144) \"\n\"\n ATMOSPHERE: (70144..70210) \";; ;; (test-numeric-syntax input-str expected-value (input-str))\"\n ATMOSPHERE: (70210..70212) \"\n\n\"\n ATMOSPHERE: (70212..70224) \";; ;; Simple\"\n ATMOSPHERE: (70224..70225) \"\n\"\n ATMOSPHERE: (70225..70255) \";; (test-numeric-syntax \"1\" 1)\"\n ATMOSPHERE: (70255..70256) \"\n\"\n ATMOSPHERE: (70256..70291) \";; (test-numeric-syntax \"+1\" 1 \"1\")\"\n ATMOSPHERE: (70291..70292) \"\n\"\n ATMOSPHERE: (70292..70324) \";; (test-numeric-syntax \"-1\" -1)\"\n ATMOSPHERE: (70324..70325) \"\n\"\n ATMOSPHERE: (70325..70370) \";; (test-numeric-syntax \"#i1\" 1.0 \"1.0\" \"1.\")\"\n ATMOSPHERE: (70370..70371) \"\n\"\n ATMOSPHERE: (70371..70416) \";; (test-numeric-syntax \"#I1\" 1.0 \"1.0\" \"1.\")\"\n ATMOSPHERE: (70416..70417) \"\n\"\n ATMOSPHERE: (70417..70466) \";; (test-numeric-syntax \"#i-1\" -1.0 \"-1.0\" \"-1.\")\"\n ATMOSPHERE: (70466..70467) \"\n\"\n ATMOSPHERE: (70467..70480) \";; ;; Decimal\"\n ATMOSPHERE: (70480..70481) \"\n\"\n ATMOSPHERE: (70481..70526) \";; (test-numeric-syntax \"1.0\" 1.0 \"1.0\" \"1.\")\"\n ATMOSPHERE: (70526..70527) \"\n\"\n ATMOSPHERE: (70527..70571) \";; (test-numeric-syntax \"1.\" 1.0 \"1.0\" \"1.\")\"\n ATMOSPHERE: (70571..70572) \"\n\"\n ATMOSPHERE: (70572..70622) \";; (test-numeric-syntax \".1\" 0.1 \"0.1\" \"100.0e-3\")\"\n ATMOSPHERE: (70622..70623) \"\n\"\n ATMOSPHERE: (70623..70677) \";; (test-numeric-syntax \"-.1\" -0.1 \"-0.1\" \"-100.0e-3\")\"\n ATMOSPHERE: (70677..70678) \"\n\"\n ATMOSPHERE: (70678..70754) \";; ;; Some Schemes don't allow negative zero. This is okay with the standard\"\n ATMOSPHERE: (70754..70755) \"\n\"\n ATMOSPHERE: (70755..70819) \";; (test-numeric-syntax \"-.0\" -0.0 \"-0.\" \"-0.0\" \"0.0\" \"0.\" \".0\")\"\n ATMOSPHERE: (70819..70820) \"\n\"\n ATMOSPHERE: (70820..70884) \";; (test-numeric-syntax \"-0.\" -0.0 \"-.0\" \"-0.0\" \"0.0\" \"0.\" \".0\")\"\n ATMOSPHERE: (70884..70885) \"\n\"\n ATMOSPHERE: (70885..70932) \";; (test-numeric-syntax \"#i1.0\" 1.0 \"1.0\" \"1.\")\"\n ATMOSPHERE: (70932..70933) \"\n\"\n ATMOSPHERE: (70933..70971) \";; (test-numeric-syntax \"#e1.0\" 1 \"1\")\"\n ATMOSPHERE: (70971..70972) \"\n\"\n ATMOSPHERE: (70972..71010) \";; (test-numeric-syntax \"#e-.0\" 0 \"0\")\"\n ATMOSPHERE: (71010..71011) \"\n\"\n ATMOSPHERE: (71011..71049) \";; (test-numeric-syntax \"#e-0.\" 0 \"0\")\"\n ATMOSPHERE: (71049..71050) \"\n\"\n ATMOSPHERE: (71050..71084) \";; ;; Decimal notation with suffix\"\n ATMOSPHERE: (71084..71085) \"\n\"\n ATMOSPHERE: (71085..71136) \";; (test-numeric-syntax \"1e2\" 100.0 \"100.0\" \"100.\")\"\n ATMOSPHERE: (71136..71137) \"\n\"\n ATMOSPHERE: (71137..71188) \";; (test-numeric-syntax \"1E2\" 100.0 \"100.0\" \"100.\")\"\n ATMOSPHERE: (71188..71189) \"\n\"\n ATMOSPHERE: (71189..71240) \";; (test-numeric-syntax \"1s2\" 100.0 \"100.0\" \"100.\")\"\n ATMOSPHERE: (71240..71241) \"\n\"\n ATMOSPHERE: (71241..71292) \";; (test-numeric-syntax \"1S2\" 100.0 \"100.0\" \"100.\")\"\n ATMOSPHERE: (71292..71293) \"\n\"\n ATMOSPHERE: (71293..71344) \";; (test-numeric-syntax \"1f2\" 100.0 \"100.0\" \"100.\")\"\n ATMOSPHERE: (71344..71345) \"\n\"\n ATMOSPHERE: (71345..71396) \";; (test-numeric-syntax \"1F2\" 100.0 \"100.0\" \"100.\")\"\n ATMOSPHERE: (71396..71397) \"\n\"\n ATMOSPHERE: (71397..71448) \";; (test-numeric-syntax \"1d2\" 100.0 \"100.0\" \"100.\")\"\n ATMOSPHERE: (71448..71449) \"\n\"\n ATMOSPHERE: (71449..71500) \";; (test-numeric-syntax \"1D2\" 100.0 \"100.0\" \"100.\")\"\n ATMOSPHERE: (71500..71501) \"\n\"\n ATMOSPHERE: (71501..71552) \";; (test-numeric-syntax \"1l2\" 100.0 \"100.0\" \"100.\")\"\n ATMOSPHERE: (71552..71553) \"\n\"\n ATMOSPHERE: (71553..71604) \";; (test-numeric-syntax \"1L2\" 100.0 \"100.0\" \"100.\")\"\n ATMOSPHERE: (71604..71605) \"\n\"\n ATMOSPHERE: (71605..71619) \";; ;; NaN, Inf\"\n ATMOSPHERE: (71619..71620) \"\n\"\n ATMOSPHERE: (71620..71678) \";; (test-numeric-syntax \"+nan.0\" +nan.0 \"+nan.0\" \"+NaN.0\")\"\n ATMOSPHERE: (71678..71679) \"\n\"\n ATMOSPHERE: (71679..71737) \";; (test-numeric-syntax \"+NAN.0\" +nan.0 \"+nan.0\" \"+NaN.0\")\"\n ATMOSPHERE: (71737..71738) \"\n\"\n ATMOSPHERE: (71738..71796) \";; (test-numeric-syntax \"+inf.0\" +inf.0 \"+inf.0\" \"+Inf.0\")\"\n ATMOSPHERE: (71796..71797) \"\n\"\n ATMOSPHERE: (71797..71855) \";; (test-numeric-syntax \"+InF.0\" +inf.0 \"+inf.0\" \"+Inf.0\")\"\n ATMOSPHERE: (71855..71856) \"\n\"\n ATMOSPHERE: (71856..71914) \";; (test-numeric-syntax \"-inf.0\" -inf.0 \"-inf.0\" \"-Inf.0\")\"\n ATMOSPHERE: (71914..71915) \"\n\"\n ATMOSPHERE: (71915..71973) \";; (test-numeric-syntax \"-iNF.0\" -inf.0 \"-inf.0\" \"-Inf.0\")\"\n ATMOSPHERE: (71973..71974) \"\n\"\n ATMOSPHERE: (71974..72034) \";; (test-numeric-syntax \"#i+nan.0\" +nan.0 \"+nan.0\" \"+NaN.0\")\"\n ATMOSPHERE: (72034..72035) \"\n\"\n ATMOSPHERE: (72035..72095) \";; (test-numeric-syntax \"#i+inf.0\" +inf.0 \"+inf.0\" \"+Inf.0\")\"\n ATMOSPHERE: (72095..72096) \"\n\"\n ATMOSPHERE: (72096..72156) \";; (test-numeric-syntax \"#i-inf.0\" -inf.0 \"-inf.0\" \"-Inf.0\")\"\n ATMOSPHERE: (72156..72157) \"\n\"\n ATMOSPHERE: (72157..72175) \";; ;; Exact ratios\"\n ATMOSPHERE: (72175..72176) \"\n\"\n ATMOSPHERE: (72176..72214) \";; (test-numeric-syntax \"1/2\" (/ 1 2))\"\n ATMOSPHERE: (72214..72215) \"\n\"\n ATMOSPHERE: (72215..72261) \";; (test-numeric-syntax \"#e1/2\" (/ 1 2) \"1/2\")\"\n ATMOSPHERE: (72261..72262) \"\n\"\n ATMOSPHERE: (72262..72299) \";; (test-numeric-syntax \"10/2\" 5 \"5\")\"\n ATMOSPHERE: (72299..72300) \"\n\"\n ATMOSPHERE: (72300..72343) \";; (test-numeric-syntax \"-1/2\" (- (/ 1 2)))\"\n ATMOSPHERE: (72343..72344) \"\n\"\n ATMOSPHERE: (72344..72381) \";; (test-numeric-syntax \"0/10\" 0 \"0\")\"\n ATMOSPHERE: (72381..72382) \"\n\"\n ATMOSPHERE: (72382..72421) \";; (test-numeric-syntax \"#e0/10\" 0 \"0\")\"\n ATMOSPHERE: (72421..72422) \"\n\"\n ATMOSPHERE: (72422..72472) \";; (test-numeric-syntax \"#i3/2\" (/ 3.0 2.0) \"1.5\")\"\n ATMOSPHERE: (72472..72473) \"\n\"\n ATMOSPHERE: (72473..72492) \";; ;; Exact complex\"\n ATMOSPHERE: (72492..72493) \"\n\"\n ATMOSPHERE: (72493..72547) \";; (test-numeric-syntax \"1+2i\" (make-rectangular 1 2))\"\n ATMOSPHERE: (72547..72548) \"\n\"\n ATMOSPHERE: (72548..72609) \";; (test-numeric-syntax \"1+2I\" (make-rectangular 1 2) \"1+2i\")\"\n ATMOSPHERE: (72609..72610) \"\n\"\n ATMOSPHERE: (72610..72665) \";; (test-numeric-syntax \"1-2i\" (make-rectangular 1 -2))\"\n ATMOSPHERE: (72665..72666) \"\n\"\n ATMOSPHERE: (72666..72722) \";; (test-numeric-syntax \"-1+2i\" (make-rectangular -1 2))\"\n ATMOSPHERE: (72722..72723) \"\n\"\n ATMOSPHERE: (72723..72780) \";; (test-numeric-syntax \"-1-2i\" (make-rectangular -1 -2))\"\n ATMOSPHERE: (72780..72781) \"\n\"\n ATMOSPHERE: (72781..72857) \";; (test-numeric-syntax \"+i\" (make-rectangular 0 1) \"+i\" \"+1i\" \"0+i\" \"0+1i\")\"\n ATMOSPHERE: (72857..72858) \"\n\"\n ATMOSPHERE: (72858..72935) \";; (test-numeric-syntax \"0+i\" (make-rectangular 0 1) \"+i\" \"+1i\" \"0+i\" \"0+1i\")\"\n ATMOSPHERE: (72935..72936) \"\n\"\n ATMOSPHERE: (72936..73014) \";; (test-numeric-syntax \"0+1i\" (make-rectangular 0 1) \"+i\" \"+1i\" \"0+i\" \"0+1i\")\"\n ATMOSPHERE: (73014..73015) \"\n\"\n ATMOSPHERE: (73015..73092) \";; (test-numeric-syntax \"-i\" (make-rectangular 0 -1) \"-i\" \"-1i\" \"0-i\" \"0-1i\")\"\n ATMOSPHERE: (73092..73093) \"\n\"\n ATMOSPHERE: (73093..73171) \";; (test-numeric-syntax \"0-i\" (make-rectangular 0 -1) \"-i\" \"-1i\" \"0-i\" \"0-1i\")\"\n ATMOSPHERE: (73171..73172) \"\n\"\n ATMOSPHERE: (73172..73251) \";; (test-numeric-syntax \"0-1i\" (make-rectangular 0 -1) \"-i\" \"-1i\" \"0-i\" \"0-1i\")\"\n ATMOSPHERE: (73251..73252) \"\n\"\n ATMOSPHERE: (73252..73323) \";; (test-numeric-syntax \"+2i\" (make-rectangular 0 2) \"2i\" \"+2i\" \"0+2i\")\"\n ATMOSPHERE: (73323..73324) \"\n\"\n ATMOSPHERE: (73324..73391) \";; (test-numeric-syntax \"-2i\" (make-rectangular 0 -2) \"-2i\" \"0-2i\")\"\n ATMOSPHERE: (73391..73392) \"\n\"\n ATMOSPHERE: (73392..73453) \";; ;; Decimal-notation complex numbers (rectangular notation)\"\n ATMOSPHERE: (73453..73454) \"\n\"\n ATMOSPHERE: (73454..73549) \";; (test-numeric-syntax \"1.0+2i\" (make-rectangular 1.0 2) \"1.0+2.0i\" \"1.0+2i\" \"1.+2i\" \"1.+2.i\")\"\n ATMOSPHERE: (73549..73550) \"\n\"\n ATMOSPHERE: (73550..73645) \";; (test-numeric-syntax \"1+2.0i\" (make-rectangular 1 2.0) \"1.0+2.0i\" \"1+2.0i\" \"1.+2.i\" \"1+2.i\")\"\n ATMOSPHERE: (73645..73646) \"\n\"\n ATMOSPHERE: (73646..73734) \";; (test-numeric-syntax \"1e2+1.0i\" (make-rectangular 100.0 1.0) \"100.0+1.0i\" \"100.+1.i\")\"\n ATMOSPHERE: (73734..73735) \"\n\"\n ATMOSPHERE: (73735..73823) \";; (test-numeric-syntax \"1s2+1.0i\" (make-rectangular 100.0 1.0) \"100.0+1.0i\" \"100.+1.i\")\"\n ATMOSPHERE: (73823..73824) \"\n\"\n ATMOSPHERE: (73824..73912) \";; (test-numeric-syntax \"1.0+1e2i\" (make-rectangular 1.0 100.0) \"1.0+100.0i\" \"1.+100.i\")\"\n ATMOSPHERE: (73912..73913) \"\n\"\n ATMOSPHERE: (73913..74001) \";; (test-numeric-syntax \"1.0+1s2i\" (make-rectangular 1.0 100.0) \"1.0+100.0i\" \"1.+100.i\")\"\n ATMOSPHERE: (74001..74002) \"\n\"\n ATMOSPHERE: (74002..74057) \";; ;; Fractional complex numbers (rectangular notation)\"\n ATMOSPHERE: (74057..74058) \"\n\"\n ATMOSPHERE: (74058..74128) \";; (test-numeric-syntax \"1/2+3/4i\" (make-rectangular (/ 1 2) (/ 3 4)))\"\n ATMOSPHERE: (74128..74129) \"\n\"\n ATMOSPHERE: (74129..74207) \";; ;; Mixed fractional/decimal notation complex numbers (rectangular notation)\"\n ATMOSPHERE: (74207..74208) \"\n\"\n ATMOSPHERE: (74208..74273) \";; (test-numeric-syntax \"0.5+3/4i\" (make-rectangular 0.5 (/ 3 4))\"\n ATMOSPHERE: (74273..74274) \"\n\"\n ATMOSPHERE: (74274..74343) \";; \"0.5+0.75i\" \".5+.75i\" \"0.5+3/4i\" \".5+3/4i\" \"500.0e-3+750.0e-3i\")\"\n ATMOSPHERE: (74343..74344) \"\n\"\n ATMOSPHERE: (74344..74389) \";; ;; Complex NaN, Inf (rectangular notation)\"\n ATMOSPHERE: (74389..74390) \"\n\"\n ATMOSPHERE: (74390..74484) \";; ;;(test-numeric-syntax \"+nan.0+nan.0i\" (make-rectangular the-nan the-nan) \"+NaN.0+NaN.0i\") \"\n ATMOSPHERE: (74484..74485) \"\n\"\n ATMOSPHERE: (74485..74574) \";; (test-numeric-syntax \"+inf.0+inf.0i\" (make-rectangular +inf.0 +inf.0) \"+Inf.0+Inf.0i\")\"\n ATMOSPHERE: (74574..74575) \"\n\"\n ATMOSPHERE: (74575..74664) \";; (test-numeric-syntax \"-inf.0+inf.0i\" (make-rectangular -inf.0 +inf.0) \"-Inf.0+Inf.0i\")\"\n ATMOSPHERE: (74664..74665) \"\n\"\n ATMOSPHERE: (74665..74754) \";; (test-numeric-syntax \"-inf.0-inf.0i\" (make-rectangular -inf.0 -inf.0) \"-Inf.0-Inf.0i\")\"\n ATMOSPHERE: (74754..74755) \"\n\"\n ATMOSPHERE: (74755..74844) \";; (test-numeric-syntax \"+inf.0-inf.0i\" (make-rectangular +inf.0 -inf.0) \"+Inf.0-Inf.0i\")\"\n ATMOSPHERE: (74844..74845) \"\n\"\n ATMOSPHERE: (74845..74883) \";; ;; Complex numbers (polar notation)\"\n ATMOSPHERE: (74883..74884) \"\n\"\n ATMOSPHERE: (74884..74938) \";; ;; Need to account for imprecision in write output.\"\n ATMOSPHERE: (74938..74939) \"\n\"\n ATMOSPHERE: (74939..75049) \";; ;;(test-numeric-syntax \"1@2\" -0.416146836547142+0.909297426825682i \"-0.416146836547142+0.909297426825682i\")\"\n ATMOSPHERE: (75049..75050) \"\n\"\n ATMOSPHERE: (75050..75069) \";; ;; Base prefixes\"\n ATMOSPHERE: (75069..75070) \"\n\"\n ATMOSPHERE: (75070..75109) \";; (test-numeric-syntax \"#x11\" 17 \"17\")\"\n ATMOSPHERE: (75109..75110) \"\n\"\n ATMOSPHERE: (75110..75149) \";; (test-numeric-syntax \"#X11\" 17 \"17\")\"\n ATMOSPHERE: (75149..75150) \"\n\"\n ATMOSPHERE: (75150..75189) \";; (test-numeric-syntax \"#d11\" 11 \"11\")\"\n ATMOSPHERE: (75189..75190) \"\n\"\n ATMOSPHERE: (75190..75229) \";; (test-numeric-syntax \"#D11\" 11 \"11\")\"\n ATMOSPHERE: (75229..75230) \"\n\"\n ATMOSPHERE: (75230..75267) \";; (test-numeric-syntax \"#o11\" 9 \"9\")\"\n ATMOSPHERE: (75267..75268) \"\n\"\n ATMOSPHERE: (75268..75305) \";; (test-numeric-syntax \"#O11\" 9 \"9\")\"\n ATMOSPHERE: (75305..75306) \"\n\"\n ATMOSPHERE: (75306..75343) \";; (test-numeric-syntax \"#b11\" 3 \"3\")\"\n ATMOSPHERE: (75343..75344) \"\n\"\n ATMOSPHERE: (75344..75381) \";; (test-numeric-syntax \"#B11\" 3 \"3\")\"\n ATMOSPHERE: (75381..75382) \"\n\"\n ATMOSPHERE: (75382..75418) \";; (test-numeric-syntax \"#o7\" 7 \"7\")\"\n ATMOSPHERE: (75418..75419) \"\n\"\n ATMOSPHERE: (75419..75457) \";; (test-numeric-syntax \"#xa\" 10 \"10\")\"\n ATMOSPHERE: (75457..75458) \"\n\"\n ATMOSPHERE: (75458..75496) \";; (test-numeric-syntax \"#xA\" 10 \"10\")\"\n ATMOSPHERE: (75496..75497) \"\n\"\n ATMOSPHERE: (75497..75535) \";; (test-numeric-syntax \"#xf\" 15 \"15\")\"\n ATMOSPHERE: (75535..75536) \"\n\"\n ATMOSPHERE: (75536..75578) \";; (test-numeric-syntax \"#x-10\" -16 \"-16\")\"\n ATMOSPHERE: (75578..75579) \"\n\"\n ATMOSPHERE: (75579..75621) \";; (test-numeric-syntax \"#d-10\" -10 \"-10\")\"\n ATMOSPHERE: (75621..75622) \"\n\"\n ATMOSPHERE: (75622..75662) \";; (test-numeric-syntax \"#o-10\" -8 \"-8\")\"\n ATMOSPHERE: (75662..75663) \"\n\"\n ATMOSPHERE: (75663..75703) \";; (test-numeric-syntax \"#b-10\" -2 \"-2\")\"\n ATMOSPHERE: (75703..75704) \"\n\"\n ATMOSPHERE: (75704..75733) \";; ;; Combination of prefixes\"\n ATMOSPHERE: (75733..75734) \"\n\"\n ATMOSPHERE: (75734..75775) \";; (test-numeric-syntax \"#e#x10\" 16 \"16\")\"\n ATMOSPHERE: (75775..75776) \"\n\"\n ATMOSPHERE: (75776..75827) \";; (test-numeric-syntax \"#i#x10\" 16.0 \"16.0\" \"16.\")\"\n ATMOSPHERE: (75827..75828) \"\n\"\n ATMOSPHERE: (75828..75879) \";; (test-numeric-syntax \"#x#i10\" 16.0 \"16.0\" \"16.\")\"\n ATMOSPHERE: (75879..75880) \"\n\"\n ATMOSPHERE: (75880..75931) \";; (test-numeric-syntax \"#i#x1/10\" 0.0625 \"0.0625\")\"\n ATMOSPHERE: (75931..75932) \"\n\"\n ATMOSPHERE: (75932..75983) \";; (test-numeric-syntax \"#x#i1/10\" 0.0625 \"0.0625\")\"\n ATMOSPHERE: (75983..75984) \"\n\"\n ATMOSPHERE: (75984..76037) \";; ;; (Attempted) decimal notation with base prefixes\"\n ATMOSPHERE: (76037..76038) \"\n\"\n ATMOSPHERE: (76038..76084) \";; (test-numeric-syntax \"#d1.\" 1.0 \"1.0\" \"1.\")\"\n ATMOSPHERE: (76084..76085) \"\n\"\n ATMOSPHERE: (76085..76142) \";; (test-numeric-syntax \"#d.1\" 0.1 \"0.1\" \".1\" \"100.0e-3\")\"\n ATMOSPHERE: (76142..76143) \"\n\"\n ATMOSPHERE: (76143..76185) \";; (test-numeric-syntax \"#x1e2\" 482 \"482\")\"\n ATMOSPHERE: (76185..76186) \"\n\"\n ATMOSPHERE: (76186..76239) \";; (test-numeric-syntax \"#d1e2\" 100.0 \"100.0\" \"100.\")\"\n ATMOSPHERE: (76239..76240) \"\n\"\n ATMOSPHERE: (76240..76269) \";; ;; Fractions with prefixes\"\n ATMOSPHERE: (76269..76270) \"\n\"\n ATMOSPHERE: (76270..76309) \";; (test-numeric-syntax \"#x10/2\" 8 \"8\")\"\n ATMOSPHERE: (76309..76310) \"\n\"\n ATMOSPHERE: (76310..76359) \";; (test-numeric-syntax \"#x11/2\" (/ 17 2) \"17/2\")\"\n ATMOSPHERE: (76359..76360) \"\n\"\n ATMOSPHERE: (76360..76409) \";; (test-numeric-syntax \"#d11/2\" (/ 11 2) \"11/2\")\"\n ATMOSPHERE: (76409..76410) \"\n\"\n ATMOSPHERE: (76410..76457) \";; (test-numeric-syntax \"#o11/2\" (/ 9 2) \"9/2\")\"\n ATMOSPHERE: (76457..76458) \"\n\"\n ATMOSPHERE: (76458..76506) \";; (test-numeric-syntax \"#b11/10\" (/ 3 2) \"3/2\")\"\n ATMOSPHERE: (76506..76507) \"\n\"\n ATMOSPHERE: (76507..76542) \";; ;; Complex numbers with prefixes\"\n ATMOSPHERE: (76542..76543) \"\n\"\n ATMOSPHERE: (76543..76614) \";; ;;(test-numeric-syntax \"#x10+11i\" (make-rectangular 16 17) \"16+17i\")\"\n ATMOSPHERE: (76614..76615) \"\n\"\n ATMOSPHERE: (76615..76699) \";; (test-numeric-syntax \"#d1.0+1.0i\" (make-rectangular 1.0 1.0) \"1.0+1.0i\" \"1.+1.i\")\"\n ATMOSPHERE: (76699..76700) \"\n\"\n ATMOSPHERE: (76700..76769) \";; (test-numeric-syntax \"#d10+11i\" (make-rectangular 10 11) \"10+11i\")\"\n ATMOSPHERE: (76769..76770) \"\n\"\n ATMOSPHERE: (76770..76837) \";; ;;(test-numeric-syntax \"#o10+11i\" (make-rectangular 8 9) \"8+9i\")\"\n ATMOSPHERE: (76837..76838) \"\n\"\n ATMOSPHERE: (76838..76905) \";; ;;(test-numeric-syntax \"#b10+11i\" (make-rectangular 2 3) \"2+3i\")\"\n ATMOSPHERE: (76905..76906) \"\n\"\n ATMOSPHERE: (76906..76981) \";; ;;(test-numeric-syntax \"#e1.0+1.0i\" (make-rectangular 1 1) \"1+1i\" \"1+i\")\"\n ATMOSPHERE: (76981..76982) \"\n\"\n ATMOSPHERE: (76982..77068) \";; ;;(test-numeric-syntax \"#i1.0+1.0i\" (make-rectangular 1.0 1.0) \"1.0+1.0i\" \"1.+1.i\")\"\n ATMOSPHERE: (77068..77070) \"\n\n\"\n ATMOSPHERE: (77070..77102) \";; (define-syntax test-precision\"\n ATMOSPHERE: (77102..77103) \"\n\"\n ATMOSPHERE: (77103..77124) \";; (syntax-rules ()\"\n ATMOSPHERE: (77124..77125) \"\n\"\n ATMOSPHERE: (77125..77162) \";; ((test-round-trip str alt ...)\"\n ATMOSPHERE: (77162..77163) \"\n\"\n ATMOSPHERE: (77163..77202) \";; (let* ((n (string->number str))\"\n ATMOSPHERE: (77202..77203) \"\n\"\n ATMOSPHERE: (77203..77243) \";; (str2 (number->string n))\"\n ATMOSPHERE: (77243..77244) \"\n\"\n ATMOSPHERE: (77244..77288) \";; (accepted (list str alt ...))\"\n ATMOSPHERE: (77288..77289) \"\n\"\n ATMOSPHERE: (77289..77332) \";; (ls (member str2 accepted)))\"\n ATMOSPHERE: (77332..77333) \"\n\"\n ATMOSPHERE: (77333..77391) \";; (test-assert (string-append \"(member? \" str2 \" \"\"\n ATMOSPHERE: (77391..77392) \"\n\"\n ATMOSPHERE: (77392..77463) \";; (let ((out (open-output-string)))\"\n ATMOSPHERE: (77463..77464) \"\n\"\n ATMOSPHERE: (77464..77524) \";; (write accepted out)\"\n ATMOSPHERE: (77524..77525) \"\n\"\n ATMOSPHERE: (77525..77589) \";; (get-output-string out))\"\n ATMOSPHERE: (77589..77590) \"\n\"\n ATMOSPHERE: (77590..77632) \";; \")\")\"\n ATMOSPHERE: (77632..77633) \"\n\"\n ATMOSPHERE: (77633..77656) \";; (pair? ls))\"\n ATMOSPHERE: (77656..77657) \"\n\"\n ATMOSPHERE: (77657..77683) \";; (when (pair? ls)\"\n ATMOSPHERE: (77683..77684) \"\n\"\n ATMOSPHERE: (77684..77751) \";; (test-assert (string-append \"(eqv?: \" str \" \" str2 \")\")\"\n ATMOSPHERE: (77751..77752) \"\n\"\n ATMOSPHERE: (77752..77806) \";; (eqv? n (string->number (car ls)))))))))\"\n ATMOSPHERE: (77806..77808) \"\n\n\"\n ATMOSPHERE: (77808..77863) \";; (test-precision \"-1.7976931348623157e+308\" \"-inf.0\")\"\n ATMOSPHERE: (77863..77864) \"\n\"\n ATMOSPHERE: (77864..77949) \";; (test-precision \"4.940656458412465e-324\" \"4.94065645841247e-324\" \"5.0e-324\" \"0.0\")\"\n ATMOSPHERE: (77949..77950) \"\n\"\n ATMOSPHERE: (77950..78035) \";; (test-precision \"9.881312916824931e-324\" \"9.88131291682493e-324\" \"1.0e-323\" \"0.0\")\"\n ATMOSPHERE: (78035..78036) \"\n\"\n ATMOSPHERE: (78036..78096) \";; (test-precision \"1.48219693752374e-323\" \"1.5e-323\" \"0.0\")\"\n ATMOSPHERE: (78096..78097) \"\n\"\n ATMOSPHERE: (78097..78182) \";; (test-precision \"1.976262583364986e-323\" \"1.97626258336499e-323\" \"2.0e-323\" \"0.0\")\"\n ATMOSPHERE: (78182..78183) \"\n\"\n ATMOSPHERE: (78183..78268) \";; (test-precision \"2.470328229206233e-323\" \"2.47032822920623e-323\" \"2.5e-323\" \"0.0\")\"\n ATMOSPHERE: (78268..78269) \"\n\"\n ATMOSPHERE: (78269..78354) \";; (test-precision \"2.420921664622108e-322\" \"2.42092166462211e-322\" \"2.4e-322\" \"0.0\")\"\n ATMOSPHERE: (78354..78355) \"\n\"\n ATMOSPHERE: (78355..78442) \";; (test-precision \"2.420921664622108e-320\" \"2.42092166462211e-320\" \"2.421e-320\" \"0.0\")\"\n ATMOSPHERE: (78442..78443) \"\n\"\n ATMOSPHERE: (78443..78495) \";; (test-precision \"1.4489974452386991\" \"1.4489975\")\"\n ATMOSPHERE: (78495..78496) \"\n\"\n ATMOSPHERE: (78496..78572) \";; (test-precision \"0.14285714285714282\" \"0.14285714285714288\" \"0.14285715\")\"\n ATMOSPHERE: (78572..78573) \"\n\"\n ATMOSPHERE: (78573..78627) \";; (test-precision \"1.7976931348623157e+308\" \"+inf.0\")\"\n ATMOSPHERE: (78627..78629) \"\n\n\"\n FORM: (78629..78639)\n OPEN_PAREN: (78629..78630) \"(\"\n SYMBOL: (78630..78638)\n IDENTIFIER: (78630..78638) \"test-end\"\n CLOSE_PAREN: (78638..78639) \")\"\n ATMOSPHERE: (78639..78641) \"\n\n\"\n FORM: (78641..78651)\n OPEN_PAREN: (78641..78642) \"(\"\n SYMBOL: (78642..78650)\n IDENTIFIER: (78642..78650) \"test-end\"\n CLOSE_PAREN: (78650..78651) \")\"\n ATMOSPHERE: (78651..78653) \"\n\n\"\n FORM: (78653..78689)\n OPEN_PAREN: (78653..78654) \"(\"\n SYMBOL: (78654..78664)\n IDENTIFIER: (78654..78664) \"test-begin\"\n ATMOSPHERE: (78664..78665) \" \"\n CONSTANT: (78665..78688)\n STRING: (78665..78688) \"\"6.14 System interface\"\"\n CLOSE_PAREN: (78688..78689) \")\"\n ATMOSPHERE: (78689..78691) \"\n\n\"\n ATMOSPHERE: (78691..78718) \";; ;; 6.14 System interface\"\n ATMOSPHERE: (78718..78720) \"\n\n\"\n ATMOSPHERE: (78720..78797) \";; ;; (test \"/usr/local/bin:/usr/bin:/bin\" (get-environment-variable \"PATH\"))\"\n ATMOSPHERE: (78797..78799) \"\n\n\"\n ATMOSPHERE: (78799..78855) \";; (test #t (string? (get-environment-variable \"PATH\")))\"\n ATMOSPHERE: (78855..78857) \"\n\n\"\n ATMOSPHERE: (78857..78933) \";; ;; (test '((\"USER\" . \"root\") (\"HOME\" . \"/\")) (get-environment-variables))\"\n ATMOSPHERE: (78933..78935) \"\n\n\"\n ATMOSPHERE: (78935..78978) \";; (let ((env (get-environment-variables)))\"\n ATMOSPHERE: (78978..78979) \"\n\"\n ATMOSPHERE: (78979..79005) \";; (define (env-pair? x)\"\n ATMOSPHERE: (79005..79006) \"\n\"\n ATMOSPHERE: (79006..79065) \";; (and (pair? x) (string? (car x)) (string? (cdr x))))\"\n ATMOSPHERE: (79065..79066) \"\n\"\n ATMOSPHERE: (79066..79093) \";; (define (all? pred ls)\"\n ATMOSPHERE: (79093..79094) \"\n\"\n ATMOSPHERE: (79094..79160) \";; (or (null? ls) (and (pred (car ls)) (all? pred (cdr ls)))))\"\n ATMOSPHERE: (79160..79161) \"\n\"\n ATMOSPHERE: (79161..79187) \";; (test #t (list? env))\"\n ATMOSPHERE: (79187..79188) \"\n\"\n ATMOSPHERE: (79188..79224) \";; (test #t (all? env-pair? env)))\"\n ATMOSPHERE: (79224..79226) \"\n\n\"\n ATMOSPHERE: (79226..79261) \";; (test #t (list? (command-line)))\"\n ATMOSPHERE: (79261..79263) \"\n\n\"\n ATMOSPHERE: (79263..79300) \";; (test #t (real? (current-second)))\"\n ATMOSPHERE: (79300..79301) \"\n\"\n ATMOSPHERE: (79301..79341) \";; (test #t (inexact? (current-second)))\"\n ATMOSPHERE: (79341..79342) \"\n\"\n ATMOSPHERE: (79342..79379) \";; (test #t (exact? (current-jiffy)))\"\n ATMOSPHERE: (79379..79380) \"\n\"\n ATMOSPHERE: (79380..79422) \";; (test #t (exact? (jiffies-per-second)))\"\n ATMOSPHERE: (79422..79424) \"\n\n\"\n ATMOSPHERE: (79424..79455) \";; (test #t (list? (features)))\"\n ATMOSPHERE: (79455..79456) \"\n\"\n ATMOSPHERE: (79456..79501) \";; (test #t (and (memq 'r7rs (features)) #t))\"\n ATMOSPHERE: (79501..79503) \"\n\n\"\n ATMOSPHERE: (79503..79534) \";; (test #t (file-exists? \".\"))\"\n ATMOSPHERE: (79534..79535) \"\n\"\n ATMOSPHERE: (79535..79579) \";; (test #f (file-exists? \" no such file \"))\"\n ATMOSPHERE: (79579..79581) \"\n\n\"\n ATMOSPHERE: (79581..79605) \";; (test #t (file-error?\"\n ATMOSPHERE: (79605..79606) \"\n\"\n ATMOSPHERE: (79606..79642) \";; (guard (exn (else exn))\"\n ATMOSPHERE: (79642..79643) \"\n\"\n ATMOSPHERE: (79643..79691) \";; (delete-file \" no such file \"))))\"\n ATMOSPHERE: (79691..79693) \"\n\n\"\n FORM: (79693..79703)\n OPEN_PAREN: (79693..79694) \"(\"\n SYMBOL: (79694..79702)\n IDENTIFIER: (79694..79702) \"test-end\"\n CLOSE_PAREN: (79702..79703) \")\"\n ATMOSPHERE: (79703..79705) \"\n\n\"\n FORM: (79705..79715)\n OPEN_PAREN: (79705..79706) \"(\"\n SYMBOL: (79706..79714)\n IDENTIFIER: (79706..79714) \"test-end\"\n CLOSE_PAREN: (79714..79715) \")\"\n ATMOSPHERE: (79715..79716) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_collatz.scm.json b/test/Feersum.Tests/_snapshots/Parse_collatz.scm.json
deleted file mode 100644
index a6028f5..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_collatz.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..638)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..43) \"\n\n\"\n ATMOSPHERE: (43..64) \";; Modululs remainder\"\n ATMOSPHERE: (64..65) \"\n\"\n ATMOSPHERE: (65..67) \";;\"\n ATMOSPHERE: (67..68) \"\n\"\n ATMOSPHERE: (68..107) \";; Returns the modulus remainder of n/d\"\n ATMOSPHERE: (107..108) \"\n\"\n FORM: (108..177)\n OPEN_PAREN: (108..109) \"(\"\n SYMBOL: (109..115)\n IDENTIFIER: (109..115) \"define\"\n ATMOSPHERE: (115..116) \" \"\n FORM: (116..125)\n OPEN_PAREN: (116..117) \"(\"\n SYMBOL: (117..120)\n IDENTIFIER: (117..120) \"mod\"\n ATMOSPHERE: (120..121) \" \"\n SYMBOL: (121..122)\n IDENTIFIER: (121..122) \"n\"\n ATMOSPHERE: (122..123) \" \"\n SYMBOL: (123..124)\n IDENTIFIER: (123..124) \"d\"\n CLOSE_PAREN: (124..125) \")\"\n ATMOSPHERE: (125..130) \"\n \"\n FORM: (130..176)\n OPEN_PAREN: (130..131) \"(\"\n SYMBOL: (131..133)\n IDENTIFIER: (131..133) \"if\"\n ATMOSPHERE: (133..134) \" \"\n FORM: (134..141)\n OPEN_PAREN: (134..135) \"(\"\n SYMBOL: (135..136)\n IDENTIFIER: (135..136) \"<\"\n ATMOSPHERE: (136..137) \" \"\n SYMBOL: (137..138)\n IDENTIFIER: (137..138) \"n\"\n ATMOSPHERE: (138..139) \" \"\n SYMBOL: (139..140)\n IDENTIFIER: (139..140) \"d\"\n CLOSE_PAREN: (140..141) \")\"\n ATMOSPHERE: (141..150) \"\n \"\n SYMBOL: (150..151)\n IDENTIFIER: (150..151) \"n\"\n ATMOSPHERE: (151..160) \"\n \"\n FORM: (160..175)\n OPEN_PAREN: (160..161) \"(\"\n SYMBOL: (161..164)\n IDENTIFIER: (161..164) \"mod\"\n ATMOSPHERE: (164..165) \" \"\n FORM: (165..172)\n OPEN_PAREN: (165..166) \"(\"\n SYMBOL: (166..167)\n IDENTIFIER: (166..167) \"-\"\n ATMOSPHERE: (167..168) \" \"\n SYMBOL: (168..169)\n IDENTIFIER: (168..169) \"n\"\n ATMOSPHERE: (169..170) \" \"\n SYMBOL: (170..171)\n IDENTIFIER: (170..171) \"d\"\n CLOSE_PAREN: (171..172) \")\"\n ATMOSPHERE: (172..173) \" \"\n SYMBOL: (173..174)\n IDENTIFIER: (173..174) \"d\"\n CLOSE_PAREN: (174..175) \")\"\n CLOSE_PAREN: (175..176) \")\"\n CLOSE_PAREN: (176..177) \")\"\n ATMOSPHERE: (177..179) \"\n\n\"\n ATMOSPHERE: (179..233) \";; Find how long a given number takes to converge on 1\"\n ATMOSPHERE: (233..234) \"\n\"\n FORM: (234..514)\n OPEN_PAREN: (234..235) \"(\"\n SYMBOL: (235..241)\n IDENTIFIER: (235..241) \"define\"\n ATMOSPHERE: (241..242) \" \"\n FORM: (242..253)\n OPEN_PAREN: (242..243) \"(\"\n SYMBOL: (243..250)\n IDENTIFIER: (243..250) \"collatz\"\n ATMOSPHERE: (250..251) \" \"\n SYMBOL: (251..252)\n IDENTIFIER: (251..252) \"x\"\n CLOSE_PAREN: (252..253) \")\"\n ATMOSPHERE: (253..258) \"\n \"\n FORM: (258..486)\n OPEN_PAREN: (258..259) \"(\"\n SYMBOL: (259..265)\n IDENTIFIER: (259..265) \"define\"\n ATMOSPHERE: (265..266) \" \"\n FORM: (266..292)\n OPEN_PAREN: (266..267) \"(\"\n SYMBOL: (267..283)\n IDENTIFIER: (267..283) \"collatz-internal\"\n ATMOSPHERE: (283..284) \" \"\n SYMBOL: (284..285)\n IDENTIFIER: (284..285) \"x\"\n ATMOSPHERE: (285..286) \" \"\n SYMBOL: (286..291)\n IDENTIFIER: (286..291) \"steps\"\n CLOSE_PAREN: (291..292) \")\"\n ATMOSPHERE: (292..301) \"\n \"\n FORM: (301..485)\n OPEN_PAREN: (301..302) \"(\"\n SYMBOL: (302..304)\n IDENTIFIER: (302..304) \"if\"\n ATMOSPHERE: (304..305) \" \"\n FORM: (305..312)\n OPEN_PAREN: (305..306) \"(\"\n SYMBOL: (306..307)\n IDENTIFIER: (306..307) \"=\"\n ATMOSPHERE: (307..308) \" \"\n SYMBOL: (308..309)\n IDENTIFIER: (308..309) \"x\"\n ATMOSPHERE: (309..310) \" \"\n CONSTANT: (310..311)\n NUMBER: (310..311) \"1\"\n CLOSE_PAREN: (311..312) \")\"\n ATMOSPHERE: (312..325) \"\n \"\n SYMBOL: (325..330)\n IDENTIFIER: (325..330) \"steps\"\n ATMOSPHERE: (330..343) \"\n \"\n FORM: (343..484)\n OPEN_PAREN: (343..344) \"(\"\n SYMBOL: (344..360)\n IDENTIFIER: (344..360) \"collatz-internal\"\n ATMOSPHERE: (360..377) \"\n \"\n FORM: (377..459)\n OPEN_PAREN: (377..378) \"(\"\n SYMBOL: (378..380)\n IDENTIFIER: (378..380) \"if\"\n ATMOSPHERE: (380..381) \" \"\n FORM: (381..396)\n OPEN_PAREN: (381..382) \"(\"\n SYMBOL: (382..383)\n IDENTIFIER: (382..383) \"=\"\n ATMOSPHERE: (383..384) \" \"\n FORM: (384..393)\n OPEN_PAREN: (384..385) \"(\"\n SYMBOL: (385..388)\n IDENTIFIER: (385..388) \"mod\"\n ATMOSPHERE: (388..389) \" \"\n SYMBOL: (389..390)\n IDENTIFIER: (389..390) \"x\"\n ATMOSPHERE: (390..391) \" \"\n CONSTANT: (391..392)\n NUMBER: (391..392) \"2\"\n CLOSE_PAREN: (392..393) \")\"\n ATMOSPHERE: (393..394) \" \"\n CONSTANT: (394..395)\n NUMBER: (394..395) \"0\"\n CLOSE_PAREN: (395..396) \")\"\n ATMOSPHERE: (396..417) \"\n \"\n FORM: (417..424)\n OPEN_PAREN: (417..418) \"(\"\n SYMBOL: (418..419)\n IDENTIFIER: (418..419) \"/\"\n ATMOSPHERE: (419..420) \" \"\n SYMBOL: (420..421)\n IDENTIFIER: (420..421) \"x\"\n ATMOSPHERE: (421..422) \" \"\n CONSTANT: (422..423)\n NUMBER: (422..423) \"2\"\n CLOSE_PAREN: (423..424) \")\"\n ATMOSPHERE: (424..445) \"\n \"\n FORM: (445..458)\n OPEN_PAREN: (445..446) \"(\"\n SYMBOL: (446..447)\n IDENTIFIER: (446..447) \"+\"\n ATMOSPHERE: (447..448) \" \"\n FORM: (448..455)\n OPEN_PAREN: (448..449) \"(\"\n SYMBOL: (449..450)\n IDENTIFIER: (449..450) \"*\"\n ATMOSPHERE: (450..451) \" \"\n SYMBOL: (451..452)\n IDENTIFIER: (451..452) \"x\"\n ATMOSPHERE: (452..453) \" \"\n CONSTANT: (453..454)\n NUMBER: (453..454) \"3\"\n CLOSE_PAREN: (454..455) \")\"\n ATMOSPHERE: (455..456) \" \"\n CONSTANT: (456..457)\n NUMBER: (456..457) \"1\"\n CLOSE_PAREN: (457..458) \")\"\n CLOSE_PAREN: (458..459) \")\"\n ATMOSPHERE: (459..472) \"\n \"\n FORM: (472..483)\n OPEN_PAREN: (472..473) \"(\"\n SYMBOL: (473..474)\n IDENTIFIER: (473..474) \"+\"\n ATMOSPHERE: (474..475) \" \"\n SYMBOL: (475..480)\n IDENTIFIER: (475..480) \"steps\"\n ATMOSPHERE: (480..481) \" \"\n CONSTANT: (481..482)\n NUMBER: (481..482) \"1\"\n CLOSE_PAREN: (482..483) \")\"\n CLOSE_PAREN: (483..484) \")\"\n CLOSE_PAREN: (484..485) \")\"\n CLOSE_PAREN: (485..486) \")\"\n ATMOSPHERE: (486..491) \"\n \"\n FORM: (491..513)\n OPEN_PAREN: (491..492) \"(\"\n SYMBOL: (492..508)\n IDENTIFIER: (492..508) \"collatz-internal\"\n ATMOSPHERE: (508..509) \" \"\n SYMBOL: (509..510)\n IDENTIFIER: (509..510) \"x\"\n ATMOSPHERE: (510..511) \" \"\n CONSTANT: (511..512)\n NUMBER: (511..512) \"0\"\n CLOSE_PAREN: (512..513) \")\"\n CLOSE_PAREN: (513..514) \")\"\n ATMOSPHERE: (514..516) \"\n\n\"\n FORM: (516..538)\n OPEN_PAREN: (516..517) \"(\"\n SYMBOL: (517..524)\n IDENTIFIER: (517..524) \"display\"\n ATMOSPHERE: (524..525) \" \"\n FORM: (525..537)\n OPEN_PAREN: (525..526) \"(\"\n SYMBOL: (526..533)\n IDENTIFIER: (526..533) \"collatz\"\n ATMOSPHERE: (533..534) \" \"\n CONSTANT: (534..536)\n NUMBER: (534..536) \"17\"\n CLOSE_PAREN: (536..537) \")\"\n CLOSE_PAREN: (537..538) \")\"\n FORM: (538..547)\n OPEN_PAREN: (538..539) \"(\"\n SYMBOL: (539..546)\n IDENTIFIER: (539..546) \"newline\"\n CLOSE_PAREN: (546..547) \")\"\n ATMOSPHERE: (547..548) \" \"\n ATMOSPHERE: (548..556) \";; => 12\"\n ATMOSPHERE: (556..557) \"\n\"\n FORM: (557..578)\n OPEN_PAREN: (557..558) \"(\"\n SYMBOL: (558..565)\n IDENTIFIER: (558..565) \"display\"\n ATMOSPHERE: (565..566) \" \"\n FORM: (566..577)\n OPEN_PAREN: (566..567) \"(\"\n SYMBOL: (567..574)\n IDENTIFIER: (567..574) \"collatz\"\n ATMOSPHERE: (574..575) \" \"\n CONSTANT: (575..576)\n NUMBER: (575..576) \"1\"\n CLOSE_PAREN: (576..577) \")\"\n CLOSE_PAREN: (577..578) \")\"\n FORM: (578..587)\n OPEN_PAREN: (578..579) \"(\"\n SYMBOL: (579..586)\n IDENTIFIER: (579..586) \"newline\"\n CLOSE_PAREN: (586..587) \")\"\n ATMOSPHERE: (587..589) \" \"\n ATMOSPHERE: (589..596) \";; => 0\"\n ATMOSPHERE: (596..597) \"\n\"\n FORM: (597..618)\n OPEN_PAREN: (597..598) \"(\"\n SYMBOL: (598..605)\n IDENTIFIER: (598..605) \"display\"\n ATMOSPHERE: (605..606) \" \"\n FORM: (606..617)\n OPEN_PAREN: (606..607) \"(\"\n SYMBOL: (607..614)\n IDENTIFIER: (607..614) \"collatz\"\n ATMOSPHERE: (614..615) \" \"\n CONSTANT: (615..616)\n NUMBER: (615..616) \"9\"\n CLOSE_PAREN: (616..617) \")\"\n CLOSE_PAREN: (617..618) \")\"\n FORM: (618..627)\n OPEN_PAREN: (618..619) \"(\"\n SYMBOL: (619..626)\n IDENTIFIER: (619..626) \"newline\"\n CLOSE_PAREN: (626..627) \")\"\n ATMOSPHERE: (627..629) \" \"\n ATMOSPHERE: (629..637) \";; => 19\"\n ATMOSPHERE: (637..638) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_comment.scm.json b/test/Feersum.Tests/_snapshots/Parse_comment.scm.json
deleted file mode 100644
index 155eb92..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_comment.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..163)\n ATMOSPHERE: (0..9) \"; this is\"\n ATMOSPHERE: (9..10) \"\n\"\n ATMOSPHERE: (10..33) \";; just a collection of\"\n ATMOSPHERE: (33..34) \"\n\"\n ATMOSPHERE: (34..47) \";;;; comments\"\n ATMOSPHERE: (47..48) \"\n\"\n ATMOSPHERE: (48..53) \"; and\"\n ATMOSPHERE: (53..54) \"\n\"\n ATMOSPHERE: (54..61) \";things\"\n ATMOSPHERE: (61..62) \"\n\"\n ATMOSPHERE: (62..75) \"; ; ; ; ; ; ;\"\n ATMOSPHERE: (75..76) \"\n\"\n CONSTANT: (76..77)\n NUMBER: (76..77) \"0\"\n ATMOSPHERE: (77..78) \"\n\"\n ATMOSPHERE: (78..147) \";; ^^ that one keeps the compiler happy. A file without statements is\"\n ATMOSPHERE: (147..148) \"\n\"\n ATMOSPHERE: (148..163) \";; \"undefined\".\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_comments_extended.scm.json b/test/Feersum.Tests/_snapshots/Parse_comments_extended.scm.json
deleted file mode 100644
index dc4741d..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_comments_extended.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..534)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..43) \"\n\n\"\n ATMOSPHERE: (43..121) \"#|\n The FACT procedure computes the factorial of a non-negative integer.\n|#\"\n ATMOSPHERE: (121..122) \"\n\"\n FORM: (122..507)\n OPEN_PAREN: (122..123) \"(\"\n SYMBOL: (123..129)\n IDENTIFIER: (123..129) \"define\"\n ATMOSPHERE: (129..130) \" \"\n SYMBOL: (130..134)\n IDENTIFIER: (130..134) \"fact\"\n ATMOSPHERE: (134..139) \"\n \"\n FORM: (139..506)\n OPEN_PAREN: (139..140) \"(\"\n SYMBOL: (140..146)\n IDENTIFIER: (140..146) \"lambda\"\n ATMOSPHERE: (146..147) \" \"\n FORM: (147..150)\n OPEN_PAREN: (147..148) \"(\"\n SYMBOL: (148..149)\n IDENTIFIER: (148..149) \"n\"\n CLOSE_PAREN: (149..150) \")\"\n ATMOSPHERE: (150..159) \"\n \"\n ATMOSPHERE: (159..216) \"; ; ~~~ Remove these when builtins are properly supported\"\n ATMOSPHERE: (216..225) \"\n \"\n ATMOSPHERE: (225..243) \"; (define (- x) x)\"\n ATMOSPHERE: (243..252) \"\n \"\n ATMOSPHERE: (252..270) \"; (define (= y) y)\"\n ATMOSPHERE: (270..279) \"\n \"\n ATMOSPHERE: (279..297) \"; (define (* z) z)\"\n ATMOSPHERE: (297..306) \"\n \"\n ATMOSPHERE: (306..356) \"; ; ~~~~ Remove when scopes are supported properly\"\n ATMOSPHERE: (356..365) \"\n \"\n ATMOSPHERE: (365..386) \"; (define (fact x) x)\"\n ATMOSPHERE: (386..396) \"\n\n \"\n FORM: (396..505)\n OPEN_PAREN: (396..397) \"(\"\n SYMBOL: (397..399)\n IDENTIFIER: (397..399) \"if\"\n ATMOSPHERE: (399..400) \" \"\n FORM: (400..407)\n OPEN_PAREN: (400..401) \"(\"\n SYMBOL: (401..402)\n IDENTIFIER: (401..402) \"=\"\n ATMOSPHERE: (402..403) \" \"\n SYMBOL: (403..404)\n IDENTIFIER: (403..404) \"n\"\n ATMOSPHERE: (404..405) \" \"\n CONSTANT: (405..406)\n NUMBER: (405..406) \"0\"\n CLOSE_PAREN: (406..407) \")\"\n ATMOSPHERE: (407..420) \"\n \"\n ATMOSPHERE: (420..442)\n ATMOSPHERE: (420..422) \"#;\"\n FORM: (422..429)\n OPEN_PAREN: (422..423) \"(\"\n SYMBOL: (423..424)\n IDENTIFIER: (423..424) \"=\"\n ATMOSPHERE: (424..425) \" \"\n SYMBOL: (425..426)\n IDENTIFIER: (425..426) \"n\"\n ATMOSPHERE: (426..427) \" \"\n CONSTANT: (427..428)\n NUMBER: (427..428) \"1\"\n CLOSE_PAREN: (428..429) \")\"\n ATMOSPHERE: (429..442) \"\n \"\n CONSTANT: (442..443)\n NUMBER: (442..443) \"1\"\n ATMOSPHERE: (443..451) \" \"\n ATMOSPHERE: (451..471) \";Base case: return 1\"\n ATMOSPHERE: (471..484) \"\n \"\n FORM: (484..504)\n OPEN_PAREN: (484..485) \"(\"\n SYMBOL: (485..486)\n IDENTIFIER: (485..486) \"*\"\n ATMOSPHERE: (486..487) \" \"\n SYMBOL: (487..488)\n IDENTIFIER: (487..488) \"n\"\n ATMOSPHERE: (488..489) \" \"\n FORM: (489..503)\n OPEN_PAREN: (489..490) \"(\"\n SYMBOL: (490..494)\n IDENTIFIER: (490..494) \"fact\"\n ATMOSPHERE: (494..495) \" \"\n FORM: (495..502)\n OPEN_PAREN: (495..496) \"(\"\n SYMBOL: (496..497)\n IDENTIFIER: (496..497) \"-\"\n ATMOSPHERE: (497..498) \" \"\n SYMBOL: (498..499)\n IDENTIFIER: (498..499) \"n\"\n ATMOSPHERE: (499..500) \" \"\n CONSTANT: (500..501)\n NUMBER: (500..501) \"1\"\n CLOSE_PAREN: (501..502) \")\"\n CLOSE_PAREN: (502..503) \")\"\n CLOSE_PAREN: (503..504) \")\"\n CLOSE_PAREN: (504..505) \")\"\n CLOSE_PAREN: (505..506) \")\"\n CLOSE_PAREN: (506..507) \")\"\n ATMOSPHERE: (507..509) \"\n\n\"\n FORM: (509..527)\n OPEN_PAREN: (509..510) \"(\"\n SYMBOL: (510..517)\n IDENTIFIER: (510..517) \"display\"\n ATMOSPHERE: (517..518) \" \"\n FORM: (518..526)\n OPEN_PAREN: (518..519) \"(\"\n SYMBOL: (519..523)\n IDENTIFIER: (519..523) \"fact\"\n ATMOSPHERE: (523..524) \" \"\n CONSTANT: (524..525)\n NUMBER: (524..525) \"3\"\n CLOSE_PAREN: (525..526) \")\"\n CLOSE_PAREN: (526..527) \")\"\n ATMOSPHERE: (527..528) \" \"\n ATMOSPHERE: (528..534) \"; -> 6\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_conditions.scm.json b/test/Feersum.Tests/_snapshots/Parse_conditions.scm.json
deleted file mode 100644
index cc1c728..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_conditions.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..707)\n FORM: (0..211)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n ATMOSPHERE: (26..93) \";; FIXME: we shouldn't _need_ to import this, but we have no way of\"\n ATMOSPHERE: (93..98) \"\n \"\n ATMOSPHERE: (98..162) \";; exporting or re-exporting macro definitions currently.\"\n ATMOSPHERE: (162..167) \"\n \"\n FORM: (167..191)\n OPEN_PAREN: (167..168) \"(\"\n SYMBOL: (168..175)\n IDENTIFIER: (168..175) \"feersum\"\n ATMOSPHERE: (175..176) \" \"\n SYMBOL: (176..183)\n IDENTIFIER: (176..183) \"builtin\"\n ATMOSPHERE: (183..184) \" \"\n SYMBOL: (184..190)\n IDENTIFIER: (184..190) \"macros\"\n CLOSE_PAREN: (190..191) \")\"\n ATMOSPHERE: (191..196) \"\n \"\n FORM: (196..210)\n OPEN_PAREN: (196..197) \"(\"\n SYMBOL: (197..203)\n IDENTIFIER: (197..203) \"scheme\"\n ATMOSPHERE: (203..204) \" \"\n SYMBOL: (204..209)\n IDENTIFIER: (204..209) \"write\"\n CLOSE_PAREN: (209..210) \")\"\n CLOSE_PAREN: (210..211) \")\"\n ATMOSPHERE: (211..212) \"\n\"\n FORM: (212..318)\n OPEN_PAREN: (212..213) \"(\"\n SYMBOL: (213..220)\n IDENTIFIER: (213..220) \"display\"\n ATMOSPHERE: (220..221) \" \"\n FORM: (221..317)\n OPEN_PAREN: (221..222) \"(\"\n SYMBOL: (222..226)\n IDENTIFIER: (222..226) \"list\"\n ATMOSPHERE: (226..231) \"\n \"\n FORM: (231..246)\n OPEN_PAREN: (231..232) \"(\"\n SYMBOL: (232..236)\n IDENTIFIER: (232..236) \"when\"\n ATMOSPHERE: (236..237) \" \"\n CONSTANT: (237..239)\n BOOLEAN: (237..239) \"#t\"\n ATMOSPHERE: (239..240) \" \"\n CONSTANT: (240..241)\n NUMBER: (240..241) \"1\"\n ATMOSPHERE: (241..242) \" \"\n CONSTANT: (242..243)\n NUMBER: (242..243) \"2\"\n ATMOSPHERE: (243..244) \" \"\n CONSTANT: (244..245)\n NUMBER: (244..245) \"3\"\n CLOSE_PAREN: (245..246) \")\"\n ATMOSPHERE: (246..251) \"\n \"\n FORM: (251..266)\n OPEN_PAREN: (251..252) \"(\"\n SYMBOL: (252..256)\n IDENTIFIER: (252..256) \"when\"\n ATMOSPHERE: (256..257) \" \"\n CONSTANT: (257..259)\n BOOLEAN: (257..259) \"#f\"\n ATMOSPHERE: (259..260) \" \"\n QUOTED_DATUM: (260..265)\n QUOTE: (260..261) \"'\"\n SYMBOL: (261..265)\n IDENTIFIER: (261..265) \"fail\"\n CLOSE_PAREN: (265..266) \")\"\n ATMOSPHERE: (266..271) \"\n \"\n FORM: (271..288)\n OPEN_PAREN: (271..272) \"(\"\n SYMBOL: (272..278)\n IDENTIFIER: (272..278) \"unless\"\n ATMOSPHERE: (278..279) \" \"\n CONSTANT: (279..281)\n BOOLEAN: (279..281) \"#f\"\n ATMOSPHERE: (281..282) \" \"\n QUOTED_DATUM: (282..287)\n QUOTE: (282..283) \"'\"\n SYMBOL: (283..287)\n IDENTIFIER: (283..287) \"yarp\"\n CLOSE_PAREN: (287..288) \")\"\n ATMOSPHERE: (288..293) \"\n \"\n FORM: (293..311)\n OPEN_PAREN: (293..294) \"(\"\n SYMBOL: (294..300)\n IDENTIFIER: (294..300) \"unless\"\n ATMOSPHERE: (300..301) \" \"\n CONSTANT: (301..306)\n BOOLEAN: (301..306) \"#true\"\n ATMOSPHERE: (306..307) \" \"\n CONSTANT: (307..310)\n NUMBER: (307..310) \"123\"\n CLOSE_PAREN: (310..311) \")\"\n ATMOSPHERE: (311..316) \"\n \"\n CLOSE_PAREN: (316..317) \")\"\n CLOSE_PAREN: (317..318) \")\"\n ATMOSPHERE: (318..320) \"\n\n\"\n FORM: (320..366)\n OPEN_PAREN: (320..321) \"(\"\n SYMBOL: (321..328)\n IDENTIFIER: (321..328) \"display\"\n ATMOSPHERE: (328..333) \"\n \"\n FORM: (333..365)\n OPEN_PAREN: (333..334) \"(\"\n SYMBOL: (334..336)\n IDENTIFIER: (334..336) \"if\"\n ATMOSPHERE: (336..337) \" \"\n CONSTANT: (337..339)\n BOOLEAN: (337..339) \"#t\"\n ATMOSPHERE: (339..348) \"\n \"\n CONSTANT: (348..351)\n NUMBER: (348..351) \"255\"\n ATMOSPHERE: (351..360) \"\n \"\n CONSTANT: (360..364)\n NUMBER: (360..364) \"-123\"\n CLOSE_PAREN: (364..365) \")\"\n CLOSE_PAREN: (365..366) \")\"\n ATMOSPHERE: (366..368) \"\n\n\"\n ATMOSPHERE: (368..421) \";; Hello isn't #f, therefore we should return \"world\"\"\n ATMOSPHERE: (421..422) \"\n\"\n FORM: (422..475)\n OPEN_PAREN: (422..423) \"(\"\n SYMBOL: (423..430)\n IDENTIFIER: (423..430) \"display\"\n ATMOSPHERE: (430..435) \"\n \"\n FORM: (435..474)\n OPEN_PAREN: (435..436) \"(\"\n SYMBOL: (436..438)\n IDENTIFIER: (436..438) \"if\"\n ATMOSPHERE: (438..439) \" \"\n CONSTANT: (439..446)\n STRING: (439..446) \"\"hello\"\"\n ATMOSPHERE: (446..455) \"\n \"\n CONSTANT: (455..462)\n STRING: (455..462) \"\"world\"\"\n ATMOSPHERE: (462..471) \"\n \"\n CONSTANT: (471..473)\n NUMBER: (471..473) \"-2\"\n CLOSE_PAREN: (473..474) \")\"\n CLOSE_PAREN: (474..475) \")\"\n ATMOSPHERE: (475..485) \"\n \n\"\n FORM: (485..565)\n OPEN_PAREN: (485..486) \"(\"\n SYMBOL: (486..493)\n IDENTIFIER: (486..493) \"display\"\n ATMOSPHERE: (493..498) \"\n \"\n FORM: (498..564)\n OPEN_PAREN: (498..499) \"(\"\n SYMBOL: (499..503)\n IDENTIFIER: (499..503) \"cond\"\n ATMOSPHERE: (503..512) \"\n \"\n FORM: (512..523)\n OPEN_PAREN: (512..513) \"(\"\n CONSTANT: (513..515)\n BOOLEAN: (513..515) \"#f\"\n ATMOSPHERE: (515..516) \" \"\n QUOTED_DATUM: (516..522)\n QUOTE: (516..517) \"'\"\n SYMBOL: (517..522)\n IDENTIFIER: (517..522) \"false\"\n CLOSE_PAREN: (522..523) \")\"\n ATMOSPHERE: (523..532) \"\n \"\n FORM: (532..542)\n OPEN_PAREN: (532..533) \"(\"\n CONSTANT: (533..535)\n BOOLEAN: (533..535) \"#t\"\n ATMOSPHERE: (535..536) \" \"\n QUOTED_DATUM: (536..541)\n QUOTE: (536..537) \"'\"\n SYMBOL: (537..541)\n IDENTIFIER: (537..541) \"true\"\n CLOSE_PAREN: (541..542) \")\"\n ATMOSPHERE: (542..551) \"\n \"\n FORM: (551..563)\n OPEN_PAREN: (551..552) \"(\"\n SYMBOL: (552..556)\n IDENTIFIER: (552..556) \"else\"\n ATMOSPHERE: (556..557) \" \"\n QUOTED_DATUM: (557..562)\n QUOTE: (557..558) \"'\"\n SYMBOL: (558..562)\n IDENTIFIER: (558..562) \"fail\"\n CLOSE_PAREN: (562..563) \")\"\n CLOSE_PAREN: (563..564) \")\"\n CLOSE_PAREN: (564..565) \")\"\n ATMOSPHERE: (565..566) \"\n\"\n FORM: (566..625)\n OPEN_PAREN: (566..567) \"(\"\n SYMBOL: (567..574)\n IDENTIFIER: (567..574) \"display\"\n ATMOSPHERE: (574..579) \"\n \"\n FORM: (579..624)\n OPEN_PAREN: (579..580) \"(\"\n SYMBOL: (580..584)\n IDENTIFIER: (580..584) \"cond\"\n ATMOSPHERE: (584..593) \"\n \"\n FORM: (593..604)\n OPEN_PAREN: (593..594) \"(\"\n CONSTANT: (594..596)\n BOOLEAN: (594..596) \"#f\"\n ATMOSPHERE: (596..597) \" \"\n QUOTED_DATUM: (597..603)\n QUOTE: (597..598) \"'\"\n SYMBOL: (598..603)\n IDENTIFIER: (598..603) \"false\"\n CLOSE_PAREN: (603..604) \")\"\n ATMOSPHERE: (604..613) \"\n \"\n FORM: (613..623)\n OPEN_PAREN: (613..614) \"(\"\n CONSTANT: (614..616)\n BOOLEAN: (614..616) \"#t\"\n ATMOSPHERE: (616..617) \" \"\n QUOTED_DATUM: (617..622)\n QUOTE: (617..618) \"'\"\n SYMBOL: (618..622)\n IDENTIFIER: (618..622) \"true\"\n CLOSE_PAREN: (622..623) \")\"\n CLOSE_PAREN: (623..624) \")\"\n CLOSE_PAREN: (624..625) \")\"\n ATMOSPHERE: (625..626) \"\n\"\n FORM: (626..665)\n OPEN_PAREN: (626..627) \"(\"\n SYMBOL: (627..634)\n IDENTIFIER: (627..634) \"display\"\n ATMOSPHERE: (634..639) \"\n \"\n FORM: (639..664)\n OPEN_PAREN: (639..640) \"(\"\n SYMBOL: (640..644)\n IDENTIFIER: (640..644) \"cond\"\n ATMOSPHERE: (644..653) \"\n \"\n FORM: (653..663)\n OPEN_PAREN: (653..654) \"(\"\n SYMBOL: (654..658)\n IDENTIFIER: (654..658) \"else\"\n ATMOSPHERE: (658..659) \" \"\n QUOTED_DATUM: (659..662)\n QUOTE: (659..660) \"'\"\n SYMBOL: (660..662)\n IDENTIFIER: (660..662) \"ok\"\n CLOSE_PAREN: (662..663) \")\"\n CLOSE_PAREN: (663..664) \")\"\n CLOSE_PAREN: (664..665) \")\"\n ATMOSPHERE: (665..666) \"\n\"\n FORM: (666..706)\n OPEN_PAREN: (666..667) \"(\"\n SYMBOL: (667..674)\n IDENTIFIER: (667..674) \"display\"\n ATMOSPHERE: (674..679) \"\n \"\n FORM: (679..705)\n OPEN_PAREN: (679..680) \"(\"\n SYMBOL: (680..684)\n IDENTIFIER: (680..684) \"cond\"\n ATMOSPHERE: (684..694) \" \n \"\n FORM: (694..704)\n OPEN_PAREN: (694..695) \"(\"\n CONSTANT: (695..697)\n BOOLEAN: (695..697) \"#f\"\n ATMOSPHERE: (697..698) \" \"\n QUOTED_DATUM: (698..703)\n QUOTE: (698..699) \"'\"\n SYMBOL: (699..703)\n IDENTIFIER: (699..703) \"fail\"\n CLOSE_PAREN: (703..704) \")\"\n CLOSE_PAREN: (704..705) \")\"\n CLOSE_PAREN: (705..706) \")\"\n ATMOSPHERE: (706..707) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_cxr.scm.json b/test/Feersum.Tests/_snapshots/Parse_cxr.scm.json
deleted file mode 100644
index 8d4a395..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_cxr.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..265)\n FORM: (0..58)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..20)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..19)\n IDENTIFIER: (16..19) \"cxr\"\n CLOSE_PAREN: (19..20) \")\"\n ATMOSPHERE: (20..25) \"\n \"\n FORM: (25..38)\n OPEN_PAREN: (25..26) \"(\"\n SYMBOL: (26..32)\n IDENTIFIER: (26..32) \"scheme\"\n ATMOSPHERE: (32..33) \" \"\n SYMBOL: (33..37)\n IDENTIFIER: (33..37) \"base\"\n CLOSE_PAREN: (37..38) \")\"\n ATMOSPHERE: (38..43) \"\n \"\n FORM: (43..57)\n OPEN_PAREN: (43..44) \"(\"\n SYMBOL: (44..50)\n IDENTIFIER: (44..50) \"scheme\"\n ATMOSPHERE: (50..51) \" \"\n SYMBOL: (51..56)\n IDENTIFIER: (51..56) \"write\"\n CLOSE_PAREN: (56..57) \")\"\n CLOSE_PAREN: (57..58) \")\"\n ATMOSPHERE: (58..60) \"\n\n\"\n FORM: (60..119)\n OPEN_PAREN: (60..61) \"(\"\n SYMBOL: (61..67)\n IDENTIFIER: (61..67) \"define\"\n ATMOSPHERE: (67..68) \" \"\n SYMBOL: (68..77)\n IDENTIFIER: (68..77) \"test-list\"\n ATMOSPHERE: (77..78) \" \"\n QUOTED_DATUM: (78..118)\n QUOTE: (78..79) \"'\"\n FORM: (79..118)\n OPEN_PAREN: (79..80) \"(\"\n ATMOSPHERE: (80..85) \"\n \"\n FORM: (85..92)\n OPEN_PAREN: (85..86) \"(\"\n CONSTANT: (86..87)\n NUMBER: (86..87) \"1\"\n ATMOSPHERE: (87..88) \" \"\n CONSTANT: (88..89)\n NUMBER: (88..89) \"2\"\n ATMOSPHERE: (89..90) \" \"\n CONSTANT: (90..91)\n NUMBER: (90..91) \"3\"\n CLOSE_PAREN: (91..92) \")\"\n ATMOSPHERE: (92..97) \"\n \"\n FORM: (97..104)\n OPEN_PAREN: (97..98) \"(\"\n CONSTANT: (98..99)\n NUMBER: (98..99) \"4\"\n ATMOSPHERE: (99..100) \" \"\n CONSTANT: (100..101)\n NUMBER: (100..101) \"5\"\n ATMOSPHERE: (101..102) \" \"\n CONSTANT: (102..103)\n NUMBER: (102..103) \"6\"\n CLOSE_PAREN: (103..104) \")\"\n ATMOSPHERE: (104..109) \"\n \"\n FORM: (109..116)\n OPEN_PAREN: (109..110) \"(\"\n CONSTANT: (110..111)\n NUMBER: (110..111) \"7\"\n ATMOSPHERE: (111..112) \" \"\n CONSTANT: (112..113)\n NUMBER: (112..113) \"8\"\n ATMOSPHERE: (113..114) \" \"\n CONSTANT: (114..115)\n NUMBER: (114..115) \"9\"\n CLOSE_PAREN: (115..116) \")\"\n ATMOSPHERE: (116..117) \"\n\"\n CLOSE_PAREN: (117..118) \")\"\n CLOSE_PAREN: (118..119) \")\"\n ATMOSPHERE: (119..121) \"\n\n\"\n FORM: (121..147)\n OPEN_PAREN: (121..122) \"(\"\n SYMBOL: (122..129)\n IDENTIFIER: (122..129) \"display\"\n ATMOSPHERE: (129..130) \" \"\n FORM: (130..146)\n OPEN_PAREN: (130..131) \"(\"\n SYMBOL: (131..135)\n IDENTIFIER: (131..135) \"caar\"\n ATMOSPHERE: (135..136) \" \"\n SYMBOL: (136..145)\n IDENTIFIER: (136..145) \"test-list\"\n CLOSE_PAREN: (145..146) \")\"\n CLOSE_PAREN: (146..147) \")\"\n FORM: (147..156)\n OPEN_PAREN: (147..148) \"(\"\n SYMBOL: (148..155)\n IDENTIFIER: (148..155) \"newline\"\n CLOSE_PAREN: (155..156) \")\"\n ATMOSPHERE: (156..157) \"\n\"\n FORM: (157..183)\n OPEN_PAREN: (157..158) \"(\"\n SYMBOL: (158..165)\n IDENTIFIER: (158..165) \"display\"\n ATMOSPHERE: (165..166) \" \"\n FORM: (166..182)\n OPEN_PAREN: (166..167) \"(\"\n SYMBOL: (167..171)\n IDENTIFIER: (167..171) \"cadr\"\n ATMOSPHERE: (171..172) \" \"\n SYMBOL: (172..181)\n IDENTIFIER: (172..181) \"test-list\"\n CLOSE_PAREN: (181..182) \")\"\n CLOSE_PAREN: (182..183) \")\"\n FORM: (183..192)\n OPEN_PAREN: (183..184) \"(\"\n SYMBOL: (184..191)\n IDENTIFIER: (184..191) \"newline\"\n CLOSE_PAREN: (191..192) \")\"\n ATMOSPHERE: (192..193) \"\n\"\n FORM: (193..219)\n OPEN_PAREN: (193..194) \"(\"\n SYMBOL: (194..201)\n IDENTIFIER: (194..201) \"display\"\n ATMOSPHERE: (201..202) \" \"\n FORM: (202..218)\n OPEN_PAREN: (202..203) \"(\"\n SYMBOL: (203..207)\n IDENTIFIER: (203..207) \"cdar\"\n ATMOSPHERE: (207..208) \" \"\n SYMBOL: (208..217)\n IDENTIFIER: (208..217) \"test-list\"\n CLOSE_PAREN: (217..218) \")\"\n CLOSE_PAREN: (218..219) \")\"\n FORM: (219..228)\n OPEN_PAREN: (219..220) \"(\"\n SYMBOL: (220..227)\n IDENTIFIER: (220..227) \"newline\"\n CLOSE_PAREN: (227..228) \")\"\n ATMOSPHERE: (228..229) \"\n\"\n FORM: (229..255)\n OPEN_PAREN: (229..230) \"(\"\n SYMBOL: (230..237)\n IDENTIFIER: (230..237) \"display\"\n ATMOSPHERE: (237..238) \" \"\n FORM: (238..254)\n OPEN_PAREN: (238..239) \"(\"\n SYMBOL: (239..243)\n IDENTIFIER: (239..243) \"cddr\"\n ATMOSPHERE: (243..244) \" \"\n SYMBOL: (244..253)\n IDENTIFIER: (244..253) \"test-list\"\n CLOSE_PAREN: (253..254) \")\"\n CLOSE_PAREN: (254..255) \")\"\n FORM: (255..264)\n OPEN_PAREN: (255..256) \"(\"\n SYMBOL: (256..263)\n IDENTIFIER: (256..263) \"newline\"\n CLOSE_PAREN: (263..264) \")\"\n ATMOSPHERE: (264..265) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_define-and-assign.scm.json b/test/Feersum.Tests/_snapshots/Parse_define-and-assign.scm.json
deleted file mode 100644
index 4e028d9..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_define-and-assign.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..115)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..54)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..49)\n IDENTIFIER: (43..49) \"define\"\n ATMOSPHERE: (49..50) \" \"\n SYMBOL: (50..51)\n IDENTIFIER: (50..51) \"x\"\n ATMOSPHERE: (51..52) \" \"\n CONSTANT: (52..53)\n NUMBER: (52..53) \"2\"\n CLOSE_PAREN: (53..54) \")\"\n ATMOSPHERE: (54..55) \"\n\"\n FORM: (55..72)\n OPEN_PAREN: (55..56) \"(\"\n SYMBOL: (56..63)\n IDENTIFIER: (56..63) \"display\"\n ATMOSPHERE: (63..64) \" \"\n FORM: (64..71)\n OPEN_PAREN: (64..65) \"(\"\n SYMBOL: (65..66)\n IDENTIFIER: (65..66) \"+\"\n ATMOSPHERE: (66..67) \" \"\n SYMBOL: (67..68)\n IDENTIFIER: (67..68) \"x\"\n ATMOSPHERE: (68..69) \" \"\n CONSTANT: (69..70)\n NUMBER: (69..70) \"1\"\n CLOSE_PAREN: (70..71) \")\"\n CLOSE_PAREN: (71..72) \")\"\n ATMOSPHERE: (72..73) \" \"\n ATMOSPHERE: (73..79) \"; => 3\"\n ATMOSPHERE: (79..80) \"\n\"\n FORM: (80..90)\n OPEN_PAREN: (80..81) \"(\"\n SYMBOL: (81..85)\n IDENTIFIER: (81..85) \"set!\"\n ATMOSPHERE: (85..86) \" \"\n SYMBOL: (86..87)\n IDENTIFIER: (86..87) \"x\"\n ATMOSPHERE: (87..88) \" \"\n CONSTANT: (88..89)\n NUMBER: (88..89) \"4\"\n CLOSE_PAREN: (89..90) \")\"\n ATMOSPHERE: (90..91) \"\n\"\n FORM: (91..108)\n OPEN_PAREN: (91..92) \"(\"\n SYMBOL: (92..99)\n IDENTIFIER: (92..99) \"display\"\n ATMOSPHERE: (99..100) \" \"\n FORM: (100..107)\n OPEN_PAREN: (100..101) \"(\"\n SYMBOL: (101..102)\n IDENTIFIER: (101..102) \"+\"\n ATMOSPHERE: (102..103) \" \"\n SYMBOL: (103..104)\n IDENTIFIER: (103..104) \"x\"\n ATMOSPHERE: (104..105) \" \"\n CONSTANT: (105..106)\n NUMBER: (105..106) \"1\"\n CLOSE_PAREN: (106..107) \")\"\n CLOSE_PAREN: (107..108) \")\"\n ATMOSPHERE: (108..109) \" \"\n ATMOSPHERE: (109..115) \"; => 5\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_display-utils.sld.json b/test/Feersum.Tests/_snapshots/Parse_display-utils.sld.json
deleted file mode 100644
index d641900..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_display-utils.sld.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..253)\n FORM: (0..252)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..15)\n IDENTIFIER: (1..15) \"define-library\"\n ATMOSPHERE: (15..16) \" \"\n FORM: (16..38)\n OPEN_PAREN: (16..17) \"(\"\n SYMBOL: (17..24)\n IDENTIFIER: (17..24) \"example\"\n ATMOSPHERE: (24..25) \" \"\n SYMBOL: (25..37)\n IDENTIFIER: (25..37) \"displayutils\"\n CLOSE_PAREN: (37..38) \")\"\n ATMOSPHERE: (38..40) \"\n\t\"\n FORM: (40..60)\n OPEN_PAREN: (40..41) \"(\"\n SYMBOL: (41..47)\n IDENTIFIER: (41..47) \"export\"\n ATMOSPHERE: (47..48) \" \"\n SYMBOL: (48..59)\n IDENTIFIER: (48..59) \"display-all\"\n CLOSE_PAREN: (59..60) \")\"\n ATMOSPHERE: (60..62) \"\n\t\"\n FORM: (62..101)\n OPEN_PAREN: (62..63) \"(\"\n SYMBOL: (63..69)\n IDENTIFIER: (63..69) \"import\"\n ATMOSPHERE: (69..70) \" \"\n FORM: (70..83)\n OPEN_PAREN: (70..71) \"(\"\n SYMBOL: (71..77)\n IDENTIFIER: (71..77) \"scheme\"\n ATMOSPHERE: (77..78) \" \"\n SYMBOL: (78..82)\n IDENTIFIER: (78..82) \"base\"\n CLOSE_PAREN: (82..83) \")\"\n ATMOSPHERE: (83..86) \"\n\t\t\"\n FORM: (86..100)\n OPEN_PAREN: (86..87) \"(\"\n SYMBOL: (87..93)\n IDENTIFIER: (87..93) \"scheme\"\n ATMOSPHERE: (93..94) \" \"\n SYMBOL: (94..99)\n IDENTIFIER: (94..99) \"write\"\n CLOSE_PAREN: (99..100) \")\"\n CLOSE_PAREN: (100..101) \")\"\n ATMOSPHERE: (101..103) \"\n\t\"\n FORM: (103..251)\n OPEN_PAREN: (103..104) \"(\"\n SYMBOL: (104..109)\n IDENTIFIER: (104..109) \"begin\"\n ATMOSPHERE: (109..112) \"\n\t\t\"\n FORM: (112..250)\n OPEN_PAREN: (112..113) \"(\"\n SYMBOL: (113..119)\n IDENTIFIER: (113..119) \"define\"\n ATMOSPHERE: (119..120) \" \"\n FORM: (120..140)\n OPEN_PAREN: (120..121) \"(\"\n SYMBOL: (121..132)\n IDENTIFIER: (121..132) \"display-all\"\n ATMOSPHERE: (132..133) \" \"\n SYMBOL: (133..139)\n IDENTIFIER: (133..139) \"things\"\n CLOSE_PAREN: (139..140) \")\"\n ATMOSPHERE: (140..144) \"\n\t\t\t\"\n FORM: (144..249)\n OPEN_PAREN: (144..145) \"(\"\n SYMBOL: (145..147)\n IDENTIFIER: (145..147) \"if\"\n ATMOSPHERE: (147..148) \" \"\n FORM: (148..162)\n OPEN_PAREN: (148..149) \"(\"\n SYMBOL: (149..154)\n IDENTIFIER: (149..154) \"null?\"\n ATMOSPHERE: (154..155) \" \"\n SYMBOL: (155..161)\n IDENTIFIER: (155..161) \"things\"\n CLOSE_PAREN: (161..162) \")\"\n ATMOSPHERE: (162..167) \"\n\t\t\t\t\"\n FORM: (167..176)\n OPEN_PAREN: (167..168) \"(\"\n SYMBOL: (168..175)\n IDENTIFIER: (168..175) \"newline\"\n CLOSE_PAREN: (175..176) \")\"\n ATMOSPHERE: (176..181) \"\n\t\t\t\t\"\n FORM: (181..248)\n OPEN_PAREN: (181..182) \"(\"\n SYMBOL: (182..187)\n IDENTIFIER: (182..187) \"begin\"\n ATMOSPHERE: (187..193) \"\n\t\t\t\t\t\"\n FORM: (193..215)\n OPEN_PAREN: (193..194) \"(\"\n SYMBOL: (194..201)\n IDENTIFIER: (194..201) \"display\"\n ATMOSPHERE: (201..202) \" \"\n FORM: (202..214)\n OPEN_PAREN: (202..203) \"(\"\n SYMBOL: (203..206)\n IDENTIFIER: (203..206) \"car\"\n ATMOSPHERE: (206..207) \" \"\n SYMBOL: (207..213)\n IDENTIFIER: (207..213) \"things\"\n CLOSE_PAREN: (213..214) \")\"\n CLOSE_PAREN: (214..215) \")\"\n ATMOSPHERE: (215..221) \"\n\t\t\t\t\t\"\n FORM: (221..247)\n OPEN_PAREN: (221..222) \"(\"\n SYMBOL: (222..233)\n IDENTIFIER: (222..233) \"display-all\"\n ATMOSPHERE: (233..234) \" \"\n FORM: (234..246)\n OPEN_PAREN: (234..235) \"(\"\n SYMBOL: (235..238)\n IDENTIFIER: (235..238) \"cdr\"\n ATMOSPHERE: (238..239) \" \"\n SYMBOL: (239..245)\n IDENTIFIER: (239..245) \"things\"\n CLOSE_PAREN: (245..246) \")\"\n CLOSE_PAREN: (246..247) \")\"\n CLOSE_PAREN: (247..248) \")\"\n CLOSE_PAREN: (248..249) \")\"\n CLOSE_PAREN: (249..250) \")\"\n CLOSE_PAREN: (250..251) \")\"\n CLOSE_PAREN: (251..252) \")\"\n ATMOSPHERE: (252..253) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_display.scm.json b/test/Feersum.Tests/_snapshots/Parse_display.scm.json
deleted file mode 100644
index 3c05433..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_display.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..255)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..54)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..50)\n IDENTIFIER: (43..50) \"display\"\n ATMOSPHERE: (50..51) \" \"\n CONSTANT: (51..53)\n STRING: (51..53) \"\"\"\"\n CLOSE_PAREN: (53..54) \")\"\n FORM: (54..63)\n OPEN_PAREN: (54..55) \"(\"\n SYMBOL: (55..62)\n IDENTIFIER: (55..62) \"newline\"\n CLOSE_PAREN: (62..63) \")\"\n ATMOSPHERE: (63..64) \" \"\n ATMOSPHERE: (64..69) \"; => \"\n ATMOSPHERE: (69..70) \"\n\"\n FORM: (70..82)\n OPEN_PAREN: (70..71) \"(\"\n SYMBOL: (71..78)\n IDENTIFIER: (71..78) \"display\"\n ATMOSPHERE: (78..79) \" \"\n FORM: (79..81)\n OPEN_PAREN: (79..80) \"(\"\n CLOSE_PAREN: (80..81) \")\"\n CLOSE_PAREN: (81..82) \")\"\n FORM: (82..91)\n OPEN_PAREN: (82..83) \"(\"\n SYMBOL: (83..90)\n IDENTIFIER: (83..90) \"newline\"\n CLOSE_PAREN: (90..91) \")\"\n ATMOSPHERE: (91..92) \" \"\n ATMOSPHERE: (92..96) \"; =>\"\n ATMOSPHERE: (96..97) \"\n\"\n FORM: (97..110)\n OPEN_PAREN: (97..98) \"(\"\n SYMBOL: (98..105)\n IDENTIFIER: (98..105) \"display\"\n ATMOSPHERE: (105..106) \" \"\n CONSTANT: (106..109)\n NUMBER: (106..109) \"123\"\n CLOSE_PAREN: (109..110) \")\"\n FORM: (110..119)\n OPEN_PAREN: (110..111) \"(\"\n SYMBOL: (111..118)\n IDENTIFIER: (111..118) \"newline\"\n CLOSE_PAREN: (118..119) \")\"\n ATMOSPHERE: (119..120) \" \"\n ATMOSPHERE: (120..128) \"; => 123\"\n ATMOSPHERE: (128..129) \"\n\"\n FORM: (129..152)\n OPEN_PAREN: (129..130) \"(\"\n SYMBOL: (130..137)\n IDENTIFIER: (130..137) \"display\"\n ATMOSPHERE: (137..138) \" \"\n CONSTANT: (138..151)\n STRING: (138..151) \"\"Hello World\"\"\n CLOSE_PAREN: (151..152) \")\"\n FORM: (152..165)\n OPEN_PAREN: (152..153) \"(\"\n SYMBOL: (153..160)\n IDENTIFIER: (153..160) \"display\"\n ATMOSPHERE: (160..161) \" \"\n CONSTANT: (161..164)\n CHARACTER: (161..164) \"#\\!\"\n CLOSE_PAREN: (164..165) \")\"\n FORM: (165..174)\n OPEN_PAREN: (165..166) \"(\"\n SYMBOL: (166..173)\n IDENTIFIER: (166..173) \"newline\"\n CLOSE_PAREN: (173..174) \")\"\n ATMOSPHERE: (174..175) \" \"\n ATMOSPHERE: (175..192) \"; => Hello World!\"\n ATMOSPHERE: (192..193) \"\n\"\n FORM: (193..240)\n OPEN_PAREN: (193..194) \"(\"\n SYMBOL: (194..201)\n IDENTIFIER: (194..201) \"display\"\n ATMOSPHERE: (201..202) \" \"\n QUOTED_DATUM: (202..239)\n QUOTE: (202..203) \"'\"\n FORM: (203..239)\n OPEN_PAREN: (203..204) \"(\"\n CONSTANT: (204..238)\n STRING: (204..238) \"\"I \\\" need \\v some \\x00; escaping\"\"\n CLOSE_PAREN: (238..239) \")\"\n CLOSE_PAREN: (239..240) \")\"\n FORM: (240..249)\n OPEN_PAREN: (240..241) \"(\"\n SYMBOL: (241..248)\n IDENTIFIER: (241..248) \"newline\"\n CLOSE_PAREN: (248..249) \")\"\n ATMOSPHERE: (249..250) \" \"\n ATMOSPHERE: (250..255) \"; => \"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_dragons.scm.json b/test/Feersum.Tests/_snapshots/Parse_dragons.scm.json
deleted file mode 100644
index 06b57a7..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_dragons.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..1158)\n FORM: (0..1127)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..15)\n IDENTIFIER: (1..15) \"define-library\"\n ATMOSPHERE: (15..16) \" \"\n FORM: (16..24)\n OPEN_PAREN: (16..17) \"(\"\n SYMBOL: (17..23)\n IDENTIFIER: (17..23) \"dragon\"\n CLOSE_PAREN: (23..24) \")\"\n ATMOSPHERE: (24..29) \"\n \"\n FORM: (29..70)\n OPEN_PAREN: (29..30) \"(\"\n SYMBOL: (30..36)\n IDENTIFIER: (30..36) \"import\"\n ATMOSPHERE: (36..37) \" \"\n FORM: (37..50)\n OPEN_PAREN: (37..38) \"(\"\n SYMBOL: (38..44)\n IDENTIFIER: (38..44) \"scheme\"\n ATMOSPHERE: (44..45) \" \"\n SYMBOL: (45..49)\n IDENTIFIER: (45..49) \"base\"\n CLOSE_PAREN: (49..50) \")\"\n ATMOSPHERE: (50..55) \"\n \"\n FORM: (55..69)\n OPEN_PAREN: (55..56) \"(\"\n SYMBOL: (56..62)\n IDENTIFIER: (56..62) \"scheme\"\n ATMOSPHERE: (62..63) \" \"\n SYMBOL: (63..68)\n IDENTIFIER: (63..68) \"write\"\n CLOSE_PAREN: (68..69) \")\"\n CLOSE_PAREN: (69..70) \")\"\n ATMOSPHERE: (70..75) \"\n \"\n FORM: (75..90)\n OPEN_PAREN: (75..76) \"(\"\n SYMBOL: (76..82)\n IDENTIFIER: (76..82) \"export\"\n ATMOSPHERE: (82..83) \" \"\n SYMBOL: (83..89)\n IDENTIFIER: (83..89) \"dragon\"\n CLOSE_PAREN: (89..90) \")\"\n ATMOSPHERE: (90..95) \"\n \"\n FORM: (95..1126)\n OPEN_PAREN: (95..96) \"(\"\n SYMBOL: (96..101)\n IDENTIFIER: (96..101) \"begin\"\n ATMOSPHERE: (101..111) \"\n\n \"\n FORM: (111..295)\n OPEN_PAREN: (111..112) \"(\"\n SYMBOL: (112..118)\n IDENTIFIER: (112..118) \"define\"\n ATMOSPHERE: (118..119) \" \"\n FORM: (119..136)\n OPEN_PAREN: (119..120) \"(\"\n SYMBOL: (120..127)\n IDENTIFIER: (120..127) \"command\"\n ATMOSPHERE: (127..128) \" \"\n SYMBOL: (128..131)\n IDENTIFIER: (128..131) \"cmd\"\n ATMOSPHERE: (131..132) \" \"\n SYMBOL: (132..135)\n IDENTIFIER: (132..135) \"arg\"\n CLOSE_PAREN: (135..136) \")\"\n ATMOSPHERE: (136..149) \"\n \"\n FORM: (149..168)\n OPEN_PAREN: (149..150) \"(\"\n SYMBOL: (150..157)\n IDENTIFIER: (150..157) \"display\"\n ATMOSPHERE: (157..158) \" \"\n CONSTANT: (158..167)\n STRING: (158..167) \"\"turtle.\"\"\n CLOSE_PAREN: (167..168) \")\"\n ATMOSPHERE: (168..181) \"\n \"\n FORM: (181..194)\n OPEN_PAREN: (181..182) \"(\"\n SYMBOL: (182..189)\n IDENTIFIER: (182..189) \"display\"\n ATMOSPHERE: (189..190) \" \"\n SYMBOL: (190..193)\n IDENTIFIER: (190..193) \"cmd\"\n CLOSE_PAREN: (193..194) \")\"\n ATMOSPHERE: (194..207) \"\n \"\n FORM: (207..220)\n OPEN_PAREN: (207..208) \"(\"\n SYMBOL: (208..215)\n IDENTIFIER: (208..215) \"display\"\n ATMOSPHERE: (215..216) \" \"\n CONSTANT: (216..219)\n STRING: (216..219) \"\"(\"\"\n CLOSE_PAREN: (219..220) \")\"\n ATMOSPHERE: (220..233) \"\n \"\n FORM: (233..246)\n OPEN_PAREN: (233..234) \"(\"\n SYMBOL: (234..241)\n IDENTIFIER: (234..241) \"display\"\n ATMOSPHERE: (241..242) \" \"\n SYMBOL: (242..245)\n IDENTIFIER: (242..245) \"arg\"\n CLOSE_PAREN: (245..246) \")\"\n ATMOSPHERE: (246..259) \"\n \"\n FORM: (259..272)\n OPEN_PAREN: (259..260) \"(\"\n SYMBOL: (260..267)\n IDENTIFIER: (260..267) \"display\"\n ATMOSPHERE: (267..268) \" \"\n CONSTANT: (268..271)\n STRING: (268..271) \"\")\"\"\n CLOSE_PAREN: (271..272) \")\"\n ATMOSPHERE: (272..285) \"\n \"\n FORM: (285..294)\n OPEN_PAREN: (285..286) \"(\"\n SYMBOL: (286..293)\n IDENTIFIER: (286..293) \"newline\"\n CLOSE_PAREN: (293..294) \")\"\n CLOSE_PAREN: (294..295) \")\"\n ATMOSPHERE: (295..305) \"\n\n \"\n FORM: (305..476)\n OPEN_PAREN: (305..306) \"(\"\n SYMBOL: (306..312)\n IDENTIFIER: (306..312) \"define\"\n ATMOSPHERE: (312..313) \" \"\n FORM: (313..319)\n OPEN_PAREN: (313..314) \"(\"\n SYMBOL: (314..318)\n IDENTIFIER: (314..318) \"init\"\n CLOSE_PAREN: (318..319) \")\"\n ATMOSPHERE: (319..332) \"\n \"\n FORM: (332..357)\n OPEN_PAREN: (332..333) \"(\"\n SYMBOL: (333..340)\n IDENTIFIER: (333..340) \"display\"\n ATMOSPHERE: (340..341) \" \"\n CONSTANT: (341..356)\n STRING: (341..356) \"\"import turtle\"\"\n CLOSE_PAREN: (356..357) \")\"\n FORM: (357..366)\n OPEN_PAREN: (357..358) \"(\"\n SYMBOL: (358..365)\n IDENTIFIER: (358..365) \"newline\"\n CLOSE_PAREN: (365..366) \")\"\n ATMOSPHERE: (366..379) \"\n \"\n FORM: (379..398)\n OPEN_PAREN: (379..380) \"(\"\n SYMBOL: (380..387)\n IDENTIFIER: (380..387) \"command\"\n ATMOSPHERE: (387..388) \" \"\n CONSTANT: (388..395)\n STRING: (388..395) \"\"speed\"\"\n ATMOSPHERE: (395..396) \" \"\n CONSTANT: (396..397)\n NUMBER: (396..397) \"0\"\n CLOSE_PAREN: (397..398) \")\"\n ATMOSPHERE: (398..411) \"\n \"\n FORM: (411..437)\n OPEN_PAREN: (411..412) \"(\"\n SYMBOL: (412..419)\n IDENTIFIER: (412..419) \"command\"\n ATMOSPHERE: (419..420) \" \"\n CONSTANT: (420..428)\n STRING: (420..428) \"\"tracer\"\"\n ATMOSPHERE: (428..429) \" \"\n CONSTANT: (429..436)\n STRING: (429..436) \"\"False\"\"\n CLOSE_PAREN: (436..437) \")\"\n ATMOSPHERE: (437..450) \"\n \"\n FORM: (450..475)\n OPEN_PAREN: (450..451) \"(\"\n SYMBOL: (451..458)\n IDENTIFIER: (451..458) \"command\"\n ATMOSPHERE: (458..459) \" \"\n CONSTANT: (459..471)\n STRING: (459..471) \"\"showturtle\"\"\n ATMOSPHERE: (471..472) \" \"\n CONSTANT: (472..474)\n STRING: (472..474) \"\"\"\"\n CLOSE_PAREN: (474..475) \")\"\n CLOSE_PAREN: (475..476) \")\"\n ATMOSPHERE: (476..486) \"\n\n \"\n FORM: (486..537)\n OPEN_PAREN: (486..487) \"(\"\n SYMBOL: (487..493)\n IDENTIFIER: (487..493) \"define\"\n ATMOSPHERE: (493..494) \" \"\n FORM: (494..504)\n OPEN_PAREN: (494..495) \"(\"\n SYMBOL: (495..503)\n IDENTIFIER: (495..503) \"finalise\"\n CLOSE_PAREN: (503..504) \")\"\n ATMOSPHERE: (504..517) \"\n \"\n FORM: (517..536)\n OPEN_PAREN: (517..518) \"(\"\n SYMBOL: (518..525)\n IDENTIFIER: (518..525) \"command\"\n ATMOSPHERE: (525..526) \" \"\n CONSTANT: (526..532)\n STRING: (526..532) \"\"done\"\"\n ATMOSPHERE: (532..533) \" \"\n CONSTANT: (533..535)\n STRING: (533..535) \"\"\"\"\n CLOSE_PAREN: (535..536) \")\"\n CLOSE_PAREN: (536..537) \")\"\n ATMOSPHERE: (537..548) \"\n\n\n \"\n FORM: (548..953)\n OPEN_PAREN: (548..549) \"(\"\n SYMBOL: (549..555)\n IDENTIFIER: (549..555) \"define\"\n ATMOSPHERE: (555..556) \" \"\n FORM: (556..583)\n OPEN_PAREN: (556..557) \"(\"\n SYMBOL: (557..568)\n IDENTIFIER: (557..568) \"dragon-iter\"\n ATMOSPHERE: (568..569) \" \"\n SYMBOL: (569..573)\n IDENTIFIER: (569..573) \"iter\"\n ATMOSPHERE: (573..574) \" \"\n SYMBOL: (574..578)\n IDENTIFIER: (574..578) \"size\"\n ATMOSPHERE: (578..579) \" \"\n SYMBOL: (579..582)\n IDENTIFIER: (579..582) \"dir\"\n CLOSE_PAREN: (582..583) \")\"\n ATMOSPHERE: (583..596) \"\n \"\n FORM: (596..952)\n OPEN_PAREN: (596..597) \"(\"\n SYMBOL: (597..599)\n IDENTIFIER: (597..599) \"if\"\n ATMOSPHERE: (599..600) \" \"\n FORM: (600..610)\n OPEN_PAREN: (600..601) \"(\"\n SYMBOL: (601..602)\n IDENTIFIER: (601..602) \"=\"\n ATMOSPHERE: (602..603) \" \"\n CONSTANT: (603..604)\n NUMBER: (603..604) \"0\"\n ATMOSPHERE: (604..605) \" \"\n SYMBOL: (605..609)\n IDENTIFIER: (605..609) \"iter\"\n CLOSE_PAREN: (609..610) \")\"\n ATMOSPHERE: (610..627) \"\n \"\n FORM: (627..646)\n OPEN_PAREN: (627..628) \"(\"\n SYMBOL: (628..635)\n IDENTIFIER: (628..635) \"command\"\n ATMOSPHERE: (635..636) \" \"\n CONSTANT: (636..640)\n STRING: (636..640) \"\"fd\"\"\n ATMOSPHERE: (640..641) \" \"\n SYMBOL: (641..645)\n IDENTIFIER: (641..645) \"size\"\n CLOSE_PAREN: (645..646) \")\"\n ATMOSPHERE: (646..663) \"\n \"\n FORM: (663..951)\n OPEN_PAREN: (663..664) \"(\"\n SYMBOL: (664..667)\n IDENTIFIER: (664..667) \"let\"\n ATMOSPHERE: (667..668) \" \"\n FORM: (668..796)\n OPEN_PAREN: (668..669) \"(\"\n FORM: (669..686)\n OPEN_PAREN: (669..670) \"(\"\n SYMBOL: (670..674)\n IDENTIFIER: (670..674) \"next\"\n ATMOSPHERE: (674..675) \" \"\n FORM: (675..685)\n OPEN_PAREN: (675..676) \"(\"\n SYMBOL: (676..677)\n IDENTIFIER: (676..677) \"-\"\n ATMOSPHERE: (677..678) \" \"\n SYMBOL: (678..682)\n IDENTIFIER: (678..682) \"iter\"\n ATMOSPHERE: (682..683) \" \"\n CONSTANT: (683..684)\n NUMBER: (683..684) \"1\"\n CLOSE_PAREN: (684..685) \")\"\n CLOSE_PAREN: (685..686) \")\"\n ATMOSPHERE: (686..709) \"\n \"\n FORM: (709..732)\n OPEN_PAREN: (709..710) \"(\"\n SYMBOL: (710..714)\n IDENTIFIER: (710..714) \"size\"\n ATMOSPHERE: (714..715) \" \"\n FORM: (715..731)\n OPEN_PAREN: (715..716) \"(\"\n SYMBOL: (716..717)\n IDENTIFIER: (716..717) \"*\"\n ATMOSPHERE: (717..718) \" \"\n SYMBOL: (718..722)\n IDENTIFIER: (718..722) \"size\"\n ATMOSPHERE: (722..723) \" \"\n CONSTANT: (723..730)\n NUMBER: (723..730) \"0.70711\"\n CLOSE_PAREN: (730..731) \")\"\n CLOSE_PAREN: (731..732) \")\"\n ATMOSPHERE: (732..755) \"\n \"\n FORM: (755..795)\n OPEN_PAREN: (755..756) \"(\"\n SYMBOL: (756..763)\n IDENTIFIER: (756..763) \"turncmd\"\n ATMOSPHERE: (763..764) \" \"\n FORM: (764..794)\n OPEN_PAREN: (764..765) \"(\"\n SYMBOL: (765..767)\n IDENTIFIER: (765..767) \"if\"\n ATMOSPHERE: (767..768) \" \"\n FORM: (768..783)\n OPEN_PAREN: (768..769) \"(\"\n SYMBOL: (769..772)\n IDENTIFIER: (769..772) \"eq?\"\n ATMOSPHERE: (772..773) \" \"\n SYMBOL: (773..776)\n IDENTIFIER: (773..776) \"dir\"\n ATMOSPHERE: (776..777) \" \"\n QUOTED_DATUM: (777..782)\n QUOTE: (777..778) \"'\"\n SYMBOL: (778..782)\n IDENTIFIER: (778..782) \"left\"\n CLOSE_PAREN: (782..783) \")\"\n ATMOSPHERE: (783..784) \" \"\n CONSTANT: (784..788)\n STRING: (784..788) \"\"lt\"\"\n ATMOSPHERE: (788..789) \" \"\n CONSTANT: (789..793)\n STRING: (789..793) \"\"rt\"\"\n CLOSE_PAREN: (793..794) \")\"\n CLOSE_PAREN: (794..795) \")\"\n CLOSE_PAREN: (795..796) \")\"\n ATMOSPHERE: (796..821) \"\n \"\n FORM: (821..850)\n OPEN_PAREN: (821..822) \"(\"\n SYMBOL: (822..833)\n IDENTIFIER: (822..833) \"dragon-iter\"\n ATMOSPHERE: (833..834) \" \"\n SYMBOL: (834..838)\n IDENTIFIER: (834..838) \"next\"\n ATMOSPHERE: (838..839) \" \"\n SYMBOL: (839..843)\n IDENTIFIER: (839..843) \"size\"\n ATMOSPHERE: (843..844) \" \"\n QUOTED_DATUM: (844..849)\n QUOTE: (844..845) \"'\"\n SYMBOL: (845..849)\n IDENTIFIER: (845..849) \"left\"\n CLOSE_PAREN: (849..850) \")\"\n ATMOSPHERE: (850..875) \"\n \"\n FORM: (875..895)\n OPEN_PAREN: (875..876) \"(\"\n SYMBOL: (876..883)\n IDENTIFIER: (876..883) \"command\"\n ATMOSPHERE: (883..884) \" \"\n SYMBOL: (884..891)\n IDENTIFIER: (884..891) \"turncmd\"\n ATMOSPHERE: (891..892) \" \"\n CONSTANT: (892..894)\n NUMBER: (892..894) \"90\"\n CLOSE_PAREN: (894..895) \")\"\n ATMOSPHERE: (895..920) \"\n \"\n FORM: (920..950)\n OPEN_PAREN: (920..921) \"(\"\n SYMBOL: (921..932)\n IDENTIFIER: (921..932) \"dragon-iter\"\n ATMOSPHERE: (932..933) \" \"\n SYMBOL: (933..937)\n IDENTIFIER: (933..937) \"next\"\n ATMOSPHERE: (937..938) \" \"\n SYMBOL: (938..942)\n IDENTIFIER: (938..942) \"size\"\n ATMOSPHERE: (942..943) \" \"\n QUOTED_DATUM: (943..949)\n QUOTE: (943..944) \"'\"\n SYMBOL: (944..949)\n IDENTIFIER: (944..949) \"right\"\n CLOSE_PAREN: (949..950) \")\"\n CLOSE_PAREN: (950..951) \")\"\n CLOSE_PAREN: (951..952) \")\"\n CLOSE_PAREN: (952..953) \")\"\n ATMOSPHERE: (953..963) \"\n\n \"\n FORM: (963..1107)\n OPEN_PAREN: (963..964) \"(\"\n SYMBOL: (964..970)\n IDENTIFIER: (964..970) \"define\"\n ATMOSPHERE: (970..971) \" \"\n FORM: (971..984)\n OPEN_PAREN: (971..972) \"(\"\n SYMBOL: (972..978)\n IDENTIFIER: (972..978) \"dragon\"\n ATMOSPHERE: (978..979) \" \"\n SYMBOL: (979..983)\n IDENTIFIER: (979..983) \"iter\"\n CLOSE_PAREN: (983..984) \")\"\n ATMOSPHERE: (984..997) \"\n \"\n FORM: (997..1003)\n OPEN_PAREN: (997..998) \"(\"\n SYMBOL: (998..1002)\n IDENTIFIER: (998..1002) \"init\"\n CLOSE_PAREN: (1002..1003) \")\"\n ATMOSPHERE: (1003..1016) \"\n \"\n FORM: (1016..1042)\n OPEN_PAREN: (1016..1017) \"(\"\n SYMBOL: (1017..1024)\n IDENTIFIER: (1017..1024) \"command\"\n ATMOSPHERE: (1024..1025) \" \"\n CONSTANT: (1025..1029)\n STRING: (1025..1029) \"\"rt\"\"\n ATMOSPHERE: (1029..1030) \" \"\n FORM: (1030..1041)\n OPEN_PAREN: (1030..1031) \"(\"\n SYMBOL: (1031..1032)\n IDENTIFIER: (1031..1032) \"*\"\n ATMOSPHERE: (1032..1033) \" \"\n CONSTANT: (1033..1035)\n NUMBER: (1033..1035) \"45\"\n ATMOSPHERE: (1035..1036) \" \"\n SYMBOL: (1036..1040)\n IDENTIFIER: (1036..1040) \"iter\"\n CLOSE_PAREN: (1040..1041) \")\"\n CLOSE_PAREN: (1041..1042) \")\"\n ATMOSPHERE: (1042..1055) \"\n \"\n FORM: (1055..1083)\n OPEN_PAREN: (1055..1056) \"(\"\n SYMBOL: (1056..1067)\n IDENTIFIER: (1056..1067) \"dragon-iter\"\n ATMOSPHERE: (1067..1068) \" \"\n SYMBOL: (1068..1072)\n IDENTIFIER: (1068..1072) \"iter\"\n ATMOSPHERE: (1072..1073) \" \"\n CONSTANT: (1073..1076)\n NUMBER: (1073..1076) \"450\"\n ATMOSPHERE: (1076..1077) \" \"\n QUOTED_DATUM: (1077..1082)\n QUOTE: (1077..1078) \"'\"\n SYMBOL: (1078..1082)\n IDENTIFIER: (1078..1082) \"left\"\n CLOSE_PAREN: (1082..1083) \")\"\n ATMOSPHERE: (1083..1096) \"\n \"\n FORM: (1096..1106)\n OPEN_PAREN: (1096..1097) \"(\"\n SYMBOL: (1097..1105)\n IDENTIFIER: (1097..1105) \"finalise\"\n CLOSE_PAREN: (1105..1106) \")\"\n CLOSE_PAREN: (1106..1107) \")\"\n ATMOSPHERE: (1107..1125) \"\n \n \"\n CLOSE_PAREN: (1125..1126) \")\"\n CLOSE_PAREN: (1126..1127) \")\"\n ATMOSPHERE: (1127..1129) \"\n\n\"\n FORM: (1129..1146)\n OPEN_PAREN: (1129..1130) \"(\"\n SYMBOL: (1130..1136)\n IDENTIFIER: (1130..1136) \"import\"\n ATMOSPHERE: (1136..1137) \" \"\n FORM: (1137..1145)\n OPEN_PAREN: (1137..1138) \"(\"\n SYMBOL: (1138..1144)\n IDENTIFIER: (1138..1144) \"dragon\"\n CLOSE_PAREN: (1144..1145) \")\"\n CLOSE_PAREN: (1145..1146) \")\"\n ATMOSPHERE: (1146..1148) \"\n\n\"\n FORM: (1148..1158)\n OPEN_PAREN: (1148..1149) \"(\"\n SYMBOL: (1149..1155)\n IDENTIFIER: (1149..1155) \"dragon\"\n ATMOSPHERE: (1155..1156) \" \"\n CONSTANT: (1156..1157)\n NUMBER: (1156..1157) \"3\"\n CLOSE_PAREN: (1157..1158) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_envtest.scm.json b/test/Feersum.Tests/_snapshots/Parse_envtest.scm.json
deleted file mode 100644
index 3c65775..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_envtest.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..272)\n FORM: (0..39)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..24) \"\n \"\n FORM: (24..38)\n OPEN_PAREN: (24..25) \"(\"\n SYMBOL: (25..31)\n IDENTIFIER: (25..31) \"scheme\"\n ATMOSPHERE: (31..32) \" \"\n SYMBOL: (32..37)\n IDENTIFIER: (32..37) \"write\"\n CLOSE_PAREN: (37..38) \")\"\n CLOSE_PAREN: (38..39) \")\"\n ATMOSPHERE: (39..41) \"\n\n\"\n FORM: (41..94)\n OPEN_PAREN: (41..42) \"(\"\n SYMBOL: (42..48)\n IDENTIFIER: (42..48) \"define\"\n ATMOSPHERE: (48..49) \" \"\n FORM: (49..56)\n OPEN_PAREN: (49..50) \"(\"\n SYMBOL: (50..53)\n IDENTIFIER: (50..53) \"foo\"\n ATMOSPHERE: (53..54) \" \"\n SYMBOL: (54..55)\n IDENTIFIER: (54..55) \"a\"\n CLOSE_PAREN: (55..56) \")\"\n ATMOSPHERE: (56..59) \"\n \"\n FORM: (59..87)\n OPEN_PAREN: (59..60) \"(\"\n SYMBOL: (60..66)\n IDENTIFIER: (60..66) \"define\"\n ATMOSPHERE: (66..67) \" \"\n FORM: (67..74)\n OPEN_PAREN: (67..68) \"(\"\n SYMBOL: (68..71)\n IDENTIFIER: (68..71) \"bar\"\n ATMOSPHERE: (71..72) \" \"\n SYMBOL: (72..73)\n IDENTIFIER: (72..73) \"b\"\n CLOSE_PAREN: (73..74) \")\"\n ATMOSPHERE: (74..79) \"\n \"\n FORM: (79..86)\n OPEN_PAREN: (79..80) \"(\"\n SYMBOL: (80..81)\n IDENTIFIER: (80..81) \"+\"\n ATMOSPHERE: (81..82) \" \"\n SYMBOL: (82..83)\n IDENTIFIER: (82..83) \"a\"\n ATMOSPHERE: (83..84) \" \"\n SYMBOL: (84..85)\n IDENTIFIER: (84..85) \"b\"\n CLOSE_PAREN: (85..86) \")\"\n CLOSE_PAREN: (86..87) \")\"\n ATMOSPHERE: (87..90) \"\n \"\n SYMBOL: (90..93)\n IDENTIFIER: (90..93) \"bar\"\n CLOSE_PAREN: (93..94) \")\"\n ATMOSPHERE: (94..96) \"\n\n\"\n FORM: (96..119)\n OPEN_PAREN: (96..97) \"(\"\n SYMBOL: (97..104)\n IDENTIFIER: (97..104) \"display\"\n ATMOSPHERE: (104..105) \" \"\n FORM: (105..118)\n OPEN_PAREN: (105..106) \"(\"\n FORM: (106..115)\n OPEN_PAREN: (106..107) \"(\"\n SYMBOL: (107..110)\n IDENTIFIER: (107..110) \"foo\"\n ATMOSPHERE: (110..111) \" \"\n CONSTANT: (111..114)\n NUMBER: (111..114) \"123\"\n CLOSE_PAREN: (114..115) \")\"\n ATMOSPHERE: (115..116) \" \"\n CONSTANT: (116..117)\n NUMBER: (116..117) \"4\"\n CLOSE_PAREN: (117..118) \")\"\n CLOSE_PAREN: (118..119) \")\"\n FORM: (119..128)\n OPEN_PAREN: (119..120) \"(\"\n SYMBOL: (120..127)\n IDENTIFIER: (120..127) \"newline\"\n CLOSE_PAREN: (127..128) \")\"\n ATMOSPHERE: (128..130) \"\n\n\"\n FORM: (130..240)\n OPEN_PAREN: (130..131) \"(\"\n SYMBOL: (131..137)\n IDENTIFIER: (131..137) \"define\"\n ATMOSPHERE: (137..138) \" \"\n FORM: (138..148)\n OPEN_PAREN: (138..139) \"(\"\n SYMBOL: (139..143)\n IDENTIFIER: (139..143) \"test\"\n ATMOSPHERE: (143..144) \" \"\n SYMBOL: (144..145)\n IDENTIFIER: (144..145) \"a\"\n ATMOSPHERE: (145..146) \" \"\n SYMBOL: (146..147)\n IDENTIFIER: (146..147) \"b\"\n CLOSE_PAREN: (147..148) \")\"\n ATMOSPHERE: (148..151) \"\n \"\n FORM: (151..226)\n OPEN_PAREN: (151..152) \"(\"\n SYMBOL: (152..158)\n IDENTIFIER: (152..158) \"define\"\n ATMOSPHERE: (158..159) \" \"\n FORM: (159..169)\n OPEN_PAREN: (159..160) \"(\"\n SYMBOL: (160..168)\n IDENTIFIER: (160..168) \"do-stuff\"\n CLOSE_PAREN: (168..169) \")\"\n ATMOSPHERE: (169..174) \"\n \"\n FORM: (174..209)\n OPEN_PAREN: (174..175) \"(\"\n SYMBOL: (175..181)\n IDENTIFIER: (175..181) \"define\"\n ATMOSPHERE: (181..182) \" \"\n FORM: (182..192)\n OPEN_PAREN: (182..183) \"(\"\n SYMBOL: (183..189)\n IDENTIFIER: (183..189) \"things\"\n ATMOSPHERE: (189..190) \" \"\n SYMBOL: (190..191)\n IDENTIFIER: (190..191) \"c\"\n CLOSE_PAREN: (191..192) \")\"\n ATMOSPHERE: (192..199) \"\n \"\n FORM: (199..208)\n OPEN_PAREN: (199..200) \"(\"\n SYMBOL: (200..201)\n IDENTIFIER: (200..201) \"+\"\n ATMOSPHERE: (201..202) \" \"\n SYMBOL: (202..203)\n IDENTIFIER: (202..203) \"a\"\n ATMOSPHERE: (203..204) \" \"\n SYMBOL: (204..205)\n IDENTIFIER: (204..205) \"b\"\n ATMOSPHERE: (205..206) \" \"\n SYMBOL: (206..207)\n IDENTIFIER: (206..207) \"c\"\n CLOSE_PAREN: (207..208) \")\"\n CLOSE_PAREN: (208..209) \")\"\n ATMOSPHERE: (209..214) \"\n \"\n FORM: (214..225)\n OPEN_PAREN: (214..215) \"(\"\n SYMBOL: (215..221)\n IDENTIFIER: (215..221) \"things\"\n ATMOSPHERE: (221..222) \" \"\n CONSTANT: (222..224)\n NUMBER: (222..224) \"12\"\n CLOSE_PAREN: (224..225) \")\"\n CLOSE_PAREN: (225..226) \")\"\n ATMOSPHERE: (226..229) \"\n \"\n FORM: (229..239)\n OPEN_PAREN: (229..230) \"(\"\n SYMBOL: (230..238)\n IDENTIFIER: (230..238) \"do-stuff\"\n CLOSE_PAREN: (238..239) \")\"\n CLOSE_PAREN: (239..240) \")\"\n ATMOSPHERE: (240..242) \"\n\n\"\n FORM: (242..262)\n OPEN_PAREN: (242..243) \"(\"\n SYMBOL: (243..250)\n IDENTIFIER: (243..250) \"display\"\n ATMOSPHERE: (250..251) \" \"\n FORM: (251..261)\n OPEN_PAREN: (251..252) \"(\"\n SYMBOL: (252..256)\n IDENTIFIER: (252..256) \"test\"\n ATMOSPHERE: (256..257) \" \"\n CONSTANT: (257..258)\n NUMBER: (257..258) \"1\"\n ATMOSPHERE: (258..259) \" \"\n CONSTANT: (259..260)\n NUMBER: (259..260) \"2\"\n CLOSE_PAREN: (260..261) \")\"\n CLOSE_PAREN: (261..262) \")\"\n FORM: (262..271)\n OPEN_PAREN: (262..263) \"(\"\n SYMBOL: (263..270)\n IDENTIFIER: (263..270) \"newline\"\n CLOSE_PAREN: (270..271) \")\"\n ATMOSPHERE: (271..272) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_equivalence.scm.json b/test/Feersum.Tests/_snapshots/Parse_equivalence.scm.json
deleted file mode 100644
index e100eba..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_equivalence.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..2277)\n ATMOSPHERE: (0..62) \";; Tests for the Equivalence Predicates (section 6.1 of R7RS).\"\n ATMOSPHERE: (62..63) \"\n\"\n FORM: (63..104)\n OPEN_PAREN: (63..64) \"(\"\n SYMBOL: (64..70)\n IDENTIFIER: (64..70) \"import\"\n ATMOSPHERE: (70..71) \" \"\n FORM: (71..84)\n OPEN_PAREN: (71..72) \"(\"\n SYMBOL: (72..78)\n IDENTIFIER: (72..78) \"scheme\"\n ATMOSPHERE: (78..79) \" \"\n SYMBOL: (79..83)\n IDENTIFIER: (79..83) \"base\"\n CLOSE_PAREN: (83..84) \")\"\n ATMOSPHERE: (84..89) \"\n \"\n FORM: (89..103)\n OPEN_PAREN: (89..90) \"(\"\n SYMBOL: (90..96)\n IDENTIFIER: (90..96) \"scheme\"\n ATMOSPHERE: (96..97) \" \"\n SYMBOL: (97..102)\n IDENTIFIER: (97..102) \"write\"\n CLOSE_PAREN: (102..103) \")\"\n CLOSE_PAREN: (103..104) \")\"\n ATMOSPHERE: (104..106) \"\n\n\"\n ATMOSPHERE: (106..128) \";; Trivial equivalence\"\n ATMOSPHERE: (128..129) \"\n\"\n FORM: (129..562)\n OPEN_PAREN: (129..130) \"(\"\n SYMBOL: (130..137)\n IDENTIFIER: (130..137) \"display\"\n ATMOSPHERE: (137..138) \" \"\n FORM: (138..561)\n OPEN_PAREN: (138..139) \"(\"\n SYMBOL: (139..143)\n IDENTIFIER: (139..143) \"list\"\n ATMOSPHERE: (143..149) \"\n\n \"\n FORM: (149..161)\n OPEN_PAREN: (149..150) \"(\"\n SYMBOL: (150..154)\n IDENTIFIER: (150..154) \"eqv?\"\n ATMOSPHERE: (154..155) \" \"\n QUOTED_DATUM: (155..158)\n QUOTE: (155..156) \"’\"\n SYMBOL: (156..157)\n IDENTIFIER: (156..157) \"a\"\n ATMOSPHERE: (157..158) \" \"\n QUOTED_DATUM: (158..160)\n QUOTE: (158..159) \"’\"\n SYMBOL: (159..160)\n IDENTIFIER: (159..160) \"a\"\n CLOSE_PAREN: (160..161) \")\"\n ATMOSPHERE: (161..162) \" \"\n ATMOSPHERE: (162..169) \"; ~> #t\"\n ATMOSPHERE: (169..174) \"\n \"\n FORM: (174..186)\n OPEN_PAREN: (174..175) \"(\"\n SYMBOL: (175..179)\n IDENTIFIER: (175..179) \"eqv?\"\n ATMOSPHERE: (179..180) \" \"\n QUOTED_DATUM: (180..183)\n QUOTE: (180..181) \"’\"\n SYMBOL: (181..182)\n IDENTIFIER: (181..182) \"a\"\n ATMOSPHERE: (182..183) \" \"\n QUOTED_DATUM: (183..185)\n QUOTE: (183..184) \"’\"\n SYMBOL: (184..185)\n IDENTIFIER: (184..185) \"b\"\n CLOSE_PAREN: (185..186) \")\"\n ATMOSPHERE: (186..187) \" \"\n ATMOSPHERE: (187..194) \"; ~> #f\"\n ATMOSPHERE: (194..199) \"\n \"\n FORM: (199..209)\n OPEN_PAREN: (199..200) \"(\"\n SYMBOL: (200..204)\n IDENTIFIER: (200..204) \"eqv?\"\n ATMOSPHERE: (204..205) \" \"\n CONSTANT: (205..206)\n NUMBER: (205..206) \"2\"\n ATMOSPHERE: (206..207) \" \"\n CONSTANT: (207..208)\n NUMBER: (207..208) \"2\"\n CLOSE_PAREN: (208..209) \")\"\n ATMOSPHERE: (209..210) \" \"\n ATMOSPHERE: (210..217) \"; ~> #t\"\n ATMOSPHERE: (217..222) \"\n \"\n FORM: (222..234)\n OPEN_PAREN: (222..223) \"(\"\n SYMBOL: (223..227)\n IDENTIFIER: (223..227) \"eqv?\"\n ATMOSPHERE: (227..228) \" \"\n CONSTANT: (228..229)\n NUMBER: (228..229) \"2\"\n ATMOSPHERE: (229..230) \" \"\n CONSTANT: (230..233)\n NUMBER: (230..233) \"2.0\"\n CLOSE_PAREN: (233..234) \")\"\n ATMOSPHERE: (234..235) \" \"\n ATMOSPHERE: (235..293) \"; ~> #f Should be false, but we don't do exact numbers :-/\"\n ATMOSPHERE: (293..298) \"\n \"\n FORM: (298..312)\n OPEN_PAREN: (298..299) \"(\"\n SYMBOL: (299..303)\n IDENTIFIER: (299..303) \"eqv?\"\n ATMOSPHERE: (303..304) \" \"\n QUOTED_DATUM: (304..308)\n QUOTE: (304..305) \"’\"\n FORM: (305..307)\n OPEN_PAREN: (305..306) \"(\"\n CLOSE_PAREN: (306..307) \")\"\n ATMOSPHERE: (307..308) \" \"\n QUOTED_DATUM: (308..311)\n QUOTE: (308..309) \"’\"\n FORM: (309..311)\n OPEN_PAREN: (309..310) \"(\"\n CLOSE_PAREN: (310..311) \")\"\n CLOSE_PAREN: (311..312) \")\"\n ATMOSPHERE: (312..313) \" \"\n ATMOSPHERE: (313..320) \"; ~> #t\"\n ATMOSPHERE: (320..325) \"\n \"\n FORM: (325..351)\n OPEN_PAREN: (325..326) \"(\"\n SYMBOL: (326..330)\n IDENTIFIER: (326..330) \"eqv?\"\n ATMOSPHERE: (330..331) \" \"\n CONSTANT: (331..340)\n NUMBER: (331..340) \"100000000\"\n ATMOSPHERE: (340..341) \" \"\n CONSTANT: (341..350)\n NUMBER: (341..350) \"100000000\"\n CLOSE_PAREN: (350..351) \")\"\n ATMOSPHERE: (351..352) \" \"\n ATMOSPHERE: (352..359) \"; ~> #t\"\n ATMOSPHERE: (359..364) \"\n \"\n ATMOSPHERE: (364..391) \"; (eqv? 0.0 +nan.0) ; ~> #f\"\n ATMOSPHERE: (391..396) \"\n \"\n FORM: (396..424)\n OPEN_PAREN: (396..397) \"(\"\n SYMBOL: (397..401)\n IDENTIFIER: (397..401) \"eqv?\"\n ATMOSPHERE: (401..402) \" \"\n FORM: (402..412)\n OPEN_PAREN: (402..403) \"(\"\n SYMBOL: (403..407)\n IDENTIFIER: (403..407) \"cons\"\n ATMOSPHERE: (407..408) \" \"\n CONSTANT: (408..409)\n NUMBER: (408..409) \"1\"\n ATMOSPHERE: (409..410) \" \"\n CONSTANT: (410..411)\n NUMBER: (410..411) \"2\"\n CLOSE_PAREN: (411..412) \")\"\n ATMOSPHERE: (412..413) \" \"\n FORM: (413..423)\n OPEN_PAREN: (413..414) \"(\"\n SYMBOL: (414..418)\n IDENTIFIER: (414..418) \"cons\"\n ATMOSPHERE: (418..419) \" \"\n CONSTANT: (419..420)\n NUMBER: (419..420) \"1\"\n ATMOSPHERE: (420..421) \" \"\n CONSTANT: (421..422)\n NUMBER: (421..422) \"2\"\n CLOSE_PAREN: (422..423) \")\"\n CLOSE_PAREN: (423..424) \")\"\n ATMOSPHERE: (424..425) \" \"\n ATMOSPHERE: (425..432) \"; ~> #f\"\n ATMOSPHERE: (432..437) \"\n \"\n FORM: (437..470)\n OPEN_PAREN: (437..438) \"(\"\n SYMBOL: (438..442)\n IDENTIFIER: (438..442) \"eqv?\"\n ATMOSPHERE: (442..443) \" \"\n FORM: (443..456)\n OPEN_PAREN: (443..444) \"(\"\n SYMBOL: (444..450)\n IDENTIFIER: (444..450) \"lambda\"\n ATMOSPHERE: (450..451) \" \"\n FORM: (451..453)\n OPEN_PAREN: (451..452) \"(\"\n CLOSE_PAREN: (452..453) \")\"\n ATMOSPHERE: (453..454) \" \"\n CONSTANT: (454..455)\n NUMBER: (454..455) \"1\"\n CLOSE_PAREN: (455..456) \")\"\n FORM: (456..469)\n OPEN_PAREN: (456..457) \"(\"\n SYMBOL: (457..463)\n IDENTIFIER: (457..463) \"lambda\"\n ATMOSPHERE: (463..464) \" \"\n FORM: (464..466)\n OPEN_PAREN: (464..465) \"(\"\n CLOSE_PAREN: (465..466) \")\"\n ATMOSPHERE: (466..467) \" \"\n CONSTANT: (467..468)\n NUMBER: (467..468) \"2\"\n CLOSE_PAREN: (468..469) \")\"\n CLOSE_PAREN: (469..470) \")\"\n ATMOSPHERE: (470..471) \" \"\n ATMOSPHERE: (471..478) \"; ~> #f\"\n ATMOSPHERE: (478..483) \"\n \"\n FORM: (483..519)\n OPEN_PAREN: (483..484) \"(\"\n SYMBOL: (484..487)\n IDENTIFIER: (484..487) \"let\"\n ATMOSPHERE: (487..488) \" \"\n FORM: (488..508)\n OPEN_PAREN: (488..489) \"(\"\n FORM: (489..507)\n OPEN_PAREN: (489..490) \"(\"\n SYMBOL: (490..491)\n IDENTIFIER: (490..491) \"p\"\n ATMOSPHERE: (491..492) \" \"\n FORM: (492..506)\n OPEN_PAREN: (492..493) \"(\"\n SYMBOL: (493..499)\n IDENTIFIER: (493..499) \"lambda\"\n ATMOSPHERE: (499..500) \" \"\n FORM: (500..503)\n OPEN_PAREN: (500..501) \"(\"\n SYMBOL: (501..502)\n IDENTIFIER: (501..502) \"x\"\n CLOSE_PAREN: (502..503) \")\"\n ATMOSPHERE: (503..504) \" \"\n SYMBOL: (504..505)\n IDENTIFIER: (504..505) \"x\"\n CLOSE_PAREN: (505..506) \")\"\n CLOSE_PAREN: (506..507) \")\"\n CLOSE_PAREN: (507..508) \")\"\n FORM: (508..518)\n OPEN_PAREN: (508..509) \"(\"\n SYMBOL: (509..513)\n IDENTIFIER: (509..513) \"eqv?\"\n ATMOSPHERE: (513..514) \" \"\n SYMBOL: (514..515)\n IDENTIFIER: (514..515) \"p\"\n ATMOSPHERE: (515..516) \" \"\n SYMBOL: (516..517)\n IDENTIFIER: (516..517) \"p\"\n CLOSE_PAREN: (517..518) \")\"\n CLOSE_PAREN: (518..519) \")\"\n ATMOSPHERE: (519..520) \" \"\n ATMOSPHERE: (520..527) \"; ~> #t\"\n ATMOSPHERE: (527..532) \"\n \"\n FORM: (532..546)\n OPEN_PAREN: (532..533) \"(\"\n SYMBOL: (533..537)\n IDENTIFIER: (533..537) \"eqv?\"\n ATMOSPHERE: (537..538) \" \"\n CONSTANT: (538..540)\n BOOLEAN: (538..540) \"#f\"\n ATMOSPHERE: (540..541) \" \"\n QUOTED_DATUM: (541..545)\n QUOTE: (541..542) \"’\"\n SYMBOL: (542..545)\n IDENTIFIER: (542..545) \"nil\"\n CLOSE_PAREN: (545..546) \")\"\n ATMOSPHERE: (546..547) \" \"\n ATMOSPHERE: (547..554) \"; ~> #f\"\n ATMOSPHERE: (554..560) \"\n\n \"\n CLOSE_PAREN: (560..561) \")\"\n CLOSE_PAREN: (561..562) \")\"\n FORM: (562..571)\n OPEN_PAREN: (562..563) \"(\"\n SYMBOL: (563..570)\n IDENTIFIER: (563..570) \"newline\"\n CLOSE_PAREN: (570..571) \")\"\n ATMOSPHERE: (571..573) \"\n\n\"\n ATMOSPHERE: (573..609) \";; implementaiton specified restults\"\n ATMOSPHERE: (609..610) \"\n\"\n FORM: (610..905)\n OPEN_PAREN: (610..611) \"(\"\n SYMBOL: (611..618)\n IDENTIFIER: (611..618) \"display\"\n ATMOSPHERE: (618..619) \" \"\n FORM: (619..904)\n OPEN_PAREN: (619..620) \"(\"\n SYMBOL: (620..624)\n IDENTIFIER: (620..624) \"list\"\n ATMOSPHERE: (624..630) \"\n\n \"\n FORM: (630..642)\n OPEN_PAREN: (630..631) \"(\"\n SYMBOL: (631..635)\n IDENTIFIER: (631..635) \"eqv?\"\n ATMOSPHERE: (635..636) \" \"\n CONSTANT: (636..638)\n STRING: (636..638) \"\"\"\"\n ATMOSPHERE: (638..639) \" \"\n CONSTANT: (639..641)\n STRING: (639..641) \"\"\"\"\n CLOSE_PAREN: (641..642) \")\"\n ATMOSPHERE: (642..643) \" \"\n ATMOSPHERE: (643..659) \"; ~> unspecified\"\n ATMOSPHERE: (659..664) \"\n \"\n FORM: (664..680)\n OPEN_PAREN: (664..665) \"(\"\n SYMBOL: (665..669)\n IDENTIFIER: (665..669) \"eqv?\"\n ATMOSPHERE: (669..670) \" \"\n QUOTED_DATUM: (670..675)\n QUOTE: (670..671) \"’\"\n VEC: (671..674)\n OPEN_PAREN: (671..673) \"#(\"\n CLOSE_PAREN: (673..674) \")\"\n ATMOSPHERE: (674..675) \" \"\n QUOTED_DATUM: (675..679)\n QUOTE: (675..676) \"’\"\n VEC: (676..679)\n OPEN_PAREN: (676..678) \"#(\"\n CLOSE_PAREN: (678..679) \")\"\n CLOSE_PAREN: (679..680) \")\"\n ATMOSPHERE: (680..681) \" \"\n ATMOSPHERE: (681..697) \"; ~> unspecified\"\n ATMOSPHERE: (697..702) \"\n \"\n FORM: (702..737)\n OPEN_PAREN: (702..703) \"(\"\n SYMBOL: (703..707)\n IDENTIFIER: (703..707) \"eqv?\"\n ATMOSPHERE: (707..708) \" \"\n FORM: (708..722)\n OPEN_PAREN: (708..709) \"(\"\n SYMBOL: (709..715)\n IDENTIFIER: (709..715) \"lambda\"\n ATMOSPHERE: (715..716) \" \"\n FORM: (716..719)\n OPEN_PAREN: (716..717) \"(\"\n SYMBOL: (717..718)\n IDENTIFIER: (717..718) \"x\"\n CLOSE_PAREN: (718..719) \")\"\n ATMOSPHERE: (719..720) \" \"\n SYMBOL: (720..721)\n IDENTIFIER: (720..721) \"x\"\n CLOSE_PAREN: (721..722) \")\"\n FORM: (722..736)\n OPEN_PAREN: (722..723) \"(\"\n SYMBOL: (723..729)\n IDENTIFIER: (723..729) \"lambda\"\n ATMOSPHERE: (729..730) \" \"\n FORM: (730..733)\n OPEN_PAREN: (730..731) \"(\"\n SYMBOL: (731..732)\n IDENTIFIER: (731..732) \"x\"\n CLOSE_PAREN: (732..733) \")\"\n ATMOSPHERE: (733..734) \" \"\n SYMBOL: (734..735)\n IDENTIFIER: (734..735) \"x\"\n CLOSE_PAREN: (735..736) \")\"\n CLOSE_PAREN: (736..737) \")\"\n ATMOSPHERE: (737..738) \" \"\n ATMOSPHERE: (738..754) \"; ~> unspecified\"\n ATMOSPHERE: (754..759) \"\n \"\n FORM: (759..794)\n OPEN_PAREN: (759..760) \"(\"\n SYMBOL: (760..764)\n IDENTIFIER: (760..764) \"eqv?\"\n ATMOSPHERE: (764..765) \" \"\n FORM: (765..779)\n OPEN_PAREN: (765..766) \"(\"\n SYMBOL: (766..772)\n IDENTIFIER: (766..772) \"lambda\"\n ATMOSPHERE: (772..773) \" \"\n FORM: (773..776)\n OPEN_PAREN: (773..774) \"(\"\n SYMBOL: (774..775)\n IDENTIFIER: (774..775) \"x\"\n CLOSE_PAREN: (775..776) \")\"\n ATMOSPHERE: (776..777) \" \"\n SYMBOL: (777..778)\n IDENTIFIER: (777..778) \"x\"\n CLOSE_PAREN: (778..779) \")\"\n FORM: (779..793)\n OPEN_PAREN: (779..780) \"(\"\n SYMBOL: (780..786)\n IDENTIFIER: (780..786) \"lambda\"\n ATMOSPHERE: (786..787) \" \"\n FORM: (787..790)\n OPEN_PAREN: (787..788) \"(\"\n SYMBOL: (788..789)\n IDENTIFIER: (788..789) \"y\"\n CLOSE_PAREN: (789..790) \")\"\n ATMOSPHERE: (790..791) \" \"\n SYMBOL: (791..792)\n IDENTIFIER: (791..792) \"y\"\n CLOSE_PAREN: (792..793) \")\"\n CLOSE_PAREN: (793..794) \")\"\n ATMOSPHERE: (794..795) \" \"\n ATMOSPHERE: (795..811) \"; ~> unspecified\"\n ATMOSPHERE: (811..816) \"\n \"\n ATMOSPHERE: (816..853) \"; (eqv? 1.0e0 1.0f0) ; ~> unspecified\"\n ATMOSPHERE: (853..858) \"\n \"\n ATMOSPHERE: (858..897) \"; (eqv? +nan.0 +nan.0) ; ~> unspecified\"\n ATMOSPHERE: (897..903) \"\n\n \"\n CLOSE_PAREN: (903..904) \")\"\n CLOSE_PAREN: (904..905) \")\"\n FORM: (905..914)\n OPEN_PAREN: (905..906) \"(\"\n SYMBOL: (906..913)\n IDENTIFIER: (906..913) \"newline\"\n CLOSE_PAREN: (913..914) \")\"\n ATMOSPHERE: (914..916) \"\n\n\"\n ATMOSPHERE: (916..979) \";; Lambdas that capture state should be different for each call\"\n ATMOSPHERE: (979..980) \"\n\"\n FORM: (980..1097)\n OPEN_PAREN: (980..981) \"(\"\n SYMBOL: (981..987)\n IDENTIFIER: (981..987) \"define\"\n ATMOSPHERE: (987..988) \" \"\n SYMBOL: (988..999)\n IDENTIFIER: (988..999) \"gen-counter\"\n ATMOSPHERE: (999..1004) \"\n \"\n FORM: (1004..1096)\n OPEN_PAREN: (1004..1005) \"(\"\n SYMBOL: (1005..1011)\n IDENTIFIER: (1005..1011) \"lambda\"\n ATMOSPHERE: (1011..1012) \" \"\n FORM: (1012..1014)\n OPEN_PAREN: (1012..1013) \"(\"\n CLOSE_PAREN: (1013..1014) \")\"\n ATMOSPHERE: (1014..1023) \"\n \"\n FORM: (1023..1095)\n OPEN_PAREN: (1023..1024) \"(\"\n SYMBOL: (1024..1027)\n IDENTIFIER: (1024..1027) \"let\"\n ATMOSPHERE: (1027..1028) \" \"\n FORM: (1028..1035)\n OPEN_PAREN: (1028..1029) \"(\"\n FORM: (1029..1034)\n OPEN_PAREN: (1029..1030) \"(\"\n SYMBOL: (1030..1031)\n IDENTIFIER: (1030..1031) \"n\"\n ATMOSPHERE: (1031..1032) \" \"\n CONSTANT: (1032..1033)\n NUMBER: (1032..1033) \"0\"\n CLOSE_PAREN: (1033..1034) \")\"\n CLOSE_PAREN: (1034..1035) \")\"\n ATMOSPHERE: (1035..1048) \"\n \"\n FORM: (1048..1094)\n OPEN_PAREN: (1048..1049) \"(\"\n SYMBOL: (1049..1055)\n IDENTIFIER: (1049..1055) \"lambda\"\n ATMOSPHERE: (1055..1056) \" \"\n FORM: (1056..1058)\n OPEN_PAREN: (1056..1057) \"(\"\n CLOSE_PAREN: (1057..1058) \")\"\n ATMOSPHERE: (1058..1075) \"\n \"\n FORM: (1075..1091)\n OPEN_PAREN: (1075..1076) \"(\"\n SYMBOL: (1076..1080)\n IDENTIFIER: (1076..1080) \"set!\"\n ATMOSPHERE: (1080..1081) \" \"\n SYMBOL: (1081..1082)\n IDENTIFIER: (1081..1082) \"n\"\n ATMOSPHERE: (1082..1083) \" \"\n FORM: (1083..1090)\n OPEN_PAREN: (1083..1084) \"(\"\n SYMBOL: (1084..1085)\n IDENTIFIER: (1084..1085) \"+\"\n ATMOSPHERE: (1085..1086) \" \"\n SYMBOL: (1086..1087)\n IDENTIFIER: (1086..1087) \"n\"\n ATMOSPHERE: (1087..1088) \" \"\n CONSTANT: (1088..1089)\n NUMBER: (1088..1089) \"1\"\n CLOSE_PAREN: (1089..1090) \")\"\n CLOSE_PAREN: (1090..1091) \")\"\n ATMOSPHERE: (1091..1092) \" \"\n SYMBOL: (1092..1093)\n IDENTIFIER: (1092..1093) \"n\"\n CLOSE_PAREN: (1093..1094) \")\"\n CLOSE_PAREN: (1094..1095) \")\"\n CLOSE_PAREN: (1095..1096) \")\"\n CLOSE_PAREN: (1096..1097) \")\"\n ATMOSPHERE: (1097..1098) \"\n\"\n FORM: (1098..1148)\n OPEN_PAREN: (1098..1099) \"(\"\n SYMBOL: (1099..1106)\n IDENTIFIER: (1099..1106) \"display\"\n ATMOSPHERE: (1106..1107) \" \"\n FORM: (1107..1147)\n OPEN_PAREN: (1107..1108) \"(\"\n SYMBOL: (1108..1111)\n IDENTIFIER: (1108..1111) \"let\"\n ATMOSPHERE: (1111..1112) \" \"\n FORM: (1112..1131)\n OPEN_PAREN: (1112..1113) \"(\"\n FORM: (1113..1130)\n OPEN_PAREN: (1113..1114) \"(\"\n SYMBOL: (1114..1115)\n IDENTIFIER: (1114..1115) \"g\"\n ATMOSPHERE: (1115..1116) \" \"\n FORM: (1116..1129)\n OPEN_PAREN: (1116..1117) \"(\"\n SYMBOL: (1117..1128)\n IDENTIFIER: (1117..1128) \"gen-counter\"\n CLOSE_PAREN: (1128..1129) \")\"\n CLOSE_PAREN: (1129..1130) \")\"\n CLOSE_PAREN: (1130..1131) \")\"\n ATMOSPHERE: (1131..1136) \"\n \"\n FORM: (1136..1146)\n OPEN_PAREN: (1136..1137) \"(\"\n SYMBOL: (1137..1141)\n IDENTIFIER: (1137..1141) \"eqv?\"\n ATMOSPHERE: (1141..1142) \" \"\n SYMBOL: (1142..1143)\n IDENTIFIER: (1142..1143) \"g\"\n ATMOSPHERE: (1143..1144) \" \"\n SYMBOL: (1144..1145)\n IDENTIFIER: (1144..1145) \"g\"\n CLOSE_PAREN: (1145..1146) \")\"\n CLOSE_PAREN: (1146..1147) \")\"\n CLOSE_PAREN: (1147..1148) \")\"\n ATMOSPHERE: (1148..1149) \" \"\n ATMOSPHERE: (1149..1156) \"; ~> #t\"\n ATMOSPHERE: (1156..1157) \"\n\"\n FORM: (1157..1201)\n OPEN_PAREN: (1157..1158) \"(\"\n SYMBOL: (1158..1165)\n IDENTIFIER: (1158..1165) \"display\"\n ATMOSPHERE: (1165..1166) \" \"\n FORM: (1166..1200)\n OPEN_PAREN: (1166..1167) \"(\"\n SYMBOL: (1167..1171)\n IDENTIFIER: (1167..1171) \"eqv?\"\n ATMOSPHERE: (1171..1172) \" \"\n FORM: (1172..1185)\n OPEN_PAREN: (1172..1173) \"(\"\n SYMBOL: (1173..1184)\n IDENTIFIER: (1173..1184) \"gen-counter\"\n CLOSE_PAREN: (1184..1185) \")\"\n ATMOSPHERE: (1185..1186) \" \"\n FORM: (1186..1199)\n OPEN_PAREN: (1186..1187) \"(\"\n SYMBOL: (1187..1198)\n IDENTIFIER: (1187..1198) \"gen-counter\"\n CLOSE_PAREN: (1198..1199) \")\"\n CLOSE_PAREN: (1199..1200) \")\"\n CLOSE_PAREN: (1200..1201) \")\"\n ATMOSPHERE: (1201..1202) \" \"\n ATMOSPHERE: (1202..1209) \"; ~> #f\"\n ATMOSPHERE: (1209..1210) \"\n\"\n FORM: (1210..1219)\n OPEN_PAREN: (1210..1211) \"(\"\n SYMBOL: (1211..1218)\n IDENTIFIER: (1211..1218) \"newline\"\n CLOSE_PAREN: (1218..1219) \")\"\n ATMOSPHERE: (1219..1221) \"\n\n\"\n ATMOSPHERE: (1221..1292) \";; The `eq?` Predicate is allowed to just do a pointer equivalence test\"\n ATMOSPHERE: (1292..1293) \"\n\"\n FORM: (1293..1748)\n OPEN_PAREN: (1293..1294) \"(\"\n SYMBOL: (1294..1301)\n IDENTIFIER: (1294..1301) \"display\"\n ATMOSPHERE: (1301..1303) \"\n \"\n FORM: (1303..1747)\n OPEN_PAREN: (1303..1304) \"(\"\n SYMBOL: (1304..1308)\n IDENTIFIER: (1304..1308) \"list\"\n ATMOSPHERE: (1308..1311) \"\n \"\n FORM: (1311..1322)\n OPEN_PAREN: (1311..1312) \"(\"\n SYMBOL: (1312..1315)\n IDENTIFIER: (1312..1315) \"eq?\"\n ATMOSPHERE: (1315..1316) \" \"\n QUOTED_DATUM: (1316..1319)\n QUOTE: (1316..1317) \"’\"\n SYMBOL: (1317..1318)\n IDENTIFIER: (1317..1318) \"a\"\n ATMOSPHERE: (1318..1319) \" \"\n QUOTED_DATUM: (1319..1321)\n QUOTE: (1319..1320) \"’\"\n SYMBOL: (1320..1321)\n IDENTIFIER: (1320..1321) \"a\"\n CLOSE_PAREN: (1321..1322) \")\"\n ATMOSPHERE: (1322..1323) \" \"\n ATMOSPHERE: (1323..1330) \"; -> #t\"\n ATMOSPHERE: (1330..1333) \"\n \"\n FORM: (1333..1348)\n OPEN_PAREN: (1333..1334) \"(\"\n SYMBOL: (1334..1337)\n IDENTIFIER: (1334..1337) \"eq?\"\n ATMOSPHERE: (1337..1338) \" \"\n QUOTED_DATUM: (1338..1343)\n QUOTE: (1338..1339) \"’\"\n FORM: (1339..1342)\n OPEN_PAREN: (1339..1340) \"(\"\n SYMBOL: (1340..1341)\n IDENTIFIER: (1340..1341) \"a\"\n CLOSE_PAREN: (1341..1342) \")\"\n ATMOSPHERE: (1342..1343) \" \"\n QUOTED_DATUM: (1343..1347)\n QUOTE: (1343..1344) \"’\"\n FORM: (1344..1347)\n OPEN_PAREN: (1344..1345) \"(\"\n SYMBOL: (1345..1346)\n IDENTIFIER: (1345..1346) \"a\"\n CLOSE_PAREN: (1346..1347) \")\"\n CLOSE_PAREN: (1347..1348) \")\"\n ATMOSPHERE: (1348..1349) \" \"\n ATMOSPHERE: (1349..1365) \"; -> unspecified\"\n ATMOSPHERE: (1365..1368) \"\n \"\n FORM: (1368..1393)\n OPEN_PAREN: (1368..1369) \"(\"\n SYMBOL: (1369..1372)\n IDENTIFIER: (1369..1372) \"eq?\"\n ATMOSPHERE: (1372..1373) \" \"\n FORM: (1373..1382)\n OPEN_PAREN: (1373..1374) \"(\"\n SYMBOL: (1374..1378)\n IDENTIFIER: (1374..1378) \"list\"\n ATMOSPHERE: (1378..1379) \" \"\n QUOTED_DATUM: (1379..1381)\n QUOTE: (1379..1380) \"’\"\n SYMBOL: (1380..1381)\n IDENTIFIER: (1380..1381) \"a\"\n CLOSE_PAREN: (1381..1382) \")\"\n ATMOSPHERE: (1382..1383) \" \"\n FORM: (1383..1392)\n OPEN_PAREN: (1383..1384) \"(\"\n SYMBOL: (1384..1388)\n IDENTIFIER: (1384..1388) \"list\"\n ATMOSPHERE: (1388..1389) \" \"\n QUOTED_DATUM: (1389..1391)\n QUOTE: (1389..1390) \"’\"\n SYMBOL: (1390..1391)\n IDENTIFIER: (1390..1391) \"a\"\n CLOSE_PAREN: (1391..1392) \")\"\n CLOSE_PAREN: (1392..1393) \")\"\n ATMOSPHERE: (1393..1394) \" \"\n ATMOSPHERE: (1394..1401) \"; -> #f\"\n ATMOSPHERE: (1401..1404) \"\n \"\n FORM: (1404..1417)\n OPEN_PAREN: (1404..1405) \"(\"\n SYMBOL: (1405..1408)\n IDENTIFIER: (1405..1408) \"eq?\"\n ATMOSPHERE: (1408..1409) \" \"\n CONSTANT: (1409..1412)\n STRING: (1409..1412) \"\"a\"\"\n ATMOSPHERE: (1412..1413) \" \"\n CONSTANT: (1413..1416)\n STRING: (1413..1416) \"\"a\"\"\n CLOSE_PAREN: (1416..1417) \")\"\n ATMOSPHERE: (1417..1418) \" \"\n ATMOSPHERE: (1418..1434) \"; -> unspecified\"\n ATMOSPHERE: (1434..1437) \"\n \"\n FORM: (1437..1448)\n OPEN_PAREN: (1437..1438) \"(\"\n SYMBOL: (1438..1441)\n IDENTIFIER: (1438..1441) \"eq?\"\n ATMOSPHERE: (1441..1442) \" \"\n CONSTANT: (1442..1444)\n STRING: (1442..1444) \"\"\"\"\n ATMOSPHERE: (1444..1445) \" \"\n CONSTANT: (1445..1447)\n STRING: (1445..1447) \"\"\"\"\n CLOSE_PAREN: (1447..1448) \")\"\n ATMOSPHERE: (1448..1449) \" \"\n ATMOSPHERE: (1449..1465) \"; -> unspecified\"\n ATMOSPHERE: (1465..1468) \"\n \"\n FORM: (1468..1481)\n OPEN_PAREN: (1468..1469) \"(\"\n SYMBOL: (1469..1472)\n IDENTIFIER: (1469..1472) \"eq?\"\n ATMOSPHERE: (1472..1473) \" \"\n QUOTED_DATUM: (1473..1477)\n QUOTE: (1473..1474) \"’\"\n FORM: (1474..1476)\n OPEN_PAREN: (1474..1475) \"(\"\n CLOSE_PAREN: (1475..1476) \")\"\n ATMOSPHERE: (1476..1477) \" \"\n QUOTED_DATUM: (1477..1480)\n QUOTE: (1477..1478) \"’\"\n FORM: (1478..1480)\n OPEN_PAREN: (1478..1479) \"(\"\n CLOSE_PAREN: (1479..1480) \")\"\n CLOSE_PAREN: (1480..1481) \")\"\n ATMOSPHERE: (1481..1482) \" \"\n ATMOSPHERE: (1482..1489) \"; -> #t\"\n ATMOSPHERE: (1489..1492) \"\n \"\n FORM: (1492..1501)\n OPEN_PAREN: (1492..1493) \"(\"\n SYMBOL: (1493..1496)\n IDENTIFIER: (1493..1496) \"eq?\"\n ATMOSPHERE: (1496..1497) \" \"\n CONSTANT: (1497..1498)\n NUMBER: (1497..1498) \"2\"\n ATMOSPHERE: (1498..1499) \" \"\n CONSTANT: (1499..1500)\n NUMBER: (1499..1500) \"2\"\n CLOSE_PAREN: (1500..1501) \")\"\n ATMOSPHERE: (1501..1502) \" \"\n ATMOSPHERE: (1502..1518) \"; -> unspecified\"\n ATMOSPHERE: (1518..1521) \"\n \"\n FORM: (1521..1534)\n OPEN_PAREN: (1521..1522) \"(\"\n SYMBOL: (1522..1525)\n IDENTIFIER: (1522..1525) \"eq?\"\n ATMOSPHERE: (1525..1526) \" \"\n CONSTANT: (1526..1529)\n CHARACTER: (1526..1529) \"#\\A\"\n ATMOSPHERE: (1529..1530) \" \"\n CONSTANT: (1530..1533)\n CHARACTER: (1530..1533) \"#\\A\"\n CLOSE_PAREN: (1533..1534) \")\"\n ATMOSPHERE: (1534..1535) \" \"\n ATMOSPHERE: (1535..1551) \"; -> unspecified\"\n ATMOSPHERE: (1551..1554) \"\n \"\n FORM: (1554..1567)\n OPEN_PAREN: (1554..1555) \"(\"\n SYMBOL: (1555..1558)\n IDENTIFIER: (1555..1558) \"eq?\"\n ATMOSPHERE: (1558..1559) \" \"\n SYMBOL: (1559..1562)\n IDENTIFIER: (1559..1562) \"car\"\n ATMOSPHERE: (1562..1563) \" \"\n SYMBOL: (1563..1566)\n IDENTIFIER: (1563..1566) \"car\"\n CLOSE_PAREN: (1566..1567) \")\"\n ATMOSPHERE: (1567..1568) \" \"\n ATMOSPHERE: (1568..1575) \"; -> #t\"\n ATMOSPHERE: (1575..1578) \"\n \"\n FORM: (1578..1608)\n OPEN_PAREN: (1578..1579) \"(\"\n SYMBOL: (1579..1582)\n IDENTIFIER: (1579..1582) \"let\"\n ATMOSPHERE: (1582..1583) \" \"\n FORM: (1583..1596)\n OPEN_PAREN: (1583..1584) \"(\"\n FORM: (1584..1595)\n OPEN_PAREN: (1584..1585) \"(\"\n SYMBOL: (1585..1586)\n IDENTIFIER: (1585..1586) \"n\"\n ATMOSPHERE: (1586..1587) \" \"\n FORM: (1587..1594)\n OPEN_PAREN: (1587..1588) \"(\"\n SYMBOL: (1588..1589)\n IDENTIFIER: (1588..1589) \"+\"\n ATMOSPHERE: (1589..1590) \" \"\n CONSTANT: (1590..1591)\n NUMBER: (1590..1591) \"2\"\n ATMOSPHERE: (1591..1592) \" \"\n CONSTANT: (1592..1593)\n NUMBER: (1592..1593) \"3\"\n CLOSE_PAREN: (1593..1594) \")\"\n CLOSE_PAREN: (1594..1595) \")\"\n CLOSE_PAREN: (1595..1596) \")\"\n ATMOSPHERE: (1596..1598) \"\n\t\"\n FORM: (1598..1607)\n OPEN_PAREN: (1598..1599) \"(\"\n SYMBOL: (1599..1602)\n IDENTIFIER: (1599..1602) \"eq?\"\n ATMOSPHERE: (1602..1603) \" \"\n SYMBOL: (1603..1604)\n IDENTIFIER: (1603..1604) \"n\"\n ATMOSPHERE: (1604..1605) \" \"\n SYMBOL: (1605..1606)\n IDENTIFIER: (1605..1606) \"n\"\n CLOSE_PAREN: (1606..1607) \")\"\n CLOSE_PAREN: (1607..1608) \")\"\n ATMOSPHERE: (1608..1609) \" \"\n ATMOSPHERE: (1609..1625) \"; -> unspecified\"\n ATMOSPHERE: (1625..1628) \"\n \"\n FORM: (1628..1653)\n OPEN_PAREN: (1628..1629) \"(\"\n SYMBOL: (1629..1632)\n IDENTIFIER: (1629..1632) \"let\"\n ATMOSPHERE: (1632..1633) \" \"\n FORM: (1633..1643)\n OPEN_PAREN: (1633..1634) \"(\"\n FORM: (1634..1642)\n OPEN_PAREN: (1634..1635) \"(\"\n SYMBOL: (1635..1636)\n IDENTIFIER: (1635..1636) \"x\"\n ATMOSPHERE: (1636..1637) \" \"\n QUOTED_DATUM: (1637..1641)\n QUOTE: (1637..1638) \"’\"\n FORM: (1638..1641)\n OPEN_PAREN: (1638..1639) \"(\"\n SYMBOL: (1639..1640)\n IDENTIFIER: (1639..1640) \"a\"\n CLOSE_PAREN: (1640..1641) \")\"\n CLOSE_PAREN: (1641..1642) \")\"\n CLOSE_PAREN: (1642..1643) \")\"\n FORM: (1643..1652)\n OPEN_PAREN: (1643..1644) \"(\"\n SYMBOL: (1644..1647)\n IDENTIFIER: (1644..1647) \"eq?\"\n ATMOSPHERE: (1647..1648) \" \"\n SYMBOL: (1648..1649)\n IDENTIFIER: (1648..1649) \"x\"\n ATMOSPHERE: (1649..1650) \" \"\n SYMBOL: (1650..1651)\n IDENTIFIER: (1650..1651) \"x\"\n CLOSE_PAREN: (1651..1652) \")\"\n CLOSE_PAREN: (1652..1653) \")\"\n ATMOSPHERE: (1653..1654) \" \"\n ATMOSPHERE: (1654..1661) \"; -> #t\"\n ATMOSPHERE: (1661..1664) \"\n \"\n FORM: (1664..1689)\n OPEN_PAREN: (1664..1665) \"(\"\n SYMBOL: (1665..1668)\n IDENTIFIER: (1665..1668) \"let\"\n ATMOSPHERE: (1668..1669) \" \"\n FORM: (1669..1679)\n OPEN_PAREN: (1669..1670) \"(\"\n FORM: (1670..1678)\n OPEN_PAREN: (1670..1671) \"(\"\n SYMBOL: (1671..1672)\n IDENTIFIER: (1671..1672) \"x\"\n ATMOSPHERE: (1672..1673) \" \"\n QUOTED_DATUM: (1673..1677)\n QUOTE: (1673..1674) \"’\"\n VEC: (1674..1677)\n OPEN_PAREN: (1674..1676) \"#(\"\n CLOSE_PAREN: (1676..1677) \")\"\n CLOSE_PAREN: (1677..1678) \")\"\n CLOSE_PAREN: (1678..1679) \")\"\n FORM: (1679..1688)\n OPEN_PAREN: (1679..1680) \"(\"\n SYMBOL: (1680..1683)\n IDENTIFIER: (1680..1683) \"eq?\"\n ATMOSPHERE: (1683..1684) \" \"\n SYMBOL: (1684..1685)\n IDENTIFIER: (1684..1685) \"x\"\n ATMOSPHERE: (1685..1686) \" \"\n SYMBOL: (1686..1687)\n IDENTIFIER: (1686..1687) \"x\"\n CLOSE_PAREN: (1687..1688) \")\"\n CLOSE_PAREN: (1688..1689) \")\"\n ATMOSPHERE: (1689..1690) \" \"\n ATMOSPHERE: (1690..1697) \"; -> #t\"\n ATMOSPHERE: (1697..1700) \"\n \"\n FORM: (1700..1735)\n OPEN_PAREN: (1700..1701) \"(\"\n SYMBOL: (1701..1704)\n IDENTIFIER: (1701..1704) \"let\"\n ATMOSPHERE: (1704..1705) \" \"\n FORM: (1705..1725)\n OPEN_PAREN: (1705..1706) \"(\"\n FORM: (1706..1724)\n OPEN_PAREN: (1706..1707) \"(\"\n SYMBOL: (1707..1708)\n IDENTIFIER: (1707..1708) \"p\"\n ATMOSPHERE: (1708..1709) \" \"\n FORM: (1709..1723)\n OPEN_PAREN: (1709..1710) \"(\"\n SYMBOL: (1710..1716)\n IDENTIFIER: (1710..1716) \"lambda\"\n ATMOSPHERE: (1716..1717) \" \"\n FORM: (1717..1720)\n OPEN_PAREN: (1717..1718) \"(\"\n SYMBOL: (1718..1719)\n IDENTIFIER: (1718..1719) \"x\"\n CLOSE_PAREN: (1719..1720) \")\"\n ATMOSPHERE: (1720..1721) \" \"\n SYMBOL: (1721..1722)\n IDENTIFIER: (1721..1722) \"x\"\n CLOSE_PAREN: (1722..1723) \")\"\n CLOSE_PAREN: (1723..1724) \")\"\n CLOSE_PAREN: (1724..1725) \")\"\n FORM: (1725..1734)\n OPEN_PAREN: (1725..1726) \"(\"\n SYMBOL: (1726..1729)\n IDENTIFIER: (1726..1729) \"eq?\"\n ATMOSPHERE: (1729..1730) \" \"\n SYMBOL: (1730..1731)\n IDENTIFIER: (1730..1731) \"p\"\n ATMOSPHERE: (1731..1732) \" \"\n SYMBOL: (1732..1733)\n IDENTIFIER: (1732..1733) \"p\"\n CLOSE_PAREN: (1733..1734) \")\"\n CLOSE_PAREN: (1734..1735) \")\"\n ATMOSPHERE: (1735..1736) \" \"\n ATMOSPHERE: (1736..1743) \"; -> #t\"\n ATMOSPHERE: (1743..1746) \"\n \"\n CLOSE_PAREN: (1746..1747) \")\"\n CLOSE_PAREN: (1747..1748) \")\"\n FORM: (1748..1757)\n OPEN_PAREN: (1748..1749) \"(\"\n SYMBOL: (1749..1756)\n IDENTIFIER: (1749..1756) \"newline\"\n CLOSE_PAREN: (1756..1757) \")\"\n ATMOSPHERE: (1757..1759) \"\n\n\"\n ATMOSPHERE: (1759..1831) \";; The `equals?` predicate should recursively calculate equivalence. For\"\n ATMOSPHERE: (1831..1832) \"\n\"\n ATMOSPHERE: (1832..1887) \";; our implementation this is close to `object.Equals`.\"\n ATMOSPHERE: (1887..1888) \"\n\"\n FORM: (1888..2267)\n OPEN_PAREN: (1888..1889) \"(\"\n SYMBOL: (1889..1896)\n IDENTIFIER: (1889..1896) \"display\"\n ATMOSPHERE: (1896..1898) \"\n \"\n FORM: (1898..2266)\n OPEN_PAREN: (1898..1899) \"(\"\n SYMBOL: (1899..1903)\n IDENTIFIER: (1899..1903) \"list\"\n ATMOSPHERE: (1903..1906) \"\n \"\n FORM: (1906..1920)\n OPEN_PAREN: (1906..1907) \"(\"\n SYMBOL: (1907..1913)\n IDENTIFIER: (1907..1913) \"equal?\"\n ATMOSPHERE: (1913..1914) \" \"\n QUOTED_DATUM: (1914..1917)\n QUOTE: (1914..1915) \"’\"\n SYMBOL: (1915..1916)\n IDENTIFIER: (1915..1916) \"a\"\n ATMOSPHERE: (1916..1917) \" \"\n QUOTED_DATUM: (1917..1919)\n QUOTE: (1917..1918) \"’\"\n SYMBOL: (1918..1919)\n IDENTIFIER: (1918..1919) \"a\"\n CLOSE_PAREN: (1919..1920) \")\"\n ATMOSPHERE: (1920..1921) \" \"\n ATMOSPHERE: (1921..1928) \"; -> #t\"\n ATMOSPHERE: (1928..1931) \"\n \"\n FORM: (1931..1949)\n OPEN_PAREN: (1931..1932) \"(\"\n SYMBOL: (1932..1938)\n IDENTIFIER: (1932..1938) \"equal?\"\n ATMOSPHERE: (1938..1939) \" \"\n QUOTED_DATUM: (1939..1944)\n QUOTE: (1939..1940) \"’\"\n FORM: (1940..1943)\n OPEN_PAREN: (1940..1941) \"(\"\n SYMBOL: (1941..1942)\n IDENTIFIER: (1941..1942) \"a\"\n CLOSE_PAREN: (1942..1943) \")\"\n ATMOSPHERE: (1943..1944) \" \"\n QUOTED_DATUM: (1944..1948)\n QUOTE: (1944..1945) \"’\"\n FORM: (1945..1948)\n OPEN_PAREN: (1945..1946) \"(\"\n SYMBOL: (1946..1947)\n IDENTIFIER: (1946..1947) \"a\"\n CLOSE_PAREN: (1947..1948) \")\"\n CLOSE_PAREN: (1948..1949) \")\"\n ATMOSPHERE: (1949..1950) \" \"\n ATMOSPHERE: (1950..1957) \"; -> #t\"\n ATMOSPHERE: (1957..1960) \"\n \"\n FORM: (1960..1989)\n OPEN_PAREN: (1960..1961) \"(\"\n SYMBOL: (1961..1967)\n IDENTIFIER: (1961..1967) \"equal?\"\n ATMOSPHERE: (1967..1968) \" \"\n QUOTED_DATUM: (1968..1978)\n QUOTE: (1968..1969) \"’\"\n FORM: (1969..1978)\n OPEN_PAREN: (1969..1970) \"(\"\n SYMBOL: (1970..1971)\n IDENTIFIER: (1970..1971) \"a\"\n ATMOSPHERE: (1971..1972) \" \"\n FORM: (1972..1975)\n OPEN_PAREN: (1972..1973) \"(\"\n SYMBOL: (1973..1974)\n IDENTIFIER: (1973..1974) \"b\"\n CLOSE_PAREN: (1974..1975) \")\"\n ATMOSPHERE: (1975..1976) \" \"\n SYMBOL: (1976..1977)\n IDENTIFIER: (1976..1977) \"c\"\n CLOSE_PAREN: (1977..1978) \")\"\n QUOTED_DATUM: (1978..1988)\n QUOTE: (1978..1979) \"’\"\n FORM: (1979..1988)\n OPEN_PAREN: (1979..1980) \"(\"\n SYMBOL: (1980..1981)\n IDENTIFIER: (1980..1981) \"a\"\n ATMOSPHERE: (1981..1982) \" \"\n FORM: (1982..1985)\n OPEN_PAREN: (1982..1983) \"(\"\n SYMBOL: (1983..1984)\n IDENTIFIER: (1983..1984) \"b\"\n CLOSE_PAREN: (1984..1985) \")\"\n ATMOSPHERE: (1985..1986) \" \"\n SYMBOL: (1986..1987)\n IDENTIFIER: (1986..1987) \"c\"\n CLOSE_PAREN: (1987..1988) \")\"\n CLOSE_PAREN: (1988..1989) \")\"\n ATMOSPHERE: (1989..1990) \" \"\n ATMOSPHERE: (1990..1997) \"; -> #t\"\n ATMOSPHERE: (1997..2000) \"\n \"\n FORM: (2000..2020)\n OPEN_PAREN: (2000..2001) \"(\"\n SYMBOL: (2001..2007)\n IDENTIFIER: (2001..2007) \"equal?\"\n ATMOSPHERE: (2007..2008) \" \"\n CONSTANT: (2008..2013)\n STRING: (2008..2013) \"\"abc\"\"\n ATMOSPHERE: (2013..2014) \" \"\n CONSTANT: (2014..2019)\n STRING: (2014..2019) \"\"abc\"\"\n CLOSE_PAREN: (2019..2020) \")\"\n ATMOSPHERE: (2020..2021) \" \"\n ATMOSPHERE: (2021..2028) \"; -> #t\"\n ATMOSPHERE: (2028..2031) \"\n \"\n FORM: (2031..2043)\n OPEN_PAREN: (2031..2032) \"(\"\n SYMBOL: (2032..2038)\n IDENTIFIER: (2032..2038) \"equal?\"\n ATMOSPHERE: (2038..2039) \" \"\n CONSTANT: (2039..2040)\n NUMBER: (2039..2040) \"2\"\n ATMOSPHERE: (2040..2041) \" \"\n CONSTANT: (2041..2042)\n NUMBER: (2041..2042) \"2\"\n CLOSE_PAREN: (2042..2043) \")\"\n ATMOSPHERE: (2043..2044) \" \"\n ATMOSPHERE: (2044..2051) \"; -> #t\"\n ATMOSPHERE: (2051..2054) \"\n \"\n FORM: (2054..2099)\n OPEN_PAREN: (2054..2055) \"(\"\n SYMBOL: (2055..2061)\n IDENTIFIER: (2055..2061) \"equal?\"\n ATMOSPHERE: (2061..2062) \" \"\n FORM: (2062..2080)\n OPEN_PAREN: (2062..2063) \"(\"\n SYMBOL: (2063..2074)\n IDENTIFIER: (2063..2074) \"make-vector\"\n ATMOSPHERE: (2074..2075) \" \"\n CONSTANT: (2075..2076)\n NUMBER: (2075..2076) \"5\"\n ATMOSPHERE: (2076..2077) \" \"\n QUOTED_DATUM: (2077..2079)\n QUOTE: (2077..2078) \"’\"\n SYMBOL: (2078..2079)\n IDENTIFIER: (2078..2079) \"a\"\n CLOSE_PAREN: (2079..2080) \")\"\n FORM: (2080..2098)\n OPEN_PAREN: (2080..2081) \"(\"\n SYMBOL: (2081..2092)\n IDENTIFIER: (2081..2092) \"make-vector\"\n ATMOSPHERE: (2092..2093) \" \"\n CONSTANT: (2093..2094)\n NUMBER: (2093..2094) \"5\"\n ATMOSPHERE: (2094..2095) \" \"\n QUOTED_DATUM: (2095..2097)\n QUOTE: (2095..2096) \"’\"\n SYMBOL: (2096..2097)\n IDENTIFIER: (2096..2097) \"a\"\n CLOSE_PAREN: (2097..2098) \")\"\n CLOSE_PAREN: (2098..2099) \")\"\n ATMOSPHERE: (2099..2100) \" \"\n ATMOSPHERE: (2100..2107) \"; -> #t\"\n ATMOSPHERE: (2107..2110) \"\n \"\n ATMOSPHERE: (2110..2149) \"; We don't support quote references yet\"\n ATMOSPHERE: (2149..2152) \"\n \"\n ATMOSPHERE: (2152..2205) \"; (equal? ’#1=(a b . #1#)’#2=(a b a b . #2#)) ; -> #t\"\n ATMOSPHERE: (2205..2208) \"\n \"\n FORM: (2208..2245)\n OPEN_PAREN: (2208..2209) \"(\"\n SYMBOL: (2209..2215)\n IDENTIFIER: (2209..2215) \"equal?\"\n ATMOSPHERE: (2215..2216) \" \"\n FORM: (2216..2230)\n OPEN_PAREN: (2216..2217) \"(\"\n SYMBOL: (2217..2223)\n IDENTIFIER: (2217..2223) \"lambda\"\n ATMOSPHERE: (2223..2224) \" \"\n FORM: (2224..2227)\n OPEN_PAREN: (2224..2225) \"(\"\n SYMBOL: (2225..2226)\n IDENTIFIER: (2225..2226) \"x\"\n CLOSE_PAREN: (2226..2227) \")\"\n ATMOSPHERE: (2227..2228) \" \"\n SYMBOL: (2228..2229)\n IDENTIFIER: (2228..2229) \"x\"\n CLOSE_PAREN: (2229..2230) \")\"\n FORM: (2230..2244)\n OPEN_PAREN: (2230..2231) \"(\"\n SYMBOL: (2231..2237)\n IDENTIFIER: (2231..2237) \"lambda\"\n ATMOSPHERE: (2237..2238) \" \"\n FORM: (2238..2241)\n OPEN_PAREN: (2238..2239) \"(\"\n SYMBOL: (2239..2240)\n IDENTIFIER: (2239..2240) \"y\"\n CLOSE_PAREN: (2240..2241) \")\"\n ATMOSPHERE: (2241..2242) \" \"\n SYMBOL: (2242..2243)\n IDENTIFIER: (2242..2243) \"y\"\n CLOSE_PAREN: (2243..2244) \")\"\n CLOSE_PAREN: (2244..2245) \")\"\n ATMOSPHERE: (2245..2246) \" \"\n ATMOSPHERE: (2246..2262) \"; -> unspecified\"\n ATMOSPHERE: (2262..2265) \"\n \"\n CLOSE_PAREN: (2265..2266) \")\"\n CLOSE_PAREN: (2266..2267) \")\"\n FORM: (2267..2276)\n OPEN_PAREN: (2267..2268) \"(\"\n SYMBOL: (2268..2275)\n IDENTIFIER: (2268..2275) \"newline\"\n CLOSE_PAREN: (2275..2276) \")\"\n ATMOSPHERE: (2276..2277) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_eratosthenes.scm.json b/test/Feersum.Tests/_snapshots/Parse_eratosthenes.scm.json
deleted file mode 100644
index e2615d6..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_eratosthenes.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..1136)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n ATMOSPHERE: (42..88) \";; Implementation of the Sieve of Eratosthenes\"\n ATMOSPHERE: (88..89) \"\n\"\n ATMOSPHERE: (89..143) \";; https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes\"\n ATMOSPHERE: (143..144) \"\n\"\n FORM: (144..1030)\n OPEN_PAREN: (144..145) \"(\"\n SYMBOL: (145..151)\n IDENTIFIER: (145..151) \"define\"\n ATMOSPHERE: (151..152) \" \"\n FORM: (152..168)\n OPEN_PAREN: (152..153) \"(\"\n SYMBOL: (153..165)\n IDENTIFIER: (153..165) \"eratosthenes\"\n ATMOSPHERE: (165..166) \" \"\n SYMBOL: (166..167)\n IDENTIFIER: (166..167) \"n\"\n CLOSE_PAREN: (167..168) \")\"\n ATMOSPHERE: (168..173) \"\n \"\n ATMOSPHERE: (173..223) \";; Mark multiples of the given prime in the vector\"\n ATMOSPHERE: (223..228) \"\n \"\n FORM: (228..552)\n OPEN_PAREN: (228..229) \"(\"\n SYMBOL: (229..235)\n IDENTIFIER: (229..235) \"define\"\n ATMOSPHERE: (235..236) \" \"\n FORM: (236..261)\n OPEN_PAREN: (236..237) \"(\"\n SYMBOL: (237..251)\n IDENTIFIER: (237..251) \"mark-multiples\"\n ATMOSPHERE: (251..252) \" \"\n SYMBOL: (252..253)\n IDENTIFIER: (252..253) \"p\"\n ATMOSPHERE: (253..254) \" \"\n SYMBOL: (254..260)\n IDENTIFIER: (254..260) \"marked\"\n CLOSE_PAREN: (260..261) \")\"\n ATMOSPHERE: (261..270) \"\n \"\n FORM: (270..506)\n OPEN_PAREN: (270..271) \"(\"\n SYMBOL: (271..277)\n IDENTIFIER: (271..277) \"define\"\n ATMOSPHERE: (277..278) \" \"\n FORM: (278..308)\n OPEN_PAREN: (278..279) \"(\"\n SYMBOL: (279..296)\n IDENTIFIER: (279..296) \"mark-multiples-at\"\n ATMOSPHERE: (296..297) \" \"\n SYMBOL: (297..298)\n IDENTIFIER: (297..298) \"p\"\n ATMOSPHERE: (298..299) \" \"\n SYMBOL: (299..300)\n IDENTIFIER: (299..300) \"m\"\n ATMOSPHERE: (300..301) \" \"\n SYMBOL: (301..307)\n IDENTIFIER: (301..307) \"marked\"\n CLOSE_PAREN: (307..308) \")\"\n ATMOSPHERE: (308..321) \"\n \"\n FORM: (321..505)\n OPEN_PAREN: (321..322) \"(\"\n SYMBOL: (322..324)\n IDENTIFIER: (322..324) \"if\"\n ATMOSPHERE: (324..325) \" \"\n FORM: (325..354)\n OPEN_PAREN: (325..326) \"(\"\n SYMBOL: (326..328)\n IDENTIFIER: (326..328) \">=\"\n ATMOSPHERE: (328..329) \" \"\n SYMBOL: (329..330)\n IDENTIFIER: (329..330) \"m\"\n ATMOSPHERE: (330..331) \" \"\n FORM: (331..353)\n OPEN_PAREN: (331..332) \"(\"\n SYMBOL: (332..345)\n IDENTIFIER: (332..345) \"vector-length\"\n ATMOSPHERE: (345..346) \" \"\n SYMBOL: (346..352)\n IDENTIFIER: (346..352) \"marked\"\n CLOSE_PAREN: (352..353) \")\"\n CLOSE_PAREN: (353..354) \")\"\n ATMOSPHERE: (354..371) \"\n \"\n SYMBOL: (371..377)\n IDENTIFIER: (371..377) \"marked\"\n ATMOSPHERE: (377..394) \"\n \"\n FORM: (394..504)\n OPEN_PAREN: (394..395) \"(\"\n SYMBOL: (395..400)\n IDENTIFIER: (395..400) \"begin\"\n ATMOSPHERE: (400..421) \"\n \"\n FORM: (421..446)\n OPEN_PAREN: (421..422) \"(\"\n SYMBOL: (422..433)\n IDENTIFIER: (422..433) \"vector-set!\"\n ATMOSPHERE: (433..434) \" \"\n SYMBOL: (434..440)\n IDENTIFIER: (434..440) \"marked\"\n ATMOSPHERE: (440..441) \" \"\n SYMBOL: (441..442)\n IDENTIFIER: (441..442) \"m\"\n ATMOSPHERE: (442..443) \" \"\n CONSTANT: (443..445)\n BOOLEAN: (443..445) \"#t\"\n CLOSE_PAREN: (445..446) \")\"\n ATMOSPHERE: (446..467) \"\n \"\n FORM: (467..503)\n OPEN_PAREN: (467..468) \"(\"\n SYMBOL: (468..485)\n IDENTIFIER: (468..485) \"mark-multiples-at\"\n ATMOSPHERE: (485..486) \" \"\n SYMBOL: (486..487)\n IDENTIFIER: (486..487) \"p\"\n ATMOSPHERE: (487..488) \" \"\n FORM: (488..495)\n OPEN_PAREN: (488..489) \"(\"\n SYMBOL: (489..490)\n IDENTIFIER: (489..490) \"+\"\n ATMOSPHERE: (490..491) \" \"\n SYMBOL: (491..492)\n IDENTIFIER: (491..492) \"m\"\n ATMOSPHERE: (492..493) \" \"\n SYMBOL: (493..494)\n IDENTIFIER: (493..494) \"p\"\n CLOSE_PAREN: (494..495) \")\"\n ATMOSPHERE: (495..496) \" \"\n SYMBOL: (496..502)\n IDENTIFIER: (496..502) \"marked\"\n CLOSE_PAREN: (502..503) \")\"\n CLOSE_PAREN: (503..504) \")\"\n CLOSE_PAREN: (504..505) \")\"\n CLOSE_PAREN: (505..506) \")\"\n ATMOSPHERE: (506..515) \"\n \"\n FORM: (515..551)\n OPEN_PAREN: (515..516) \"(\"\n SYMBOL: (516..533)\n IDENTIFIER: (516..533) \"mark-multiples-at\"\n ATMOSPHERE: (533..534) \" \"\n SYMBOL: (534..535)\n IDENTIFIER: (534..535) \"p\"\n ATMOSPHERE: (535..536) \" \"\n FORM: (536..543)\n OPEN_PAREN: (536..537) \"(\"\n SYMBOL: (537..538)\n IDENTIFIER: (537..538) \"*\"\n ATMOSPHERE: (538..539) \" \"\n SYMBOL: (539..540)\n IDENTIFIER: (539..540) \"p\"\n ATMOSPHERE: (540..541) \" \"\n SYMBOL: (541..542)\n IDENTIFIER: (541..542) \"p\"\n CLOSE_PAREN: (542..543) \")\"\n ATMOSPHERE: (543..544) \" \"\n SYMBOL: (544..550)\n IDENTIFIER: (544..550) \"marked\"\n CLOSE_PAREN: (550..551) \")\"\n CLOSE_PAREN: (551..552) \")\"\n ATMOSPHERE: (552..557) \"\n \"\n ATMOSPHERE: (557..613) \";; main prime sieve. Recursively marks multiples of each\"\n ATMOSPHERE: (613..618) \"\n \"\n ATMOSPHERE: (618..667) \";; prime and builds up a list of them as it goes.\"\n ATMOSPHERE: (667..672) \"\n \"\n FORM: (672..995)\n OPEN_PAREN: (672..673) \"(\"\n SYMBOL: (673..679)\n IDENTIFIER: (673..679) \"define\"\n ATMOSPHERE: (679..680) \" \"\n FORM: (680..701)\n OPEN_PAREN: (680..681) \"(\"\n SYMBOL: (681..684)\n IDENTIFIER: (681..684) \"siv\"\n ATMOSPHERE: (684..685) \" \"\n SYMBOL: (685..686)\n IDENTIFIER: (685..686) \"p\"\n ATMOSPHERE: (686..687) \" \"\n SYMBOL: (687..693)\n IDENTIFIER: (687..693) \"marked\"\n ATMOSPHERE: (693..694) \" \"\n SYMBOL: (694..700)\n IDENTIFIER: (694..700) \"primes\"\n CLOSE_PAREN: (700..701) \")\"\n ATMOSPHERE: (701..710) \"\n \"\n FORM: (710..994)\n OPEN_PAREN: (710..711) \"(\"\n SYMBOL: (711..713)\n IDENTIFIER: (711..713) \"if\"\n ATMOSPHERE: (713..714) \" \"\n FORM: (714..743)\n OPEN_PAREN: (714..715) \"(\"\n SYMBOL: (715..717)\n IDENTIFIER: (715..717) \">=\"\n ATMOSPHERE: (717..718) \" \"\n SYMBOL: (718..719)\n IDENTIFIER: (718..719) \"p\"\n ATMOSPHERE: (719..720) \" \"\n FORM: (720..742)\n OPEN_PAREN: (720..721) \"(\"\n SYMBOL: (721..734)\n IDENTIFIER: (721..734) \"vector-length\"\n ATMOSPHERE: (734..735) \" \"\n SYMBOL: (735..741)\n IDENTIFIER: (735..741) \"marked\"\n CLOSE_PAREN: (741..742) \")\"\n CLOSE_PAREN: (742..743) \")\"\n ATMOSPHERE: (743..756) \"\n \"\n SYMBOL: (756..762)\n IDENTIFIER: (756..762) \"primes\"\n ATMOSPHERE: (762..775) \"\n \"\n ATMOSPHERE: (775..838) \";; If the item is marked, it is a multiple of some other prime.\"\n ATMOSPHERE: (838..851) \"\n \"\n FORM: (851..993)\n OPEN_PAREN: (851..852) \"(\"\n SYMBOL: (852..854)\n IDENTIFIER: (852..854) \"if\"\n ATMOSPHERE: (854..855) \" \"\n FORM: (855..876)\n OPEN_PAREN: (855..856) \"(\"\n SYMBOL: (856..866)\n IDENTIFIER: (856..866) \"vector-ref\"\n ATMOSPHERE: (866..867) \" \"\n SYMBOL: (867..873)\n IDENTIFIER: (867..873) \"marked\"\n ATMOSPHERE: (873..874) \" \"\n SYMBOL: (874..875)\n IDENTIFIER: (874..875) \"p\"\n CLOSE_PAREN: (875..876) \")\"\n ATMOSPHERE: (876..893) \"\n \"\n FORM: (893..920)\n OPEN_PAREN: (893..894) \"(\"\n SYMBOL: (894..897)\n IDENTIFIER: (894..897) \"siv\"\n ATMOSPHERE: (897..898) \" \"\n FORM: (898..905)\n OPEN_PAREN: (898..899) \"(\"\n SYMBOL: (899..900)\n IDENTIFIER: (899..900) \"+\"\n ATMOSPHERE: (900..901) \" \"\n CONSTANT: (901..902)\n NUMBER: (901..902) \"1\"\n ATMOSPHERE: (902..903) \" \"\n SYMBOL: (903..904)\n IDENTIFIER: (903..904) \"p\"\n CLOSE_PAREN: (904..905) \")\"\n ATMOSPHERE: (905..906) \" \"\n SYMBOL: (906..912)\n IDENTIFIER: (906..912) \"marked\"\n ATMOSPHERE: (912..913) \" \"\n SYMBOL: (913..919)\n IDENTIFIER: (913..919) \"primes\"\n CLOSE_PAREN: (919..920) \")\"\n ATMOSPHERE: (920..937) \"\n \"\n FORM: (937..992)\n OPEN_PAREN: (937..938) \"(\"\n SYMBOL: (938..941)\n IDENTIFIER: (938..941) \"siv\"\n ATMOSPHERE: (941..942) \" \"\n FORM: (942..949)\n OPEN_PAREN: (942..943) \"(\"\n SYMBOL: (943..944)\n IDENTIFIER: (943..944) \"+\"\n ATMOSPHERE: (944..945) \" \"\n CONSTANT: (945..946)\n NUMBER: (945..946) \"1\"\n ATMOSPHERE: (946..947) \" \"\n SYMBOL: (947..948)\n IDENTIFIER: (947..948) \"p\"\n CLOSE_PAREN: (948..949) \")\"\n ATMOSPHERE: (949..950) \" \"\n FORM: (950..975)\n OPEN_PAREN: (950..951) \"(\"\n SYMBOL: (951..965)\n IDENTIFIER: (951..965) \"mark-multiples\"\n ATMOSPHERE: (965..966) \" \"\n SYMBOL: (966..967)\n IDENTIFIER: (966..967) \"p\"\n ATMOSPHERE: (967..968) \" \"\n SYMBOL: (968..974)\n IDENTIFIER: (968..974) \"marked\"\n CLOSE_PAREN: (974..975) \")\"\n ATMOSPHERE: (975..976) \" \"\n FORM: (976..991)\n OPEN_PAREN: (976..977) \"(\"\n SYMBOL: (977..981)\n IDENTIFIER: (977..981) \"cons\"\n ATMOSPHERE: (981..982) \" \"\n SYMBOL: (982..983)\n IDENTIFIER: (982..983) \"p\"\n ATMOSPHERE: (983..984) \" \"\n SYMBOL: (984..990)\n IDENTIFIER: (984..990) \"primes\"\n CLOSE_PAREN: (990..991) \")\"\n CLOSE_PAREN: (991..992) \")\"\n CLOSE_PAREN: (992..993) \")\"\n CLOSE_PAREN: (993..994) \")\"\n CLOSE_PAREN: (994..995) \")\"\n ATMOSPHERE: (995..1000) \"\n \"\n FORM: (1000..1029)\n OPEN_PAREN: (1000..1001) \"(\"\n SYMBOL: (1001..1004)\n IDENTIFIER: (1001..1004) \"siv\"\n ATMOSPHERE: (1004..1005) \" \"\n CONSTANT: (1005..1006)\n NUMBER: (1005..1006) \"2\"\n ATMOSPHERE: (1006..1007) \" \"\n FORM: (1007..1025)\n OPEN_PAREN: (1007..1008) \"(\"\n SYMBOL: (1008..1019)\n IDENTIFIER: (1008..1019) \"make-vector\"\n ATMOSPHERE: (1019..1020) \" \"\n SYMBOL: (1020..1021)\n IDENTIFIER: (1020..1021) \"n\"\n ATMOSPHERE: (1021..1022) \" \"\n CONSTANT: (1022..1024)\n BOOLEAN: (1022..1024) \"#f\"\n CLOSE_PAREN: (1024..1025) \")\"\n ATMOSPHERE: (1025..1026) \" \"\n FORM: (1026..1028)\n OPEN_PAREN: (1026..1027) \"(\"\n CLOSE_PAREN: (1027..1028) \")\"\n CLOSE_PAREN: (1028..1029) \")\"\n CLOSE_PAREN: (1029..1030) \")\"\n ATMOSPHERE: (1030..1032) \"\n\n\"\n ATMOSPHERE: (1032..1069) \";; ;; Display the first 10,000 primes\"\n ATMOSPHERE: (1069..1070) \"\n\"\n ATMOSPHERE: (1070..1104) \";; (display (eratosthenes 104730))\"\n ATMOSPHERE: (1104..1105) \"\n\"\n FORM: (1105..1135)\n OPEN_PAREN: (1105..1106) \"(\"\n SYMBOL: (1106..1113)\n IDENTIFIER: (1106..1113) \"display\"\n ATMOSPHERE: (1113..1114) \" \"\n FORM: (1114..1134)\n OPEN_PAREN: (1114..1115) \"(\"\n SYMBOL: (1115..1127)\n IDENTIFIER: (1115..1127) \"eratosthenes\"\n ATMOSPHERE: (1127..1128) \" \"\n CONSTANT: (1128..1133)\n NUMBER: (1128..1133) \"10000\"\n CLOSE_PAREN: (1133..1134) \")\"\n CLOSE_PAREN: (1134..1135) \")\"\n ATMOSPHERE: (1135..1136) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_fact.scm.json b/test/Feersum.Tests/_snapshots/Parse_fact.scm.json
deleted file mode 100644
index d961ff7..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_fact.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..143)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..115)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..49)\n IDENTIFIER: (43..49) \"define\"\n ATMOSPHERE: (49..50) \" \"\n FORM: (50..58)\n OPEN_PAREN: (50..51) \"(\"\n SYMBOL: (51..55)\n IDENTIFIER: (51..55) \"fact\"\n ATMOSPHERE: (55..56) \" \"\n SYMBOL: (56..57)\n IDENTIFIER: (56..57) \"n\"\n CLOSE_PAREN: (57..58) \")\"\n ATMOSPHERE: (58..63) \"\n \"\n FORM: (63..114)\n OPEN_PAREN: (63..64) \"(\"\n SYMBOL: (64..66)\n IDENTIFIER: (64..66) \"if\"\n ATMOSPHERE: (66..67) \" \"\n FORM: (67..74)\n OPEN_PAREN: (67..68) \"(\"\n SYMBOL: (68..69)\n IDENTIFIER: (68..69) \"=\"\n ATMOSPHERE: (69..70) \" \"\n SYMBOL: (70..71)\n IDENTIFIER: (70..71) \"n\"\n ATMOSPHERE: (71..72) \" \"\n CONSTANT: (72..73)\n NUMBER: (72..73) \"0\"\n CLOSE_PAREN: (73..74) \")\"\n ATMOSPHERE: (74..83) \"\n \"\n CONSTANT: (83..84)\n NUMBER: (83..84) \"1\"\n ATMOSPHERE: (84..93) \"\n \"\n FORM: (93..113)\n OPEN_PAREN: (93..94) \"(\"\n SYMBOL: (94..95)\n IDENTIFIER: (94..95) \"*\"\n ATMOSPHERE: (95..96) \" \"\n SYMBOL: (96..97)\n IDENTIFIER: (96..97) \"n\"\n ATMOSPHERE: (97..98) \" \"\n FORM: (98..112)\n OPEN_PAREN: (98..99) \"(\"\n SYMBOL: (99..103)\n IDENTIFIER: (99..103) \"fact\"\n ATMOSPHERE: (103..104) \" \"\n FORM: (104..111)\n OPEN_PAREN: (104..105) \"(\"\n SYMBOL: (105..106)\n IDENTIFIER: (105..106) \"-\"\n ATMOSPHERE: (106..107) \" \"\n SYMBOL: (107..108)\n IDENTIFIER: (107..108) \"n\"\n ATMOSPHERE: (108..109) \" \"\n CONSTANT: (109..110)\n NUMBER: (109..110) \"1\"\n CLOSE_PAREN: (110..111) \")\"\n CLOSE_PAREN: (111..112) \")\"\n CLOSE_PAREN: (112..113) \")\"\n CLOSE_PAREN: (113..114) \")\"\n CLOSE_PAREN: (114..115) \")\"\n ATMOSPHERE: (115..117) \"\n\n\"\n FORM: (117..135)\n OPEN_PAREN: (117..118) \"(\"\n SYMBOL: (118..125)\n IDENTIFIER: (118..125) \"display\"\n ATMOSPHERE: (125..126) \" \"\n FORM: (126..134)\n OPEN_PAREN: (126..127) \"(\"\n SYMBOL: (127..131)\n IDENTIFIER: (127..131) \"fact\"\n ATMOSPHERE: (131..132) \" \"\n CONSTANT: (132..133)\n NUMBER: (132..133) \"4\"\n CLOSE_PAREN: (133..134) \")\"\n CLOSE_PAREN: (134..135) \")\"\n ATMOSPHERE: (135..136) \" \"\n ATMOSPHERE: (136..143) \"; => 24\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_fail/3.scm.json b/test/Feersum.Tests/_snapshots/Parse_fail/3.scm.json
deleted file mode 100644
index 6db5571..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_fail/3.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..133)\n ATMOSPHERE: (0..12) \"; expectfail\"\n ATMOSPHERE: (12..13) \"\n\"\n FORM: (13..25)\n OPEN_PAREN: (13..14) \"(\"\n SYMBOL: (14..20)\n IDENTIFIER: (14..20) \"define\"\n ATMOSPHERE: (20..21) \" \"\n SYMBOL: (21..22)\n IDENTIFIER: (21..22) \"n\"\n ATMOSPHERE: (22..23) \" \"\n CONSTANT: (23..24)\n NUMBER: (23..24) \"1\"\n CLOSE_PAREN: (24..25) \")\"\n ATMOSPHERE: (25..26) \"\n\"\n FORM: (26..133)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"lambda\"\n ATMOSPHERE: (33..34) \" \"\n FORM: (34..36)\n OPEN_PAREN: (34..35) \"(\"\n CLOSE_PAREN: (35..36) \")\"\n ATMOSPHERE: (36..45) \"\n \"\n FORM: (45..132)\n OPEN_PAREN: (45..46) \"(\"\n SYMBOL: (46..50)\n IDENTIFIER: (46..50) \"set!\"\n ATMOSPHERE: (50..51) \" \"\n SYMBOL: (51..52)\n IDENTIFIER: (51..52) \"n\"\n ATMOSPHERE: (52..53) \" \"\n FORM: (53..60)\n OPEN_PAREN: (53..54) \"(\"\n SYMBOL: (54..55)\n IDENTIFIER: (54..55) \"+\"\n ATMOSPHERE: (55..56) \" \"\n CONSTANT: (56..57)\n NUMBER: (56..57) \"1\"\n ATMOSPHERE: (57..58) \" \"\n SYMBOL: (58..59)\n IDENTIFIER: (58..59) \"n\"\n CLOSE_PAREN: (59..60) \")\"\n ATMOSPHERE: (60..61) \" \"\n ATMOSPHERE: (61..121) \"; note the `)` is on the next line. This `set!` is malformed\"\n ATMOSPHERE: (121..130) \"\n \"\n SYMBOL: (130..131)\n IDENTIFIER: (130..131) \"n\"\n CLOSE_PAREN: (131..132) \")\"\n CLOSE_PAREN: (132..133) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_fail/bad-imports.scm.json b/test/Feersum.Tests/_snapshots/Parse_fail/bad-imports.scm.json
deleted file mode 100644
index 4e23512..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_fail/bad-imports.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..112)\n FORM: (0..29)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..28)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..12)\n IDENTIFIER: (9..12) \"not\"\n ATMOSPHERE: (12..13) \" \"\n SYMBOL: (13..14)\n IDENTIFIER: (13..14) \"a\"\n ATMOSPHERE: (14..15) \" \"\n SYMBOL: (15..19)\n IDENTIFIER: (15..19) \"real\"\n ATMOSPHERE: (19..20) \" \"\n SYMBOL: (20..27)\n IDENTIFIER: (20..27) \"library\"\n CLOSE_PAREN: (27..28) \")\"\n CLOSE_PAREN: (28..29) \")\"\n ATMOSPHERE: (29..30) \"\n\"\n FORM: (30..47)\n OPEN_PAREN: (30..31) \"(\"\n SYMBOL: (31..37)\n IDENTIFIER: (31..37) \"import\"\n ATMOSPHERE: (37..38) \" \"\n SYMBOL: (38..46)\n IDENTIFIER: (38..46) \"badthing\"\n CLOSE_PAREN: (46..47) \")\"\n ATMOSPHERE: (47..48) \"\n\"\n FORM: (48..112)\n OPEN_PAREN: (48..49) \"(\"\n SYMBOL: (49..63)\n IDENTIFIER: (49..63) \"define-library\"\n ATMOSPHERE: (63..64) \" \"\n FORM: (64..70)\n OPEN_PAREN: (64..65) \"(\"\n SYMBOL: (65..69)\n IDENTIFIER: (65..69) \"test\"\n CLOSE_PAREN: (69..70) \")\"\n ATMOSPHERE: (70..75) \"\n \"\n FORM: (75..111)\n OPEN_PAREN: (75..76) \"(\"\n SYMBOL: (76..82)\n IDENTIFIER: (76..82) \"import\"\n ATMOSPHERE: (82..83) \" \"\n FORM: (83..110)\n OPEN_PAREN: (83..84) \"(\"\n SYMBOL: (84..88)\n IDENTIFIER: (84..88) \"only\"\n ATMOSPHERE: (88..89) \" \"\n FORM: (89..103)\n OPEN_PAREN: (89..90) \"(\"\n SYMBOL: (90..94)\n IDENTIFIER: (90..94) \"test\"\n ATMOSPHERE: (94..95) \" \"\n SYMBOL: (95..102)\n IDENTIFIER: (95..102) \"greeter\"\n CLOSE_PAREN: (102..103) \")\"\n ATMOSPHERE: (103..104) \" \"\n SYMBOL: (104..109)\n IDENTIFIER: (104..109) \"greet\"\n CLOSE_PAREN: (109..110) \")\"\n CLOSE_PAREN: (110..111) \")\"\n CLOSE_PAREN: (111..112) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_fail/bad-letrecs.scm.json b/test/Feersum.Tests/_snapshots/Parse_fail/bad-letrecs.scm.json
deleted file mode 100644
index a62e520..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_fail/bad-letrecs.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..389)\n FORM: (0..22)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n CLOSE_PAREN: (21..22) \")\"\n ATMOSPHERE: (22..24) \"\n\n\"\n FORM: (24..246)\n OPEN_PAREN: (24..25) \"(\"\n SYMBOL: (25..31)\n IDENTIFIER: (25..31) \"letrec\"\n ATMOSPHERE: (31..32) \" \"\n FORM: (32..124)\n OPEN_PAREN: (32..33) \"(\"\n FORM: (33..53)\n OPEN_PAREN: (33..34) \"(\"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"first\"\n ATMOSPHERE: (39..40) \" \"\n FORM: (40..52)\n OPEN_PAREN: (40..41) \"(\"\n SYMBOL: (41..42)\n IDENTIFIER: (41..42) \"+\"\n ATMOSPHERE: (42..43) \" \"\n SYMBOL: (43..49)\n IDENTIFIER: (43..49) \"second\"\n ATMOSPHERE: (49..50) \" \"\n CONSTANT: (50..51)\n NUMBER: (50..51) \"1\"\n CLOSE_PAREN: (51..52) \")\"\n CLOSE_PAREN: (52..53) \")\"\n ATMOSPHERE: (53..54) \" \"\n ATMOSPHERE: (54..104) \"; Can't reference second here, it isn't intialised\"\n ATMOSPHERE: (104..109) \"\n \"\n FORM: (109..123)\n OPEN_PAREN: (109..110) \"(\"\n SYMBOL: (110..116)\n IDENTIFIER: (110..116) \"second\"\n ATMOSPHERE: (116..117) \" \"\n SYMBOL: (117..122)\n IDENTIFIER: (117..122) \"first\"\n CLOSE_PAREN: (122..123) \")\"\n CLOSE_PAREN: (123..124) \")\"\n ATMOSPHERE: (124..135) \" \"\n ATMOSPHERE: (135..179) \"; Can't reference first here, initialisation\"\n ATMOSPHERE: (179..210) \"\n \"\n ATMOSPHERE: (210..234) \"; order isn't specified.\"\n ATMOSPHERE: (234..239) \"\n \"\n SYMBOL: (239..245)\n IDENTIFIER: (239..245) \"second\"\n CLOSE_PAREN: (245..246) \")\"\n ATMOSPHERE: (246..247) \"\n\"\n FORM: (247..388)\n OPEN_PAREN: (247..248) \"(\"\n SYMBOL: (248..255)\n IDENTIFIER: (248..255) \"letrec*\"\n ATMOSPHERE: (255..256) \" \"\n FORM: (256..340)\n OPEN_PAREN: (256..257) \"(\"\n FORM: (257..279)\n OPEN_PAREN: (257..258) \"(\"\n SYMBOL: (258..263)\n IDENTIFIER: (258..263) \"first\"\n ATMOSPHERE: (263..264) \" \"\n FORM: (264..278)\n OPEN_PAREN: (264..265) \"(\"\n SYMBOL: (265..266)\n IDENTIFIER: (265..266) \"-\"\n ATMOSPHERE: (266..267) \" \"\n SYMBOL: (267..273)\n IDENTIFIER: (267..273) \"second\"\n ATMOSPHERE: (273..274) \" \"\n CONSTANT: (274..277)\n NUMBER: (274..277) \"100\"\n CLOSE_PAREN: (277..278) \")\"\n CLOSE_PAREN: (278..279) \")\"\n ATMOSPHERE: (279..280) \" \"\n ATMOSPHERE: (280..320) \"; Can't referenc second, not initialised\"\n ATMOSPHERE: (320..325) \"\n \"\n FORM: (325..339)\n OPEN_PAREN: (325..326) \"(\"\n SYMBOL: (326..332)\n IDENTIFIER: (326..332) \"second\"\n ATMOSPHERE: (332..333) \" \"\n SYMBOL: (333..338)\n IDENTIFIER: (333..338) \"first\"\n CLOSE_PAREN: (338..339) \")\"\n CLOSE_PAREN: (339..340) \")\"\n ATMOSPHERE: (340..354) \" \"\n ATMOSPHERE: (354..376) \"; This is actually OK.\"\n ATMOSPHERE: (376..381) \"\n \"\n SYMBOL: (381..387)\n IDENTIFIER: (381..387) \"second\"\n CLOSE_PAREN: (387..388) \")\"\n ATMOSPHERE: (388..389) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_fail/bad-library-names-parsefail.scm.json b/test/Feersum.Tests/_snapshots/Parse_fail/bad-library-names-parsefail.scm.json
deleted file mode 100644
index eab6581..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_fail/bad-library-names-parsefail.scm.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "Diagnostics": [
- {
- "Kind": {
- "Level": {
- "Case": "Error"
- },
- "Code": 10,
- "Title": "Parse error"
- },
- "Location": {
- "Case": "Point",
- "Fields": [
- {
- "Source": "fail/bad-library-names-parsefail.scm",
- "Line": 2,
- "Col": 1
- }
- ]
- },
- "Message": "Expected expression after `.`"
- }
- ],
- "Root": "PROGRAM: (0..19)\n FORM: (0..18)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..15)\n IDENTIFIER: (1..15) \"define-library\"\n ATMOSPHERE: (15..16) \" \"\n DOTTED_TAIL: (16..17)\n DOT: (16..17) \".\"\n CLOSE_PAREN: (17..18) \")\"\n ATMOSPHERE: (18..19) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_fail/bad-library-names.scm.json b/test/Feersum.Tests/_snapshots/Parse_fail/bad-library-names.scm.json
deleted file mode 100644
index a35cc0a..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_fail/bad-library-names.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..189)\n FORM: (0..24)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..15)\n IDENTIFIER: (1..15) \"define-library\"\n ATMOSPHERE: (15..16) \" \"\n CONSTANT: (16..23)\n STRING: (16..23) \"\"hello\"\"\n CLOSE_PAREN: (23..24) \")\"\n ATMOSPHERE: (24..25) \"\n\"\n FORM: (25..64)\n OPEN_PAREN: (25..26) \"(\"\n SYMBOL: (26..40)\n IDENTIFIER: (26..40) \"define-library\"\n ATMOSPHERE: (40..41) \" \"\n FORM: (41..63)\n OPEN_PAREN: (41..42) \"(\"\n SYMBOL: (42..48)\n IDENTIFIER: (42..48) \"scheme\"\n ATMOSPHERE: (48..49) \" \"\n SYMBOL: (49..62)\n IDENTIFIER: (49..62) \"|silly'chars|\"\n CLOSE_PAREN: (62..63) \")\"\n CLOSE_PAREN: (63..64) \")\"\n ATMOSPHERE: (64..65) \"\n\"\n FORM: (65..91)\n OPEN_PAREN: (65..66) \"(\"\n SYMBOL: (66..80)\n IDENTIFIER: (66..80) \"define-library\"\n ATMOSPHERE: (80..81) \" \"\n FORM: (81..90)\n OPEN_PAREN: (81..82) \"(\"\n SYMBOL: (82..86)\n IDENTIFIER: (82..86) \"some\"\n ATMOSPHERE: (86..87) \" \"\n QUOTED_DATUM: (87..89)\n QUOTE: (87..88) \"'\"\n SYMBOL: (88..89)\n IDENTIFIER: (88..89) \"t\"\n CLOSE_PAREN: (89..90) \")\"\n CLOSE_PAREN: (90..91) \")\"\n ATMOSPHERE: (91..92) \"\n\"\n FORM: (92..124)\n OPEN_PAREN: (92..93) \"(\"\n SYMBOL: (93..107)\n IDENTIFIER: (93..107) \"define-library\"\n ATMOSPHERE: (107..108) \" \"\n FORM: (108..123)\n OPEN_PAREN: (108..109) \"(\"\n SYMBOL: (109..113)\n IDENTIFIER: (109..113) \"srfi\"\n ATMOSPHERE: (113..114) \" \"\n SYMBOL: (114..119)\n IDENTIFIER: (114..119) \"trust\"\n ATMOSPHERE: (119..120) \" \"\n SYMBOL: (120..122)\n IDENTIFIER: (120..122) \"me\"\n CLOSE_PAREN: (122..123) \")\"\n CLOSE_PAREN: (123..124) \")\"\n ATMOSPHERE: (124..125) \"\n\"\n FORM: (125..188)\n OPEN_PAREN: (125..126) \"(\"\n SYMBOL: (126..140)\n IDENTIFIER: (126..140) \"define-library\"\n ATMOSPHERE: (140..141) \" \"\n FORM: (141..157)\n OPEN_PAREN: (141..142) \"(\"\n SYMBOL: (142..149)\n IDENTIFIER: (142..149) \"missing\"\n ATMOSPHERE: (149..150) \" \"\n SYMBOL: (150..156)\n IDENTIFIER: (150..156) \"export\"\n CLOSE_PAREN: (156..157) \")\"\n ATMOSPHERE: (157..162) \"\n \"\n FORM: (162..187)\n OPEN_PAREN: (162..163) \"(\"\n SYMBOL: (163..169)\n IDENTIFIER: (163..169) \"export\"\n ATMOSPHERE: (169..170) \" \"\n SYMBOL: (170..172)\n IDENTIFIER: (170..172) \"we\"\n ATMOSPHERE: (172..173) \" \"\n SYMBOL: (173..180)\n IDENTIFIER: (173..180) \"|don't|\"\n ATMOSPHERE: (180..181) \" \"\n SYMBOL: (181..186)\n IDENTIFIER: (181..186) \"exist\"\n CLOSE_PAREN: (186..187) \")\"\n CLOSE_PAREN: (187..188) \")\"\n ATMOSPHERE: (188..189) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_fail/bad-strings-and-idents.scm.json b/test/Feersum.Tests/_snapshots/Parse_fail/bad-strings-and-idents.scm.json
deleted file mode 100644
index fd23c77..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_fail/bad-strings-and-idents.scm.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "Diagnostics": [
- {
- "Kind": {
- "Level": {
- "Case": "Error"
- },
- "Code": 10,
- "Title": "Parse error"
- },
- "Location": {
- "Case": "Point",
- "Fields": [
- {
- "Source": "fail/bad-strings-and-idents.scm",
- "Line": 11,
- "Col": 1
- }
- ]
- },
- "Message": "Unexpected token Error '|\\x\n'"
- }
- ],
- "Root": "PROGRAM: (0..193)\n ATMOSPHERE: (0..76) \";; FIXME: Almost none of these generate parser errors any more. We should be\"\n ATMOSPHERE: (76..77) \"\n\"\n ATMOSPHERE: (77..141) \";; more strict about what we accept as strings or idents.\"\n ATMOSPHERE: (141..143) \"\n\n\"\n CONSTANT: (143..148)\n STRING: (143..148) \"\"\\x;\"\"\n ATMOSPHERE: (148..149) \"\n\"\n CONSTANT: (149..155)\n STRING: (149..155) \"\"\\x20\"\"\n ATMOSPHERE: (155..156) \"\n\"\n CONSTANT: (156..171)\n STRING: (156..171) \"\"\\x10000;\\\"\n'|\"\"\n ATMOSPHERE: (171..172) \"\n\"\n CONSTANT: (172..180)\n CHARACTER: (172..180) \"#\\x12345\"\n ATMOSPHERE: (180..181) \"\n\"\n QUOTED_DATUM: (181..188)\n QUOTE: (181..182) \"'\"\n SYMBOL: (182..187)\n IDENTIFIER: (182..187) \"|\\x;|\"\n ATMOSPHERE: (187..188) \"\n\"\n QUOTED_DATUM: (188..193)\n QUOTE: (188..189) \"'\"\n CONSTANT: (189..193)\n ERROR: (189..193) \"|\\x\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_fail/macrofails.scm.json b/test/Feersum.Tests/_snapshots/Parse_fail/macrofails.scm.json
deleted file mode 100644
index 8d5d716..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_fail/macrofails.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..426)\n FORM: (0..22)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n CLOSE_PAREN: (21..22) \")\"\n ATMOSPHERE: (22..23) \"\n\"\n FORM: (23..147)\n OPEN_PAREN: (23..24) \"(\"\n SYMBOL: (24..37)\n IDENTIFIER: (24..37) \"define-syntax\"\n ATMOSPHERE: (37..38) \" \"\n SYMBOL: (38..48)\n IDENTIFIER: (38..48) \"test-macro\"\n ATMOSPHERE: (48..53) \"\n \"\n FORM: (53..146)\n OPEN_PAREN: (53..54) \"(\"\n SYMBOL: (54..66)\n IDENTIFIER: (54..66) \"syntax-rules\"\n ATMOSPHERE: (66..67) \" \"\n SYMBOL: (67..70)\n IDENTIFIER: (67..70) \":::\"\n ATMOSPHERE: (70..71) \" \"\n FORM: (71..77)\n OPEN_PAREN: (71..72) \"(\"\n SYMBOL: (72..76)\n IDENTIFIER: (72..76) \"test\"\n CLOSE_PAREN: (76..77) \")\"\n ATMOSPHERE: (77..86) \"\n \"\n FORM: (86..97)\n OPEN_PAREN: (86..87) \"(\"\n FORM: (87..90)\n OPEN_PAREN: (87..88) \"(\"\n SYMBOL: (88..89)\n IDENTIFIER: (88..89) \"_\"\n CLOSE_PAREN: (89..90) \")\"\n ATMOSPHERE: (90..91) \" \"\n QUOTED_DATUM: (91..96)\n QUOTE: (91..92) \"'\"\n SYMBOL: (92..96)\n IDENTIFIER: (92..96) \"nowt\"\n CLOSE_PAREN: (96..97) \")\"\n ATMOSPHERE: (97..106) \"\n \"\n FORM: (106..145)\n OPEN_PAREN: (106..107) \"(\"\n FORM: (107..126)\n OPEN_PAREN: (107..108) \"(\"\n SYMBOL: (108..109)\n IDENTIFIER: (108..109) \"_\"\n ATMOSPHERE: (109..110) \" \"\n SYMBOL: (110..114)\n IDENTIFIER: (110..114) \"test\"\n ATMOSPHERE: (114..115) \" \"\n SYMBOL: (115..121)\n IDENTIFIER: (115..121) \"things\"\n ATMOSPHERE: (121..122) \" \"\n SYMBOL: (122..125)\n IDENTIFIER: (122..125) \":::\"\n CLOSE_PAREN: (125..126) \")\"\n ATMOSPHERE: (126..127) \" \"\n FORM: (127..144)\n OPEN_PAREN: (127..128) \"(\"\n SYMBOL: (128..132)\n IDENTIFIER: (128..132) \"list\"\n ATMOSPHERE: (132..133) \" \"\n SYMBOL: (133..139)\n IDENTIFIER: (133..139) \"things\"\n ATMOSPHERE: (139..140) \" \"\n SYMBOL: (140..143)\n IDENTIFIER: (140..143) \":::\"\n CLOSE_PAREN: (143..144) \")\"\n CLOSE_PAREN: (144..145) \")\"\n CLOSE_PAREN: (145..146) \")\"\n CLOSE_PAREN: (146..147) \")\"\n ATMOSPHERE: (147..149) \"\n\n\"\n FORM: (149..161)\n OPEN_PAREN: (149..150) \"(\"\n SYMBOL: (150..160)\n IDENTIFIER: (150..160) \"test-macro\"\n CLOSE_PAREN: (160..161) \")\"\n ATMOSPHERE: (161..162) \"\n\"\n FORM: (162..185)\n OPEN_PAREN: (162..163) \"(\"\n SYMBOL: (163..173)\n IDENTIFIER: (163..173) \"test-macro\"\n ATMOSPHERE: (173..174) \" \"\n SYMBOL: (174..178)\n IDENTIFIER: (174..178) \"test\"\n ATMOSPHERE: (178..179) \" \"\n CONSTANT: (179..180)\n NUMBER: (179..180) \"1\"\n ATMOSPHERE: (180..181) \" \"\n CONSTANT: (181..182)\n NUMBER: (181..182) \"2\"\n ATMOSPHERE: (182..183) \" \"\n CONSTANT: (183..184)\n NUMBER: (183..184) \"3\"\n CLOSE_PAREN: (184..185) \")\"\n ATMOSPHERE: (185..186) \"\n\"\n FORM: (186..212)\n OPEN_PAREN: (186..187) \"(\"\n SYMBOL: (187..197)\n IDENTIFIER: (187..197) \"test-macro\"\n ATMOSPHERE: (197..198) \" \"\n SYMBOL: (198..202)\n IDENTIFIER: (198..202) \"fail\"\n ATMOSPHERE: (202..203) \" \"\n SYMBOL: (203..207)\n IDENTIFIER: (203..207) \"this\"\n ATMOSPHERE: (207..208) \" \"\n SYMBOL: (208..211)\n IDENTIFIER: (208..211) \"one\"\n CLOSE_PAREN: (211..212) \")\"\n ATMOSPHERE: (212..214) \"\n\n\"\n FORM: (214..426)\n OPEN_PAREN: (214..215) \"(\"\n SYMBOL: (215..225)\n IDENTIFIER: (215..225) \"let-syntax\"\n ATMOSPHERE: (225..230) \"\n \"\n FORM: (230..405)\n OPEN_PAREN: (230..231) \"(\"\n FORM: (231..404)\n OPEN_PAREN: (231..232) \"(\"\n SYMBOL: (232..239)\n IDENTIFIER: (232..239) \"another\"\n ATMOSPHERE: (239..240) \" \"\n FORM: (240..403)\n OPEN_PAREN: (240..241) \"(\"\n SYMBOL: (241..253)\n IDENTIFIER: (241..253) \"syntax-rules\"\n ATMOSPHERE: (253..254) \" \"\n FORM: (254..256)\n OPEN_PAREN: (254..255) \"(\"\n CLOSE_PAREN: (255..256) \")\"\n ATMOSPHERE: (256..265) \"\n \"\n FORM: (265..285)\n OPEN_PAREN: (265..266) \"(\"\n FORM: (266..275)\n OPEN_PAREN: (266..267) \"(\"\n SYMBOL: (267..268)\n IDENTIFIER: (267..268) \"_\"\n ATMOSPHERE: (268..269) \" \"\n SYMBOL: (269..270)\n IDENTIFIER: (269..270) \"a\"\n ATMOSPHERE: (270..271) \" \"\n SYMBOL: (271..274)\n IDENTIFIER: (271..274) \"...\"\n CLOSE_PAREN: (274..275) \")\"\n ATMOSPHERE: (275..276) \" \"\n QUOTED_DATUM: (276..284)\n QUOTE: (276..277) \"'\"\n FORM: (277..284)\n OPEN_PAREN: (277..278) \"(\"\n SYMBOL: (278..279)\n IDENTIFIER: (278..279) \"a\"\n ATMOSPHERE: (279..280) \" \"\n SYMBOL: (280..283)\n IDENTIFIER: (280..283) \"...\"\n CLOSE_PAREN: (283..284) \")\"\n CLOSE_PAREN: (284..285) \")\"\n ATMOSPHERE: (285..294) \"\n \"\n ATMOSPHERE: (294..327) \"; we expect a diagnostic for both\"\n ATMOSPHERE: (327..336) \"\n \"\n ATMOSPHERE: (336..366) \"; these malformed dotted forms\"\n ATMOSPHERE: (366..375) \"\n \"\n FORM: (375..393)\n OPEN_PAREN: (375..376) \"(\"\n FORM: (376..381)\n OPEN_PAREN: (376..377) \"(\"\n DOTTED_TAIL: (377..380)\n DOT: (377..378) \".\"\n ATMOSPHERE: (378..379) \" \"\n SYMBOL: (379..380)\n IDENTIFIER: (379..380) \"_\"\n CLOSE_PAREN: (380..381) \")\"\n ATMOSPHERE: (381..382) \" \"\n FORM: (382..392)\n OPEN_PAREN: (382..383) \"(\"\n DOTTED_TAIL: (383..391)\n DOT: (383..384) \".\"\n ATMOSPHERE: (384..385) \" \"\n CONSTANT: (385..391)\n STRING: (385..391) \"\"test\"\"\n CLOSE_PAREN: (391..392) \")\"\n CLOSE_PAREN: (392..393) \")\"\n ATMOSPHERE: (393..402) \"\n \"\n CLOSE_PAREN: (402..403) \")\"\n CLOSE_PAREN: (403..404) \")\"\n CLOSE_PAREN: (404..405) \")\"\n ATMOSPHERE: (405..410) \"\n \"\n FORM: (410..425)\n OPEN_PAREN: (410..411) \"(\"\n SYMBOL: (411..418)\n IDENTIFIER: (411..418) \"another\"\n ATMOSPHERE: (418..419) \" \"\n CONSTANT: (419..420)\n NUMBER: (419..420) \"1\"\n ATMOSPHERE: (420..421) \" \"\n CONSTANT: (421..422)\n NUMBER: (421..422) \"2\"\n ATMOSPHERE: (422..423) \" \"\n CONSTANT: (423..424)\n NUMBER: (423..424) \"3\"\n CLOSE_PAREN: (424..425) \")\"\n CLOSE_PAREN: (425..426) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_false.scm.json b/test/Feersum.Tests/_snapshots/Parse_false.scm.json
deleted file mode 100644
index a26c63d..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_false.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..2)\n CONSTANT: (0..2)\n BOOLEAN: (0..2) \"#f\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_fib.scm.json b/test/Feersum.Tests/_snapshots/Parse_fib.scm.json
deleted file mode 100644
index bba753b..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_fib.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..267)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..43) \"\n\n\"\n ATMOSPHERE: (43..56) \"; 1 1 2 3 5 8\"\n ATMOSPHERE: (56..57) \"\n\"\n ATMOSPHERE: (57..70) \"; 1 2 3 4 5 6\"\n ATMOSPHERE: (70..72) \"\n\n\"\n FORM: (72..236)\n OPEN_PAREN: (72..73) \"(\"\n SYMBOL: (73..79)\n IDENTIFIER: (73..79) \"define\"\n ATMOSPHERE: (79..80) \" \"\n FORM: (80..87)\n OPEN_PAREN: (80..81) \"(\"\n SYMBOL: (81..84)\n IDENTIFIER: (81..84) \"fib\"\n ATMOSPHERE: (84..85) \" \"\n SYMBOL: (85..86)\n IDENTIFIER: (85..86) \"n\"\n CLOSE_PAREN: (86..87) \")\"\n ATMOSPHERE: (87..92) \"\n \"\n FORM: (92..212)\n OPEN_PAREN: (92..93) \"(\"\n SYMBOL: (93..99)\n IDENTIFIER: (93..99) \"define\"\n ATMOSPHERE: (99..100) \" \"\n FORM: (100..123)\n OPEN_PAREN: (100..101) \"(\"\n SYMBOL: (101..111)\n IDENTIFIER: (101..111) \"fib-helper\"\n ATMOSPHERE: (111..112) \" \"\n SYMBOL: (112..113)\n IDENTIFIER: (112..113) \"n\"\n ATMOSPHERE: (113..114) \" \"\n SYMBOL: (114..118)\n IDENTIFIER: (114..118) \"last\"\n ATMOSPHERE: (118..119) \" \"\n SYMBOL: (119..122)\n IDENTIFIER: (119..122) \"cur\"\n CLOSE_PAREN: (122..123) \")\"\n ATMOSPHERE: (123..132) \"\n \"\n FORM: (132..211)\n OPEN_PAREN: (132..133) \"(\"\n SYMBOL: (133..135)\n IDENTIFIER: (133..135) \"if\"\n ATMOSPHERE: (135..136) \" \"\n FORM: (136..144)\n OPEN_PAREN: (136..137) \"(\"\n SYMBOL: (137..139)\n IDENTIFIER: (137..139) \"<=\"\n ATMOSPHERE: (139..140) \" \"\n SYMBOL: (140..141)\n IDENTIFIER: (140..141) \"n\"\n ATMOSPHERE: (141..142) \" \"\n CONSTANT: (142..143)\n NUMBER: (142..143) \"2\"\n CLOSE_PAREN: (143..144) \")\"\n ATMOSPHERE: (144..157) \"\n \"\n SYMBOL: (157..160)\n IDENTIFIER: (157..160) \"cur\"\n ATMOSPHERE: (160..173) \"\n \"\n FORM: (173..210)\n OPEN_PAREN: (173..174) \"(\"\n SYMBOL: (174..184)\n IDENTIFIER: (174..184) \"fib-helper\"\n ATMOSPHERE: (184..185) \" \"\n FORM: (185..192)\n OPEN_PAREN: (185..186) \"(\"\n SYMBOL: (186..187)\n IDENTIFIER: (186..187) \"-\"\n ATMOSPHERE: (187..188) \" \"\n SYMBOL: (188..189)\n IDENTIFIER: (188..189) \"n\"\n ATMOSPHERE: (189..190) \" \"\n CONSTANT: (190..191)\n NUMBER: (190..191) \"1\"\n CLOSE_PAREN: (191..192) \")\"\n ATMOSPHERE: (192..193) \" \"\n SYMBOL: (193..196)\n IDENTIFIER: (193..196) \"cur\"\n ATMOSPHERE: (196..197) \" \"\n FORM: (197..209)\n OPEN_PAREN: (197..198) \"(\"\n SYMBOL: (198..199)\n IDENTIFIER: (198..199) \"+\"\n ATMOSPHERE: (199..200) \" \"\n SYMBOL: (200..203)\n IDENTIFIER: (200..203) \"cur\"\n ATMOSPHERE: (203..204) \" \"\n SYMBOL: (204..208)\n IDENTIFIER: (204..208) \"last\"\n CLOSE_PAREN: (208..209) \")\"\n CLOSE_PAREN: (209..210) \")\"\n CLOSE_PAREN: (210..211) \")\"\n CLOSE_PAREN: (211..212) \")\"\n ATMOSPHERE: (212..217) \"\n \"\n FORM: (217..235)\n OPEN_PAREN: (217..218) \"(\"\n SYMBOL: (218..228)\n IDENTIFIER: (218..228) \"fib-helper\"\n ATMOSPHERE: (228..229) \" \"\n SYMBOL: (229..230)\n IDENTIFIER: (229..230) \"n\"\n ATMOSPHERE: (230..231) \" \"\n CONSTANT: (231..232)\n NUMBER: (231..232) \"1\"\n ATMOSPHERE: (232..233) \" \"\n CONSTANT: (233..234)\n NUMBER: (233..234) \"1\"\n CLOSE_PAREN: (234..235) \")\"\n CLOSE_PAREN: (235..236) \")\"\n ATMOSPHERE: (236..239) \"\n\n\n\"\n FORM: (239..257)\n OPEN_PAREN: (239..240) \"(\"\n SYMBOL: (240..247)\n IDENTIFIER: (240..247) \"display\"\n ATMOSPHERE: (247..248) \" \"\n FORM: (248..256)\n OPEN_PAREN: (248..249) \"(\"\n SYMBOL: (249..252)\n IDENTIFIER: (249..252) \"fib\"\n ATMOSPHERE: (252..253) \" \"\n CONSTANT: (253..255)\n NUMBER: (253..255) \"40\"\n CLOSE_PAREN: (255..256) \")\"\n CLOSE_PAREN: (256..257) \")\"\n FORM: (257..266)\n OPEN_PAREN: (257..258) \"(\"\n SYMBOL: (258..265)\n IDENTIFIER: (258..265) \"newline\"\n CLOSE_PAREN: (265..266) \")\"\n ATMOSPHERE: (266..267) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_gcd.scm.json b/test/Feersum.Tests/_snapshots/Parse_gcd.scm.json
deleted file mode 100644
index 28bef9a..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_gcd.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..449)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..43) \"\n\n\"\n FORM: (43..106)\n OPEN_PAREN: (43..44) \"(\"\n SYMBOL: (44..50)\n IDENTIFIER: (44..50) \"define\"\n ATMOSPHERE: (50..51) \" \"\n FORM: (51..60)\n OPEN_PAREN: (51..52) \"(\"\n SYMBOL: (52..55)\n IDENTIFIER: (52..55) \"mod\"\n ATMOSPHERE: (55..56) \" \"\n SYMBOL: (56..57)\n IDENTIFIER: (56..57) \"a\"\n ATMOSPHERE: (57..58) \" \"\n SYMBOL: (58..59)\n IDENTIFIER: (58..59) \"b\"\n CLOSE_PAREN: (59..60) \")\"\n ATMOSPHERE: (60..63) \"\n \"\n FORM: (63..105)\n OPEN_PAREN: (63..64) \"(\"\n SYMBOL: (64..66)\n IDENTIFIER: (64..66) \"if\"\n ATMOSPHERE: (66..67) \" \"\n FORM: (67..74)\n OPEN_PAREN: (67..68) \"(\"\n SYMBOL: (68..69)\n IDENTIFIER: (68..69) \"<\"\n ATMOSPHERE: (69..70) \" \"\n SYMBOL: (70..71)\n IDENTIFIER: (70..71) \"a\"\n ATMOSPHERE: (71..72) \" \"\n SYMBOL: (72..73)\n IDENTIFIER: (72..73) \"b\"\n CLOSE_PAREN: (73..74) \")\"\n ATMOSPHERE: (74..81) \"\n \"\n SYMBOL: (81..82)\n IDENTIFIER: (81..82) \"a\"\n ATMOSPHERE: (82..89) \"\n \"\n FORM: (89..104)\n OPEN_PAREN: (89..90) \"(\"\n SYMBOL: (90..93)\n IDENTIFIER: (90..93) \"mod\"\n ATMOSPHERE: (93..94) \" \"\n FORM: (94..101)\n OPEN_PAREN: (94..95) \"(\"\n SYMBOL: (95..96)\n IDENTIFIER: (95..96) \"-\"\n ATMOSPHERE: (96..97) \" \"\n SYMBOL: (97..98)\n IDENTIFIER: (97..98) \"a\"\n ATMOSPHERE: (98..99) \" \"\n SYMBOL: (99..100)\n IDENTIFIER: (99..100) \"b\"\n CLOSE_PAREN: (100..101) \")\"\n ATMOSPHERE: (101..102) \" \"\n SYMBOL: (102..103)\n IDENTIFIER: (102..103) \"b\"\n CLOSE_PAREN: (103..104) \")\"\n CLOSE_PAREN: (104..105) \")\"\n CLOSE_PAREN: (105..106) \")\"\n ATMOSPHERE: (106..108) \"\n\n\"\n FORM: (108..173)\n OPEN_PAREN: (108..109) \"(\"\n SYMBOL: (109..115)\n IDENTIFIER: (109..115) \"define\"\n ATMOSPHERE: (115..116) \" \"\n FORM: (116..125)\n OPEN_PAREN: (116..117) \"(\"\n SYMBOL: (117..120)\n IDENTIFIER: (117..120) \"gcd\"\n ATMOSPHERE: (120..121) \" \"\n SYMBOL: (121..122)\n IDENTIFIER: (121..122) \"a\"\n ATMOSPHERE: (122..123) \" \"\n SYMBOL: (123..124)\n IDENTIFIER: (123..124) \"b\"\n CLOSE_PAREN: (124..125) \")\"\n ATMOSPHERE: (125..128) \"\n \"\n FORM: (128..172)\n OPEN_PAREN: (128..129) \"(\"\n SYMBOL: (129..131)\n IDENTIFIER: (129..131) \"if\"\n ATMOSPHERE: (131..132) \" \"\n FORM: (132..139)\n OPEN_PAREN: (132..133) \"(\"\n SYMBOL: (133..134)\n IDENTIFIER: (133..134) \"=\"\n ATMOSPHERE: (134..135) \" \"\n SYMBOL: (135..136)\n IDENTIFIER: (135..136) \"b\"\n ATMOSPHERE: (136..137) \" \"\n CONSTANT: (137..138)\n NUMBER: (137..138) \"0\"\n CLOSE_PAREN: (138..139) \")\"\n ATMOSPHERE: (139..146) \"\n \"\n SYMBOL: (146..147)\n IDENTIFIER: (146..147) \"a\"\n ATMOSPHERE: (147..154) \"\n \"\n FORM: (154..171)\n OPEN_PAREN: (154..155) \"(\"\n SYMBOL: (155..158)\n IDENTIFIER: (155..158) \"gcd\"\n ATMOSPHERE: (158..159) \" \"\n SYMBOL: (159..160)\n IDENTIFIER: (159..160) \"b\"\n ATMOSPHERE: (160..161) \" \"\n FORM: (161..170)\n OPEN_PAREN: (161..162) \"(\"\n SYMBOL: (162..165)\n IDENTIFIER: (162..165) \"mod\"\n ATMOSPHERE: (165..166) \" \"\n SYMBOL: (166..167)\n IDENTIFIER: (166..167) \"a\"\n ATMOSPHERE: (167..168) \" \"\n SYMBOL: (168..169)\n IDENTIFIER: (168..169) \"b\"\n CLOSE_PAREN: (169..170) \")\"\n CLOSE_PAREN: (170..171) \")\"\n CLOSE_PAREN: (171..172) \")\"\n CLOSE_PAREN: (172..173) \")\"\n ATMOSPHERE: (173..175) \"\n\n\"\n FORM: (175..195)\n OPEN_PAREN: (175..176) \"(\"\n SYMBOL: (176..183)\n IDENTIFIER: (176..183) \"display\"\n ATMOSPHERE: (183..184) \" \"\n FORM: (184..194)\n OPEN_PAREN: (184..185) \"(\"\n SYMBOL: (185..188)\n IDENTIFIER: (185..188) \"gcd\"\n ATMOSPHERE: (188..189) \" \"\n CONSTANT: (189..190)\n NUMBER: (189..190) \"8\"\n ATMOSPHERE: (190..191) \" \"\n CONSTANT: (191..193)\n NUMBER: (191..193) \"12\"\n CLOSE_PAREN: (193..194) \")\"\n CLOSE_PAREN: (194..195) \")\"\n FORM: (195..204)\n OPEN_PAREN: (195..196) \"(\"\n SYMBOL: (196..203)\n IDENTIFIER: (196..203) \"newline\"\n CLOSE_PAREN: (203..204) \")\"\n ATMOSPHERE: (204..205) \"\n\"\n FORM: (205..226)\n OPEN_PAREN: (205..206) \"(\"\n SYMBOL: (206..213)\n IDENTIFIER: (206..213) \"display\"\n ATMOSPHERE: (213..214) \" \"\n FORM: (214..225)\n OPEN_PAREN: (214..215) \"(\"\n SYMBOL: (215..218)\n IDENTIFIER: (215..218) \"gcd\"\n ATMOSPHERE: (218..219) \" \"\n CONSTANT: (219..221)\n NUMBER: (219..221) \"42\"\n ATMOSPHERE: (221..222) \" \"\n CONSTANT: (222..224)\n NUMBER: (222..224) \"56\"\n CLOSE_PAREN: (224..225) \")\"\n CLOSE_PAREN: (225..226) \")\"\n FORM: (226..235)\n OPEN_PAREN: (226..227) \"(\"\n SYMBOL: (227..234)\n IDENTIFIER: (227..234) \"newline\"\n CLOSE_PAREN: (234..235) \")\"\n ATMOSPHERE: (235..236) \"\n\"\n FORM: (236..265)\n OPEN_PAREN: (236..237) \"(\"\n SYMBOL: (237..244)\n IDENTIFIER: (237..244) \"display\"\n ATMOSPHERE: (244..245) \" \"\n FORM: (245..264)\n OPEN_PAREN: (245..246) \"(\"\n SYMBOL: (246..249)\n IDENTIFIER: (246..249) \"gcd\"\n ATMOSPHERE: (249..250) \" \"\n CONSTANT: (250..256)\n NUMBER: (250..256) \"461952\"\n ATMOSPHERE: (256..257) \" \"\n CONSTANT: (257..263)\n NUMBER: (257..263) \"116298\"\n CLOSE_PAREN: (263..264) \")\"\n CLOSE_PAREN: (264..265) \")\"\n FORM: (265..274)\n OPEN_PAREN: (265..266) \"(\"\n SYMBOL: (266..273)\n IDENTIFIER: (266..273) \"newline\"\n CLOSE_PAREN: (273..274) \")\"\n ATMOSPHERE: (274..275) \"\n\"\n FORM: (275..308)\n OPEN_PAREN: (275..276) \"(\"\n SYMBOL: (276..283)\n IDENTIFIER: (276..283) \"display\"\n ATMOSPHERE: (283..284) \" \"\n FORM: (284..307)\n OPEN_PAREN: (284..285) \"(\"\n SYMBOL: (285..288)\n IDENTIFIER: (285..288) \"gcd\"\n ATMOSPHERE: (288..289) \" \"\n CONSTANT: (289..296)\n NUMBER: (289..296) \"7966496\"\n ATMOSPHERE: (296..297) \" \"\n CONSTANT: (297..306)\n NUMBER: (297..306) \"314080416\"\n CLOSE_PAREN: (306..307) \")\"\n CLOSE_PAREN: (307..308) \")\"\n FORM: (308..317)\n OPEN_PAREN: (308..309) \"(\"\n SYMBOL: (309..316)\n IDENTIFIER: (309..316) \"newline\"\n CLOSE_PAREN: (316..317) \")\"\n ATMOSPHERE: (317..318) \"\n\"\n FORM: (318..351)\n OPEN_PAREN: (318..319) \"(\"\n SYMBOL: (319..326)\n IDENTIFIER: (319..326) \"display\"\n ATMOSPHERE: (326..327) \" \"\n FORM: (327..350)\n OPEN_PAREN: (327..328) \"(\"\n SYMBOL: (328..331)\n IDENTIFIER: (328..331) \"gcd\"\n ATMOSPHERE: (331..332) \" \"\n CONSTANT: (332..340)\n NUMBER: (332..340) \"24826148\"\n ATMOSPHERE: (340..341) \" \"\n CONSTANT: (341..349)\n NUMBER: (341..349) \"45296490\"\n CLOSE_PAREN: (349..350) \")\"\n CLOSE_PAREN: (350..351) \")\"\n FORM: (351..360)\n OPEN_PAREN: (351..352) \"(\"\n SYMBOL: (352..359)\n IDENTIFIER: (352..359) \"newline\"\n CLOSE_PAREN: (359..360) \")\"\n ATMOSPHERE: (360..361) \"\n\"\n FORM: (361..381)\n OPEN_PAREN: (361..362) \"(\"\n SYMBOL: (362..369)\n IDENTIFIER: (362..369) \"display\"\n ATMOSPHERE: (369..370) \" \"\n FORM: (370..380)\n OPEN_PAREN: (370..371) \"(\"\n SYMBOL: (371..374)\n IDENTIFIER: (371..374) \"gcd\"\n ATMOSPHERE: (374..375) \" \"\n CONSTANT: (375..377)\n NUMBER: (375..377) \"12\"\n ATMOSPHERE: (377..378) \" \"\n CONSTANT: (378..379)\n NUMBER: (378..379) \"0\"\n CLOSE_PAREN: (379..380) \")\"\n CLOSE_PAREN: (380..381) \")\"\n FORM: (381..390)\n OPEN_PAREN: (381..382) \"(\"\n SYMBOL: (382..389)\n IDENTIFIER: (382..389) \"newline\"\n CLOSE_PAREN: (389..390) \")\"\n ATMOSPHERE: (390..391) \"\n\"\n FORM: (391..410)\n OPEN_PAREN: (391..392) \"(\"\n SYMBOL: (392..399)\n IDENTIFIER: (392..399) \"display\"\n ATMOSPHERE: (399..400) \" \"\n FORM: (400..409)\n OPEN_PAREN: (400..401) \"(\"\n SYMBOL: (401..404)\n IDENTIFIER: (401..404) \"gcd\"\n ATMOSPHERE: (404..405) \" \"\n CONSTANT: (405..406)\n NUMBER: (405..406) \"0\"\n ATMOSPHERE: (406..407) \" \"\n CONSTANT: (407..408)\n NUMBER: (407..408) \"0\"\n CLOSE_PAREN: (408..409) \")\"\n CLOSE_PAREN: (409..410) \")\"\n FORM: (410..419)\n OPEN_PAREN: (410..411) \"(\"\n SYMBOL: (411..418)\n IDENTIFIER: (411..418) \"newline\"\n CLOSE_PAREN: (418..419) \")\"\n ATMOSPHERE: (419..420) \"\n\"\n FORM: (420..439)\n OPEN_PAREN: (420..421) \"(\"\n SYMBOL: (421..428)\n IDENTIFIER: (421..428) \"display\"\n ATMOSPHERE: (428..429) \" \"\n FORM: (429..438)\n OPEN_PAREN: (429..430) \"(\"\n SYMBOL: (430..433)\n IDENTIFIER: (430..433) \"gcd\"\n ATMOSPHERE: (433..434) \" \"\n CONSTANT: (434..435)\n NUMBER: (434..435) \"0\"\n ATMOSPHERE: (435..436) \" \"\n CONSTANT: (436..437)\n NUMBER: (436..437) \"9\"\n CLOSE_PAREN: (437..438) \")\"\n CLOSE_PAREN: (438..439) \")\"\n FORM: (439..448)\n OPEN_PAREN: (439..440) \"(\"\n SYMBOL: (440..447)\n IDENTIFIER: (440..447) \"newline\"\n CLOSE_PAREN: (447..448) \")\"\n ATMOSPHERE: (448..449) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_greatest_diff.scm.json b/test/Feersum.Tests/_snapshots/Parse_greatest_diff.scm.json
deleted file mode 100644
index 289e8be..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_greatest_diff.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..836)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..43) \"\n\n\"\n FORM: (43..82)\n OPEN_PAREN: (43..44) \"(\"\n SYMBOL: (44..50)\n IDENTIFIER: (44..50) \"define\"\n ATMOSPHERE: (50..51) \" \"\n FORM: (51..60)\n OPEN_PAREN: (51..52) \"(\"\n SYMBOL: (52..55)\n IDENTIFIER: (52..55) \"min\"\n ATMOSPHERE: (55..56) \" \"\n SYMBOL: (56..57)\n IDENTIFIER: (56..57) \"x\"\n ATMOSPHERE: (57..58) \" \"\n SYMBOL: (58..59)\n IDENTIFIER: (58..59) \"y\"\n CLOSE_PAREN: (59..60) \")\"\n ATMOSPHERE: (60..65) \"\n \"\n FORM: (65..81)\n OPEN_PAREN: (65..66) \"(\"\n SYMBOL: (66..68)\n IDENTIFIER: (66..68) \"if\"\n ATMOSPHERE: (68..69) \" \"\n FORM: (69..76)\n OPEN_PAREN: (69..70) \"(\"\n SYMBOL: (70..71)\n IDENTIFIER: (70..71) \"<\"\n ATMOSPHERE: (71..72) \" \"\n SYMBOL: (72..73)\n IDENTIFIER: (72..73) \"x\"\n ATMOSPHERE: (73..74) \" \"\n SYMBOL: (74..75)\n IDENTIFIER: (74..75) \"y\"\n CLOSE_PAREN: (75..76) \")\"\n ATMOSPHERE: (76..77) \" \"\n SYMBOL: (77..78)\n IDENTIFIER: (77..78) \"x\"\n ATMOSPHERE: (78..79) \" \"\n SYMBOL: (79..80)\n IDENTIFIER: (79..80) \"y\"\n CLOSE_PAREN: (80..81) \")\"\n CLOSE_PAREN: (81..82) \")\"\n ATMOSPHERE: (82..83) \"\n\"\n FORM: (83..122)\n OPEN_PAREN: (83..84) \"(\"\n SYMBOL: (84..90)\n IDENTIFIER: (84..90) \"define\"\n ATMOSPHERE: (90..91) \" \"\n FORM: (91..100)\n OPEN_PAREN: (91..92) \"(\"\n SYMBOL: (92..95)\n IDENTIFIER: (92..95) \"max\"\n ATMOSPHERE: (95..96) \" \"\n SYMBOL: (96..97)\n IDENTIFIER: (96..97) \"x\"\n ATMOSPHERE: (97..98) \" \"\n SYMBOL: (98..99)\n IDENTIFIER: (98..99) \"y\"\n CLOSE_PAREN: (99..100) \")\"\n ATMOSPHERE: (100..105) \"\n \"\n FORM: (105..121)\n OPEN_PAREN: (105..106) \"(\"\n SYMBOL: (106..108)\n IDENTIFIER: (106..108) \"if\"\n ATMOSPHERE: (108..109) \" \"\n FORM: (109..116)\n OPEN_PAREN: (109..110) \"(\"\n SYMBOL: (110..111)\n IDENTIFIER: (110..111) \">\"\n ATMOSPHERE: (111..112) \" \"\n SYMBOL: (112..113)\n IDENTIFIER: (112..113) \"x\"\n ATMOSPHERE: (113..114) \" \"\n SYMBOL: (114..115)\n IDENTIFIER: (114..115) \"y\"\n CLOSE_PAREN: (115..116) \")\"\n ATMOSPHERE: (116..117) \" \"\n SYMBOL: (117..118)\n IDENTIFIER: (117..118) \"x\"\n ATMOSPHERE: (118..119) \" \"\n SYMBOL: (119..120)\n IDENTIFIER: (119..120) \"y\"\n CLOSE_PAREN: (120..121) \")\"\n CLOSE_PAREN: (121..122) \")\"\n ATMOSPHERE: (122..124) \"\n\n\"\n ATMOSPHERE: (124..171) \";; Computes the greatest consecutive difference\"\n ATMOSPHERE: (171..172) \"\n\"\n FORM: (172..566)\n OPEN_PAREN: (172..173) \"(\"\n SYMBOL: (173..179)\n IDENTIFIER: (173..179) \"define\"\n ATMOSPHERE: (179..180) \" \"\n FORM: (180..200)\n OPEN_PAREN: (180..181) \"(\"\n SYMBOL: (181..194)\n IDENTIFIER: (181..194) \"greatest-diff\"\n ATMOSPHERE: (194..195) \" \"\n SYMBOL: (195..199)\n IDENTIFIER: (195..199) \"nums\"\n CLOSE_PAREN: (199..200) \")\"\n ATMOSPHERE: (200..205) \"\n \"\n FORM: (205..523)\n OPEN_PAREN: (205..206) \"(\"\n SYMBOL: (206..212)\n IDENTIFIER: (206..212) \"define\"\n ATMOSPHERE: (212..213) \" \"\n FORM: (213..248)\n OPEN_PAREN: (213..214) \"(\"\n SYMBOL: (214..234)\n IDENTIFIER: (214..234) \"greatest-diff-helper\"\n ATMOSPHERE: (234..235) \" \"\n SYMBOL: (235..239)\n IDENTIFIER: (235..239) \"nums\"\n ATMOSPHERE: (239..240) \" \"\n SYMBOL: (240..243)\n IDENTIFIER: (240..243) \"low\"\n ATMOSPHERE: (243..244) \" \"\n SYMBOL: (244..247)\n IDENTIFIER: (244..247) \"ret\"\n CLOSE_PAREN: (247..248) \")\"\n ATMOSPHERE: (248..257) \"\n \"\n FORM: (257..522)\n OPEN_PAREN: (257..258) \"(\"\n SYMBOL: (258..260)\n IDENTIFIER: (258..260) \"if\"\n ATMOSPHERE: (260..261) \" \"\n FORM: (261..273)\n OPEN_PAREN: (261..262) \"(\"\n SYMBOL: (262..267)\n IDENTIFIER: (262..267) \"null?\"\n ATMOSPHERE: (267..268) \" \"\n SYMBOL: (268..272)\n IDENTIFIER: (268..272) \"nums\"\n CLOSE_PAREN: (272..273) \")\"\n ATMOSPHERE: (273..286) \"\n \"\n SYMBOL: (286..289)\n IDENTIFIER: (286..289) \"ret\"\n ATMOSPHERE: (289..302) \"\n \"\n FORM: (302..521)\n OPEN_PAREN: (302..303) \"(\"\n SYMBOL: (303..307)\n IDENTIFIER: (303..307) \"let*\"\n ATMOSPHERE: (307..308) \" \"\n FORM: (308..468)\n OPEN_PAREN: (308..309) \"(\"\n FORM: (309..325)\n OPEN_PAREN: (309..310) \"(\"\n SYMBOL: (310..313)\n IDENTIFIER: (310..313) \"cur\"\n ATMOSPHERE: (313..314) \" \"\n FORM: (314..324)\n OPEN_PAREN: (314..315) \"(\"\n SYMBOL: (315..318)\n IDENTIFIER: (315..318) \"car\"\n ATMOSPHERE: (318..319) \" \"\n SYMBOL: (319..323)\n IDENTIFIER: (319..323) \"nums\"\n CLOSE_PAREN: (323..324) \")\"\n CLOSE_PAREN: (324..325) \")\"\n ATMOSPHERE: (325..342) \"\n \"\n FORM: (342..359)\n OPEN_PAREN: (342..343) \"(\"\n SYMBOL: (343..347)\n IDENTIFIER: (343..347) \"rest\"\n ATMOSPHERE: (347..348) \" \"\n FORM: (348..358)\n OPEN_PAREN: (348..349) \"(\"\n SYMBOL: (349..352)\n IDENTIFIER: (349..352) \"cdr\"\n ATMOSPHERE: (352..353) \" \"\n SYMBOL: (353..357)\n IDENTIFIER: (353..357) \"nums\"\n CLOSE_PAREN: (357..358) \")\"\n CLOSE_PAREN: (358..359) \")\"\n ATMOSPHERE: (359..376) \"\n \"\n FORM: (376..394)\n OPEN_PAREN: (376..377) \"(\"\n SYMBOL: (377..381)\n IDENTIFIER: (377..381) \"diff\"\n ATMOSPHERE: (381..382) \" \"\n FORM: (382..393)\n OPEN_PAREN: (382..383) \"(\"\n SYMBOL: (383..384)\n IDENTIFIER: (383..384) \"-\"\n ATMOSPHERE: (384..385) \" \"\n SYMBOL: (385..388)\n IDENTIFIER: (385..388) \"cur\"\n ATMOSPHERE: (388..389) \" \"\n SYMBOL: (389..392)\n IDENTIFIER: (389..392) \"low\"\n CLOSE_PAREN: (392..393) \")\"\n CLOSE_PAREN: (393..394) \")\"\n ATMOSPHERE: (394..411) \"\n \"\n FORM: (411..430)\n OPEN_PAREN: (411..412) \"(\"\n SYMBOL: (412..415)\n IDENTIFIER: (412..415) \"low\"\n ATMOSPHERE: (415..416) \" \"\n FORM: (416..429)\n OPEN_PAREN: (416..417) \"(\"\n SYMBOL: (417..420)\n IDENTIFIER: (417..420) \"min\"\n ATMOSPHERE: (420..421) \" \"\n SYMBOL: (421..424)\n IDENTIFIER: (421..424) \"low\"\n ATMOSPHERE: (424..425) \" \"\n SYMBOL: (425..428)\n IDENTIFIER: (425..428) \"cur\"\n CLOSE_PAREN: (428..429) \")\"\n CLOSE_PAREN: (429..430) \")\"\n ATMOSPHERE: (430..447) \"\n \"\n FORM: (447..467)\n OPEN_PAREN: (447..448) \"(\"\n SYMBOL: (448..451)\n IDENTIFIER: (448..451) \"ret\"\n ATMOSPHERE: (451..452) \" \"\n FORM: (452..466)\n OPEN_PAREN: (452..453) \"(\"\n SYMBOL: (453..456)\n IDENTIFIER: (453..456) \"max\"\n ATMOSPHERE: (456..457) \" \"\n SYMBOL: (457..461)\n IDENTIFIER: (457..461) \"diff\"\n ATMOSPHERE: (461..462) \" \"\n SYMBOL: (462..465)\n IDENTIFIER: (462..465) \"ret\"\n CLOSE_PAREN: (465..466) \")\"\n CLOSE_PAREN: (466..467) \")\"\n CLOSE_PAREN: (467..468) \")\"\n ATMOSPHERE: (468..485) \"\n \"\n FORM: (485..520)\n OPEN_PAREN: (485..486) \"(\"\n SYMBOL: (486..506)\n IDENTIFIER: (486..506) \"greatest-diff-helper\"\n ATMOSPHERE: (506..507) \" \"\n SYMBOL: (507..511)\n IDENTIFIER: (507..511) \"rest\"\n ATMOSPHERE: (511..512) \" \"\n SYMBOL: (512..515)\n IDENTIFIER: (512..515) \"low\"\n ATMOSPHERE: (515..516) \" \"\n SYMBOL: (516..519)\n IDENTIFIER: (516..519) \"ret\"\n CLOSE_PAREN: (519..520) \")\"\n CLOSE_PAREN: (520..521) \")\"\n CLOSE_PAREN: (521..522) \")\"\n CLOSE_PAREN: (522..523) \")\"\n ATMOSPHERE: (523..528) \"\n \"\n FORM: (528..565)\n OPEN_PAREN: (528..529) \"(\"\n SYMBOL: (529..549)\n IDENTIFIER: (529..549) \"greatest-diff-helper\"\n ATMOSPHERE: (549..550) \" \"\n SYMBOL: (550..554)\n IDENTIFIER: (550..554) \"nums\"\n ATMOSPHERE: (554..555) \" \"\n CONSTANT: (555..561)\n NUMBER: (555..561) \"100000\"\n ATMOSPHERE: (561..562) \" \"\n CONSTANT: (562..564)\n NUMBER: (562..564) \"-1\"\n CLOSE_PAREN: (564..565) \")\"\n CLOSE_PAREN: (565..566) \")\"\n ATMOSPHERE: (566..569) \"\n\n\n\"\n FORM: (569..611)\n OPEN_PAREN: (569..570) \"(\"\n SYMBOL: (570..577)\n IDENTIFIER: (570..577) \"display\"\n ATMOSPHERE: (577..578) \" \"\n FORM: (578..610)\n OPEN_PAREN: (578..579) \"(\"\n SYMBOL: (579..592)\n IDENTIFIER: (579..592) \"greatest-diff\"\n ATMOSPHERE: (592..593) \" \"\n FORM: (593..609)\n OPEN_PAREN: (593..594) \"(\"\n SYMBOL: (594..598)\n IDENTIFIER: (594..598) \"list\"\n ATMOSPHERE: (598..599) \" \"\n CONSTANT: (599..600)\n NUMBER: (599..600) \"1\"\n ATMOSPHERE: (600..601) \" \"\n CONSTANT: (601..602)\n NUMBER: (601..602) \"2\"\n ATMOSPHERE: (602..603) \" \"\n CONSTANT: (603..604)\n NUMBER: (603..604) \"3\"\n ATMOSPHERE: (604..605) \" \"\n CONSTANT: (605..606)\n NUMBER: (605..606) \"4\"\n ATMOSPHERE: (606..607) \" \"\n CONSTANT: (607..608)\n NUMBER: (607..608) \"5\"\n CLOSE_PAREN: (608..609) \")\"\n CLOSE_PAREN: (609..610) \")\"\n CLOSE_PAREN: (610..611) \")\"\n FORM: (611..620)\n OPEN_PAREN: (611..612) \"(\"\n SYMBOL: (612..619)\n IDENTIFIER: (612..619) \"newline\"\n CLOSE_PAREN: (619..620) \")\"\n ATMOSPHERE: (620..622) \" \"\n ATMOSPHERE: (622..634) \"; -> 4 (1 5)\"\n ATMOSPHERE: (634..635) \"\n\"\n FORM: (635..675)\n OPEN_PAREN: (635..636) \"(\"\n SYMBOL: (636..643)\n IDENTIFIER: (636..643) \"display\"\n ATMOSPHERE: (643..644) \" \"\n FORM: (644..674)\n OPEN_PAREN: (644..645) \"(\"\n SYMBOL: (645..658)\n IDENTIFIER: (645..658) \"greatest-diff\"\n ATMOSPHERE: (658..659) \" \"\n FORM: (659..673)\n OPEN_PAREN: (659..660) \"(\"\n SYMBOL: (660..664)\n IDENTIFIER: (660..664) \"list\"\n ATMOSPHERE: (664..665) \" \"\n CONSTANT: (665..666)\n NUMBER: (665..666) \"7\"\n ATMOSPHERE: (666..667) \" \"\n CONSTANT: (667..668)\n NUMBER: (667..668) \"1\"\n ATMOSPHERE: (668..669) \" \"\n CONSTANT: (669..670)\n NUMBER: (669..670) \"5\"\n ATMOSPHERE: (670..671) \" \"\n CONSTANT: (671..672)\n NUMBER: (671..672) \"4\"\n CLOSE_PAREN: (672..673) \")\"\n CLOSE_PAREN: (673..674) \")\"\n CLOSE_PAREN: (674..675) \")\"\n FORM: (675..684)\n OPEN_PAREN: (675..676) \"(\"\n SYMBOL: (676..683)\n IDENTIFIER: (676..683) \"newline\"\n CLOSE_PAREN: (683..684) \")\"\n ATMOSPHERE: (684..688) \" \"\n ATMOSPHERE: (688..700) \"; -> 4 (1 5)\"\n ATMOSPHERE: (700..701) \"\n\"\n FORM: (701..741)\n OPEN_PAREN: (701..702) \"(\"\n SYMBOL: (702..709)\n IDENTIFIER: (702..709) \"display\"\n ATMOSPHERE: (709..710) \" \"\n FORM: (710..740)\n OPEN_PAREN: (710..711) \"(\"\n SYMBOL: (711..724)\n IDENTIFIER: (711..724) \"greatest-diff\"\n ATMOSPHERE: (724..725) \" \"\n FORM: (725..739)\n OPEN_PAREN: (725..726) \"(\"\n SYMBOL: (726..730)\n IDENTIFIER: (726..730) \"list\"\n ATMOSPHERE: (730..731) \" \"\n CONSTANT: (731..732)\n NUMBER: (731..732) \"9\"\n ATMOSPHERE: (732..733) \" \"\n CONSTANT: (733..734)\n NUMBER: (733..734) \"4\"\n ATMOSPHERE: (734..735) \" \"\n CONSTANT: (735..736)\n NUMBER: (735..736) \"3\"\n ATMOSPHERE: (736..737) \" \"\n CONSTANT: (737..738)\n NUMBER: (737..738) \"2\"\n CLOSE_PAREN: (738..739) \")\"\n CLOSE_PAREN: (739..740) \")\"\n CLOSE_PAREN: (740..741) \")\"\n FORM: (741..750)\n OPEN_PAREN: (741..742) \"(\"\n SYMBOL: (742..749)\n IDENTIFIER: (742..749) \"newline\"\n CLOSE_PAREN: (749..750) \")\"\n ATMOSPHERE: (750..754) \" \"\n ATMOSPHERE: (754..768) \"; -> -1 (none)\"\n ATMOSPHERE: (768..769) \"\n\"\n FORM: (769..810)\n OPEN_PAREN: (769..770) \"(\"\n SYMBOL: (770..777)\n IDENTIFIER: (770..777) \"display\"\n ATMOSPHERE: (777..778) \" \"\n FORM: (778..809)\n OPEN_PAREN: (778..779) \"(\"\n SYMBOL: (779..792)\n IDENTIFIER: (779..792) \"greatest-diff\"\n ATMOSPHERE: (792..793) \" \"\n FORM: (793..808)\n OPEN_PAREN: (793..794) \"(\"\n SYMBOL: (794..798)\n IDENTIFIER: (794..798) \"list\"\n ATMOSPHERE: (798..799) \" \"\n CONSTANT: (799..800)\n NUMBER: (799..800) \"1\"\n ATMOSPHERE: (800..801) \" \"\n CONSTANT: (801..802)\n NUMBER: (801..802) \"5\"\n ATMOSPHERE: (802..803) \" \"\n CONSTANT: (803..804)\n NUMBER: (803..804) \"2\"\n ATMOSPHERE: (804..805) \" \"\n CONSTANT: (805..807)\n NUMBER: (805..807) \"10\"\n CLOSE_PAREN: (807..808) \")\"\n CLOSE_PAREN: (808..809) \")\"\n CLOSE_PAREN: (809..810) \")\"\n FORM: (810..819)\n OPEN_PAREN: (810..811) \"(\"\n SYMBOL: (811..818)\n IDENTIFIER: (811..818) \"newline\"\n CLOSE_PAREN: (818..819) \")\"\n ATMOSPHERE: (819..822) \" \"\n ATMOSPHERE: (822..835) \"; -> 9 (1 10)\"\n ATMOSPHERE: (835..836) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_hello.scm.json b/test/Feersum.Tests/_snapshots/Parse_hello.scm.json
deleted file mode 100644
index 4cbc903..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_hello.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..46)\n FORM: (0..23)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..22)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..21)\n IDENTIFIER: (16..21) \"write\"\n CLOSE_PAREN: (21..22) \")\"\n CLOSE_PAREN: (22..23) \")\"\n ATMOSPHERE: (23..24) \"\n\"\n FORM: (24..46)\n OPEN_PAREN: (24..25) \"(\"\n SYMBOL: (25..32)\n IDENTIFIER: (25..32) \"display\"\n ATMOSPHERE: (32..33) \" \"\n CONSTANT: (33..45)\n STRING: (33..45) \"\"helloworld\"\"\n CLOSE_PAREN: (45..46) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_importtest.scm.json b/test/Feersum.Tests/_snapshots/Parse_importtest.scm.json
deleted file mode 100644
index d954439..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_importtest.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..107)\n ATMOSPHERE: (0..29) \"; !depends: display-utils.sld\"\n ATMOSPHERE: (29..30) \"\n\"\n FORM: (30..61)\n OPEN_PAREN: (30..31) \"(\"\n SYMBOL: (31..37)\n IDENTIFIER: (31..37) \"import\"\n ATMOSPHERE: (37..38) \" \"\n FORM: (38..60)\n OPEN_PAREN: (38..39) \"(\"\n SYMBOL: (39..46)\n IDENTIFIER: (39..46) \"example\"\n ATMOSPHERE: (46..47) \" \"\n SYMBOL: (47..59)\n IDENTIFIER: (47..59) \"displayutils\"\n CLOSE_PAREN: (59..60) \")\"\n CLOSE_PAREN: (60..61) \")\"\n ATMOSPHERE: (61..62) \"\n\"\n FORM: (62..107)\n OPEN_PAREN: (62..63) \"(\"\n SYMBOL: (63..74)\n IDENTIFIER: (63..74) \"display-all\"\n ATMOSPHERE: (74..75) \" \"\n QUOTED_DATUM: (75..106)\n QUOTE: (75..76) \"'\"\n FORM: (76..106)\n OPEN_PAREN: (76..77) \"(\"\n CONSTANT: (77..86)\n STRING: (77..86) \"\"library\"\"\n ATMOSPHERE: (86..87) \" \"\n CONSTANT: (87..98)\n STRING: (87..98) \"\"reference\"\"\n ATMOSPHERE: (98..99) \" \"\n CONSTANT: (99..105)\n STRING: (99..105) \"\"test\"\"\n CLOSE_PAREN: (105..106) \")\"\n CLOSE_PAREN: (106..107) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_issue-4.scm.json b/test/Feersum.Tests/_snapshots/Parse_issue-4.scm.json
deleted file mode 100644
index 8081a28..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_issue-4.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..328)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..118)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..49)\n IDENTIFIER: (43..49) \"define\"\n ATMOSPHERE: (49..50) \" \"\n FORM: (50..66)\n OPEN_PAREN: (50..51) \"(\"\n SYMBOL: (51..63)\n IDENTIFIER: (51..63) \"make-counter\"\n ATMOSPHERE: (63..64) \" \"\n SYMBOL: (64..65)\n IDENTIFIER: (64..65) \"n\"\n CLOSE_PAREN: (65..66) \")\"\n ATMOSPHERE: (66..71) \"\n \"\n FORM: (71..117)\n OPEN_PAREN: (71..72) \"(\"\n SYMBOL: (72..78)\n IDENTIFIER: (72..78) \"lambda\"\n ATMOSPHERE: (78..79) \" \"\n FORM: (79..81)\n OPEN_PAREN: (79..80) \"(\"\n CLOSE_PAREN: (80..81) \")\"\n ATMOSPHERE: (81..90) \"\n \"\n FORM: (90..106)\n OPEN_PAREN: (90..91) \"(\"\n SYMBOL: (91..95)\n IDENTIFIER: (91..95) \"set!\"\n ATMOSPHERE: (95..96) \" \"\n SYMBOL: (96..97)\n IDENTIFIER: (96..97) \"n\"\n ATMOSPHERE: (97..98) \" \"\n FORM: (98..105)\n OPEN_PAREN: (98..99) \"(\"\n SYMBOL: (99..100)\n IDENTIFIER: (99..100) \"+\"\n ATMOSPHERE: (100..101) \" \"\n CONSTANT: (101..102)\n NUMBER: (101..102) \"1\"\n ATMOSPHERE: (102..103) \" \"\n SYMBOL: (103..104)\n IDENTIFIER: (103..104) \"n\"\n CLOSE_PAREN: (104..105) \")\"\n CLOSE_PAREN: (105..106) \")\"\n ATMOSPHERE: (106..115) \"\n \"\n SYMBOL: (115..116)\n IDENTIFIER: (115..116) \"n\"\n CLOSE_PAREN: (116..117) \")\"\n CLOSE_PAREN: (117..118) \")\"\n ATMOSPHERE: (118..119) \"\n\"\n FORM: (119..154)\n OPEN_PAREN: (119..120) \"(\"\n SYMBOL: (120..126)\n IDENTIFIER: (120..126) \"define\"\n ATMOSPHERE: (126..127) \" \"\n SYMBOL: (127..135)\n IDENTIFIER: (127..135) \"from-ten\"\n ATMOSPHERE: (135..136) \" \"\n FORM: (136..153)\n OPEN_PAREN: (136..137) \"(\"\n SYMBOL: (137..149)\n IDENTIFIER: (137..149) \"make-counter\"\n ATMOSPHERE: (149..150) \" \"\n CONSTANT: (150..152)\n NUMBER: (150..152) \"10\"\n CLOSE_PAREN: (152..153) \")\"\n CLOSE_PAREN: (153..154) \")\"\n ATMOSPHERE: (154..155) \"\n\"\n FORM: (155..191)\n OPEN_PAREN: (155..156) \"(\"\n SYMBOL: (156..162)\n IDENTIFIER: (156..162) \"define\"\n ATMOSPHERE: (162..163) \" \"\n SYMBOL: (163..171)\n IDENTIFIER: (163..171) \"from-ton\"\n ATMOSPHERE: (171..172) \" \"\n FORM: (172..190)\n OPEN_PAREN: (172..173) \"(\"\n SYMBOL: (173..185)\n IDENTIFIER: (173..185) \"make-counter\"\n ATMOSPHERE: (185..186) \" \"\n CONSTANT: (186..189)\n NUMBER: (186..189) \"100\"\n CLOSE_PAREN: (189..190) \")\"\n CLOSE_PAREN: (190..191) \")\"\n ATMOSPHERE: (191..193) \"\n\n\"\n FORM: (193..213)\n OPEN_PAREN: (193..194) \"(\"\n SYMBOL: (194..201)\n IDENTIFIER: (194..201) \"display\"\n ATMOSPHERE: (201..202) \" \"\n FORM: (202..212)\n OPEN_PAREN: (202..203) \"(\"\n SYMBOL: (203..211)\n IDENTIFIER: (203..211) \"from-ten\"\n CLOSE_PAREN: (211..212) \")\"\n CLOSE_PAREN: (212..213) \")\"\n ATMOSPHERE: (213..214) \"\n\"\n FORM: (214..234)\n OPEN_PAREN: (214..215) \"(\"\n SYMBOL: (215..222)\n IDENTIFIER: (215..222) \"display\"\n ATMOSPHERE: (222..223) \" \"\n FORM: (223..233)\n OPEN_PAREN: (223..224) \"(\"\n SYMBOL: (224..232)\n IDENTIFIER: (224..232) \"from-ton\"\n CLOSE_PAREN: (232..233) \")\"\n CLOSE_PAREN: (233..234) \")\"\n ATMOSPHERE: (234..236) \"\n\n\"\n ATMOSPHERE: (236..266) \";; This should return 102 + 12\"\n ATMOSPHERE: (266..267) \"\n\"\n FORM: (267..302)\n OPEN_PAREN: (267..268) \"(\"\n SYMBOL: (268..275)\n IDENTIFIER: (268..275) \"display\"\n ATMOSPHERE: (275..276) \" \"\n FORM: (276..301)\n OPEN_PAREN: (276..277) \"(\"\n SYMBOL: (277..278)\n IDENTIFIER: (277..278) \"+\"\n ATMOSPHERE: (278..279) \" \"\n FORM: (279..289)\n OPEN_PAREN: (279..280) \"(\"\n SYMBOL: (280..288)\n IDENTIFIER: (280..288) \"from-ton\"\n CLOSE_PAREN: (288..289) \")\"\n ATMOSPHERE: (289..290) \" \"\n FORM: (290..300)\n OPEN_PAREN: (290..291) \"(\"\n SYMBOL: (291..299)\n IDENTIFIER: (291..299) \"from-ten\"\n CLOSE_PAREN: (299..300) \")\"\n CLOSE_PAREN: (300..301) \")\"\n CLOSE_PAREN: (301..302) \")\"\n ATMOSPHERE: (302..303) \"\n\"\n FORM: (303..328)\n OPEN_PAREN: (303..304) \"(\"\n SYMBOL: (304..305)\n IDENTIFIER: (304..305) \"+\"\n ATMOSPHERE: (305..306) \" \"\n FORM: (306..316)\n OPEN_PAREN: (306..307) \"(\"\n SYMBOL: (307..315)\n IDENTIFIER: (307..315) \"from-ton\"\n CLOSE_PAREN: (315..316) \")\"\n ATMOSPHERE: (316..317) \" \"\n FORM: (317..327)\n OPEN_PAREN: (317..318) \"(\"\n SYMBOL: (318..326)\n IDENTIFIER: (318..326) \"from-ten\"\n CLOSE_PAREN: (326..327) \")\"\n CLOSE_PAREN: (327..328) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_issue-45.scm.json b/test/Feersum.Tests/_snapshots/Parse_issue-45.scm.json
deleted file mode 100644
index 4b52f93..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_issue-45.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..370)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..22)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..21)\n IDENTIFIER: (16..21) \"write\"\n CLOSE_PAREN: (21..22) \")\"\n ATMOSPHERE: (22..27) \"\n \"\n FORM: (27..40)\n OPEN_PAREN: (27..28) \"(\"\n SYMBOL: (28..34)\n IDENTIFIER: (28..34) \"scheme\"\n ATMOSPHERE: (34..35) \" \"\n SYMBOL: (35..39)\n IDENTIFIER: (35..39) \"base\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..43) \"\n\n\"\n FORM: (43..149)\n OPEN_PAREN: (43..44) \"(\"\n SYMBOL: (44..57)\n IDENTIFIER: (44..57) \"define-syntax\"\n ATMOSPHERE: (57..58) \" \"\n SYMBOL: (58..61)\n IDENTIFIER: (58..61) \"bug\"\n ATMOSPHERE: (61..66) \"\n \"\n FORM: (66..148)\n OPEN_PAREN: (66..67) \"(\"\n SYMBOL: (67..79)\n IDENTIFIER: (67..79) \"syntax-rules\"\n ATMOSPHERE: (79..80) \" \"\n FORM: (80..82)\n OPEN_PAREN: (80..81) \"(\"\n CLOSE_PAREN: (81..82) \")\"\n ATMOSPHERE: (82..91) \"\n \"\n FORM: (91..147)\n OPEN_PAREN: (91..92) \"(\"\n FORM: (92..113)\n OPEN_PAREN: (92..93) \"(\"\n SYMBOL: (93..96)\n IDENTIFIER: (93..96) \"bug\"\n ATMOSPHERE: (96..97) \" \"\n FORM: (97..104)\n OPEN_PAREN: (97..98) \"(\"\n SYMBOL: (98..99)\n IDENTIFIER: (98..99) \"a\"\n ATMOSPHERE: (99..100) \" \"\n SYMBOL: (100..103)\n IDENTIFIER: (100..103) \"...\"\n CLOSE_PAREN: (103..104) \")\"\n ATMOSPHERE: (104..105) \" \"\n FORM: (105..112)\n OPEN_PAREN: (105..106) \"(\"\n SYMBOL: (106..107)\n IDENTIFIER: (106..107) \"b\"\n ATMOSPHERE: (107..108) \" \"\n SYMBOL: (108..111)\n IDENTIFIER: (108..111) \"...\"\n CLOSE_PAREN: (111..112) \")\"\n CLOSE_PAREN: (112..113) \")\"\n ATMOSPHERE: (113..114) \" \"\n FORM: (114..146)\n OPEN_PAREN: (114..115) \"(\"\n SYMBOL: (115..119)\n IDENTIFIER: (115..119) \"cons\"\n ATMOSPHERE: (119..120) \" \"\n FORM: (120..132)\n OPEN_PAREN: (120..121) \"(\"\n SYMBOL: (121..125)\n IDENTIFIER: (121..125) \"list\"\n ATMOSPHERE: (125..126) \" \"\n SYMBOL: (126..127)\n IDENTIFIER: (126..127) \"a\"\n ATMOSPHERE: (127..128) \" \"\n SYMBOL: (128..131)\n IDENTIFIER: (128..131) \"...\"\n CLOSE_PAREN: (131..132) \")\"\n ATMOSPHERE: (132..133) \" \"\n FORM: (133..145)\n OPEN_PAREN: (133..134) \"(\"\n SYMBOL: (134..138)\n IDENTIFIER: (134..138) \"list\"\n ATMOSPHERE: (138..139) \" \"\n SYMBOL: (139..140)\n IDENTIFIER: (139..140) \"b\"\n ATMOSPHERE: (140..141) \" \"\n SYMBOL: (141..144)\n IDENTIFIER: (141..144) \"...\"\n CLOSE_PAREN: (144..145) \")\"\n CLOSE_PAREN: (145..146) \")\"\n CLOSE_PAREN: (146..147) \")\"\n CLOSE_PAREN: (147..148) \")\"\n CLOSE_PAREN: (148..149) \")\"\n ATMOSPHERE: (149..150) \"\n\"\n FORM: (150..245)\n OPEN_PAREN: (150..151) \"(\"\n SYMBOL: (151..164)\n IDENTIFIER: (151..164) \"define-syntax\"\n ATMOSPHERE: (164..165) \" \"\n SYMBOL: (165..168)\n IDENTIFIER: (165..168) \"zip\"\n ATMOSPHERE: (168..173) \"\n \"\n FORM: (173..244)\n OPEN_PAREN: (173..174) \"(\"\n SYMBOL: (174..186)\n IDENTIFIER: (174..186) \"syntax-rules\"\n ATMOSPHERE: (186..187) \" \"\n FORM: (187..189)\n OPEN_PAREN: (187..188) \"(\"\n CLOSE_PAREN: (188..189) \")\"\n ATMOSPHERE: (189..198) \"\n \"\n FORM: (198..243)\n OPEN_PAREN: (198..199) \"(\"\n FORM: (199..220)\n OPEN_PAREN: (199..200) \"(\"\n SYMBOL: (200..203)\n IDENTIFIER: (200..203) \"bug\"\n ATMOSPHERE: (203..204) \" \"\n FORM: (204..211)\n OPEN_PAREN: (204..205) \"(\"\n SYMBOL: (205..206)\n IDENTIFIER: (205..206) \"a\"\n ATMOSPHERE: (206..207) \" \"\n SYMBOL: (207..210)\n IDENTIFIER: (207..210) \"...\"\n CLOSE_PAREN: (210..211) \")\"\n ATMOSPHERE: (211..212) \" \"\n FORM: (212..219)\n OPEN_PAREN: (212..213) \"(\"\n SYMBOL: (213..214)\n IDENTIFIER: (213..214) \"b\"\n ATMOSPHERE: (214..215) \" \"\n SYMBOL: (215..218)\n IDENTIFIER: (215..218) \"...\"\n CLOSE_PAREN: (218..219) \")\"\n CLOSE_PAREN: (219..220) \")\"\n ATMOSPHERE: (220..221) \" \"\n FORM: (221..242)\n OPEN_PAREN: (221..222) \"(\"\n SYMBOL: (222..226)\n IDENTIFIER: (222..226) \"list\"\n ATMOSPHERE: (226..227) \" \"\n FORM: (227..237)\n OPEN_PAREN: (227..228) \"(\"\n SYMBOL: (228..232)\n IDENTIFIER: (228..232) \"cons\"\n ATMOSPHERE: (232..233) \" \"\n SYMBOL: (233..234)\n IDENTIFIER: (233..234) \"a\"\n ATMOSPHERE: (234..235) \" \"\n SYMBOL: (235..236)\n IDENTIFIER: (235..236) \"b\"\n CLOSE_PAREN: (236..237) \")\"\n ATMOSPHERE: (237..238) \" \"\n SYMBOL: (238..241)\n IDENTIFIER: (238..241) \"...\"\n CLOSE_PAREN: (241..242) \")\"\n CLOSE_PAREN: (242..243) \")\"\n CLOSE_PAREN: (243..244) \")\"\n CLOSE_PAREN: (244..245) \")\"\n ATMOSPHERE: (245..247) \"\n\n\"\n FORM: (247..360)\n OPEN_PAREN: (247..248) \"(\"\n SYMBOL: (248..255)\n IDENTIFIER: (248..255) \"display\"\n ATMOSPHERE: (255..256) \" \"\n FORM: (256..359)\n OPEN_PAREN: (256..257) \"(\"\n SYMBOL: (257..261)\n IDENTIFIER: (257..261) \"list\"\n ATMOSPHERE: (261..266) \"\n \"\n FORM: (266..285)\n OPEN_PAREN: (266..267) \"(\"\n SYMBOL: (267..270)\n IDENTIFIER: (267..270) \"bug\"\n ATMOSPHERE: (270..271) \" \"\n FORM: (271..278)\n OPEN_PAREN: (271..272) \"(\"\n CONSTANT: (272..273)\n NUMBER: (272..273) \"1\"\n ATMOSPHERE: (273..274) \" \"\n CONSTANT: (274..275)\n NUMBER: (274..275) \"2\"\n ATMOSPHERE: (275..276) \" \"\n CONSTANT: (276..277)\n NUMBER: (276..277) \"3\"\n CLOSE_PAREN: (277..278) \")\"\n ATMOSPHERE: (278..279) \" \"\n FORM: (279..284)\n OPEN_PAREN: (279..280) \"(\"\n CONSTANT: (280..281)\n NUMBER: (280..281) \"4\"\n ATMOSPHERE: (281..282) \" \"\n CONSTANT: (282..283)\n NUMBER: (282..283) \"5\"\n CLOSE_PAREN: (283..284) \")\"\n CLOSE_PAREN: (284..285) \")\"\n ATMOSPHERE: (285..286) \" \"\n ATMOSPHERE: (286..305) \"; -> '((1 2 3) 4 5)\"\n ATMOSPHERE: (305..310) \"\n \"\n FORM: (310..327)\n OPEN_PAREN: (310..311) \"(\"\n SYMBOL: (311..314)\n IDENTIFIER: (311..314) \"zip\"\n ATMOSPHERE: (314..315) \" \"\n FORM: (315..320)\n OPEN_PAREN: (315..316) \"(\"\n CONSTANT: (316..317)\n NUMBER: (316..317) \"1\"\n ATMOSPHERE: (317..318) \" \"\n CONSTANT: (318..319)\n NUMBER: (318..319) \"2\"\n CLOSE_PAREN: (319..320) \")\"\n ATMOSPHERE: (320..321) \" \"\n FORM: (321..326)\n OPEN_PAREN: (321..322) \"(\"\n CONSTANT: (322..323)\n NUMBER: (322..323) \"3\"\n ATMOSPHERE: (323..324) \" \"\n CONSTANT: (324..325)\n NUMBER: (324..325) \"4\"\n CLOSE_PAREN: (325..326) \")\"\n CLOSE_PAREN: (326..327) \")\"\n ATMOSPHERE: (327..330) \" \"\n ATMOSPHERE: (330..353) \"; -> '((1 . 3) (2 . 4))\"\n ATMOSPHERE: (353..358) \"\n \"\n CLOSE_PAREN: (358..359) \")\"\n CLOSE_PAREN: (359..360) \")\"\n FORM: (360..369)\n OPEN_PAREN: (360..361) \"(\"\n SYMBOL: (361..368)\n IDENTIFIER: (361..368) \"newline\"\n CLOSE_PAREN: (368..369) \")\"\n ATMOSPHERE: (369..370) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_issue-5_a.scm.json b/test/Feersum.Tests/_snapshots/Parse_issue-5_a.scm.json
deleted file mode 100644
index 8c0d81c..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_issue-5_a.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..171)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..140)\n OPEN_PAREN: (42..43) \"(\"\n FORM: (43..133)\n OPEN_PAREN: (43..44) \"(\"\n SYMBOL: (44..50)\n IDENTIFIER: (44..50) \"lambda\"\n ATMOSPHERE: (50..51) \" \"\n FORM: (51..54)\n OPEN_PAREN: (51..52) \"(\"\n SYMBOL: (52..53)\n IDENTIFIER: (52..53) \"a\"\n CLOSE_PAREN: (53..54) \")\"\n ATMOSPHERE: (54..59) \"\n \"\n FORM: (59..126)\n OPEN_PAREN: (59..60) \"(\"\n SYMBOL: (60..67)\n IDENTIFIER: (60..67) \"display\"\n ATMOSPHERE: (67..76) \"\n \"\n FORM: (76..125)\n OPEN_PAREN: (76..77) \"(\"\n SYMBOL: (77..79)\n IDENTIFIER: (77..79) \"if\"\n ATMOSPHERE: (79..80) \" \"\n CONSTANT: (80..82)\n BOOLEAN: (80..82) \"#f\"\n ATMOSPHERE: (82..97) \"\n \"\n FORM: (97..110)\n OPEN_PAREN: (97..98) \"(\"\n SYMBOL: (98..104)\n IDENTIFIER: (98..104) \"lambda\"\n ATMOSPHERE: (104..105) \" \"\n FORM: (105..107)\n OPEN_PAREN: (105..106) \"(\"\n CLOSE_PAREN: (106..107) \")\"\n ATMOSPHERE: (107..108) \" \"\n SYMBOL: (108..109)\n IDENTIFIER: (108..109) \"a\"\n CLOSE_PAREN: (109..110) \")\"\n ATMOSPHERE: (110..123) \"\n \"\n SYMBOL: (123..124)\n IDENTIFIER: (123..124) \"a\"\n CLOSE_PAREN: (124..125) \")\"\n CLOSE_PAREN: (125..126) \")\"\n ATMOSPHERE: (126..131) \"\n \"\n SYMBOL: (131..132)\n IDENTIFIER: (131..132) \"a\"\n CLOSE_PAREN: (132..133) \")\"\n ATMOSPHERE: (133..136) \"\n \"\n CONSTANT: (136..139)\n NUMBER: (136..139) \"101\"\n CLOSE_PAREN: (139..140) \")\"\n ATMOSPHERE: (140..141) \" \"\n ATMOSPHERE: (141..171) \"; -> should be 101, but is '()\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_issue-5_b.scm.json b/test/Feersum.Tests/_snapshots/Parse_issue-5_b.scm.json
deleted file mode 100644
index e646e7a..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_issue-5_b.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..393)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..321)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..49)\n IDENTIFIER: (43..49) \"define\"\n ATMOSPHERE: (49..50) \" \"\n FORM: (50..59)\n OPEN_PAREN: (50..51) \"(\"\n SYMBOL: (51..56)\n IDENTIFIER: (51..56) \"check\"\n ATMOSPHERE: (56..57) \" \"\n SYMBOL: (57..58)\n IDENTIFIER: (57..58) \"n\"\n CLOSE_PAREN: (58..59) \")\"\n ATMOSPHERE: (59..64) \"\n \"\n FORM: (64..320)\n OPEN_PAREN: (64..65) \"(\"\n SYMBOL: (65..71)\n IDENTIFIER: (65..71) \"letrec\"\n ATMOSPHERE: (71..72) \" \"\n FORM: (72..301)\n OPEN_PAREN: (72..73) \"(\"\n FORM: (73..180)\n OPEN_PAREN: (73..74) \"(\"\n SYMBOL: (74..78)\n IDENTIFIER: (74..78) \"odd?\"\n ATMOSPHERE: (78..79) \" \"\n FORM: (79..179)\n OPEN_PAREN: (79..80) \"(\"\n SYMBOL: (80..86)\n IDENTIFIER: (80..86) \"lambda\"\n ATMOSPHERE: (86..87) \" \"\n FORM: (87..90)\n OPEN_PAREN: (87..88) \"(\"\n SYMBOL: (88..89)\n IDENTIFIER: (88..89) \"m\"\n CLOSE_PAREN: (89..90) \")\"\n ATMOSPHERE: (90..107) \"\n \"\n FORM: (107..178)\n OPEN_PAREN: (107..108) \"(\"\n SYMBOL: (108..110)\n IDENTIFIER: (108..110) \"if\"\n ATMOSPHERE: (110..111) \" \"\n FORM: (111..118)\n OPEN_PAREN: (111..112) \"(\"\n SYMBOL: (112..113)\n IDENTIFIER: (112..113) \"=\"\n ATMOSPHERE: (113..114) \" \"\n SYMBOL: (114..115)\n IDENTIFIER: (114..115) \"m\"\n ATMOSPHERE: (115..116) \" \"\n CONSTANT: (116..117)\n NUMBER: (116..117) \"0\"\n CLOSE_PAREN: (117..118) \")\"\n ATMOSPHERE: (118..139) \"\n \"\n CONSTANT: (139..141)\n BOOLEAN: (139..141) \"#f\"\n ATMOSPHERE: (141..162) \"\n \"\n FORM: (162..177)\n OPEN_PAREN: (162..163) \"(\"\n SYMBOL: (163..168)\n IDENTIFIER: (163..168) \"even?\"\n ATMOSPHERE: (168..169) \" \"\n FORM: (169..176)\n OPEN_PAREN: (169..170) \"(\"\n SYMBOL: (170..171)\n IDENTIFIER: (170..171) \"-\"\n ATMOSPHERE: (171..172) \" \"\n SYMBOL: (172..173)\n IDENTIFIER: (172..173) \"m\"\n ATMOSPHERE: (173..174) \" \"\n CONSTANT: (174..175)\n NUMBER: (174..175) \"1\"\n CLOSE_PAREN: (175..176) \")\"\n CLOSE_PAREN: (176..177) \")\"\n CLOSE_PAREN: (177..178) \")\"\n CLOSE_PAREN: (178..179) \")\"\n CLOSE_PAREN: (179..180) \")\"\n ATMOSPHERE: (180..193) \"\n \"\n FORM: (193..300)\n OPEN_PAREN: (193..194) \"(\"\n SYMBOL: (194..199)\n IDENTIFIER: (194..199) \"even?\"\n ATMOSPHERE: (199..200) \" \"\n FORM: (200..299)\n OPEN_PAREN: (200..201) \"(\"\n SYMBOL: (201..207)\n IDENTIFIER: (201..207) \"lambda\"\n ATMOSPHERE: (207..208) \" \"\n FORM: (208..211)\n OPEN_PAREN: (208..209) \"(\"\n SYMBOL: (209..210)\n IDENTIFIER: (209..210) \"m\"\n CLOSE_PAREN: (210..211) \")\"\n ATMOSPHERE: (211..228) \"\n \"\n FORM: (228..298)\n OPEN_PAREN: (228..229) \"(\"\n SYMBOL: (229..231)\n IDENTIFIER: (229..231) \"if\"\n ATMOSPHERE: (231..232) \" \"\n FORM: (232..239)\n OPEN_PAREN: (232..233) \"(\"\n SYMBOL: (233..234)\n IDENTIFIER: (233..234) \"=\"\n ATMOSPHERE: (234..235) \" \"\n SYMBOL: (235..236)\n IDENTIFIER: (235..236) \"m\"\n ATMOSPHERE: (236..237) \" \"\n CONSTANT: (237..238)\n NUMBER: (237..238) \"0\"\n CLOSE_PAREN: (238..239) \")\"\n ATMOSPHERE: (239..260) \"\n \"\n CONSTANT: (260..262)\n BOOLEAN: (260..262) \"#t\"\n ATMOSPHERE: (262..283) \"\n \"\n FORM: (283..297)\n OPEN_PAREN: (283..284) \"(\"\n SYMBOL: (284..288)\n IDENTIFIER: (284..288) \"odd?\"\n ATMOSPHERE: (288..289) \" \"\n FORM: (289..296)\n OPEN_PAREN: (289..290) \"(\"\n SYMBOL: (290..291)\n IDENTIFIER: (290..291) \"-\"\n ATMOSPHERE: (291..292) \" \"\n SYMBOL: (292..293)\n IDENTIFIER: (292..293) \"m\"\n ATMOSPHERE: (293..294) \" \"\n CONSTANT: (294..295)\n NUMBER: (294..295) \"1\"\n CLOSE_PAREN: (295..296) \")\"\n CLOSE_PAREN: (296..297) \")\"\n CLOSE_PAREN: (297..298) \")\"\n CLOSE_PAREN: (298..299) \")\"\n CLOSE_PAREN: (299..300) \")\"\n CLOSE_PAREN: (300..301) \")\"\n ATMOSPHERE: (301..310) \"\n \"\n FORM: (310..319)\n OPEN_PAREN: (310..311) \"(\"\n SYMBOL: (311..316)\n IDENTIFIER: (311..316) \"even?\"\n ATMOSPHERE: (316..317) \" \"\n SYMBOL: (317..318)\n IDENTIFIER: (317..318) \"n\"\n CLOSE_PAREN: (318..319) \")\"\n CLOSE_PAREN: (319..320) \")\"\n CLOSE_PAREN: (320..321) \")\"\n ATMOSPHERE: (321..323) \"\n\n\"\n FORM: (323..343)\n OPEN_PAREN: (323..324) \"(\"\n SYMBOL: (324..331)\n IDENTIFIER: (324..331) \"display\"\n ATMOSPHERE: (331..332) \" \"\n FORM: (332..342)\n OPEN_PAREN: (332..333) \"(\"\n SYMBOL: (333..338)\n IDENTIFIER: (333..338) \"check\"\n ATMOSPHERE: (338..339) \" \"\n CONSTANT: (339..341)\n NUMBER: (339..341) \"54\"\n CLOSE_PAREN: (341..342) \")\"\n CLOSE_PAREN: (342..343) \")\"\n FORM: (343..352)\n OPEN_PAREN: (343..344) \"(\"\n SYMBOL: (344..351)\n IDENTIFIER: (344..351) \"newline\"\n CLOSE_PAREN: (351..352) \")\"\n ATMOSPHERE: (352..353) \"\n\"\n FORM: (353..372)\n OPEN_PAREN: (353..354) \"(\"\n SYMBOL: (354..361)\n IDENTIFIER: (354..361) \"display\"\n ATMOSPHERE: (361..362) \" \"\n FORM: (362..371)\n OPEN_PAREN: (362..363) \"(\"\n SYMBOL: (363..368)\n IDENTIFIER: (363..368) \"check\"\n ATMOSPHERE: (368..369) \" \"\n CONSTANT: (369..370)\n NUMBER: (369..370) \"7\"\n CLOSE_PAREN: (370..371) \")\"\n CLOSE_PAREN: (371..372) \")\"\n FORM: (372..381)\n OPEN_PAREN: (372..373) \"(\"\n SYMBOL: (373..380)\n IDENTIFIER: (373..380) \"newline\"\n CLOSE_PAREN: (380..381) \")\"\n ATMOSPHERE: (381..382) \"\n\"\n FORM: (382..393)\n OPEN_PAREN: (382..383) \"(\"\n SYMBOL: (383..388)\n IDENTIFIER: (383..388) \"check\"\n ATMOSPHERE: (388..389) \" \"\n CONSTANT: (389..392)\n NUMBER: (389..392) \"123\"\n CLOSE_PAREN: (392..393) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_iterfact.scm.json b/test/Feersum.Tests/_snapshots/Parse_iterfact.scm.json
deleted file mode 100644
index a44247f..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_iterfact.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..354)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..115)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..49)\n IDENTIFIER: (43..49) \"define\"\n ATMOSPHERE: (49..50) \" \"\n FORM: (50..58)\n OPEN_PAREN: (50..51) \"(\"\n SYMBOL: (51..55)\n IDENTIFIER: (51..55) \"fact\"\n ATMOSPHERE: (55..56) \" \"\n SYMBOL: (56..57)\n IDENTIFIER: (56..57) \"n\"\n CLOSE_PAREN: (57..58) \")\"\n ATMOSPHERE: (58..63) \"\n \"\n FORM: (63..114)\n OPEN_PAREN: (63..64) \"(\"\n SYMBOL: (64..66)\n IDENTIFIER: (64..66) \"if\"\n ATMOSPHERE: (66..67) \" \"\n FORM: (67..74)\n OPEN_PAREN: (67..68) \"(\"\n SYMBOL: (68..69)\n IDENTIFIER: (68..69) \"=\"\n ATMOSPHERE: (69..70) \" \"\n SYMBOL: (70..71)\n IDENTIFIER: (70..71) \"n\"\n ATMOSPHERE: (71..72) \" \"\n CONSTANT: (72..73)\n NUMBER: (72..73) \"0\"\n CLOSE_PAREN: (73..74) \")\"\n ATMOSPHERE: (74..83) \"\n \"\n CONSTANT: (83..84)\n NUMBER: (83..84) \"1\"\n ATMOSPHERE: (84..93) \"\n \"\n FORM: (93..113)\n OPEN_PAREN: (93..94) \"(\"\n SYMBOL: (94..95)\n IDENTIFIER: (94..95) \"*\"\n ATMOSPHERE: (95..96) \" \"\n SYMBOL: (96..97)\n IDENTIFIER: (96..97) \"n\"\n ATMOSPHERE: (97..98) \" \"\n FORM: (98..112)\n OPEN_PAREN: (98..99) \"(\"\n SYMBOL: (99..103)\n IDENTIFIER: (99..103) \"fact\"\n ATMOSPHERE: (103..104) \" \"\n FORM: (104..111)\n OPEN_PAREN: (104..105) \"(\"\n SYMBOL: (105..106)\n IDENTIFIER: (105..106) \"-\"\n ATMOSPHERE: (106..107) \" \"\n SYMBOL: (107..108)\n IDENTIFIER: (107..108) \"n\"\n ATMOSPHERE: (108..109) \" \"\n CONSTANT: (109..110)\n NUMBER: (109..110) \"1\"\n CLOSE_PAREN: (110..111) \")\"\n CLOSE_PAREN: (111..112) \")\"\n CLOSE_PAREN: (112..113) \")\"\n CLOSE_PAREN: (113..114) \")\"\n CLOSE_PAREN: (114..115) \")\"\n ATMOSPHERE: (115..117) \"\n\n\"\n FORM: (117..277)\n OPEN_PAREN: (117..118) \"(\"\n SYMBOL: (118..124)\n IDENTIFIER: (118..124) \"define\"\n ATMOSPHERE: (124..125) \" \"\n FORM: (125..137)\n OPEN_PAREN: (125..126) \"(\"\n SYMBOL: (126..134)\n IDENTIFIER: (126..134) \"iterfact\"\n ATMOSPHERE: (134..135) \" \"\n SYMBOL: (135..136)\n IDENTIFIER: (135..136) \"n\"\n CLOSE_PAREN: (136..137) \")\"\n ATMOSPHERE: (137..142) \"\n \"\n FORM: (142..253)\n OPEN_PAREN: (142..143) \"(\"\n SYMBOL: (143..149)\n IDENTIFIER: (143..149) \"define\"\n ATMOSPHERE: (149..150) \" \"\n FORM: (150..170)\n OPEN_PAREN: (150..151) \"(\"\n SYMBOL: (151..163)\n IDENTIFIER: (151..163) \"iterfact-acc\"\n ATMOSPHERE: (163..164) \" \"\n SYMBOL: (164..165)\n IDENTIFIER: (164..165) \"n\"\n ATMOSPHERE: (165..166) \" \"\n SYMBOL: (166..169)\n IDENTIFIER: (166..169) \"acc\"\n CLOSE_PAREN: (169..170) \")\"\n ATMOSPHERE: (170..179) \"\n \"\n FORM: (179..252)\n OPEN_PAREN: (179..180) \"(\"\n SYMBOL: (180..182)\n IDENTIFIER: (180..182) \"if\"\n ATMOSPHERE: (182..183) \" \"\n FORM: (183..190)\n OPEN_PAREN: (183..184) \"(\"\n SYMBOL: (184..185)\n IDENTIFIER: (184..185) \"=\"\n ATMOSPHERE: (185..186) \" \"\n SYMBOL: (186..187)\n IDENTIFIER: (186..187) \"n\"\n ATMOSPHERE: (187..188) \" \"\n CONSTANT: (188..189)\n NUMBER: (188..189) \"0\"\n CLOSE_PAREN: (189..190) \")\"\n ATMOSPHERE: (190..203) \"\n \"\n SYMBOL: (203..206)\n IDENTIFIER: (203..206) \"acc\"\n ATMOSPHERE: (206..219) \"\n \"\n FORM: (219..251)\n OPEN_PAREN: (219..220) \"(\"\n SYMBOL: (220..232)\n IDENTIFIER: (220..232) \"iterfact-acc\"\n ATMOSPHERE: (232..233) \" \"\n FORM: (233..240)\n OPEN_PAREN: (233..234) \"(\"\n SYMBOL: (234..235)\n IDENTIFIER: (234..235) \"-\"\n ATMOSPHERE: (235..236) \" \"\n SYMBOL: (236..237)\n IDENTIFIER: (236..237) \"n\"\n ATMOSPHERE: (237..238) \" \"\n CONSTANT: (238..239)\n NUMBER: (238..239) \"1\"\n CLOSE_PAREN: (239..240) \")\"\n ATMOSPHERE: (240..241) \" \"\n FORM: (241..250)\n OPEN_PAREN: (241..242) \"(\"\n SYMBOL: (242..243)\n IDENTIFIER: (242..243) \"*\"\n ATMOSPHERE: (243..244) \" \"\n SYMBOL: (244..247)\n IDENTIFIER: (244..247) \"acc\"\n ATMOSPHERE: (247..248) \" \"\n SYMBOL: (248..249)\n IDENTIFIER: (248..249) \"n\"\n CLOSE_PAREN: (249..250) \")\"\n CLOSE_PAREN: (250..251) \")\"\n CLOSE_PAREN: (251..252) \")\"\n CLOSE_PAREN: (252..253) \")\"\n ATMOSPHERE: (253..258) \"\n \"\n FORM: (258..276)\n OPEN_PAREN: (258..259) \"(\"\n SYMBOL: (259..271)\n IDENTIFIER: (259..271) \"iterfact-acc\"\n ATMOSPHERE: (271..272) \" \"\n SYMBOL: (272..273)\n IDENTIFIER: (272..273) \"n\"\n ATMOSPHERE: (273..274) \" \"\n CONSTANT: (274..275)\n NUMBER: (274..275) \"1\"\n CLOSE_PAREN: (275..276) \")\"\n CLOSE_PAREN: (276..277) \")\"\n ATMOSPHERE: (277..279) \"\n\n\"\n FORM: (279..297)\n OPEN_PAREN: (279..280) \"(\"\n SYMBOL: (280..287)\n IDENTIFIER: (280..287) \"display\"\n ATMOSPHERE: (287..288) \" \"\n FORM: (288..296)\n OPEN_PAREN: (288..289) \"(\"\n SYMBOL: (289..293)\n IDENTIFIER: (289..293) \"fact\"\n ATMOSPHERE: (293..294) \" \"\n CONSTANT: (294..295)\n NUMBER: (294..295) \"4\"\n CLOSE_PAREN: (295..296) \")\"\n CLOSE_PAREN: (296..297) \")\"\n FORM: (297..306)\n OPEN_PAREN: (297..298) \"(\"\n SYMBOL: (298..305)\n IDENTIFIER: (298..305) \"newline\"\n CLOSE_PAREN: (305..306) \")\"\n ATMOSPHERE: (306..307) \" \"\n ATMOSPHERE: (307..314) \"; => 24\"\n ATMOSPHERE: (314..315) \"\n\"\n FORM: (315..337)\n OPEN_PAREN: (315..316) \"(\"\n SYMBOL: (316..323)\n IDENTIFIER: (316..323) \"display\"\n ATMOSPHERE: (323..324) \" \"\n FORM: (324..336)\n OPEN_PAREN: (324..325) \"(\"\n SYMBOL: (325..333)\n IDENTIFIER: (325..333) \"iterfact\"\n ATMOSPHERE: (333..334) \" \"\n CONSTANT: (334..335)\n NUMBER: (334..335) \"4\"\n CLOSE_PAREN: (335..336) \")\"\n CLOSE_PAREN: (336..337) \")\"\n FORM: (337..346)\n OPEN_PAREN: (337..338) \"(\"\n SYMBOL: (338..345)\n IDENTIFIER: (338..345) \"newline\"\n CLOSE_PAREN: (345..346) \")\"\n ATMOSPHERE: (346..347) \" \"\n ATMOSPHERE: (347..354) \"; => 24\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_lambdas.scm.json b/test/Feersum.Tests/_snapshots/Parse_lambdas.scm.json
deleted file mode 100644
index a0a98f5..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_lambdas.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..190)\n FORM: (0..40)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"define\"\n ATMOSPHERE: (7..8) \" \"\n SYMBOL: (8..9)\n IDENTIFIER: (8..9) \"x\"\n ATMOSPHERE: (9..10) \" \"\n FORM: (10..39)\n OPEN_PAREN: (10..11) \"(\"\n SYMBOL: (11..17)\n IDENTIFIER: (11..17) \"lambda\"\n ATMOSPHERE: (17..18) \" \"\n SYMBOL: (18..19)\n IDENTIFIER: (18..19) \"y\"\n ATMOSPHERE: (19..24) \"\n \"\n FORM: (24..38)\n OPEN_PAREN: (24..25) \"(\"\n SYMBOL: (25..31)\n IDENTIFIER: (25..31) \"lambda\"\n ATMOSPHERE: (31..32) \" \"\n SYMBOL: (32..33)\n IDENTIFIER: (32..33) \"z\"\n ATMOSPHERE: (33..34) \" \"\n CONSTANT: (34..37)\n NUMBER: (34..37) \"100\"\n CLOSE_PAREN: (37..38) \")\"\n CLOSE_PAREN: (38..39) \")\"\n CLOSE_PAREN: (39..40) \")\"\n ATMOSPHERE: (40..41) \"\n\"\n FORM: (41..83)\n OPEN_PAREN: (41..42) \"(\"\n SYMBOL: (42..48)\n IDENTIFIER: (42..48) \"define\"\n ATMOSPHERE: (48..49) \" \"\n SYMBOL: (49..50)\n IDENTIFIER: (49..50) \"y\"\n ATMOSPHERE: (50..51) \" \"\n FORM: (51..82)\n OPEN_PAREN: (51..52) \"(\"\n SYMBOL: (52..58)\n IDENTIFIER: (52..58) \"lambda\"\n ATMOSPHERE: (58..59) \" \"\n SYMBOL: (59..60)\n IDENTIFIER: (59..60) \"y\"\n ATMOSPHERE: (60..65) \"\n \"\n FORM: (65..81)\n OPEN_PAREN: (65..66) \"(\"\n SYMBOL: (66..72)\n IDENTIFIER: (66..72) \"lambda\"\n ATMOSPHERE: (72..73) \" \"\n SYMBOL: (73..74)\n IDENTIFIER: (73..74) \"z\"\n ATMOSPHERE: (74..75) \" \"\n CONSTANT: (75..80)\n NUMBER: (75..80) \"23123\"\n CLOSE_PAREN: (80..81) \")\"\n CLOSE_PAREN: (81..82) \")\"\n CLOSE_PAREN: (82..83) \")\"\n ATMOSPHERE: (83..84) \"\n\"\n FORM: (84..109)\n OPEN_PAREN: (84..85) \"(\"\n SYMBOL: (85..91)\n IDENTIFIER: (85..91) \"define\"\n ATMOSPHERE: (91..92) \" \"\n SYMBOL: (92..93)\n IDENTIFIER: (92..93) \"z\"\n ATMOSPHERE: (93..94) \" \"\n FORM: (94..108)\n OPEN_PAREN: (94..95) \"(\"\n SYMBOL: (95..101)\n IDENTIFIER: (95..101) \"lambda\"\n ATMOSPHERE: (101..102) \" \"\n SYMBOL: (102..103)\n IDENTIFIER: (102..103) \"y\"\n ATMOSPHERE: (103..104) \" \"\n CONSTANT: (104..107)\n NUMBER: (104..107) \"123\"\n CLOSE_PAREN: (107..108) \")\"\n CLOSE_PAREN: (108..109) \")\"\n ATMOSPHERE: (109..110) \"\n\"\n FORM: (110..140)\n OPEN_PAREN: (110..111) \"(\"\n SYMBOL: (111..117)\n IDENTIFIER: (111..117) \"define\"\n ATMOSPHERE: (117..118) \" \"\n SYMBOL: (118..119)\n IDENTIFIER: (118..119) \"a\"\n ATMOSPHERE: (119..120) \" \"\n FORM: (120..139)\n OPEN_PAREN: (120..121) \"(\"\n SYMBOL: (121..127)\n IDENTIFIER: (121..127) \"lambda\"\n ATMOSPHERE: (127..128) \" \"\n FORM: (128..135)\n OPEN_PAREN: (128..129) \"(\"\n SYMBOL: (129..130)\n IDENTIFIER: (129..130) \"a\"\n ATMOSPHERE: (130..131) \" \"\n SYMBOL: (131..132)\n IDENTIFIER: (131..132) \"b\"\n ATMOSPHERE: (132..133) \" \"\n SYMBOL: (133..134)\n IDENTIFIER: (133..134) \"c\"\n CLOSE_PAREN: (134..135) \")\"\n ATMOSPHERE: (135..136) \" \"\n CONSTANT: (136..138)\n NUMBER: (136..138) \"20\"\n CLOSE_PAREN: (138..139) \")\"\n CLOSE_PAREN: (139..140) \")\"\n ATMOSPHERE: (140..141) \"\n\"\n FORM: (141..175)\n OPEN_PAREN: (141..142) \"(\"\n SYMBOL: (142..148)\n IDENTIFIER: (142..148) \"define\"\n ATMOSPHERE: (148..149) \" \"\n SYMBOL: (149..150)\n IDENTIFIER: (149..150) \"b\"\n ATMOSPHERE: (150..151) \" \"\n FORM: (151..174)\n OPEN_PAREN: (151..152) \"(\"\n SYMBOL: (152..158)\n IDENTIFIER: (152..158) \"lambda\"\n ATMOSPHERE: (158..159) \" \"\n FORM: (159..168)\n OPEN_PAREN: (159..160) \"(\"\n SYMBOL: (160..161)\n IDENTIFIER: (160..161) \"a\"\n ATMOSPHERE: (161..162) \" \"\n SYMBOL: (162..163)\n IDENTIFIER: (162..163) \"b\"\n ATMOSPHERE: (163..164) \" \"\n DOTTED_TAIL: (164..167)\n DOT: (164..165) \".\"\n ATMOSPHERE: (165..166) \" \"\n SYMBOL: (166..167)\n IDENTIFIER: (166..167) \"c\"\n CLOSE_PAREN: (167..168) \")\"\n ATMOSPHERE: (168..169) \" \"\n CONSTANT: (169..173)\n NUMBER: (169..173) \"1234\"\n CLOSE_PAREN: (173..174) \")\"\n CLOSE_PAREN: (174..175) \")\"\n ATMOSPHERE: (175..176) \"\n\"\n FORM: (176..181)\n OPEN_PAREN: (176..177) \"(\"\n FORM: (177..180)\n OPEN_PAREN: (177..178) \"(\"\n SYMBOL: (178..179)\n IDENTIFIER: (178..179) \"x\"\n CLOSE_PAREN: (179..180) \")\"\n CLOSE_PAREN: (180..181) \")\"\n ATMOSPHERE: (181..182) \" \"\n ATMOSPHERE: (182..190) \"; -> 100\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_let.scm.json b/test/Feersum.Tests/_snapshots/Parse_let.scm.json
deleted file mode 100644
index 1f7e1db..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_let.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..152)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..134)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..49)\n IDENTIFIER: (43..49) \"define\"\n ATMOSPHERE: (49..50) \" \"\n FORM: (50..57)\n OPEN_PAREN: (50..51) \"(\"\n SYMBOL: (51..54)\n IDENTIFIER: (51..54) \"foo\"\n ATMOSPHERE: (54..55) \" \"\n SYMBOL: (55..56)\n IDENTIFIER: (55..56) \"a\"\n CLOSE_PAREN: (56..57) \")\"\n ATMOSPHERE: (57..62) \"\n \"\n FORM: (62..133)\n OPEN_PAREN: (62..63) \"(\"\n SYMBOL: (63..66)\n IDENTIFIER: (63..66) \"let\"\n ATMOSPHERE: (66..67) \" \"\n FORM: (67..90)\n OPEN_PAREN: (67..68) \"(\"\n FORM: (68..73)\n OPEN_PAREN: (68..69) \"(\"\n SYMBOL: (69..70)\n IDENTIFIER: (69..70) \"b\"\n ATMOSPHERE: (70..71) \" \"\n SYMBOL: (71..72)\n IDENTIFIER: (71..72) \"a\"\n CLOSE_PAREN: (72..73) \")\"\n ATMOSPHERE: (73..82) \"\n \"\n FORM: (82..89)\n OPEN_PAREN: (82..83) \"(\"\n SYMBOL: (83..84)\n IDENTIFIER: (83..84) \"c\"\n ATMOSPHERE: (84..85) \" \"\n CONSTANT: (85..88)\n NUMBER: (85..88) \"100\"\n CLOSE_PAREN: (88..89) \")\"\n CLOSE_PAREN: (89..90) \")\"\n ATMOSPHERE: (90..99) \"\n \"\n FORM: (99..116)\n OPEN_PAREN: (99..100) \"(\"\n SYMBOL: (100..107)\n IDENTIFIER: (100..107) \"display\"\n ATMOSPHERE: (107..108) \" \"\n FORM: (108..115)\n OPEN_PAREN: (108..109) \"(\"\n SYMBOL: (109..110)\n IDENTIFIER: (109..110) \"+\"\n ATMOSPHERE: (110..111) \" \"\n SYMBOL: (111..112)\n IDENTIFIER: (111..112) \"a\"\n ATMOSPHERE: (112..113) \" \"\n SYMBOL: (113..114)\n IDENTIFIER: (113..114) \"b\"\n CLOSE_PAREN: (114..115) \")\"\n CLOSE_PAREN: (115..116) \")\"\n ATMOSPHERE: (116..125) \"\n \"\n FORM: (125..132)\n OPEN_PAREN: (125..126) \"(\"\n SYMBOL: (126..127)\n IDENTIFIER: (126..127) \"-\"\n ATMOSPHERE: (127..128) \" \"\n SYMBOL: (128..129)\n IDENTIFIER: (128..129) \"b\"\n ATMOSPHERE: (129..130) \" \"\n SYMBOL: (130..131)\n IDENTIFIER: (130..131) \"c\"\n CLOSE_PAREN: (131..132) \")\"\n CLOSE_PAREN: (132..133) \")\"\n CLOSE_PAREN: (133..134) \")\"\n ATMOSPHERE: (134..135) \"\n\"\n FORM: (135..144)\n OPEN_PAREN: (135..136) \"(\"\n SYMBOL: (136..139)\n IDENTIFIER: (136..139) \"foo\"\n ATMOSPHERE: (139..140) \" \"\n CONSTANT: (140..143)\n NUMBER: (140..143) \"123\"\n CLOSE_PAREN: (143..144) \")\"\n ATMOSPHERE: (144..145) \" \"\n ATMOSPHERE: (145..152) \"; ~> 23\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_libcapture.scm.json b/test/Feersum.Tests/_snapshots/Parse_libcapture.scm.json
deleted file mode 100644
index 2527052..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_libcapture.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..238)\n FORM: (0..170)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..15)\n IDENTIFIER: (1..15) \"define-library\"\n ATMOSPHERE: (15..16) \" \"\n FORM: (16..29)\n OPEN_PAREN: (16..17) \"(\"\n SYMBOL: (17..20)\n IDENTIFIER: (17..20) \"lib\"\n ATMOSPHERE: (20..21) \" \"\n SYMBOL: (21..28)\n IDENTIFIER: (21..28) \"capture\"\n CLOSE_PAREN: (28..29) \")\"\n ATMOSPHERE: (29..34) \"\n \"\n FORM: (34..49)\n OPEN_PAREN: (34..35) \"(\"\n SYMBOL: (35..41)\n IDENTIFIER: (35..41) \"export\"\n ATMOSPHERE: (41..42) \" \"\n SYMBOL: (42..48)\n IDENTIFIER: (42..48) \"testit\"\n CLOSE_PAREN: (48..49) \")\"\n ATMOSPHERE: (49..54) \"\n \"\n FORM: (54..169)\n OPEN_PAREN: (54..55) \"(\"\n SYMBOL: (55..60)\n IDENTIFIER: (55..60) \"begin\"\n ATMOSPHERE: (60..69) \"\n \"\n FORM: (69..93)\n OPEN_PAREN: (69..70) \"(\"\n SYMBOL: (70..76)\n IDENTIFIER: (70..76) \"define\"\n ATMOSPHERE: (76..77) \" \"\n SYMBOL: (77..83)\n IDENTIFIER: (77..83) \"testit\"\n ATMOSPHERE: (83..84) \" \"\n CONSTANT: (84..92)\n STRING: (84..92) \"\"broken\"\"\n CLOSE_PAREN: (92..93) \")\"\n ATMOSPHERE: (93..102) \"\n \"\n FORM: (102..168)\n OPEN_PAREN: (102..103) \"(\"\n SYMBOL: (103..106)\n IDENTIFIER: (103..106) \"let\"\n ATMOSPHERE: (106..107) \" \"\n FORM: (107..129)\n OPEN_PAREN: (107..108) \"(\"\n FORM: (108..128)\n OPEN_PAREN: (108..109) \"(\"\n SYMBOL: (109..120)\n IDENTIFIER: (109..120) \"replacement\"\n ATMOSPHERE: (120..121) \" \"\n CONSTANT: (121..127)\n STRING: (121..127) \"\"pass\"\"\n CLOSE_PAREN: (127..128) \")\"\n CLOSE_PAREN: (128..129) \")\"\n ATMOSPHERE: (129..142) \"\n \"\n FORM: (142..167)\n OPEN_PAREN: (142..143) \"(\"\n SYMBOL: (143..147)\n IDENTIFIER: (143..147) \"set!\"\n ATMOSPHERE: (147..148) \" \"\n SYMBOL: (148..154)\n IDENTIFIER: (148..154) \"testit\"\n ATMOSPHERE: (154..155) \" \"\n SYMBOL: (155..166)\n IDENTIFIER: (155..166) \"replacement\"\n CLOSE_PAREN: (166..167) \")\"\n CLOSE_PAREN: (167..168) \")\"\n CLOSE_PAREN: (168..169) \")\"\n CLOSE_PAREN: (169..170) \")\"\n ATMOSPHERE: (170..171) \"\n\"\n FORM: (171..212)\n OPEN_PAREN: (171..172) \"(\"\n SYMBOL: (172..178)\n IDENTIFIER: (172..178) \"import\"\n ATMOSPHERE: (178..179) \" \"\n FORM: (179..192)\n OPEN_PAREN: (179..180) \"(\"\n SYMBOL: (180..183)\n IDENTIFIER: (180..183) \"lib\"\n ATMOSPHERE: (183..184) \" \"\n SYMBOL: (184..191)\n IDENTIFIER: (184..191) \"capture\"\n CLOSE_PAREN: (191..192) \")\"\n ATMOSPHERE: (192..197) \"\n \"\n FORM: (197..211)\n OPEN_PAREN: (197..198) \"(\"\n SYMBOL: (198..204)\n IDENTIFIER: (198..204) \"scheme\"\n ATMOSPHERE: (204..205) \" \"\n SYMBOL: (205..210)\n IDENTIFIER: (205..210) \"write\"\n CLOSE_PAREN: (210..211) \")\"\n CLOSE_PAREN: (211..212) \")\"\n ATMOSPHERE: (212..213) \"\n\"\n FORM: (213..229)\n OPEN_PAREN: (213..214) \"(\"\n SYMBOL: (214..221)\n IDENTIFIER: (214..221) \"display\"\n ATMOSPHERE: (221..222) \" \"\n SYMBOL: (222..228)\n IDENTIFIER: (222..228) \"testit\"\n CLOSE_PAREN: (228..229) \")\"\n FORM: (229..238)\n OPEN_PAREN: (229..230) \"(\"\n SYMBOL: (230..237)\n IDENTIFIER: (230..237) \"newline\"\n CLOSE_PAREN: (237..238) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_libgreet.scm.json b/test/Feersum.Tests/_snapshots/Parse_libgreet.scm.json
deleted file mode 100644
index d41491f..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_libgreet.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..268)\n FORM: (0..195)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..15)\n IDENTIFIER: (1..15) \"define-library\"\n ATMOSPHERE: (15..16) \" \"\n FORM: (16..30)\n OPEN_PAREN: (16..17) \"(\"\n SYMBOL: (17..21)\n IDENTIFIER: (17..21) \"test\"\n ATMOSPHERE: (21..22) \" \"\n SYMBOL: (22..29)\n IDENTIFIER: (22..29) \"greeter\"\n CLOSE_PAREN: (29..30) \")\"\n ATMOSPHERE: (30..32) \"\n\t\"\n FORM: (32..46)\n OPEN_PAREN: (32..33) \"(\"\n SYMBOL: (33..39)\n IDENTIFIER: (33..39) \"export\"\n ATMOSPHERE: (39..40) \" \"\n SYMBOL: (40..45)\n IDENTIFIER: (40..45) \"greet\"\n CLOSE_PAREN: (45..46) \")\"\n ATMOSPHERE: (46..48) \"\n\t\"\n FORM: (48..87)\n OPEN_PAREN: (48..49) \"(\"\n SYMBOL: (49..55)\n IDENTIFIER: (49..55) \"import\"\n ATMOSPHERE: (55..56) \" \"\n FORM: (56..69)\n OPEN_PAREN: (56..57) \"(\"\n SYMBOL: (57..63)\n IDENTIFIER: (57..63) \"scheme\"\n ATMOSPHERE: (63..64) \" \"\n SYMBOL: (64..68)\n IDENTIFIER: (64..68) \"base\"\n CLOSE_PAREN: (68..69) \")\"\n ATMOSPHERE: (69..72) \"\n\t\t\"\n FORM: (72..86)\n OPEN_PAREN: (72..73) \"(\"\n SYMBOL: (73..79)\n IDENTIFIER: (73..79) \"scheme\"\n ATMOSPHERE: (79..80) \" \"\n SYMBOL: (80..85)\n IDENTIFIER: (80..85) \"write\"\n CLOSE_PAREN: (85..86) \")\"\n CLOSE_PAREN: (86..87) \")\"\n ATMOSPHERE: (87..89) \"\n\t\"\n FORM: (89..194)\n OPEN_PAREN: (89..90) \"(\"\n SYMBOL: (90..95)\n IDENTIFIER: (90..95) \"begin\"\n ATMOSPHERE: (95..98) \"\n\t\t\"\n FORM: (98..193)\n OPEN_PAREN: (98..99) \"(\"\n SYMBOL: (99..105)\n IDENTIFIER: (99..105) \"define\"\n ATMOSPHERE: (105..106) \" \"\n FORM: (106..120)\n OPEN_PAREN: (106..107) \"(\"\n SYMBOL: (107..112)\n IDENTIFIER: (107..112) \"greet\"\n ATMOSPHERE: (112..113) \" \"\n SYMBOL: (113..119)\n IDENTIFIER: (113..119) \"person\"\n CLOSE_PAREN: (119..120) \")\"\n ATMOSPHERE: (120..124) \"\n\t\t\t\"\n FORM: (124..142)\n OPEN_PAREN: (124..125) \"(\"\n SYMBOL: (125..132)\n IDENTIFIER: (125..132) \"display\"\n ATMOSPHERE: (132..133) \" \"\n CONSTANT: (133..141)\n STRING: (133..141) \"\"Hello \"\"\n CLOSE_PAREN: (141..142) \")\"\n ATMOSPHERE: (142..146) \"\n\t\t\t\"\n FORM: (146..162)\n OPEN_PAREN: (146..147) \"(\"\n SYMBOL: (147..154)\n IDENTIFIER: (147..154) \"display\"\n ATMOSPHERE: (154..155) \" \"\n SYMBOL: (155..161)\n IDENTIFIER: (155..161) \"person\"\n CLOSE_PAREN: (161..162) \")\"\n ATMOSPHERE: (162..166) \"\n\t\t\t\"\n FORM: (166..179)\n OPEN_PAREN: (166..167) \"(\"\n SYMBOL: (167..174)\n IDENTIFIER: (167..174) \"display\"\n ATMOSPHERE: (174..175) \" \"\n CONSTANT: (175..178)\n CHARACTER: (175..178) \"#\\!\"\n CLOSE_PAREN: (178..179) \")\"\n ATMOSPHERE: (179..183) \"\n\t\t\t\"\n FORM: (183..192)\n OPEN_PAREN: (183..184) \"(\"\n SYMBOL: (184..191)\n IDENTIFIER: (184..191) \"newline\"\n CLOSE_PAREN: (191..192) \")\"\n CLOSE_PAREN: (192..193) \")\"\n CLOSE_PAREN: (193..194) \")\"\n CLOSE_PAREN: (194..195) \")\"\n ATMOSPHERE: (195..197) \"\n\n\"\n FORM: (197..247)\n OPEN_PAREN: (197..198) \"(\"\n SYMBOL: (198..204)\n IDENTIFIER: (198..204) \"import\"\n ATMOSPHERE: (204..205) \" \"\n FORM: (205..246)\n OPEN_PAREN: (205..206) \"(\"\n SYMBOL: (206..212)\n IDENTIFIER: (206..212) \"prefix\"\n ATMOSPHERE: (212..213) \" \"\n FORM: (213..240)\n OPEN_PAREN: (213..214) \"(\"\n SYMBOL: (214..218)\n IDENTIFIER: (214..218) \"only\"\n ATMOSPHERE: (218..219) \" \"\n FORM: (219..233)\n OPEN_PAREN: (219..220) \"(\"\n SYMBOL: (220..224)\n IDENTIFIER: (220..224) \"test\"\n ATMOSPHERE: (224..225) \" \"\n SYMBOL: (225..232)\n IDENTIFIER: (225..232) \"greeter\"\n CLOSE_PAREN: (232..233) \")\"\n ATMOSPHERE: (233..234) \" \"\n SYMBOL: (234..239)\n IDENTIFIER: (234..239) \"greet\"\n CLOSE_PAREN: (239..240) \")\"\n ATMOSPHERE: (240..241) \" \"\n SYMBOL: (241..245)\n IDENTIFIER: (241..245) \"grt/\"\n CLOSE_PAREN: (245..246) \")\"\n CLOSE_PAREN: (246..247) \")\"\n ATMOSPHERE: (247..249) \"\n\n\"\n FORM: (249..268)\n OPEN_PAREN: (249..250) \"(\"\n SYMBOL: (250..259)\n IDENTIFIER: (250..259) \"grt/greet\"\n ATMOSPHERE: (259..260) \" \"\n CONSTANT: (260..267)\n STRING: (260..267) \"\"world\"\"\n CLOSE_PAREN: (267..268) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_libs.scm.json b/test/Feersum.Tests/_snapshots/Parse_libs.scm.json
deleted file mode 100644
index 2a97b46..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_libs.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..530)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..94)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..57)\n IDENTIFIER: (43..57) \"define-library\"\n ATMOSPHERE: (57..58) \" \"\n FORM: (58..93)\n OPEN_PAREN: (58..59) \"(\"\n SYMBOL: (59..61)\n IDENTIFIER: (59..61) \"it\"\n ATMOSPHERE: (61..62) \" \"\n SYMBOL: (62..68)\n IDENTIFIER: (62..68) \"should\"\n ATMOSPHERE: (68..69) \" \"\n CONSTANT: (69..72)\n NUMBER: (69..72) \"100\"\n ATMOSPHERE: (72..73) \" \"\n SYMBOL: (73..80)\n IDENTIFIER: (73..80) \"support\"\n ATMOSPHERE: (80..81) \" \"\n CONSTANT: (81..84)\n NUMBER: (81..84) \"202\"\n ATMOSPHERE: (84..85) \" \"\n SYMBOL: (85..92)\n IDENTIFIER: (85..92) \"numbers\"\n CLOSE_PAREN: (92..93) \")\"\n CLOSE_PAREN: (93..94) \")\"\n ATMOSPHERE: (94..95) \"\n\"\n FORM: (95..129)\n OPEN_PAREN: (95..96) \"(\"\n SYMBOL: (96..110)\n IDENTIFIER: (96..110) \"define-library\"\n ATMOSPHERE: (110..111) \" \"\n FORM: (111..128)\n OPEN_PAREN: (111..112) \"(\"\n SYMBOL: (112..116)\n IDENTIFIER: (112..116) \"test\"\n ATMOSPHERE: (116..117) \" \"\n SYMBOL: (117..127)\n IDENTIFIER: (117..127) \"dependency\"\n CLOSE_PAREN: (127..128) \")\"\n CLOSE_PAREN: (128..129) \")\"\n ATMOSPHERE: (129..130) \"\n\"\n FORM: (130..346)\n OPEN_PAREN: (130..131) \"(\"\n SYMBOL: (131..145)\n IDENTIFIER: (131..145) \"define-library\"\n ATMOSPHERE: (145..146) \" \"\n FORM: (146..160)\n OPEN_PAREN: (146..147) \"(\"\n SYMBOL: (147..154)\n IDENTIFIER: (147..154) \"example\"\n ATMOSPHERE: (154..155) \" \"\n SYMBOL: (155..159)\n IDENTIFIER: (155..159) \"grid\"\n CLOSE_PAREN: (159..160) \")\"\n ATMOSPHERE: (160..162) \"\n\t\"\n FORM: (162..215)\n OPEN_PAREN: (162..163) \"(\"\n SYMBOL: (163..169)\n IDENTIFIER: (163..169) \"export\"\n ATMOSPHERE: (169..170) \" \"\n SYMBOL: (170..173)\n IDENTIFIER: (170..173) \"fiz\"\n ATMOSPHERE: (173..174) \" \"\n SYMBOL: (174..177)\n IDENTIFIER: (174..177) \"buz\"\n ATMOSPHERE: (177..180) \"\n\t\t\"\n FORM: (180..214)\n OPEN_PAREN: (180..181) \"(\"\n SYMBOL: (181..187)\n IDENTIFIER: (181..187) \"rename\"\n ATMOSPHERE: (187..188) \" \"\n SYMBOL: (188..199)\n IDENTIFIER: (188..199) \"hidden-name\"\n ATMOSPHERE: (199..200) \" \"\n SYMBOL: (200..213)\n IDENTIFIER: (200..213) \"external-name\"\n CLOSE_PAREN: (213..214) \")\"\n CLOSE_PAREN: (214..215) \")\"\n ATMOSPHERE: (215..217) \"\n\t\"\n FORM: (217..243)\n OPEN_PAREN: (217..218) \"(\"\n SYMBOL: (218..224)\n IDENTIFIER: (218..224) \"import\"\n ATMOSPHERE: (224..225) \" \"\n FORM: (225..242)\n OPEN_PAREN: (225..226) \"(\"\n SYMBOL: (226..230)\n IDENTIFIER: (226..230) \"test\"\n ATMOSPHERE: (230..231) \" \"\n SYMBOL: (231..241)\n IDENTIFIER: (231..241) \"dependency\"\n CLOSE_PAREN: (241..242) \")\"\n CLOSE_PAREN: (242..243) \")\"\n ATMOSPHERE: (243..245) \"\n\t\"\n FORM: (245..345)\n OPEN_PAREN: (245..246) \"(\"\n SYMBOL: (246..251)\n IDENTIFIER: (246..251) \"begin\"\n ATMOSPHERE: (251..254) \"\n\t\t\"\n FORM: (254..270)\n OPEN_PAREN: (254..255) \"(\"\n SYMBOL: (255..261)\n IDENTIFIER: (255..261) \"define\"\n ATMOSPHERE: (261..262) \" \"\n SYMBOL: (262..265)\n IDENTIFIER: (262..265) \"fiz\"\n ATMOSPHERE: (265..266) \" \"\n CONSTANT: (266..269)\n NUMBER: (266..269) \"100\"\n CLOSE_PAREN: (269..270) \")\"\n ATMOSPHERE: (270..273) \"\n\t\t\"\n FORM: (273..289)\n OPEN_PAREN: (273..274) \"(\"\n SYMBOL: (274..280)\n IDENTIFIER: (274..280) \"define\"\n ATMOSPHERE: (280..281) \" \"\n SYMBOL: (281..284)\n IDENTIFIER: (281..284) \"buz\"\n ATMOSPHERE: (284..285) \" \"\n CONSTANT: (285..288)\n NUMBER: (285..288) \"100\"\n CLOSE_PAREN: (288..289) \")\"\n ATMOSPHERE: (289..292) \"\n\t\t\"\n FORM: (292..316)\n OPEN_PAREN: (292..293) \"(\"\n SYMBOL: (293..299)\n IDENTIFIER: (293..299) \"define\"\n ATMOSPHERE: (299..300) \" \"\n SYMBOL: (300..311)\n IDENTIFIER: (300..311) \"hidden-name\"\n ATMOSPHERE: (311..312) \" \"\n CONSTANT: (312..315)\n NUMBER: (312..315) \"101\"\n CLOSE_PAREN: (315..316) \")\"\n ATMOSPHERE: (316..319) \"\n\t\t\"\n FORM: (319..344)\n OPEN_PAREN: (319..320) \"(\"\n SYMBOL: (320..326)\n IDENTIFIER: (320..326) \"define\"\n ATMOSPHERE: (326..327) \" \"\n SYMBOL: (327..339)\n IDENTIFIER: (327..339) \"not-exported\"\n ATMOSPHERE: (339..340) \" \"\n CONSTANT: (340..343)\n NUMBER: (340..343) \"100\"\n CLOSE_PAREN: (343..344) \")\"\n CLOSE_PAREN: (344..345) \")\"\n CLOSE_PAREN: (345..346) \")\"\n ATMOSPHERE: (346..347) \"\n\"\n FORM: (347..477)\n OPEN_PAREN: (347..348) \"(\"\n SYMBOL: (348..362)\n IDENTIFIER: (348..362) \"define-library\"\n ATMOSPHERE: (362..363) \" \"\n FORM: (363..377)\n OPEN_PAREN: (363..364) \"(\"\n SYMBOL: (364..368)\n IDENTIFIER: (364..368) \"test\"\n ATMOSPHERE: (368..369) \" \"\n SYMBOL: (369..376)\n IDENTIFIER: (369..376) \"greeter\"\n CLOSE_PAREN: (376..377) \")\"\n ATMOSPHERE: (377..379) \"\n\t\"\n FORM: (379..417)\n OPEN_PAREN: (379..380) \"(\"\n SYMBOL: (380..386)\n IDENTIFIER: (380..386) \"import\"\n ATMOSPHERE: (386..387) \" \"\n FORM: (387..416)\n OPEN_PAREN: (387..388) \"(\"\n SYMBOL: (388..394)\n IDENTIFIER: (388..394) \"prefix\"\n ATMOSPHERE: (394..395) \" \"\n FORM: (395..409)\n OPEN_PAREN: (395..396) \"(\"\n SYMBOL: (396..403)\n IDENTIFIER: (396..403) \"example\"\n ATMOSPHERE: (403..404) \" \"\n SYMBOL: (404..408)\n IDENTIFIER: (404..408) \"grid\"\n CLOSE_PAREN: (408..409) \")\"\n ATMOSPHERE: (409..410) \" \"\n SYMBOL: (410..415)\n IDENTIFIER: (410..415) \"grid/\"\n CLOSE_PAREN: (415..416) \")\"\n CLOSE_PAREN: (416..417) \")\"\n ATMOSPHERE: (417..419) \"\n\t\"\n FORM: (419..433)\n OPEN_PAREN: (419..420) \"(\"\n SYMBOL: (420..426)\n IDENTIFIER: (420..426) \"export\"\n ATMOSPHERE: (426..427) \" \"\n SYMBOL: (427..432)\n IDENTIFIER: (427..432) \"greet\"\n CLOSE_PAREN: (432..433) \")\"\n ATMOSPHERE: (433..435) \"\n\t\"\n FORM: (435..476)\n OPEN_PAREN: (435..436) \"(\"\n SYMBOL: (436..441)\n IDENTIFIER: (436..441) \"begin\"\n ATMOSPHERE: (441..442) \" \"\n FORM: (442..475)\n OPEN_PAREN: (442..443) \"(\"\n SYMBOL: (443..449)\n IDENTIFIER: (443..449) \"define\"\n ATMOSPHERE: (449..450) \" \"\n SYMBOL: (450..455)\n IDENTIFIER: (450..455) \"greet\"\n ATMOSPHERE: (455..456) \" \"\n SYMBOL: (456..474)\n IDENTIFIER: (456..474) \"grid/external-name\"\n CLOSE_PAREN: (474..475) \")\"\n CLOSE_PAREN: (475..476) \")\"\n CLOSE_PAREN: (476..477) \")\"\n ATMOSPHERE: (477..478) \"\n\"\n FORM: (478..514)\n OPEN_PAREN: (478..479) \"(\"\n SYMBOL: (479..485)\n IDENTIFIER: (479..485) \"import\"\n ATMOSPHERE: (485..486) \" \"\n FORM: (486..513)\n OPEN_PAREN: (486..487) \"(\"\n SYMBOL: (487..491)\n IDENTIFIER: (487..491) \"only\"\n ATMOSPHERE: (491..492) \" \"\n FORM: (492..506)\n OPEN_PAREN: (492..493) \"(\"\n SYMBOL: (493..497)\n IDENTIFIER: (493..497) \"test\"\n ATMOSPHERE: (497..498) \" \"\n SYMBOL: (498..505)\n IDENTIFIER: (498..505) \"greeter\"\n CLOSE_PAREN: (505..506) \")\"\n ATMOSPHERE: (506..507) \" \"\n SYMBOL: (507..512)\n IDENTIFIER: (507..512) \"greet\"\n CLOSE_PAREN: (512..513) \")\"\n CLOSE_PAREN: (513..514) \")\"\n ATMOSPHERE: (514..515) \"\n\"\n FORM: (515..530)\n OPEN_PAREN: (515..516) \"(\"\n SYMBOL: (516..523)\n IDENTIFIER: (516..523) \"display\"\n ATMOSPHERE: (523..524) \" \"\n SYMBOL: (524..529)\n IDENTIFIER: (524..529) \"greet\"\n CLOSE_PAREN: (529..530) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_lists.scm.json b/test/Feersum.Tests/_snapshots/Parse_lists.scm.json
deleted file mode 100644
index 56461b9..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_lists.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..2619)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..43) \"\n\n\"\n FORM: (43..239)\n OPEN_PAREN: (43..44) \"(\"\n SYMBOL: (44..51)\n IDENTIFIER: (44..51) \"display\"\n ATMOSPHERE: (51..52) \" \"\n FORM: (52..238)\n OPEN_PAREN: (52..53) \"(\"\n SYMBOL: (53..57)\n IDENTIFIER: (53..57) \"list\"\n ATMOSPHERE: (57..62) \"\n \"\n FORM: (62..77)\n OPEN_PAREN: (62..63) \"(\"\n SYMBOL: (63..67)\n IDENTIFIER: (63..67) \"list\"\n ATMOSPHERE: (67..68) \" \"\n CONSTANT: (68..70)\n NUMBER: (68..70) \"12\"\n ATMOSPHERE: (70..71) \" \"\n CONSTANT: (71..73)\n NUMBER: (71..73) \"34\"\n ATMOSPHERE: (73..74) \" \"\n CONSTANT: (74..76)\n NUMBER: (74..76) \"56\"\n CLOSE_PAREN: (76..77) \")\"\n ATMOSPHERE: (77..105) \" \"\n ATMOSPHERE: (105..117) \"; (12 34 56)\"\n ATMOSPHERE: (117..122) \"\n \"\n FORM: (122..155)\n OPEN_PAREN: (122..123) \"(\"\n SYMBOL: (123..126)\n IDENTIFIER: (123..126) \"cdr\"\n ATMOSPHERE: (126..127) \" \"\n FORM: (127..154)\n OPEN_PAREN: (127..128) \"(\"\n SYMBOL: (128..131)\n IDENTIFIER: (128..131) \"cdr\"\n ATMOSPHERE: (131..132) \" \"\n FORM: (132..153)\n OPEN_PAREN: (132..133) \"(\"\n SYMBOL: (133..137)\n IDENTIFIER: (133..137) \"list\"\n ATMOSPHERE: (137..138) \" \"\n CONSTANT: (138..141)\n STRING: (138..141) \"\"a\"\"\n ATMOSPHERE: (141..142) \" \"\n CONSTANT: (142..145)\n CHARACTER: (142..145) \"#\\B\"\n ATMOSPHERE: (145..146) \" \"\n CONSTANT: (146..148)\n BOOLEAN: (146..148) \"#f\"\n ATMOSPHERE: (148..149) \" \"\n CONSTANT: (149..152)\n NUMBER: (149..152) \"4.0\"\n CLOSE_PAREN: (152..153) \")\"\n CLOSE_PAREN: (153..154) \")\"\n CLOSE_PAREN: (154..155) \")\"\n ATMOSPHERE: (155..165) \" \"\n ATMOSPHERE: (165..178) \"; -> (#f 4.0)\"\n ATMOSPHERE: (178..183) \"\n \"\n FORM: (183..224)\n OPEN_PAREN: (183..184) \"(\"\n SYMBOL: (184..187)\n IDENTIFIER: (184..187) \"car\"\n ATMOSPHERE: (187..188) \" \"\n FORM: (188..223)\n OPEN_PAREN: (188..189) \"(\"\n SYMBOL: (189..192)\n IDENTIFIER: (189..192) \"cdr\"\n ATMOSPHERE: (192..193) \" \"\n FORM: (193..222)\n OPEN_PAREN: (193..194) \"(\"\n SYMBOL: (194..197)\n IDENTIFIER: (194..197) \"car\"\n ATMOSPHERE: (197..198) \" \"\n FORM: (198..221)\n OPEN_PAREN: (198..199) \"(\"\n SYMBOL: (199..203)\n IDENTIFIER: (199..203) \"list\"\n ATMOSPHERE: (203..204) \" \"\n FORM: (204..216)\n OPEN_PAREN: (204..205) \"(\"\n SYMBOL: (205..209)\n IDENTIFIER: (205..209) \"list\"\n ATMOSPHERE: (209..210) \" \"\n CONSTANT: (210..211)\n NUMBER: (210..211) \"1\"\n ATMOSPHERE: (211..212) \" \"\n CONSTANT: (212..213)\n NUMBER: (212..213) \"2\"\n ATMOSPHERE: (213..214) \" \"\n CONSTANT: (214..215)\n NUMBER: (214..215) \"3\"\n CLOSE_PAREN: (215..216) \")\"\n ATMOSPHERE: (216..217) \" \"\n CONSTANT: (217..218)\n NUMBER: (217..218) \"4\"\n ATMOSPHERE: (218..219) \" \"\n CONSTANT: (219..220)\n NUMBER: (219..220) \"5\"\n CLOSE_PAREN: (220..221) \")\"\n CLOSE_PAREN: (221..222) \")\"\n CLOSE_PAREN: (222..223) \")\"\n CLOSE_PAREN: (223..224) \")\"\n ATMOSPHERE: (224..226) \" \"\n ATMOSPHERE: (226..232) \"; -> 2\"\n ATMOSPHERE: (232..237) \"\n \"\n CLOSE_PAREN: (237..238) \")\"\n CLOSE_PAREN: (238..239) \")\"\n ATMOSPHERE: (239..240) \"\n\"\n FORM: (240..249)\n OPEN_PAREN: (240..241) \"(\"\n SYMBOL: (241..248)\n IDENTIFIER: (241..248) \"newline\"\n CLOSE_PAREN: (248..249) \")\"\n ATMOSPHERE: (249..251) \"\n\n\"\n FORM: (251..436)\n OPEN_PAREN: (251..252) \"(\"\n SYMBOL: (252..258)\n IDENTIFIER: (252..258) \"define\"\n ATMOSPHERE: (258..259) \" \"\n FORM: (259..269)\n OPEN_PAREN: (259..260) \"(\"\n SYMBOL: (260..263)\n IDENTIFIER: (260..263) \"rev\"\n ATMOSPHERE: (263..264) \" \"\n SYMBOL: (264..268)\n IDENTIFIER: (264..268) \"list\"\n CLOSE_PAREN: (268..269) \")\"\n ATMOSPHERE: (269..274) \"\n \"\n FORM: (274..408)\n OPEN_PAREN: (274..275) \"(\"\n SYMBOL: (275..281)\n IDENTIFIER: (275..281) \"define\"\n ATMOSPHERE: (281..282) \" \"\n FORM: (282..305)\n OPEN_PAREN: (282..283) \"(\"\n SYMBOL: (283..295)\n IDENTIFIER: (283..295) \"rev-with-acc\"\n ATMOSPHERE: (295..296) \" \"\n SYMBOL: (296..300)\n IDENTIFIER: (296..300) \"list\"\n ATMOSPHERE: (300..301) \" \"\n SYMBOL: (301..304)\n IDENTIFIER: (301..304) \"acc\"\n CLOSE_PAREN: (304..305) \")\"\n ATMOSPHERE: (305..314) \"\n \"\n FORM: (314..407)\n OPEN_PAREN: (314..315) \"(\"\n SYMBOL: (315..317)\n IDENTIFIER: (315..317) \"if\"\n ATMOSPHERE: (317..318) \" \"\n FORM: (318..330)\n OPEN_PAREN: (318..319) \"(\"\n SYMBOL: (319..324)\n IDENTIFIER: (319..324) \"null?\"\n ATMOSPHERE: (324..325) \" \"\n SYMBOL: (325..329)\n IDENTIFIER: (325..329) \"list\"\n CLOSE_PAREN: (329..330) \")\"\n ATMOSPHERE: (330..343) \"\n \"\n SYMBOL: (343..346)\n IDENTIFIER: (343..346) \"acc\"\n ATMOSPHERE: (346..359) \"\n \"\n FORM: (359..406)\n OPEN_PAREN: (359..360) \"(\"\n SYMBOL: (360..372)\n IDENTIFIER: (360..372) \"rev-with-acc\"\n ATMOSPHERE: (372..373) \" \"\n FORM: (373..383)\n OPEN_PAREN: (373..374) \"(\"\n SYMBOL: (374..377)\n IDENTIFIER: (374..377) \"cdr\"\n ATMOSPHERE: (377..378) \" \"\n SYMBOL: (378..382)\n IDENTIFIER: (378..382) \"list\"\n CLOSE_PAREN: (382..383) \")\"\n ATMOSPHERE: (383..384) \" \"\n FORM: (384..405)\n OPEN_PAREN: (384..385) \"(\"\n SYMBOL: (385..389)\n IDENTIFIER: (385..389) \"cons\"\n ATMOSPHERE: (389..390) \" \"\n FORM: (390..400)\n OPEN_PAREN: (390..391) \"(\"\n SYMBOL: (391..394)\n IDENTIFIER: (391..394) \"car\"\n ATMOSPHERE: (394..395) \" \"\n SYMBOL: (395..399)\n IDENTIFIER: (395..399) \"list\"\n CLOSE_PAREN: (399..400) \")\"\n ATMOSPHERE: (400..401) \" \"\n SYMBOL: (401..404)\n IDENTIFIER: (401..404) \"acc\"\n CLOSE_PAREN: (404..405) \")\"\n CLOSE_PAREN: (405..406) \")\"\n CLOSE_PAREN: (406..407) \")\"\n CLOSE_PAREN: (407..408) \")\"\n ATMOSPHERE: (408..413) \"\n \"\n FORM: (413..435)\n OPEN_PAREN: (413..414) \"(\"\n SYMBOL: (414..426)\n IDENTIFIER: (414..426) \"rev-with-acc\"\n ATMOSPHERE: (426..427) \" \"\n SYMBOL: (427..431)\n IDENTIFIER: (427..431) \"list\"\n ATMOSPHERE: (431..432) \" \"\n FORM: (432..434)\n OPEN_PAREN: (432..433) \"(\"\n CLOSE_PAREN: (433..434) \")\"\n CLOSE_PAREN: (434..435) \")\"\n CLOSE_PAREN: (435..436) \")\"\n ATMOSPHERE: (436..438) \"\n\n\"\n FORM: (438..470)\n OPEN_PAREN: (438..439) \"(\"\n SYMBOL: (439..446)\n IDENTIFIER: (439..446) \"display\"\n ATMOSPHERE: (446..447) \" \"\n FORM: (447..469)\n OPEN_PAREN: (447..448) \"(\"\n SYMBOL: (448..451)\n IDENTIFIER: (448..451) \"rev\"\n ATMOSPHERE: (451..452) \" \"\n FORM: (452..468)\n OPEN_PAREN: (452..453) \"(\"\n SYMBOL: (453..457)\n IDENTIFIER: (453..457) \"list\"\n ATMOSPHERE: (457..458) \" \"\n CONSTANT: (458..459)\n NUMBER: (458..459) \"1\"\n ATMOSPHERE: (459..460) \" \"\n CONSTANT: (460..461)\n NUMBER: (460..461) \"2\"\n ATMOSPHERE: (461..462) \" \"\n CONSTANT: (462..463)\n NUMBER: (462..463) \"3\"\n ATMOSPHERE: (463..464) \" \"\n CONSTANT: (464..465)\n NUMBER: (464..465) \"4\"\n ATMOSPHERE: (465..466) \" \"\n CONSTANT: (466..467)\n NUMBER: (466..467) \"5\"\n CLOSE_PAREN: (467..468) \")\"\n CLOSE_PAREN: (468..469) \")\"\n CLOSE_PAREN: (469..470) \")\"\n ATMOSPHERE: (470..471) \"\n\"\n FORM: (471..480)\n OPEN_PAREN: (471..472) \"(\"\n SYMBOL: (472..479)\n IDENTIFIER: (472..479) \"newline\"\n CLOSE_PAREN: (479..480) \")\"\n ATMOSPHERE: (480..482) \"\n\n\"\n FORM: (482..513)\n OPEN_PAREN: (482..483) \"(\"\n SYMBOL: (483..490)\n IDENTIFIER: (483..490) \"display\"\n ATMOSPHERE: (490..491) \" \"\n FORM: (491..512)\n OPEN_PAREN: (491..492) \"(\"\n SYMBOL: (492..497)\n IDENTIFIER: (492..497) \"list?\"\n ATMOSPHERE: (497..498) \" \"\n FORM: (498..511)\n OPEN_PAREN: (498..499) \"(\"\n SYMBOL: (499..503)\n IDENTIFIER: (499..503) \"cons\"\n ATMOSPHERE: (503..504) \" \"\n CONSTANT: (504..507)\n STRING: (504..507) \"\"a\"\"\n ATMOSPHERE: (507..508) \" \"\n FORM: (508..510)\n OPEN_PAREN: (508..509) \"(\"\n CLOSE_PAREN: (509..510) \")\"\n CLOSE_PAREN: (510..511) \")\"\n CLOSE_PAREN: (511..512) \")\"\n CLOSE_PAREN: (512..513) \")\"\n ATMOSPHERE: (513..514) \" \"\n ATMOSPHERE: (514..521) \"; -> #t\"\n ATMOSPHERE: (521..522) \"\n\"\n FORM: (522..557)\n OPEN_PAREN: (522..523) \"(\"\n SYMBOL: (523..530)\n IDENTIFIER: (523..530) \"display\"\n ATMOSPHERE: (530..531) \" \"\n FORM: (531..556)\n OPEN_PAREN: (531..532) \"(\"\n SYMBOL: (532..537)\n IDENTIFIER: (532..537) \"list?\"\n ATMOSPHERE: (537..538) \" \"\n FORM: (538..555)\n OPEN_PAREN: (538..539) \"(\"\n SYMBOL: (539..543)\n IDENTIFIER: (539..543) \"cons\"\n ATMOSPHERE: (543..544) \" \"\n CONSTANT: (544..547)\n STRING: (544..547) \"\"a\"\"\n ATMOSPHERE: (547..548) \" \"\n FORM: (548..554)\n OPEN_PAREN: (548..549) \"(\"\n SYMBOL: (549..553)\n IDENTIFIER: (549..553) \"list\"\n CLOSE_PAREN: (553..554) \")\"\n CLOSE_PAREN: (554..555) \")\"\n CLOSE_PAREN: (555..556) \")\"\n CLOSE_PAREN: (556..557) \")\"\n ATMOSPHERE: (557..558) \" \"\n ATMOSPHERE: (558..565) \"; -> #t\"\n ATMOSPHERE: (565..566) \"\n\"\n FORM: (566..598)\n OPEN_PAREN: (566..567) \"(\"\n SYMBOL: (567..574)\n IDENTIFIER: (567..574) \"display\"\n ATMOSPHERE: (574..575) \" \"\n FORM: (575..597)\n OPEN_PAREN: (575..576) \"(\"\n SYMBOL: (576..581)\n IDENTIFIER: (576..581) \"list?\"\n ATMOSPHERE: (581..582) \" \"\n FORM: (582..596)\n OPEN_PAREN: (582..583) \"(\"\n SYMBOL: (583..587)\n IDENTIFIER: (583..587) \"cons\"\n ATMOSPHERE: (587..588) \" \"\n CONSTANT: (588..591)\n STRING: (588..591) \"\"a\"\"\n ATMOSPHERE: (591..592) \" \"\n CONSTANT: (592..595)\n STRING: (592..595) \"\"b\"\"\n CLOSE_PAREN: (595..596) \")\"\n CLOSE_PAREN: (596..597) \")\"\n CLOSE_PAREN: (597..598) \")\"\n ATMOSPHERE: (598..599) \" \"\n ATMOSPHERE: (599..606) \"; -> #f\"\n ATMOSPHERE: (606..607) \"\n\"\n FORM: (607..616)\n OPEN_PAREN: (607..608) \"(\"\n SYMBOL: (608..615)\n IDENTIFIER: (608..615) \"newline\"\n CLOSE_PAREN: (615..616) \")\"\n ATMOSPHERE: (616..618) \"\n\n\"\n FORM: (618..649)\n OPEN_PAREN: (618..619) \"(\"\n SYMBOL: (619..626)\n IDENTIFIER: (619..626) \"display\"\n ATMOSPHERE: (626..627) \" \"\n FORM: (627..648)\n OPEN_PAREN: (627..628) \"(\"\n SYMBOL: (628..633)\n IDENTIFIER: (628..633) \"pair?\"\n ATMOSPHERE: (633..634) \" \"\n FORM: (634..647)\n OPEN_PAREN: (634..635) \"(\"\n SYMBOL: (635..639)\n IDENTIFIER: (635..639) \"cons\"\n ATMOSPHERE: (639..640) \" \"\n CONSTANT: (640..643)\n STRING: (640..643) \"\"a\"\"\n ATMOSPHERE: (643..644) \" \"\n FORM: (644..646)\n OPEN_PAREN: (644..645) \"(\"\n CLOSE_PAREN: (645..646) \")\"\n CLOSE_PAREN: (646..647) \")\"\n CLOSE_PAREN: (647..648) \")\"\n CLOSE_PAREN: (648..649) \")\"\n ATMOSPHERE: (649..650) \" \"\n ATMOSPHERE: (650..657) \"; -> #t\"\n ATMOSPHERE: (657..658) \"\n\"\n FORM: (658..693)\n OPEN_PAREN: (658..659) \"(\"\n SYMBOL: (659..666)\n IDENTIFIER: (659..666) \"display\"\n ATMOSPHERE: (666..667) \" \"\n FORM: (667..692)\n OPEN_PAREN: (667..668) \"(\"\n SYMBOL: (668..673)\n IDENTIFIER: (668..673) \"pair?\"\n ATMOSPHERE: (673..674) \" \"\n FORM: (674..691)\n OPEN_PAREN: (674..675) \"(\"\n SYMBOL: (675..679)\n IDENTIFIER: (675..679) \"cons\"\n ATMOSPHERE: (679..680) \" \"\n CONSTANT: (680..683)\n STRING: (680..683) \"\"a\"\"\n ATMOSPHERE: (683..684) \" \"\n FORM: (684..690)\n OPEN_PAREN: (684..685) \"(\"\n SYMBOL: (685..689)\n IDENTIFIER: (685..689) \"list\"\n CLOSE_PAREN: (689..690) \")\"\n CLOSE_PAREN: (690..691) \")\"\n CLOSE_PAREN: (691..692) \")\"\n CLOSE_PAREN: (692..693) \")\"\n ATMOSPHERE: (693..694) \" \"\n ATMOSPHERE: (694..701) \"; -> #t\"\n ATMOSPHERE: (701..702) \"\n\"\n FORM: (702..734)\n OPEN_PAREN: (702..703) \"(\"\n SYMBOL: (703..710)\n IDENTIFIER: (703..710) \"display\"\n ATMOSPHERE: (710..711) \" \"\n FORM: (711..733)\n OPEN_PAREN: (711..712) \"(\"\n SYMBOL: (712..717)\n IDENTIFIER: (712..717) \"pair?\"\n ATMOSPHERE: (717..718) \" \"\n FORM: (718..732)\n OPEN_PAREN: (718..719) \"(\"\n SYMBOL: (719..723)\n IDENTIFIER: (719..723) \"cons\"\n ATMOSPHERE: (723..724) \" \"\n CONSTANT: (724..727)\n STRING: (724..727) \"\"a\"\"\n ATMOSPHERE: (727..728) \" \"\n CONSTANT: (728..731)\n STRING: (728..731) \"\"b\"\"\n CLOSE_PAREN: (731..732) \")\"\n CLOSE_PAREN: (732..733) \")\"\n CLOSE_PAREN: (733..734) \")\"\n ATMOSPHERE: (734..735) \" \"\n ATMOSPHERE: (735..742) \"; -> #t\"\n ATMOSPHERE: (742..743) \"\n\"\n FORM: (743..752)\n OPEN_PAREN: (743..744) \"(\"\n SYMBOL: (744..751)\n IDENTIFIER: (744..751) \"newline\"\n CLOSE_PAREN: (751..752) \")\"\n ATMOSPHERE: (752..754) \"\n\n\"\n FORM: (754..782)\n OPEN_PAREN: (754..755) \"(\"\n SYMBOL: (755..762)\n IDENTIFIER: (755..762) \"display\"\n ATMOSPHERE: (762..763) \" \"\n FORM: (763..781)\n OPEN_PAREN: (763..764) \"(\"\n SYMBOL: (764..770)\n IDENTIFIER: (764..770) \"append\"\n ATMOSPHERE: (770..771) \" \"\n QUOTED_DATUM: (771..776)\n QUOTE: (771..772) \"’\"\n FORM: (772..775)\n OPEN_PAREN: (772..773) \"(\"\n SYMBOL: (773..774)\n IDENTIFIER: (773..774) \"x\"\n CLOSE_PAREN: (774..775) \")\"\n ATMOSPHERE: (775..776) \" \"\n QUOTED_DATUM: (776..780)\n QUOTE: (776..777) \"’\"\n FORM: (777..780)\n OPEN_PAREN: (777..778) \"(\"\n SYMBOL: (778..779)\n IDENTIFIER: (778..779) \"y\"\n CLOSE_PAREN: (779..780) \")\"\n CLOSE_PAREN: (780..781) \")\"\n CLOSE_PAREN: (781..782) \")\"\n FORM: (782..791)\n OPEN_PAREN: (782..783) \"(\"\n SYMBOL: (783..790)\n IDENTIFIER: (783..790) \"newline\"\n CLOSE_PAREN: (790..791) \")\"\n ATMOSPHERE: (791..792) \" \"\n ATMOSPHERE: (792..802) \"; -> (x y)\"\n ATMOSPHERE: (802..803) \"\n\"\n FORM: (803..835)\n OPEN_PAREN: (803..804) \"(\"\n SYMBOL: (804..811)\n IDENTIFIER: (804..811) \"display\"\n ATMOSPHERE: (811..812) \" \"\n FORM: (812..834)\n OPEN_PAREN: (812..813) \"(\"\n SYMBOL: (813..819)\n IDENTIFIER: (813..819) \"append\"\n ATMOSPHERE: (819..820) \" \"\n QUOTED_DATUM: (820..825)\n QUOTE: (820..821) \"’\"\n FORM: (821..824)\n OPEN_PAREN: (821..822) \"(\"\n SYMBOL: (822..823)\n IDENTIFIER: (822..823) \"a\"\n CLOSE_PAREN: (823..824) \")\"\n ATMOSPHERE: (824..825) \" \"\n QUOTED_DATUM: (825..833)\n QUOTE: (825..826) \"’\"\n FORM: (826..833)\n OPEN_PAREN: (826..827) \"(\"\n SYMBOL: (827..828)\n IDENTIFIER: (827..828) \"b\"\n ATMOSPHERE: (828..829) \" \"\n SYMBOL: (829..830)\n IDENTIFIER: (829..830) \"c\"\n ATMOSPHERE: (830..831) \" \"\n SYMBOL: (831..832)\n IDENTIFIER: (831..832) \"d\"\n CLOSE_PAREN: (832..833) \")\"\n CLOSE_PAREN: (833..834) \")\"\n CLOSE_PAREN: (834..835) \")\"\n FORM: (835..844)\n OPEN_PAREN: (835..836) \"(\"\n SYMBOL: (836..843)\n IDENTIFIER: (836..843) \"newline\"\n CLOSE_PAREN: (843..844) \")\"\n ATMOSPHERE: (844..845) \" \"\n ATMOSPHERE: (845..859) \"; -> (a b c d)\"\n ATMOSPHERE: (859..860) \"\n\"\n FORM: (860..894)\n OPEN_PAREN: (860..861) \"(\"\n SYMBOL: (861..868)\n IDENTIFIER: (861..868) \"display\"\n ATMOSPHERE: (868..869) \" \"\n FORM: (869..893)\n OPEN_PAREN: (869..870) \"(\"\n SYMBOL: (870..876)\n IDENTIFIER: (870..876) \"append\"\n ATMOSPHERE: (876..877) \" \"\n QUOTED_DATUM: (877..886)\n QUOTE: (877..878) \"’\"\n FORM: (878..885)\n OPEN_PAREN: (878..879) \"(\"\n SYMBOL: (879..880)\n IDENTIFIER: (879..880) \"a\"\n ATMOSPHERE: (880..881) \" \"\n FORM: (881..884)\n OPEN_PAREN: (881..882) \"(\"\n SYMBOL: (882..883)\n IDENTIFIER: (882..883) \"b\"\n CLOSE_PAREN: (883..884) \")\"\n CLOSE_PAREN: (884..885) \")\"\n ATMOSPHERE: (885..886) \" \"\n QUOTED_DATUM: (886..892)\n QUOTE: (886..887) \"’\"\n FORM: (887..892)\n OPEN_PAREN: (887..888) \"(\"\n FORM: (888..891)\n OPEN_PAREN: (888..889) \"(\"\n SYMBOL: (889..890)\n IDENTIFIER: (889..890) \"c\"\n CLOSE_PAREN: (890..891) \")\"\n CLOSE_PAREN: (891..892) \")\"\n CLOSE_PAREN: (892..893) \")\"\n CLOSE_PAREN: (893..894) \")\"\n FORM: (894..903)\n OPEN_PAREN: (894..895) \"(\"\n SYMBOL: (895..902)\n IDENTIFIER: (895..902) \"newline\"\n CLOSE_PAREN: (902..903) \")\"\n ATMOSPHERE: (903..904) \" \"\n ATMOSPHERE: (904..920) \"; -> (a (b) (c))\"\n ATMOSPHERE: (920..921) \"\n\"\n FORM: (921..955)\n OPEN_PAREN: (921..922) \"(\"\n SYMBOL: (922..929)\n IDENTIFIER: (922..929) \"display\"\n ATMOSPHERE: (929..930) \" \"\n FORM: (930..954)\n OPEN_PAREN: (930..931) \"(\"\n SYMBOL: (931..937)\n IDENTIFIER: (931..937) \"append\"\n ATMOSPHERE: (937..938) \" \"\n QUOTED_DATUM: (938..945)\n QUOTE: (938..939) \"’\"\n FORM: (939..944)\n OPEN_PAREN: (939..940) \"(\"\n SYMBOL: (940..941)\n IDENTIFIER: (940..941) \"a\"\n ATMOSPHERE: (941..942) \" \"\n SYMBOL: (942..943)\n IDENTIFIER: (942..943) \"b\"\n CLOSE_PAREN: (943..944) \")\"\n ATMOSPHERE: (944..945) \" \"\n QUOTED_DATUM: (945..953)\n QUOTE: (945..946) \"’\"\n FORM: (946..953)\n OPEN_PAREN: (946..947) \"(\"\n SYMBOL: (947..948)\n IDENTIFIER: (947..948) \"c\"\n ATMOSPHERE: (948..949) \" \"\n DOTTED_TAIL: (949..952)\n DOT: (949..950) \".\"\n ATMOSPHERE: (950..951) \" \"\n SYMBOL: (951..952)\n IDENTIFIER: (951..952) \"d\"\n CLOSE_PAREN: (952..953) \")\"\n CLOSE_PAREN: (953..954) \")\"\n CLOSE_PAREN: (954..955) \")\"\n FORM: (955..964)\n OPEN_PAREN: (955..956) \"(\"\n SYMBOL: (956..963)\n IDENTIFIER: (956..963) \"newline\"\n CLOSE_PAREN: (963..964) \")\"\n ATMOSPHERE: (964..965) \" \"\n ATMOSPHERE: (965..1005) \"; -> (a b c . d) ;; FIXME: quoted pairs!\"\n ATMOSPHERE: (1005..1006) \"\n\"\n FORM: (1006..1044)\n OPEN_PAREN: (1006..1007) \"(\"\n SYMBOL: (1007..1014)\n IDENTIFIER: (1007..1014) \"display\"\n ATMOSPHERE: (1014..1015) \" \"\n FORM: (1015..1043)\n OPEN_PAREN: (1015..1016) \"(\"\n SYMBOL: (1016..1022)\n IDENTIFIER: (1016..1022) \"append\"\n ATMOSPHERE: (1022..1023) \" \"\n QUOTED_DATUM: (1023..1030)\n QUOTE: (1023..1024) \"’\"\n FORM: (1024..1029)\n OPEN_PAREN: (1024..1025) \"(\"\n SYMBOL: (1025..1026)\n IDENTIFIER: (1025..1026) \"a\"\n ATMOSPHERE: (1026..1027) \" \"\n SYMBOL: (1027..1028)\n IDENTIFIER: (1027..1028) \"b\"\n CLOSE_PAREN: (1028..1029) \")\"\n ATMOSPHERE: (1029..1030) \" \"\n FORM: (1030..1042)\n OPEN_PAREN: (1030..1031) \"(\"\n SYMBOL: (1031..1035)\n IDENTIFIER: (1031..1035) \"cons\"\n ATMOSPHERE: (1035..1036) \" \"\n QUOTED_DATUM: (1036..1039)\n QUOTE: (1036..1037) \"'\"\n SYMBOL: (1037..1038)\n IDENTIFIER: (1037..1038) \"c\"\n ATMOSPHERE: (1038..1039) \" \"\n QUOTED_DATUM: (1039..1041)\n QUOTE: (1039..1040) \"'\"\n SYMBOL: (1040..1041)\n IDENTIFIER: (1040..1041) \"d\"\n CLOSE_PAREN: (1041..1042) \")\"\n CLOSE_PAREN: (1042..1043) \")\"\n CLOSE_PAREN: (1043..1044) \")\"\n FORM: (1044..1053)\n OPEN_PAREN: (1044..1045) \"(\"\n SYMBOL: (1045..1052)\n IDENTIFIER: (1045..1052) \"newline\"\n CLOSE_PAREN: (1052..1053) \")\"\n ATMOSPHERE: (1053..1054) \" \"\n ATMOSPHERE: (1054..1070) \"; -> (a b c . d)\"\n ATMOSPHERE: (1070..1071) \"\n\"\n FORM: (1071..1096)\n OPEN_PAREN: (1071..1072) \"(\"\n SYMBOL: (1072..1079)\n IDENTIFIER: (1072..1079) \"display\"\n ATMOSPHERE: (1079..1080) \" \"\n FORM: (1080..1095)\n OPEN_PAREN: (1080..1081) \"(\"\n SYMBOL: (1081..1087)\n IDENTIFIER: (1081..1087) \"append\"\n ATMOSPHERE: (1087..1088) \" \"\n QUOTED_DATUM: (1088..1092)\n QUOTE: (1088..1089) \"’\"\n FORM: (1089..1091)\n OPEN_PAREN: (1089..1090) \"(\"\n CLOSE_PAREN: (1090..1091) \")\"\n ATMOSPHERE: (1091..1092) \" \"\n QUOTED_DATUM: (1092..1094)\n QUOTE: (1092..1093) \"’\"\n SYMBOL: (1093..1094)\n IDENTIFIER: (1093..1094) \"a\"\n CLOSE_PAREN: (1094..1095) \")\"\n CLOSE_PAREN: (1095..1096) \")\"\n FORM: (1096..1105)\n OPEN_PAREN: (1096..1097) \"(\"\n SYMBOL: (1097..1104)\n IDENTIFIER: (1097..1104) \"newline\"\n CLOSE_PAREN: (1104..1105) \")\"\n ATMOSPHERE: (1105..1106) \" \"\n ATMOSPHERE: (1106..1112) \"; -> a\"\n ATMOSPHERE: (1112..1114) \"\n\n\"\n FORM: (1114..1142)\n OPEN_PAREN: (1114..1115) \"(\"\n SYMBOL: (1115..1122)\n IDENTIFIER: (1115..1122) \"display\"\n ATMOSPHERE: (1122..1123) \" \"\n FORM: (1123..1141)\n OPEN_PAREN: (1123..1124) \"(\"\n SYMBOL: (1124..1131)\n IDENTIFIER: (1124..1131) \"reverse\"\n ATMOSPHERE: (1131..1132) \" \"\n QUOTED_DATUM: (1132..1140)\n QUOTE: (1132..1133) \"’\"\n FORM: (1133..1140)\n OPEN_PAREN: (1133..1134) \"(\"\n SYMBOL: (1134..1135)\n IDENTIFIER: (1134..1135) \"a\"\n ATMOSPHERE: (1135..1136) \" \"\n SYMBOL: (1136..1137)\n IDENTIFIER: (1136..1137) \"b\"\n ATMOSPHERE: (1137..1138) \" \"\n SYMBOL: (1138..1139)\n IDENTIFIER: (1138..1139) \"c\"\n CLOSE_PAREN: (1139..1140) \")\"\n CLOSE_PAREN: (1140..1141) \")\"\n CLOSE_PAREN: (1141..1142) \")\"\n FORM: (1142..1151)\n OPEN_PAREN: (1142..1143) \"(\"\n SYMBOL: (1143..1150)\n IDENTIFIER: (1143..1150) \"newline\"\n CLOSE_PAREN: (1150..1151) \")\"\n ATMOSPHERE: (1151..1152) \" \"\n ATMOSPHERE: (1152..1164) \"; -> (c b a)\"\n ATMOSPHERE: (1164..1165) \"\n\"\n FORM: (1165..1205)\n OPEN_PAREN: (1165..1166) \"(\"\n SYMBOL: (1166..1173)\n IDENTIFIER: (1166..1173) \"display\"\n ATMOSPHERE: (1173..1174) \" \"\n FORM: (1174..1204)\n OPEN_PAREN: (1174..1175) \"(\"\n SYMBOL: (1175..1182)\n IDENTIFIER: (1175..1182) \"reverse\"\n ATMOSPHERE: (1182..1183) \" \"\n QUOTED_DATUM: (1183..1203)\n QUOTE: (1183..1184) \"’\"\n FORM: (1184..1203)\n OPEN_PAREN: (1184..1185) \"(\"\n SYMBOL: (1185..1186)\n IDENTIFIER: (1185..1186) \"a\"\n ATMOSPHERE: (1186..1187) \" \"\n FORM: (1187..1192)\n OPEN_PAREN: (1187..1188) \"(\"\n SYMBOL: (1188..1189)\n IDENTIFIER: (1188..1189) \"b\"\n ATMOSPHERE: (1189..1190) \" \"\n SYMBOL: (1190..1191)\n IDENTIFIER: (1190..1191) \"c\"\n CLOSE_PAREN: (1191..1192) \")\"\n ATMOSPHERE: (1192..1193) \" \"\n SYMBOL: (1193..1194)\n IDENTIFIER: (1193..1194) \"d\"\n ATMOSPHERE: (1194..1195) \" \"\n FORM: (1195..1202)\n OPEN_PAREN: (1195..1196) \"(\"\n SYMBOL: (1196..1197)\n IDENTIFIER: (1196..1197) \"e\"\n ATMOSPHERE: (1197..1198) \" \"\n FORM: (1198..1201)\n OPEN_PAREN: (1198..1199) \"(\"\n SYMBOL: (1199..1200)\n IDENTIFIER: (1199..1200) \"f\"\n CLOSE_PAREN: (1200..1201) \")\"\n CLOSE_PAREN: (1201..1202) \")\"\n CLOSE_PAREN: (1202..1203) \")\"\n CLOSE_PAREN: (1203..1204) \")\"\n CLOSE_PAREN: (1204..1205) \")\"\n FORM: (1205..1214)\n OPEN_PAREN: (1205..1206) \"(\"\n SYMBOL: (1206..1213)\n IDENTIFIER: (1206..1213) \"newline\"\n CLOSE_PAREN: (1213..1214) \")\"\n ATMOSPHERE: (1214..1215) \" \"\n ATMOSPHERE: (1215..1239) \"; -> ((e (f)) d (b c) a)\"\n ATMOSPHERE: (1239..1241) \"\n\n\"\n FORM: (1241..1276)\n OPEN_PAREN: (1241..1242) \"(\"\n SYMBOL: (1242..1248)\n IDENTIFIER: (1242..1248) \"define\"\n ATMOSPHERE: (1248..1249) \" \"\n SYMBOL: (1249..1258)\n IDENTIFIER: (1249..1258) \"test-list\"\n ATMOSPHERE: (1258..1259) \" \"\n QUOTED_DATUM: (1259..1275)\n QUOTE: (1259..1260) \"'\"\n FORM: (1260..1275)\n OPEN_PAREN: (1260..1261) \"(\"\n SYMBOL: (1261..1262)\n IDENTIFIER: (1261..1262) \"a\"\n ATMOSPHERE: (1262..1263) \" \"\n SYMBOL: (1263..1264)\n IDENTIFIER: (1263..1264) \"b\"\n ATMOSPHERE: (1264..1265) \" \"\n SYMBOL: (1265..1266)\n IDENTIFIER: (1265..1266) \"c\"\n ATMOSPHERE: (1266..1267) \" \"\n SYMBOL: (1267..1268)\n IDENTIFIER: (1267..1268) \"d\"\n ATMOSPHERE: (1268..1269) \" \"\n SYMBOL: (1269..1270)\n IDENTIFIER: (1269..1270) \"e\"\n ATMOSPHERE: (1270..1271) \" \"\n SYMBOL: (1271..1272)\n IDENTIFIER: (1271..1272) \"f\"\n ATMOSPHERE: (1272..1273) \" \"\n SYMBOL: (1273..1274)\n IDENTIFIER: (1273..1274) \"g\"\n CLOSE_PAREN: (1274..1275) \")\"\n CLOSE_PAREN: (1275..1276) \")\"\n ATMOSPHERE: (1276..1277) \"\n\"\n FORM: (1277..1310)\n OPEN_PAREN: (1277..1278) \"(\"\n SYMBOL: (1278..1285)\n IDENTIFIER: (1278..1285) \"display\"\n ATMOSPHERE: (1285..1286) \" \"\n FORM: (1286..1309)\n OPEN_PAREN: (1286..1287) \"(\"\n SYMBOL: (1287..1296)\n IDENTIFIER: (1287..1296) \"list-tail\"\n ATMOSPHERE: (1296..1297) \" \"\n SYMBOL: (1297..1306)\n IDENTIFIER: (1297..1306) \"test-list\"\n ATMOSPHERE: (1306..1307) \" \"\n CONSTANT: (1307..1308)\n NUMBER: (1307..1308) \"1\"\n CLOSE_PAREN: (1308..1309) \")\"\n CLOSE_PAREN: (1309..1310) \")\"\n FORM: (1310..1319)\n OPEN_PAREN: (1310..1311) \"(\"\n SYMBOL: (1311..1318)\n IDENTIFIER: (1311..1318) \"newline\"\n CLOSE_PAREN: (1318..1319) \")\"\n ATMOSPHERE: (1319..1320) \"\n\"\n FORM: (1320..1353)\n OPEN_PAREN: (1320..1321) \"(\"\n SYMBOL: (1321..1328)\n IDENTIFIER: (1321..1328) \"display\"\n ATMOSPHERE: (1328..1329) \" \"\n FORM: (1329..1352)\n OPEN_PAREN: (1329..1330) \"(\"\n SYMBOL: (1330..1339)\n IDENTIFIER: (1330..1339) \"list-tail\"\n ATMOSPHERE: (1339..1340) \" \"\n SYMBOL: (1340..1349)\n IDENTIFIER: (1340..1349) \"test-list\"\n ATMOSPHERE: (1349..1350) \" \"\n CONSTANT: (1350..1351)\n NUMBER: (1350..1351) \"0\"\n CLOSE_PAREN: (1351..1352) \")\"\n CLOSE_PAREN: (1352..1353) \")\"\n FORM: (1353..1362)\n OPEN_PAREN: (1353..1354) \"(\"\n SYMBOL: (1354..1361)\n IDENTIFIER: (1354..1361) \"newline\"\n CLOSE_PAREN: (1361..1362) \")\"\n ATMOSPHERE: (1362..1363) \"\n\"\n FORM: (1363..1396)\n OPEN_PAREN: (1363..1364) \"(\"\n SYMBOL: (1364..1371)\n IDENTIFIER: (1364..1371) \"display\"\n ATMOSPHERE: (1371..1372) \" \"\n FORM: (1372..1395)\n OPEN_PAREN: (1372..1373) \"(\"\n SYMBOL: (1373..1382)\n IDENTIFIER: (1373..1382) \"list-tail\"\n ATMOSPHERE: (1382..1383) \" \"\n SYMBOL: (1383..1392)\n IDENTIFIER: (1383..1392) \"test-list\"\n ATMOSPHERE: (1392..1393) \" \"\n CONSTANT: (1393..1394)\n NUMBER: (1393..1394) \"6\"\n CLOSE_PAREN: (1394..1395) \")\"\n CLOSE_PAREN: (1395..1396) \")\"\n FORM: (1396..1405)\n OPEN_PAREN: (1396..1397) \"(\"\n SYMBOL: (1397..1404)\n IDENTIFIER: (1397..1404) \"newline\"\n CLOSE_PAREN: (1404..1405) \")\"\n ATMOSPHERE: (1405..1407) \"\n\n\"\n FORM: (1407..1442)\n OPEN_PAREN: (1407..1408) \"(\"\n SYMBOL: (1408..1415)\n IDENTIFIER: (1408..1415) \"display\"\n ATMOSPHERE: (1415..1418) \"\n \"\n FORM: (1418..1441)\n OPEN_PAREN: (1418..1419) \"(\"\n SYMBOL: (1419..1427)\n IDENTIFIER: (1419..1427) \"list-ref\"\n ATMOSPHERE: (1427..1428) \" \"\n QUOTED_DATUM: (1428..1439)\n QUOTE: (1428..1429) \"’\"\n FORM: (1429..1438)\n OPEN_PAREN: (1429..1430) \"(\"\n SYMBOL: (1430..1431)\n IDENTIFIER: (1430..1431) \"a\"\n ATMOSPHERE: (1431..1432) \" \"\n SYMBOL: (1432..1433)\n IDENTIFIER: (1432..1433) \"b\"\n ATMOSPHERE: (1433..1434) \" \"\n SYMBOL: (1434..1435)\n IDENTIFIER: (1434..1435) \"c\"\n ATMOSPHERE: (1435..1436) \" \"\n SYMBOL: (1436..1437)\n IDENTIFIER: (1436..1437) \"d\"\n CLOSE_PAREN: (1437..1438) \")\"\n ATMOSPHERE: (1438..1439) \" \"\n CONSTANT: (1439..1440)\n NUMBER: (1439..1440) \"2\"\n CLOSE_PAREN: (1440..1441) \")\"\n CLOSE_PAREN: (1441..1442) \")\"\n ATMOSPHERE: (1442..1443) \" \"\n ATMOSPHERE: (1443..1449) \"; =⇒ c\"\n ATMOSPHERE: (1449..1450) \"\n\"\n FORM: (1450..1459)\n OPEN_PAREN: (1450..1451) \"(\"\n SYMBOL: (1451..1458)\n IDENTIFIER: (1451..1458) \"newline\"\n CLOSE_PAREN: (1458..1459) \")\"\n ATMOSPHERE: (1459..1461) \"\n\n\"\n FORM: (1461..1568)\n OPEN_PAREN: (1461..1462) \"(\"\n SYMBOL: (1462..1469)\n IDENTIFIER: (1462..1469) \"display\"\n ATMOSPHERE: (1469..1472) \"\n \"\n FORM: (1472..1543)\n OPEN_PAREN: (1472..1473) \"(\"\n SYMBOL: (1473..1476)\n IDENTIFIER: (1473..1476) \"let\"\n ATMOSPHERE: (1476..1477) \" \"\n FORM: (1477..1507)\n OPEN_PAREN: (1477..1478) \"(\"\n FORM: (1478..1506)\n OPEN_PAREN: (1478..1479) \"(\"\n SYMBOL: (1479..1481)\n IDENTIFIER: (1479..1481) \"ls\"\n ATMOSPHERE: (1481..1482) \" \"\n FORM: (1482..1505)\n OPEN_PAREN: (1482..1483) \"(\"\n SYMBOL: (1483..1487)\n IDENTIFIER: (1483..1487) \"list\"\n ATMOSPHERE: (1487..1488) \" \"\n QUOTED_DATUM: (1488..1493)\n QUOTE: (1488..1489) \"’\"\n SYMBOL: (1489..1492)\n IDENTIFIER: (1489..1492) \"one\"\n ATMOSPHERE: (1492..1493) \" \"\n QUOTED_DATUM: (1493..1498)\n QUOTE: (1493..1494) \"’\"\n SYMBOL: (1494..1497)\n IDENTIFIER: (1494..1497) \"two\"\n ATMOSPHERE: (1497..1498) \" \"\n QUOTED_DATUM: (1498..1504)\n QUOTE: (1498..1499) \"’\"\n SYMBOL: (1499..1504)\n IDENTIFIER: (1499..1504) \"five!\"\n CLOSE_PAREN: (1504..1505) \")\"\n CLOSE_PAREN: (1505..1506) \")\"\n CLOSE_PAREN: (1506..1507) \")\"\n ATMOSPHERE: (1507..1512) \"\n \"\n FORM: (1512..1535)\n OPEN_PAREN: (1512..1513) \"(\"\n SYMBOL: (1513..1522)\n IDENTIFIER: (1513..1522) \"list-set!\"\n ATMOSPHERE: (1522..1523) \" \"\n SYMBOL: (1523..1525)\n IDENTIFIER: (1523..1525) \"ls\"\n ATMOSPHERE: (1525..1526) \" \"\n CONSTANT: (1526..1527)\n NUMBER: (1526..1527) \"2\"\n ATMOSPHERE: (1527..1528) \" \"\n QUOTED_DATUM: (1528..1534)\n QUOTE: (1528..1529) \"’\"\n SYMBOL: (1529..1534)\n IDENTIFIER: (1529..1534) \"three\"\n CLOSE_PAREN: (1534..1535) \")\"\n ATMOSPHERE: (1535..1540) \"\n \"\n SYMBOL: (1540..1542)\n IDENTIFIER: (1540..1542) \"ls\"\n CLOSE_PAREN: (1542..1543) \")\"\n ATMOSPHERE: (1543..1544) \" \"\n ATMOSPHERE: (1544..1564) \"; =⇒ (one two three)\"\n ATMOSPHERE: (1564..1567) \"\n \"\n CLOSE_PAREN: (1567..1568) \")\"\n FORM: (1568..1577)\n OPEN_PAREN: (1568..1569) \"(\"\n SYMBOL: (1569..1576)\n IDENTIFIER: (1569..1576) \"newline\"\n CLOSE_PAREN: (1576..1577) \")\"\n ATMOSPHERE: (1577..1579) \"\n\n\"\n FORM: (1579..1626)\n OPEN_PAREN: (1579..1580) \"(\"\n SYMBOL: (1580..1587)\n IDENTIFIER: (1580..1587) \"display\"\n ATMOSPHERE: (1587..1588) \" \"\n FORM: (1588..1625)\n OPEN_PAREN: (1588..1589) \"(\"\n SYMBOL: (1589..1592)\n IDENTIFIER: (1589..1592) \"eq?\"\n ATMOSPHERE: (1592..1593) \" \"\n FORM: (1593..1614)\n OPEN_PAREN: (1593..1594) \"(\"\n SYMBOL: (1594..1603)\n IDENTIFIER: (1594..1603) \"list-copy\"\n ATMOSPHERE: (1603..1604) \" \"\n SYMBOL: (1604..1613)\n IDENTIFIER: (1604..1613) \"test-list\"\n CLOSE_PAREN: (1613..1614) \")\"\n ATMOSPHERE: (1614..1615) \" \"\n SYMBOL: (1615..1624)\n IDENTIFIER: (1615..1624) \"test-list\"\n CLOSE_PAREN: (1624..1625) \")\"\n CLOSE_PAREN: (1625..1626) \")\"\n FORM: (1626..1635)\n OPEN_PAREN: (1626..1627) \"(\"\n SYMBOL: (1627..1634)\n IDENTIFIER: (1627..1634) \"newline\"\n CLOSE_PAREN: (1634..1635) \")\"\n ATMOSPHERE: (1635..1636) \"\n\"\n FORM: (1636..1659)\n OPEN_PAREN: (1636..1637) \"(\"\n SYMBOL: (1637..1644)\n IDENTIFIER: (1637..1644) \"display\"\n ATMOSPHERE: (1644..1645) \" \"\n FORM: (1645..1658)\n OPEN_PAREN: (1645..1646) \"(\"\n SYMBOL: (1646..1655)\n IDENTIFIER: (1646..1655) \"list-copy\"\n ATMOSPHERE: (1655..1656) \" \"\n CONSTANT: (1656..1657)\n NUMBER: (1656..1657) \"2\"\n CLOSE_PAREN: (1657..1658) \")\"\n CLOSE_PAREN: (1658..1659) \")\"\n FORM: (1659..1668)\n OPEN_PAREN: (1659..1660) \"(\"\n SYMBOL: (1660..1667)\n IDENTIFIER: (1660..1667) \"newline\"\n CLOSE_PAREN: (1667..1668) \")\"\n ATMOSPHERE: (1668..1671) \"\n\n\n\"\n FORM: (1671..1699)\n OPEN_PAREN: (1671..1672) \"(\"\n SYMBOL: (1672..1679)\n IDENTIFIER: (1672..1679) \"display\"\n ATMOSPHERE: (1679..1680) \" \"\n FORM: (1680..1698)\n OPEN_PAREN: (1680..1681) \"(\"\n SYMBOL: (1681..1685)\n IDENTIFIER: (1681..1685) \"memq\"\n ATMOSPHERE: (1685..1686) \" \"\n QUOTED_DATUM: (1686..1689)\n QUOTE: (1686..1687) \"’\"\n SYMBOL: (1687..1688)\n IDENTIFIER: (1687..1688) \"a\"\n ATMOSPHERE: (1688..1689) \" \"\n QUOTED_DATUM: (1689..1697)\n QUOTE: (1689..1690) \"’\"\n FORM: (1690..1697)\n OPEN_PAREN: (1690..1691) \"(\"\n SYMBOL: (1691..1692)\n IDENTIFIER: (1691..1692) \"a\"\n ATMOSPHERE: (1692..1693) \" \"\n SYMBOL: (1693..1694)\n IDENTIFIER: (1693..1694) \"b\"\n ATMOSPHERE: (1694..1695) \" \"\n SYMBOL: (1695..1696)\n IDENTIFIER: (1695..1696) \"c\"\n CLOSE_PAREN: (1696..1697) \")\"\n CLOSE_PAREN: (1697..1698) \")\"\n CLOSE_PAREN: (1698..1699) \")\"\n FORM: (1699..1708)\n OPEN_PAREN: (1699..1700) \"(\"\n SYMBOL: (1700..1707)\n IDENTIFIER: (1700..1707) \"newline\"\n CLOSE_PAREN: (1707..1708) \")\"\n ATMOSPHERE: (1708..1709) \" \"\n ATMOSPHERE: (1709..1721) \"; -> (a b c)\"\n ATMOSPHERE: (1721..1722) \"\n\"\n FORM: (1722..1750)\n OPEN_PAREN: (1722..1723) \"(\"\n SYMBOL: (1723..1730)\n IDENTIFIER: (1723..1730) \"display\"\n ATMOSPHERE: (1730..1731) \" \"\n FORM: (1731..1749)\n OPEN_PAREN: (1731..1732) \"(\"\n SYMBOL: (1732..1736)\n IDENTIFIER: (1732..1736) \"memq\"\n ATMOSPHERE: (1736..1737) \" \"\n QUOTED_DATUM: (1737..1740)\n QUOTE: (1737..1738) \"’\"\n SYMBOL: (1738..1739)\n IDENTIFIER: (1738..1739) \"b\"\n ATMOSPHERE: (1739..1740) \" \"\n QUOTED_DATUM: (1740..1748)\n QUOTE: (1740..1741) \"’\"\n FORM: (1741..1748)\n OPEN_PAREN: (1741..1742) \"(\"\n SYMBOL: (1742..1743)\n IDENTIFIER: (1742..1743) \"a\"\n ATMOSPHERE: (1743..1744) \" \"\n SYMBOL: (1744..1745)\n IDENTIFIER: (1744..1745) \"b\"\n ATMOSPHERE: (1745..1746) \" \"\n SYMBOL: (1746..1747)\n IDENTIFIER: (1746..1747) \"c\"\n CLOSE_PAREN: (1747..1748) \")\"\n CLOSE_PAREN: (1748..1749) \")\"\n CLOSE_PAREN: (1749..1750) \")\"\n FORM: (1750..1759)\n OPEN_PAREN: (1750..1751) \"(\"\n SYMBOL: (1751..1758)\n IDENTIFIER: (1751..1758) \"newline\"\n CLOSE_PAREN: (1758..1759) \")\"\n ATMOSPHERE: (1759..1760) \" \"\n ATMOSPHERE: (1760..1770) \"; -> (b c)\"\n ATMOSPHERE: (1770..1771) \"\n\"\n FORM: (1771..1799)\n OPEN_PAREN: (1771..1772) \"(\"\n SYMBOL: (1772..1779)\n IDENTIFIER: (1772..1779) \"display\"\n ATMOSPHERE: (1779..1780) \" \"\n FORM: (1780..1798)\n OPEN_PAREN: (1780..1781) \"(\"\n SYMBOL: (1781..1785)\n IDENTIFIER: (1781..1785) \"memq\"\n ATMOSPHERE: (1785..1786) \" \"\n QUOTED_DATUM: (1786..1789)\n QUOTE: (1786..1787) \"’\"\n SYMBOL: (1787..1788)\n IDENTIFIER: (1787..1788) \"a\"\n ATMOSPHERE: (1788..1789) \" \"\n QUOTED_DATUM: (1789..1797)\n QUOTE: (1789..1790) \"’\"\n FORM: (1790..1797)\n OPEN_PAREN: (1790..1791) \"(\"\n SYMBOL: (1791..1792)\n IDENTIFIER: (1791..1792) \"b\"\n ATMOSPHERE: (1792..1793) \" \"\n SYMBOL: (1793..1794)\n IDENTIFIER: (1793..1794) \"c\"\n ATMOSPHERE: (1794..1795) \" \"\n SYMBOL: (1795..1796)\n IDENTIFIER: (1795..1796) \"d\"\n CLOSE_PAREN: (1796..1797) \")\"\n CLOSE_PAREN: (1797..1798) \")\"\n CLOSE_PAREN: (1798..1799) \")\"\n FORM: (1799..1808)\n OPEN_PAREN: (1799..1800) \"(\"\n SYMBOL: (1800..1807)\n IDENTIFIER: (1800..1807) \"newline\"\n CLOSE_PAREN: (1807..1808) \")\"\n ATMOSPHERE: (1808..1809) \" \"\n ATMOSPHERE: (1809..1816) \"; -> #f\"\n ATMOSPHERE: (1816..1817) \"\n\"\n FORM: (1817..1854)\n OPEN_PAREN: (1817..1818) \"(\"\n SYMBOL: (1818..1825)\n IDENTIFIER: (1818..1825) \"display\"\n ATMOSPHERE: (1825..1826) \" \"\n FORM: (1826..1853)\n OPEN_PAREN: (1826..1827) \"(\"\n SYMBOL: (1827..1831)\n IDENTIFIER: (1827..1831) \"memq\"\n ATMOSPHERE: (1831..1832) \" \"\n FORM: (1832..1841)\n OPEN_PAREN: (1832..1833) \"(\"\n SYMBOL: (1833..1837)\n IDENTIFIER: (1833..1837) \"list\"\n ATMOSPHERE: (1837..1838) \" \"\n QUOTED_DATUM: (1838..1840)\n QUOTE: (1838..1839) \"’\"\n SYMBOL: (1839..1840)\n IDENTIFIER: (1839..1840) \"a\"\n CLOSE_PAREN: (1840..1841) \")\"\n ATMOSPHERE: (1841..1842) \" \"\n QUOTED_DATUM: (1842..1852)\n QUOTE: (1842..1843) \"’\"\n FORM: (1843..1852)\n OPEN_PAREN: (1843..1844) \"(\"\n SYMBOL: (1844..1845)\n IDENTIFIER: (1844..1845) \"b\"\n ATMOSPHERE: (1845..1846) \" \"\n FORM: (1846..1849)\n OPEN_PAREN: (1846..1847) \"(\"\n SYMBOL: (1847..1848)\n IDENTIFIER: (1847..1848) \"a\"\n CLOSE_PAREN: (1848..1849) \")\"\n ATMOSPHERE: (1849..1850) \" \"\n SYMBOL: (1850..1851)\n IDENTIFIER: (1850..1851) \"c\"\n CLOSE_PAREN: (1851..1852) \")\"\n CLOSE_PAREN: (1852..1853) \")\"\n CLOSE_PAREN: (1853..1854) \")\"\n FORM: (1854..1863)\n OPEN_PAREN: (1854..1855) \"(\"\n SYMBOL: (1855..1862)\n IDENTIFIER: (1855..1862) \"newline\"\n CLOSE_PAREN: (1862..1863) \")\"\n ATMOSPHERE: (1863..1864) \" \"\n ATMOSPHERE: (1864..1871) \"; -> #f\"\n ATMOSPHERE: (1871..1872) \"\n\"\n FORM: (1872..1913)\n OPEN_PAREN: (1872..1873) \"(\"\n SYMBOL: (1873..1880)\n IDENTIFIER: (1873..1880) \"display\"\n ATMOSPHERE: (1880..1881) \" \"\n FORM: (1881..1912)\n OPEN_PAREN: (1881..1882) \"(\"\n SYMBOL: (1882..1888)\n IDENTIFIER: (1882..1888) \"member\"\n ATMOSPHERE: (1888..1889) \" \"\n FORM: (1889..1898)\n OPEN_PAREN: (1889..1890) \"(\"\n SYMBOL: (1890..1894)\n IDENTIFIER: (1890..1894) \"list\"\n ATMOSPHERE: (1894..1895) \" \"\n QUOTED_DATUM: (1895..1897)\n QUOTE: (1895..1896) \"’\"\n SYMBOL: (1896..1897)\n IDENTIFIER: (1896..1897) \"a\"\n CLOSE_PAREN: (1897..1898) \")\"\n ATMOSPHERE: (1898..1901) \"\n \"\n QUOTED_DATUM: (1901..1911)\n QUOTE: (1901..1902) \"’\"\n FORM: (1902..1911)\n OPEN_PAREN: (1902..1903) \"(\"\n SYMBOL: (1903..1904)\n IDENTIFIER: (1903..1904) \"b\"\n ATMOSPHERE: (1904..1905) \" \"\n FORM: (1905..1908)\n OPEN_PAREN: (1905..1906) \"(\"\n SYMBOL: (1906..1907)\n IDENTIFIER: (1906..1907) \"a\"\n CLOSE_PAREN: (1907..1908) \")\"\n ATMOSPHERE: (1908..1909) \" \"\n SYMBOL: (1909..1910)\n IDENTIFIER: (1909..1910) \"c\"\n CLOSE_PAREN: (1910..1911) \")\"\n CLOSE_PAREN: (1911..1912) \")\"\n CLOSE_PAREN: (1912..1913) \")\"\n FORM: (1913..1922)\n OPEN_PAREN: (1913..1914) \"(\"\n SYMBOL: (1914..1921)\n IDENTIFIER: (1914..1921) \"newline\"\n CLOSE_PAREN: (1921..1922) \")\"\n ATMOSPHERE: (1922..1923) \" \"\n ATMOSPHERE: (1923..1935) \"; -> ((a) c)\"\n ATMOSPHERE: (1935..1936) \"\n\"\n FORM: (1936..1987)\n OPEN_PAREN: (1936..1937) \"(\"\n SYMBOL: (1937..1944)\n IDENTIFIER: (1937..1944) \"display\"\n ATMOSPHERE: (1944..1945) \" \"\n FORM: (1945..1986)\n OPEN_PAREN: (1945..1946) \"(\"\n SYMBOL: (1946..1952)\n IDENTIFIER: (1946..1952) \"member\"\n ATMOSPHERE: (1952..1953) \" \"\n CONSTANT: (1953..1956)\n CHARACTER: (1953..1956) \"#\\B\"\n ATMOSPHERE: (1956..1959) \"\n \"\n QUOTED_DATUM: (1959..1976)\n QUOTE: (1959..1960) \"’\"\n FORM: (1960..1973)\n OPEN_PAREN: (1960..1961) \"(\"\n CONSTANT: (1961..1964)\n CHARACTER: (1961..1964) \"#\\a\"\n ATMOSPHERE: (1964..1965) \" \"\n CONSTANT: (1965..1968)\n CHARACTER: (1965..1968) \"#\\b\"\n ATMOSPHERE: (1968..1969) \" \"\n CONSTANT: (1969..1972)\n CHARACTER: (1969..1972) \"#\\c\"\n CLOSE_PAREN: (1972..1973) \")\"\n ATMOSPHERE: (1973..1976) \"\n \"\n SYMBOL: (1976..1985)\n IDENTIFIER: (1976..1985) \"char-ci=?\"\n CLOSE_PAREN: (1985..1986) \")\"\n CLOSE_PAREN: (1986..1987) \")\"\n FORM: (1987..1996)\n OPEN_PAREN: (1987..1988) \"(\"\n SYMBOL: (1988..1995)\n IDENTIFIER: (1988..1995) \"newline\"\n CLOSE_PAREN: (1995..1996) \")\"\n ATMOSPHERE: (1996..1997) \" \"\n ATMOSPHERE: (1997..2011) \"; -> (#\\b #\\c)\"\n ATMOSPHERE: (2011..2012) \"\n\"\n FORM: (2012..2047)\n OPEN_PAREN: (2012..2013) \"(\"\n SYMBOL: (2013..2020)\n IDENTIFIER: (2013..2020) \"display\"\n ATMOSPHERE: (2020..2021) \" \"\n FORM: (2021..2046)\n OPEN_PAREN: (2021..2022) \"(\"\n SYMBOL: (2022..2026)\n IDENTIFIER: (2022..2026) \"memq\"\n ATMOSPHERE: (2026..2027) \" \"\n CONSTANT: (2027..2030)\n NUMBER: (2027..2030) \"101\"\n ATMOSPHERE: (2030..2031) \" \"\n QUOTED_DATUM: (2031..2045)\n QUOTE: (2031..2032) \"’\"\n FORM: (2032..2045)\n OPEN_PAREN: (2032..2033) \"(\"\n CONSTANT: (2033..2036)\n NUMBER: (2033..2036) \"100\"\n ATMOSPHERE: (2036..2037) \" \"\n CONSTANT: (2037..2040)\n NUMBER: (2037..2040) \"101\"\n ATMOSPHERE: (2040..2041) \" \"\n CONSTANT: (2041..2044)\n NUMBER: (2041..2044) \"102\"\n CLOSE_PAREN: (2044..2045) \")\"\n CLOSE_PAREN: (2045..2046) \")\"\n CLOSE_PAREN: (2046..2047) \")\"\n FORM: (2047..2056)\n OPEN_PAREN: (2047..2048) \"(\"\n SYMBOL: (2048..2055)\n IDENTIFIER: (2048..2055) \"newline\"\n CLOSE_PAREN: (2055..2056) \")\"\n ATMOSPHERE: (2056..2057) \" \"\n ATMOSPHERE: (2057..2073) \"; -> unspecified\"\n ATMOSPHERE: (2073..2074) \"\n\"\n FORM: (2074..2109)\n OPEN_PAREN: (2074..2075) \"(\"\n SYMBOL: (2075..2082)\n IDENTIFIER: (2075..2082) \"display\"\n ATMOSPHERE: (2082..2083) \" \"\n FORM: (2083..2108)\n OPEN_PAREN: (2083..2084) \"(\"\n SYMBOL: (2084..2088)\n IDENTIFIER: (2084..2088) \"memv\"\n ATMOSPHERE: (2088..2089) \" \"\n CONSTANT: (2089..2092)\n NUMBER: (2089..2092) \"101\"\n ATMOSPHERE: (2092..2093) \" \"\n QUOTED_DATUM: (2093..2107)\n QUOTE: (2093..2094) \"’\"\n FORM: (2094..2107)\n OPEN_PAREN: (2094..2095) \"(\"\n CONSTANT: (2095..2098)\n NUMBER: (2095..2098) \"100\"\n ATMOSPHERE: (2098..2099) \" \"\n CONSTANT: (2099..2102)\n NUMBER: (2099..2102) \"101\"\n ATMOSPHERE: (2102..2103) \" \"\n CONSTANT: (2103..2106)\n NUMBER: (2103..2106) \"102\"\n CLOSE_PAREN: (2106..2107) \")\"\n CLOSE_PAREN: (2107..2108) \")\"\n CLOSE_PAREN: (2108..2109) \")\"\n FORM: (2109..2118)\n OPEN_PAREN: (2109..2110) \"(\"\n SYMBOL: (2110..2117)\n IDENTIFIER: (2110..2117) \"newline\"\n CLOSE_PAREN: (2117..2118) \")\"\n ATMOSPHERE: (2118..2119) \" \"\n ATMOSPHERE: (2119..2133) \"; -> (101 102)\"\n ATMOSPHERE: (2133..2135) \"\n\n\"\n FORM: (2135..2166)\n OPEN_PAREN: (2135..2136) \"(\"\n SYMBOL: (2136..2142)\n IDENTIFIER: (2136..2142) \"define\"\n ATMOSPHERE: (2142..2143) \" \"\n SYMBOL: (2143..2144)\n IDENTIFIER: (2143..2144) \"e\"\n ATMOSPHERE: (2144..2145) \" \"\n QUOTED_DATUM: (2145..2165)\n QUOTE: (2145..2146) \"’\"\n FORM: (2146..2165)\n OPEN_PAREN: (2146..2147) \"(\"\n FORM: (2147..2152)\n OPEN_PAREN: (2147..2148) \"(\"\n SYMBOL: (2148..2149)\n IDENTIFIER: (2148..2149) \"a\"\n ATMOSPHERE: (2149..2150) \" \"\n CONSTANT: (2150..2151)\n NUMBER: (2150..2151) \"1\"\n CLOSE_PAREN: (2151..2152) \")\"\n ATMOSPHERE: (2152..2153) \" \"\n FORM: (2153..2158)\n OPEN_PAREN: (2153..2154) \"(\"\n SYMBOL: (2154..2155)\n IDENTIFIER: (2154..2155) \"b\"\n ATMOSPHERE: (2155..2156) \" \"\n CONSTANT: (2156..2157)\n NUMBER: (2156..2157) \"2\"\n CLOSE_PAREN: (2157..2158) \")\"\n ATMOSPHERE: (2158..2159) \" \"\n FORM: (2159..2164)\n OPEN_PAREN: (2159..2160) \"(\"\n SYMBOL: (2160..2161)\n IDENTIFIER: (2160..2161) \"c\"\n ATMOSPHERE: (2161..2162) \" \"\n CONSTANT: (2162..2163)\n NUMBER: (2162..2163) \"3\"\n CLOSE_PAREN: (2163..2164) \")\"\n CLOSE_PAREN: (2164..2165) \")\"\n CLOSE_PAREN: (2165..2166) \")\"\n ATMOSPHERE: (2166..2167) \"\n\"\n FORM: (2167..2188)\n OPEN_PAREN: (2167..2168) \"(\"\n SYMBOL: (2168..2175)\n IDENTIFIER: (2168..2175) \"display\"\n ATMOSPHERE: (2175..2176) \" \"\n FORM: (2176..2187)\n OPEN_PAREN: (2176..2177) \"(\"\n SYMBOL: (2177..2181)\n IDENTIFIER: (2177..2181) \"assq\"\n ATMOSPHERE: (2181..2182) \" \"\n QUOTED_DATUM: (2182..2185)\n QUOTE: (2182..2183) \"’\"\n SYMBOL: (2183..2184)\n IDENTIFIER: (2183..2184) \"a\"\n ATMOSPHERE: (2184..2185) \" \"\n SYMBOL: (2185..2186)\n IDENTIFIER: (2185..2186) \"e\"\n CLOSE_PAREN: (2186..2187) \")\"\n CLOSE_PAREN: (2187..2188) \")\"\n FORM: (2188..2197)\n OPEN_PAREN: (2188..2189) \"(\"\n SYMBOL: (2189..2196)\n IDENTIFIER: (2189..2196) \"newline\"\n CLOSE_PAREN: (2196..2197) \")\"\n ATMOSPHERE: (2197..2198) \" \"\n ATMOSPHERE: (2198..2208) \"; -> (a 1)\"\n ATMOSPHERE: (2208..2209) \"\n\"\n FORM: (2209..2230)\n OPEN_PAREN: (2209..2210) \"(\"\n SYMBOL: (2210..2217)\n IDENTIFIER: (2210..2217) \"display\"\n ATMOSPHERE: (2217..2218) \" \"\n FORM: (2218..2229)\n OPEN_PAREN: (2218..2219) \"(\"\n SYMBOL: (2219..2223)\n IDENTIFIER: (2219..2223) \"assq\"\n ATMOSPHERE: (2223..2224) \" \"\n QUOTED_DATUM: (2224..2227)\n QUOTE: (2224..2225) \"’\"\n SYMBOL: (2225..2226)\n IDENTIFIER: (2225..2226) \"b\"\n ATMOSPHERE: (2226..2227) \" \"\n SYMBOL: (2227..2228)\n IDENTIFIER: (2227..2228) \"e\"\n CLOSE_PAREN: (2228..2229) \")\"\n CLOSE_PAREN: (2229..2230) \")\"\n FORM: (2230..2239)\n OPEN_PAREN: (2230..2231) \"(\"\n SYMBOL: (2231..2238)\n IDENTIFIER: (2231..2238) \"newline\"\n CLOSE_PAREN: (2238..2239) \")\"\n ATMOSPHERE: (2239..2240) \" \"\n ATMOSPHERE: (2240..2250) \"; -> (b 2)\"\n ATMOSPHERE: (2250..2251) \"\n\"\n FORM: (2251..2272)\n OPEN_PAREN: (2251..2252) \"(\"\n SYMBOL: (2252..2259)\n IDENTIFIER: (2252..2259) \"display\"\n ATMOSPHERE: (2259..2260) \" \"\n FORM: (2260..2271)\n OPEN_PAREN: (2260..2261) \"(\"\n SYMBOL: (2261..2265)\n IDENTIFIER: (2261..2265) \"assq\"\n ATMOSPHERE: (2265..2266) \" \"\n QUOTED_DATUM: (2266..2269)\n QUOTE: (2266..2267) \"’\"\n SYMBOL: (2267..2268)\n IDENTIFIER: (2267..2268) \"d\"\n ATMOSPHERE: (2268..2269) \" \"\n SYMBOL: (2269..2270)\n IDENTIFIER: (2269..2270) \"e\"\n CLOSE_PAREN: (2270..2271) \")\"\n CLOSE_PAREN: (2271..2272) \")\"\n FORM: (2272..2281)\n OPEN_PAREN: (2272..2273) \"(\"\n SYMBOL: (2273..2280)\n IDENTIFIER: (2273..2280) \"newline\"\n CLOSE_PAREN: (2280..2281) \")\"\n ATMOSPHERE: (2281..2282) \" \"\n ATMOSPHERE: (2282..2289) \"; -> #f\"\n ATMOSPHERE: (2289..2290) \"\n\"\n FORM: (2290..2337)\n OPEN_PAREN: (2290..2291) \"(\"\n SYMBOL: (2291..2298)\n IDENTIFIER: (2291..2298) \"display\"\n ATMOSPHERE: (2298..2299) \" \"\n FORM: (2299..2336)\n OPEN_PAREN: (2299..2300) \"(\"\n SYMBOL: (2300..2304)\n IDENTIFIER: (2300..2304) \"assq\"\n ATMOSPHERE: (2304..2305) \" \"\n FORM: (2305..2314)\n OPEN_PAREN: (2305..2306) \"(\"\n SYMBOL: (2306..2310)\n IDENTIFIER: (2306..2310) \"list\"\n ATMOSPHERE: (2310..2311) \" \"\n QUOTED_DATUM: (2311..2313)\n QUOTE: (2311..2312) \"’\"\n SYMBOL: (2312..2313)\n IDENTIFIER: (2312..2313) \"a\"\n CLOSE_PAREN: (2313..2314) \")\"\n ATMOSPHERE: (2314..2315) \" \"\n QUOTED_DATUM: (2315..2335)\n QUOTE: (2315..2316) \"’\"\n FORM: (2316..2335)\n OPEN_PAREN: (2316..2317) \"(\"\n FORM: (2317..2322)\n OPEN_PAREN: (2317..2318) \"(\"\n FORM: (2318..2321)\n OPEN_PAREN: (2318..2319) \"(\"\n SYMBOL: (2319..2320)\n IDENTIFIER: (2319..2320) \"a\"\n CLOSE_PAREN: (2320..2321) \")\"\n CLOSE_PAREN: (2321..2322) \")\"\n ATMOSPHERE: (2322..2323) \" \"\n FORM: (2323..2328)\n OPEN_PAREN: (2323..2324) \"(\"\n FORM: (2324..2327)\n OPEN_PAREN: (2324..2325) \"(\"\n SYMBOL: (2325..2326)\n IDENTIFIER: (2325..2326) \"b\"\n CLOSE_PAREN: (2326..2327) \")\"\n CLOSE_PAREN: (2327..2328) \")\"\n ATMOSPHERE: (2328..2329) \" \"\n FORM: (2329..2334)\n OPEN_PAREN: (2329..2330) \"(\"\n FORM: (2330..2333)\n OPEN_PAREN: (2330..2331) \"(\"\n SYMBOL: (2331..2332)\n IDENTIFIER: (2331..2332) \"c\"\n CLOSE_PAREN: (2332..2333) \")\"\n CLOSE_PAREN: (2333..2334) \")\"\n CLOSE_PAREN: (2334..2335) \")\"\n CLOSE_PAREN: (2335..2336) \")\"\n CLOSE_PAREN: (2336..2337) \")\"\n FORM: (2337..2346)\n OPEN_PAREN: (2337..2338) \"(\"\n SYMBOL: (2338..2345)\n IDENTIFIER: (2338..2345) \"newline\"\n CLOSE_PAREN: (2345..2346) \")\"\n ATMOSPHERE: (2346..2347) \" \"\n ATMOSPHERE: (2347..2354) \"; -> #f\"\n ATMOSPHERE: (2354..2355) \"\n\"\n FORM: (2355..2403)\n OPEN_PAREN: (2355..2356) \"(\"\n SYMBOL: (2356..2363)\n IDENTIFIER: (2356..2363) \"display\"\n ATMOSPHERE: (2363..2364) \" \"\n FORM: (2364..2402)\n OPEN_PAREN: (2364..2365) \"(\"\n SYMBOL: (2365..2370)\n IDENTIFIER: (2365..2370) \"assoc\"\n ATMOSPHERE: (2370..2371) \" \"\n FORM: (2371..2380)\n OPEN_PAREN: (2371..2372) \"(\"\n SYMBOL: (2372..2376)\n IDENTIFIER: (2372..2376) \"list\"\n ATMOSPHERE: (2376..2377) \" \"\n QUOTED_DATUM: (2377..2379)\n QUOTE: (2377..2378) \"’\"\n SYMBOL: (2378..2379)\n IDENTIFIER: (2378..2379) \"a\"\n CLOSE_PAREN: (2379..2380) \")\"\n ATMOSPHERE: (2380..2381) \" \"\n QUOTED_DATUM: (2381..2401)\n QUOTE: (2381..2382) \"’\"\n FORM: (2382..2401)\n OPEN_PAREN: (2382..2383) \"(\"\n FORM: (2383..2388)\n OPEN_PAREN: (2383..2384) \"(\"\n FORM: (2384..2387)\n OPEN_PAREN: (2384..2385) \"(\"\n SYMBOL: (2385..2386)\n IDENTIFIER: (2385..2386) \"a\"\n CLOSE_PAREN: (2386..2387) \")\"\n CLOSE_PAREN: (2387..2388) \")\"\n ATMOSPHERE: (2388..2389) \" \"\n FORM: (2389..2394)\n OPEN_PAREN: (2389..2390) \"(\"\n FORM: (2390..2393)\n OPEN_PAREN: (2390..2391) \"(\"\n SYMBOL: (2391..2392)\n IDENTIFIER: (2391..2392) \"b\"\n CLOSE_PAREN: (2392..2393) \")\"\n CLOSE_PAREN: (2393..2394) \")\"\n ATMOSPHERE: (2394..2395) \" \"\n FORM: (2395..2400)\n OPEN_PAREN: (2395..2396) \"(\"\n FORM: (2396..2399)\n OPEN_PAREN: (2396..2397) \"(\"\n SYMBOL: (2397..2398)\n IDENTIFIER: (2397..2398) \"c\"\n CLOSE_PAREN: (2398..2399) \")\"\n CLOSE_PAREN: (2399..2400) \")\"\n CLOSE_PAREN: (2400..2401) \")\"\n CLOSE_PAREN: (2401..2402) \")\"\n CLOSE_PAREN: (2402..2403) \")\"\n FORM: (2403..2412)\n OPEN_PAREN: (2403..2404) \"(\"\n SYMBOL: (2404..2411)\n IDENTIFIER: (2404..2411) \"newline\"\n CLOSE_PAREN: (2411..2412) \")\"\n ATMOSPHERE: (2412..2413) \" \"\n ATMOSPHERE: (2413..2423) \"; -> ((a))\"\n ATMOSPHERE: (2423..2424) \"\n\"\n FORM: (2424..2468)\n OPEN_PAREN: (2424..2425) \"(\"\n SYMBOL: (2425..2432)\n IDENTIFIER: (2425..2432) \"display\"\n ATMOSPHERE: (2432..2433) \" \"\n FORM: (2433..2467)\n OPEN_PAREN: (2433..2434) \"(\"\n SYMBOL: (2434..2439)\n IDENTIFIER: (2434..2439) \"assoc\"\n ATMOSPHERE: (2439..2440) \" \"\n CONSTANT: (2440..2443)\n NUMBER: (2440..2443) \"2.0\"\n ATMOSPHERE: (2443..2444) \" \"\n QUOTED_DATUM: (2444..2465)\n QUOTE: (2444..2445) \"’\"\n FORM: (2445..2464)\n OPEN_PAREN: (2445..2446) \"(\"\n FORM: (2446..2451)\n OPEN_PAREN: (2446..2447) \"(\"\n CONSTANT: (2447..2448)\n NUMBER: (2447..2448) \"1\"\n ATMOSPHERE: (2448..2449) \" \"\n CONSTANT: (2449..2450)\n NUMBER: (2449..2450) \"1\"\n CLOSE_PAREN: (2450..2451) \")\"\n ATMOSPHERE: (2451..2452) \" \"\n FORM: (2452..2457)\n OPEN_PAREN: (2452..2453) \"(\"\n CONSTANT: (2453..2454)\n NUMBER: (2453..2454) \"2\"\n ATMOSPHERE: (2454..2455) \" \"\n CONSTANT: (2455..2456)\n NUMBER: (2455..2456) \"4\"\n CLOSE_PAREN: (2456..2457) \")\"\n ATMOSPHERE: (2457..2458) \" \"\n FORM: (2458..2463)\n OPEN_PAREN: (2458..2459) \"(\"\n CONSTANT: (2459..2460)\n NUMBER: (2459..2460) \"3\"\n ATMOSPHERE: (2460..2461) \" \"\n CONSTANT: (2461..2462)\n NUMBER: (2461..2462) \"9\"\n CLOSE_PAREN: (2462..2463) \")\"\n CLOSE_PAREN: (2463..2464) \")\"\n ATMOSPHERE: (2464..2465) \" \"\n SYMBOL: (2465..2466)\n IDENTIFIER: (2465..2466) \"=\"\n CLOSE_PAREN: (2466..2467) \")\"\n CLOSE_PAREN: (2467..2468) \")\"\n FORM: (2468..2477)\n OPEN_PAREN: (2468..2469) \"(\"\n SYMBOL: (2469..2476)\n IDENTIFIER: (2469..2476) \"newline\"\n CLOSE_PAREN: (2476..2477) \")\"\n ATMOSPHERE: (2477..2478) \" \"\n ATMOSPHERE: (2478..2488) \"; -> (2 4)\"\n ATMOSPHERE: (2488..2489) \"\n\"\n FORM: (2489..2530)\n OPEN_PAREN: (2489..2490) \"(\"\n SYMBOL: (2490..2497)\n IDENTIFIER: (2490..2497) \"display\"\n ATMOSPHERE: (2497..2498) \" \"\n FORM: (2498..2529)\n OPEN_PAREN: (2498..2499) \"(\"\n SYMBOL: (2499..2503)\n IDENTIFIER: (2499..2503) \"assq\"\n ATMOSPHERE: (2503..2504) \" \"\n CONSTANT: (2504..2505)\n NUMBER: (2504..2505) \"5\"\n ATMOSPHERE: (2505..2506) \" \"\n QUOTED_DATUM: (2506..2528)\n QUOTE: (2506..2507) \"’\"\n FORM: (2507..2528)\n OPEN_PAREN: (2507..2508) \"(\"\n FORM: (2508..2513)\n OPEN_PAREN: (2508..2509) \"(\"\n CONSTANT: (2509..2510)\n NUMBER: (2509..2510) \"2\"\n ATMOSPHERE: (2510..2511) \" \"\n CONSTANT: (2511..2512)\n NUMBER: (2511..2512) \"3\"\n CLOSE_PAREN: (2512..2513) \")\"\n ATMOSPHERE: (2513..2514) \" \"\n FORM: (2514..2519)\n OPEN_PAREN: (2514..2515) \"(\"\n CONSTANT: (2515..2516)\n NUMBER: (2515..2516) \"5\"\n ATMOSPHERE: (2516..2517) \" \"\n CONSTANT: (2517..2518)\n NUMBER: (2517..2518) \"7\"\n CLOSE_PAREN: (2518..2519) \")\"\n ATMOSPHERE: (2519..2520) \" \"\n FORM: (2520..2527)\n OPEN_PAREN: (2520..2521) \"(\"\n CONSTANT: (2521..2523)\n NUMBER: (2521..2523) \"11\"\n ATMOSPHERE: (2523..2524) \" \"\n CONSTANT: (2524..2526)\n NUMBER: (2524..2526) \"13\"\n CLOSE_PAREN: (2526..2527) \")\"\n CLOSE_PAREN: (2527..2528) \")\"\n CLOSE_PAREN: (2528..2529) \")\"\n CLOSE_PAREN: (2529..2530) \")\"\n FORM: (2530..2539)\n OPEN_PAREN: (2530..2531) \"(\"\n SYMBOL: (2531..2538)\n IDENTIFIER: (2531..2538) \"newline\"\n CLOSE_PAREN: (2538..2539) \")\"\n ATMOSPHERE: (2539..2540) \" \"\n ATMOSPHERE: (2540..2556) \"; -> unspecified\"\n ATMOSPHERE: (2556..2557) \"\n\"\n FORM: (2557..2598)\n OPEN_PAREN: (2557..2558) \"(\"\n SYMBOL: (2558..2565)\n IDENTIFIER: (2558..2565) \"display\"\n ATMOSPHERE: (2565..2566) \" \"\n FORM: (2566..2597)\n OPEN_PAREN: (2566..2567) \"(\"\n SYMBOL: (2567..2571)\n IDENTIFIER: (2567..2571) \"assv\"\n ATMOSPHERE: (2571..2572) \" \"\n CONSTANT: (2572..2573)\n NUMBER: (2572..2573) \"5\"\n ATMOSPHERE: (2573..2574) \" \"\n QUOTED_DATUM: (2574..2596)\n QUOTE: (2574..2575) \"’\"\n FORM: (2575..2596)\n OPEN_PAREN: (2575..2576) \"(\"\n FORM: (2576..2581)\n OPEN_PAREN: (2576..2577) \"(\"\n CONSTANT: (2577..2578)\n NUMBER: (2577..2578) \"2\"\n ATMOSPHERE: (2578..2579) \" \"\n CONSTANT: (2579..2580)\n NUMBER: (2579..2580) \"3\"\n CLOSE_PAREN: (2580..2581) \")\"\n ATMOSPHERE: (2581..2582) \" \"\n FORM: (2582..2587)\n OPEN_PAREN: (2582..2583) \"(\"\n CONSTANT: (2583..2584)\n NUMBER: (2583..2584) \"5\"\n ATMOSPHERE: (2584..2585) \" \"\n CONSTANT: (2585..2586)\n NUMBER: (2585..2586) \"7\"\n CLOSE_PAREN: (2586..2587) \")\"\n ATMOSPHERE: (2587..2588) \" \"\n FORM: (2588..2595)\n OPEN_PAREN: (2588..2589) \"(\"\n CONSTANT: (2589..2591)\n NUMBER: (2589..2591) \"11\"\n ATMOSPHERE: (2591..2592) \" \"\n CONSTANT: (2592..2594)\n NUMBER: (2592..2594) \"13\"\n CLOSE_PAREN: (2594..2595) \")\"\n CLOSE_PAREN: (2595..2596) \")\"\n CLOSE_PAREN: (2596..2597) \")\"\n CLOSE_PAREN: (2597..2598) \")\"\n FORM: (2598..2607)\n OPEN_PAREN: (2598..2599) \"(\"\n SYMBOL: (2599..2606)\n IDENTIFIER: (2599..2606) \"newline\"\n CLOSE_PAREN: (2606..2607) \")\"\n ATMOSPHERE: (2607..2608) \" \"\n ATMOSPHERE: (2608..2618) \"; -> (5 7)\"\n ATMOSPHERE: (2618..2619) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_literals.scm.json b/test/Feersum.Tests/_snapshots/Parse_literals.scm.json
deleted file mode 100644
index 182faf1..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_literals.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..25)\n CONSTANT: (0..1)\n NUMBER: (0..1) \"1\"\n ATMOSPHERE: (1..2) \"\n\"\n CONSTANT: (2..15)\n STRING: (2..15) \"\"hello world\"\"\n ATMOSPHERE: (15..16) \"\n\"\n CONSTANT: (16..18)\n BOOLEAN: (16..18) \"#t\"\n ATMOSPHERE: (18..19) \"\n\"\n CONSTANT: (19..21)\n BOOLEAN: (19..21) \"#f\"\n ATMOSPHERE: (21..22) \"\n\"\n CONSTANT: (22..25)\n NUMBER: (22..25) \"123\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_load_and_store.scm.json b/test/Feersum.Tests/_snapshots/Parse_load_and_store.scm.json
deleted file mode 100644
index 640defa..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_load_and_store.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..46)\n FORM: (0..16)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"define\"\n ATMOSPHERE: (7..8) \" \"\n SYMBOL: (8..11)\n IDENTIFIER: (8..11) \"foo\"\n ATMOSPHERE: (11..12) \" \"\n CONSTANT: (12..15)\n NUMBER: (12..15) \"100\"\n CLOSE_PAREN: (15..16) \")\"\n ATMOSPHERE: (16..17) \"\n\"\n FORM: (17..37)\n OPEN_PAREN: (17..18) \"(\"\n SYMBOL: (18..24)\n IDENTIFIER: (18..24) \"define\"\n ATMOSPHERE: (24..25) \" \"\n SYMBOL: (25..28)\n IDENTIFIER: (25..28) \"bar\"\n ATMOSPHERE: (28..29) \" \"\n CONSTANT: (29..36)\n STRING: (29..36) \"\"hello\"\"\n CLOSE_PAREN: (36..37) \")\"\n ATMOSPHERE: (37..38) \"\n\"\n SYMBOL: (38..41)\n IDENTIFIER: (38..41) \"foo\"\n ATMOSPHERE: (41..42) \"\n\"\n SYMBOL: (42..45)\n IDENTIFIER: (42..45) \"bar\"\n ATMOSPHERE: (45..46) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_locals.scm.json b/test/Feersum.Tests/_snapshots/Parse_locals.scm.json
deleted file mode 100644
index 1385d3d..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_locals.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..182)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..43) \"\n\n\"\n FORM: (43..161)\n OPEN_PAREN: (43..44) \"(\"\n SYMBOL: (44..50)\n IDENTIFIER: (44..50) \"define\"\n ATMOSPHERE: (50..51) \" \"\n FORM: (51..59)\n OPEN_PAREN: (51..52) \"(\"\n SYMBOL: (52..56)\n IDENTIFIER: (52..56) \"fact\"\n ATMOSPHERE: (56..57) \" \"\n SYMBOL: (57..58)\n IDENTIFIER: (57..58) \"n\"\n CLOSE_PAREN: (58..59) \")\"\n ATMOSPHERE: (59..64) \"\n \"\n FORM: (64..160)\n OPEN_PAREN: (64..65) \"(\"\n SYMBOL: (65..67)\n IDENTIFIER: (65..67) \"if\"\n ATMOSPHERE: (67..68) \" \"\n FORM: (68..75)\n OPEN_PAREN: (68..69) \"(\"\n SYMBOL: (69..70)\n IDENTIFIER: (69..70) \"=\"\n ATMOSPHERE: (70..71) \" \"\n SYMBOL: (71..72)\n IDENTIFIER: (71..72) \"n\"\n ATMOSPHERE: (72..73) \" \"\n CONSTANT: (73..74)\n NUMBER: (73..74) \"0\"\n CLOSE_PAREN: (74..75) \")\"\n ATMOSPHERE: (75..84) \"\n \"\n CONSTANT: (84..85)\n NUMBER: (84..85) \"1\"\n ATMOSPHERE: (85..94) \"\n \"\n FORM: (94..159)\n OPEN_PAREN: (94..95) \"(\"\n SYMBOL: (95..100)\n IDENTIFIER: (95..100) \"begin\"\n ATMOSPHERE: (100..113) \"\n \"\n FORM: (113..131)\n OPEN_PAREN: (113..114) \"(\"\n SYMBOL: (114..120)\n IDENTIFIER: (114..120) \"define\"\n ATMOSPHERE: (120..121) \" \"\n SYMBOL: (121..122)\n IDENTIFIER: (121..122) \"m\"\n ATMOSPHERE: (122..123) \" \"\n FORM: (123..130)\n OPEN_PAREN: (123..124) \"(\"\n SYMBOL: (124..125)\n IDENTIFIER: (124..125) \"-\"\n ATMOSPHERE: (125..126) \" \"\n SYMBOL: (126..127)\n IDENTIFIER: (126..127) \"n\"\n ATMOSPHERE: (127..128) \" \"\n CONSTANT: (128..129)\n NUMBER: (128..129) \"1\"\n CLOSE_PAREN: (129..130) \")\"\n CLOSE_PAREN: (130..131) \")\"\n ATMOSPHERE: (131..144) \"\n \"\n FORM: (144..158)\n OPEN_PAREN: (144..145) \"(\"\n SYMBOL: (145..146)\n IDENTIFIER: (145..146) \"*\"\n ATMOSPHERE: (146..147) \" \"\n SYMBOL: (147..148)\n IDENTIFIER: (147..148) \"n\"\n ATMOSPHERE: (148..149) \" \"\n FORM: (149..157)\n OPEN_PAREN: (149..150) \"(\"\n SYMBOL: (150..154)\n IDENTIFIER: (150..154) \"fact\"\n ATMOSPHERE: (154..155) \" \"\n SYMBOL: (155..156)\n IDENTIFIER: (155..156) \"m\"\n CLOSE_PAREN: (156..157) \")\"\n CLOSE_PAREN: (157..158) \")\"\n CLOSE_PAREN: (158..159) \")\"\n CLOSE_PAREN: (159..160) \")\"\n CLOSE_PAREN: (160..161) \")\"\n ATMOSPHERE: (161..163) \"\n\n\"\n FORM: (163..181)\n OPEN_PAREN: (163..164) \"(\"\n SYMBOL: (164..171)\n IDENTIFIER: (164..171) \"display\"\n ATMOSPHERE: (171..172) \" \"\n FORM: (172..180)\n OPEN_PAREN: (172..173) \"(\"\n SYMBOL: (173..177)\n IDENTIFIER: (173..177) \"fact\"\n ATMOSPHERE: (177..178) \" \"\n CONSTANT: (178..179)\n NUMBER: (178..179) \"5\"\n CLOSE_PAREN: (179..180) \")\"\n CLOSE_PAREN: (180..181) \")\"\n ATMOSPHERE: (181..182) \" \"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_norun/forever.scm.json b/test/Feersum.Tests/_snapshots/Parse_norun/forever.scm.json
deleted file mode 100644
index eb90382..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_norun/forever.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..81)\n FORM: (0..14)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"define\"\n ATMOSPHERE: (7..8) \" \"\n SYMBOL: (8..13)\n IDENTIFIER: (8..13) \"world\"\n CLOSE_PAREN: (13..14) \")\"\n ATMOSPHERE: (14..15) \"\n\"\n FORM: (15..39)\n OPEN_PAREN: (15..16) \"(\"\n SYMBOL: (16..22)\n IDENTIFIER: (16..22) \"define\"\n ATMOSPHERE: (22..23) \" \"\n FORM: (23..30)\n OPEN_PAREN: (23..24) \"(\"\n SYMBOL: (24..29)\n IDENTIFIER: (24..29) \"hello\"\n CLOSE_PAREN: (29..30) \")\"\n ATMOSPHERE: (30..31) \" \"\n FORM: (31..38)\n OPEN_PAREN: (31..32) \"(\"\n SYMBOL: (32..37)\n IDENTIFIER: (32..37) \"world\"\n CLOSE_PAREN: (37..38) \")\"\n CLOSE_PAREN: (38..39) \")\"\n ATMOSPHERE: (39..40) \"\n\"\n FORM: (40..72)\n OPEN_PAREN: (40..41) \"(\"\n SYMBOL: (41..45)\n IDENTIFIER: (41..45) \"set!\"\n ATMOSPHERE: (45..46) \" \"\n SYMBOL: (46..51)\n IDENTIFIER: (46..51) \"world\"\n ATMOSPHERE: (51..52) \" \"\n FORM: (52..71)\n OPEN_PAREN: (52..53) \"(\"\n SYMBOL: (53..59)\n IDENTIFIER: (53..59) \"lambda\"\n ATMOSPHERE: (59..60) \" \"\n FORM: (60..62)\n OPEN_PAREN: (60..61) \"(\"\n CLOSE_PAREN: (61..62) \")\"\n ATMOSPHERE: (62..63) \" \"\n FORM: (63..70)\n OPEN_PAREN: (63..64) \"(\"\n SYMBOL: (64..69)\n IDENTIFIER: (64..69) \"hello\"\n CLOSE_PAREN: (69..70) \")\"\n CLOSE_PAREN: (70..71) \")\"\n CLOSE_PAREN: (71..72) \")\"\n ATMOSPHERE: (72..73) \"\n\"\n FORM: (73..80)\n OPEN_PAREN: (73..74) \"(\"\n SYMBOL: (74..79)\n IDENTIFIER: (74..79) \"hello\"\n CLOSE_PAREN: (79..80) \")\"\n ATMOSPHERE: (80..81) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_null.scm.json b/test/Feersum.Tests/_snapshots/Parse_null.scm.json
deleted file mode 100644
index 85d9f1e..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_null.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..2)\n FORM: (0..2)\n OPEN_PAREN: (0..1) \"(\"\n CLOSE_PAREN: (1..2) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_parameters.scm.json b/test/Feersum.Tests/_snapshots/Parse_parameters.scm.json
deleted file mode 100644
index 5cd5379..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_parameters.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..97)\n FORM: (0..24)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"define\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..17)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..12)\n IDENTIFIER: (9..12) \"foo\"\n ATMOSPHERE: (12..13) \" \"\n SYMBOL: (13..14)\n IDENTIFIER: (13..14) \"a\"\n ATMOSPHERE: (14..15) \" \"\n SYMBOL: (15..16)\n IDENTIFIER: (15..16) \"b\"\n CLOSE_PAREN: (16..17) \")\"\n ATMOSPHERE: (17..22) \"\n \"\n SYMBOL: (22..23)\n IDENTIFIER: (22..23) \"b\"\n CLOSE_PAREN: (23..24) \")\"\n ATMOSPHERE: (24..25) \"\n\"\n FORM: (25..51)\n OPEN_PAREN: (25..26) \"(\"\n SYMBOL: (26..32)\n IDENTIFIER: (26..32) \"define\"\n ATMOSPHERE: (32..33) \" \"\n FORM: (33..44)\n OPEN_PAREN: (33..34) \"(\"\n SYMBOL: (34..37)\n IDENTIFIER: (34..37) \"bar\"\n ATMOSPHERE: (37..38) \" \"\n SYMBOL: (38..39)\n IDENTIFIER: (38..39) \"a\"\n ATMOSPHERE: (39..40) \" \"\n SYMBOL: (40..41)\n IDENTIFIER: (40..41) \"b\"\n ATMOSPHERE: (41..42) \" \"\n SYMBOL: (42..43)\n IDENTIFIER: (42..43) \"c\"\n CLOSE_PAREN: (43..44) \")\"\n ATMOSPHERE: (44..49) \"\n \"\n SYMBOL: (49..50)\n IDENTIFIER: (49..50) \"a\"\n CLOSE_PAREN: (50..51) \")\"\n ATMOSPHERE: (51..52) \"\n\"\n ATMOSPHERE: (52..71) \"; should return 101\"\n ATMOSPHERE: (71..72) \"\n\"\n FORM: (72..97)\n OPEN_PAREN: (72..73) \"(\"\n SYMBOL: (73..76)\n IDENTIFIER: (73..76) \"bar\"\n ATMOSPHERE: (76..77) \" \"\n FORM: (77..90)\n OPEN_PAREN: (77..78) \"(\"\n SYMBOL: (78..81)\n IDENTIFIER: (78..81) \"foo\"\n ATMOSPHERE: (81..82) \" \"\n CONSTANT: (82..85)\n NUMBER: (82..85) \"123\"\n ATMOSPHERE: (85..86) \" \"\n CONSTANT: (86..89)\n NUMBER: (86..89) \"101\"\n CLOSE_PAREN: (89..90) \")\"\n ATMOSPHERE: (90..91) \" \"\n CONSTANT: (91..93)\n NUMBER: (91..93) \"78\"\n ATMOSPHERE: (93..94) \" \"\n CONSTANT: (94..96)\n NUMBER: (94..96) \"90\"\n CLOSE_PAREN: (96..97) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_process-context.scm.json b/test/Feersum.Tests/_snapshots/Parse_process-context.scm.json
deleted file mode 100644
index 1742ae8..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_process-context.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..199)\n FORM: (0..66)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..32)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..31)\n IDENTIFIER: (16..31) \"process-context\"\n CLOSE_PAREN: (31..32) \")\"\n ATMOSPHERE: (32..35) \"\n \"\n FORM: (35..48)\n OPEN_PAREN: (35..36) \"(\"\n SYMBOL: (36..42)\n IDENTIFIER: (36..42) \"scheme\"\n ATMOSPHERE: (42..43) \" \"\n SYMBOL: (43..47)\n IDENTIFIER: (43..47) \"base\"\n CLOSE_PAREN: (47..48) \")\"\n ATMOSPHERE: (48..51) \"\n \"\n FORM: (51..65)\n OPEN_PAREN: (51..52) \"(\"\n SYMBOL: (52..58)\n IDENTIFIER: (52..58) \"scheme\"\n ATMOSPHERE: (58..59) \" \"\n SYMBOL: (59..64)\n IDENTIFIER: (59..64) \"write\"\n CLOSE_PAREN: (64..65) \")\"\n CLOSE_PAREN: (65..66) \")\"\n ATMOSPHERE: (66..68) \"\n\n\"\n FORM: (68..122)\n OPEN_PAREN: (68..69) \"(\"\n SYMBOL: (69..76)\n IDENTIFIER: (69..76) \"display\"\n ATMOSPHERE: (76..77) \" \"\n FORM: (77..121)\n OPEN_PAREN: (77..78) \"(\"\n SYMBOL: (78..102)\n IDENTIFIER: (78..102) \"get-environment-variable\"\n ATMOSPHERE: (102..103) \" \"\n CONSTANT: (103..120)\n STRING: (103..120) \"\"FEERSUM_TESTING\"\"\n CLOSE_PAREN: (120..121) \")\"\n CLOSE_PAREN: (121..122) \")\"\n ATMOSPHERE: (122..123) \"\n\"\n FORM: (123..186)\n OPEN_PAREN: (123..124) \"(\"\n SYMBOL: (124..131)\n IDENTIFIER: (124..131) \"display\"\n ATMOSPHERE: (131..132) \" \"\n FORM: (132..185)\n OPEN_PAREN: (132..133) \"(\"\n SYMBOL: (133..138)\n IDENTIFIER: (133..138) \"assoc\"\n ATMOSPHERE: (138..139) \" \"\n CONSTANT: (139..156)\n STRING: (139..156) \"\"FEERSUM_TESTING\"\"\n ATMOSPHERE: (156..157) \" \"\n FORM: (157..184)\n OPEN_PAREN: (157..158) \"(\"\n SYMBOL: (158..183)\n IDENTIFIER: (158..183) \"get-environment-variables\"\n CLOSE_PAREN: (183..184) \")\"\n CLOSE_PAREN: (184..185) \")\"\n CLOSE_PAREN: (185..186) \")\"\n ATMOSPHERE: (186..188) \"\n\n\"\n FORM: (188..198)\n OPEN_PAREN: (188..189) \"(\"\n SYMBOL: (189..193)\n IDENTIFIER: (189..193) \"exit\"\n ATMOSPHERE: (193..194) \" \"\n CONSTANT: (194..197)\n NUMBER: (194..197) \"123\"\n CLOSE_PAREN: (197..198) \")\"\n ATMOSPHERE: (198..199) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_qsort.scm.json b/test/Feersum.Tests/_snapshots/Parse_qsort.scm.json
deleted file mode 100644
index cbbe789..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_qsort.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..2752)\n ATMOSPHERE: (0..26) \";; Sorting library example\"\n ATMOSPHERE: (26..27) \"\n\"\n FORM: (27..2545)\n OPEN_PAREN: (27..28) \"(\"\n SYMBOL: (28..42)\n IDENTIFIER: (28..42) \"define-library\"\n ATMOSPHERE: (42..43) \" \"\n FORM: (43..49)\n OPEN_PAREN: (43..44) \"(\"\n SYMBOL: (44..48)\n IDENTIFIER: (44..48) \"sort\"\n CLOSE_PAREN: (48..49) \")\"\n ATMOSPHERE: (49..54) \"\n \"\n FORM: (54..258)\n OPEN_PAREN: (54..55) \"(\"\n SYMBOL: (55..61)\n IDENTIFIER: (55..61) \"import\"\n ATMOSPHERE: (61..62) \" \"\n FORM: (62..75)\n OPEN_PAREN: (62..63) \"(\"\n SYMBOL: (63..69)\n IDENTIFIER: (63..69) \"scheme\"\n ATMOSPHERE: (69..70) \" \"\n SYMBOL: (70..74)\n IDENTIFIER: (70..74) \"base\"\n CLOSE_PAREN: (74..75) \")\"\n ATMOSPHERE: (75..84) \"\n \"\n ATMOSPHERE: (84..151) \";; FIXME: we shouldn't _need_ to import this, but we have no way of\"\n ATMOSPHERE: (151..160) \"\n \"\n ATMOSPHERE: (160..224) \";; exporting or re-exporting macro definitions currently.\"\n ATMOSPHERE: (224..233) \"\n \"\n FORM: (233..257)\n OPEN_PAREN: (233..234) \"(\"\n SYMBOL: (234..241)\n IDENTIFIER: (234..241) \"feersum\"\n ATMOSPHERE: (241..242) \" \"\n SYMBOL: (242..249)\n IDENTIFIER: (242..249) \"builtin\"\n ATMOSPHERE: (249..250) \" \"\n SYMBOL: (250..256)\n IDENTIFIER: (250..256) \"macros\"\n CLOSE_PAREN: (256..257) \")\"\n CLOSE_PAREN: (257..258) \")\"\n ATMOSPHERE: (258..263) \"\n \"\n FORM: (263..291)\n OPEN_PAREN: (263..264) \"(\"\n SYMBOL: (264..270)\n IDENTIFIER: (264..270) \"export\"\n ATMOSPHERE: (270..271) \" \"\n FORM: (271..290)\n OPEN_PAREN: (271..272) \"(\"\n SYMBOL: (272..278)\n IDENTIFIER: (272..278) \"rename\"\n ATMOSPHERE: (278..279) \" \"\n SYMBOL: (279..284)\n IDENTIFIER: (279..284) \"qsort\"\n ATMOSPHERE: (284..285) \" \"\n SYMBOL: (285..289)\n IDENTIFIER: (285..289) \"sort\"\n CLOSE_PAREN: (289..290) \")\"\n CLOSE_PAREN: (290..291) \")\"\n ATMOSPHERE: (291..296) \"\n \"\n FORM: (296..2544)\n OPEN_PAREN: (296..297) \"(\"\n SYMBOL: (297..302)\n IDENTIFIER: (297..302) \"begin\"\n ATMOSPHERE: (302..311) \"\n \"\n ATMOSPHERE: (311..332) \";; Partition Utitlity\"\n ATMOSPHERE: (332..341) \"\n \"\n ATMOSPHERE: (341..342) \";\"\n ATMOSPHERE: (342..351) \"\n \"\n ATMOSPHERE: (351..422) \"; This function takes a given `lst` and partitions it around a `pivot`.\"\n ATMOSPHERE: (422..431) \"\n \"\n ATMOSPHERE: (431..503) \"; The result is a list who's `car` is a list containing the numbers less\"\n ATMOSPHERE: (503..512) \"\n \"\n ATMOSPHERE: (512..583) \"; than the pivot, and `cdr` is a list containing those greater than the\"\n ATMOSPHERE: (583..592) \"\n \"\n ATMOSPHERE: (592..600) \"; pivot.\"\n ATMOSPHERE: (600..609) \"\n \"\n FORM: (609..1024)\n OPEN_PAREN: (609..610) \"(\"\n SYMBOL: (610..616)\n IDENTIFIER: (610..616) \"define\"\n ATMOSPHERE: (616..617) \" \"\n FORM: (617..638)\n OPEN_PAREN: (617..618) \"(\"\n SYMBOL: (618..627)\n IDENTIFIER: (618..627) \"partition\"\n ATMOSPHERE: (627..628) \" \"\n SYMBOL: (628..633)\n IDENTIFIER: (628..633) \"pivot\"\n ATMOSPHERE: (633..634) \" \"\n SYMBOL: (634..637)\n IDENTIFIER: (634..637) \"lst\"\n CLOSE_PAREN: (637..638) \")\"\n ATMOSPHERE: (638..651) \"\n \"\n FORM: (651..1023)\n OPEN_PAREN: (651..652) \"(\"\n SYMBOL: (652..654)\n IDENTIFIER: (652..654) \"if\"\n ATMOSPHERE: (654..655) \" \"\n FORM: (655..666)\n OPEN_PAREN: (655..656) \"(\"\n SYMBOL: (656..661)\n IDENTIFIER: (656..661) \"null?\"\n ATMOSPHERE: (661..662) \" \"\n SYMBOL: (662..665)\n IDENTIFIER: (662..665) \"lst\"\n CLOSE_PAREN: (665..666) \")\"\n ATMOSPHERE: (666..683) \"\n \"\n QUOTED_DATUM: (683..705)\n QUOTE: (683..684) \"'\"\n FORM: (684..688)\n OPEN_PAREN: (684..685) \"(\"\n FORM: (685..687)\n OPEN_PAREN: (685..686) \"(\"\n CLOSE_PAREN: (686..687) \")\"\n CLOSE_PAREN: (687..688) \")\"\n ATMOSPHERE: (688..705) \"\n \"\n FORM: (705..1022)\n OPEN_PAREN: (705..706) \"(\"\n SYMBOL: (706..709)\n IDENTIFIER: (706..709) \"let\"\n ATMOSPHERE: (709..710) \" \"\n FORM: (710..786)\n OPEN_PAREN: (710..711) \"(\"\n FORM: (711..730)\n OPEN_PAREN: (711..712) \"(\"\n SYMBOL: (712..719)\n IDENTIFIER: (712..719) \"current\"\n ATMOSPHERE: (719..720) \" \"\n FORM: (720..729)\n OPEN_PAREN: (720..721) \"(\"\n SYMBOL: (721..724)\n IDENTIFIER: (721..724) \"car\"\n ATMOSPHERE: (724..725) \" \"\n SYMBOL: (725..728)\n IDENTIFIER: (725..728) \"lst\"\n CLOSE_PAREN: (728..729) \")\"\n CLOSE_PAREN: (729..730) \")\"\n ATMOSPHERE: (730..751) \"\n \"\n FORM: (751..785)\n OPEN_PAREN: (751..752) \"(\"\n SYMBOL: (752..756)\n IDENTIFIER: (752..756) \"rest\"\n ATMOSPHERE: (756..757) \" \"\n FORM: (757..784)\n OPEN_PAREN: (757..758) \"(\"\n SYMBOL: (758..767)\n IDENTIFIER: (758..767) \"partition\"\n ATMOSPHERE: (767..768) \" \"\n SYMBOL: (768..773)\n IDENTIFIER: (768..773) \"pivot\"\n ATMOSPHERE: (773..774) \" \"\n FORM: (774..783)\n OPEN_PAREN: (774..775) \"(\"\n SYMBOL: (775..778)\n IDENTIFIER: (775..778) \"cdr\"\n ATMOSPHERE: (778..779) \" \"\n SYMBOL: (779..782)\n IDENTIFIER: (779..782) \"lst\"\n CLOSE_PAREN: (782..783) \")\"\n CLOSE_PAREN: (783..784) \")\"\n CLOSE_PAREN: (784..785) \")\"\n CLOSE_PAREN: (785..786) \")\"\n ATMOSPHERE: (786..807) \"\n \"\n FORM: (807..1021)\n OPEN_PAREN: (807..808) \"(\"\n SYMBOL: (808..810)\n IDENTIFIER: (808..810) \"if\"\n ATMOSPHERE: (810..811) \" \"\n FORM: (811..828)\n OPEN_PAREN: (811..812) \"(\"\n SYMBOL: (812..813)\n IDENTIFIER: (812..813) \"<\"\n ATMOSPHERE: (813..814) \" \"\n SYMBOL: (814..821)\n IDENTIFIER: (814..821) \"current\"\n ATMOSPHERE: (821..822) \" \"\n SYMBOL: (822..827)\n IDENTIFIER: (822..827) \"pivot\"\n CLOSE_PAREN: (827..828) \")\"\n ATMOSPHERE: (828..853) \"\n \"\n FORM: (853..924)\n OPEN_PAREN: (853..854) \"(\"\n SYMBOL: (854..858)\n IDENTIFIER: (854..858) \"cons\"\n ATMOSPHERE: (858..859) \" \"\n FORM: (859..884)\n OPEN_PAREN: (859..860) \"(\"\n SYMBOL: (860..864)\n IDENTIFIER: (860..864) \"cons\"\n ATMOSPHERE: (864..865) \" \"\n SYMBOL: (865..872)\n IDENTIFIER: (865..872) \"current\"\n ATMOSPHERE: (872..873) \" \"\n FORM: (873..883)\n OPEN_PAREN: (873..874) \"(\"\n SYMBOL: (874..877)\n IDENTIFIER: (874..877) \"car\"\n ATMOSPHERE: (877..878) \" \"\n SYMBOL: (878..882)\n IDENTIFIER: (878..882) \"rest\"\n CLOSE_PAREN: (882..883) \")\"\n CLOSE_PAREN: (883..884) \")\"\n ATMOSPHERE: (884..913) \"\n \"\n FORM: (913..923)\n OPEN_PAREN: (913..914) \"(\"\n SYMBOL: (914..917)\n IDENTIFIER: (914..917) \"cdr\"\n ATMOSPHERE: (917..918) \" \"\n SYMBOL: (918..922)\n IDENTIFIER: (918..922) \"rest\"\n CLOSE_PAREN: (922..923) \")\"\n CLOSE_PAREN: (923..924) \")\"\n ATMOSPHERE: (924..949) \"\n \"\n FORM: (949..1020)\n OPEN_PAREN: (949..950) \"(\"\n SYMBOL: (950..954)\n IDENTIFIER: (950..954) \"cons\"\n ATMOSPHERE: (954..955) \" \"\n FORM: (955..965)\n OPEN_PAREN: (955..956) \"(\"\n SYMBOL: (956..959)\n IDENTIFIER: (956..959) \"car\"\n ATMOSPHERE: (959..960) \" \"\n SYMBOL: (960..964)\n IDENTIFIER: (960..964) \"rest\"\n CLOSE_PAREN: (964..965) \")\"\n ATMOSPHERE: (965..994) \"\n \"\n FORM: (994..1019)\n OPEN_PAREN: (994..995) \"(\"\n SYMBOL: (995..999)\n IDENTIFIER: (995..999) \"cons\"\n ATMOSPHERE: (999..1000) \" \"\n SYMBOL: (1000..1007)\n IDENTIFIER: (1000..1007) \"current\"\n ATMOSPHERE: (1007..1008) \" \"\n FORM: (1008..1018)\n OPEN_PAREN: (1008..1009) \"(\"\n SYMBOL: (1009..1012)\n IDENTIFIER: (1009..1012) \"cdr\"\n ATMOSPHERE: (1012..1013) \" \"\n SYMBOL: (1013..1017)\n IDENTIFIER: (1013..1017) \"rest\"\n CLOSE_PAREN: (1017..1018) \")\"\n CLOSE_PAREN: (1018..1019) \")\"\n CLOSE_PAREN: (1019..1020) \")\"\n CLOSE_PAREN: (1020..1021) \")\"\n CLOSE_PAREN: (1021..1022) \")\"\n CLOSE_PAREN: (1022..1023) \")\"\n CLOSE_PAREN: (1023..1024) \")\"\n ATMOSPHERE: (1024..1034) \"\n\n \"\n ATMOSPHERE: (1034..1079) \";; Append the `right` list to the `left` one.\"\n ATMOSPHERE: (1079..1088) \"\n \"\n ATMOSPHERE: (1088..1089) \";\"\n ATMOSPHERE: (1089..1098) \"\n \"\n ATMOSPHERE: (1098..1170) \"; This function uses two helpers to tail-recursively reconstruct a list.\"\n ATMOSPHERE: (1170..1179) \"\n \"\n ATMOSPHERE: (1179..1247) \"; The `append-helper` first recurses moving elements from the `left`\"\n ATMOSPHERE: (1247..1256) \"\n \"\n ATMOSPHERE: (1256..1327) \"; list into the accumuulator. Once the left list is empty the base case\"\n ATMOSPHERE: (1327..1336) \"\n \"\n ATMOSPHERE: (1336..1398) \"; uses `rebuild` to tail-recursively construct the final list.\"\n ATMOSPHERE: (1398..1407) \"\n \"\n FORM: (1407..1890)\n OPEN_PAREN: (1407..1408) \"(\"\n SYMBOL: (1408..1414)\n IDENTIFIER: (1408..1414) \"define\"\n ATMOSPHERE: (1414..1415) \" \"\n FORM: (1415..1434)\n OPEN_PAREN: (1415..1416) \"(\"\n SYMBOL: (1416..1422)\n IDENTIFIER: (1416..1422) \"append\"\n ATMOSPHERE: (1422..1423) \" \"\n SYMBOL: (1423..1427)\n IDENTIFIER: (1423..1427) \"left\"\n ATMOSPHERE: (1427..1428) \" \"\n SYMBOL: (1428..1433)\n IDENTIFIER: (1428..1433) \"right\"\n CLOSE_PAREN: (1433..1434) \")\"\n ATMOSPHERE: (1434..1447) \"\n \"\n FORM: (1447..1597)\n OPEN_PAREN: (1447..1448) \"(\"\n SYMBOL: (1448..1454)\n IDENTIFIER: (1448..1454) \"define\"\n ATMOSPHERE: (1454..1455) \" \"\n FORM: (1455..1474)\n OPEN_PAREN: (1455..1456) \"(\"\n SYMBOL: (1456..1463)\n IDENTIFIER: (1456..1463) \"rebuild\"\n ATMOSPHERE: (1463..1464) \" \"\n SYMBOL: (1464..1467)\n IDENTIFIER: (1464..1467) \"acc\"\n ATMOSPHERE: (1467..1468) \" \"\n SYMBOL: (1468..1473)\n IDENTIFIER: (1468..1473) \"right\"\n CLOSE_PAREN: (1473..1474) \")\"\n ATMOSPHERE: (1474..1491) \"\n \"\n FORM: (1491..1596)\n OPEN_PAREN: (1491..1492) \"(\"\n SYMBOL: (1492..1494)\n IDENTIFIER: (1492..1494) \"if\"\n ATMOSPHERE: (1494..1495) \" \"\n FORM: (1495..1506)\n OPEN_PAREN: (1495..1496) \"(\"\n SYMBOL: (1496..1501)\n IDENTIFIER: (1496..1501) \"null?\"\n ATMOSPHERE: (1501..1502) \" \"\n SYMBOL: (1502..1505)\n IDENTIFIER: (1502..1505) \"acc\"\n CLOSE_PAREN: (1505..1506) \")\"\n ATMOSPHERE: (1506..1527) \"\n \"\n SYMBOL: (1527..1532)\n IDENTIFIER: (1527..1532) \"right\"\n ATMOSPHERE: (1532..1553) \"\n \"\n FORM: (1553..1595)\n OPEN_PAREN: (1553..1554) \"(\"\n SYMBOL: (1554..1561)\n IDENTIFIER: (1554..1561) \"rebuild\"\n ATMOSPHERE: (1561..1562) \" \"\n FORM: (1562..1571)\n OPEN_PAREN: (1562..1563) \"(\"\n SYMBOL: (1563..1566)\n IDENTIFIER: (1563..1566) \"cdr\"\n ATMOSPHERE: (1566..1567) \" \"\n SYMBOL: (1567..1570)\n IDENTIFIER: (1567..1570) \"acc\"\n CLOSE_PAREN: (1570..1571) \")\"\n ATMOSPHERE: (1571..1572) \" \"\n FORM: (1572..1594)\n OPEN_PAREN: (1572..1573) \"(\"\n SYMBOL: (1573..1577)\n IDENTIFIER: (1573..1577) \"cons\"\n ATMOSPHERE: (1577..1578) \" \"\n FORM: (1578..1587)\n OPEN_PAREN: (1578..1579) \"(\"\n SYMBOL: (1579..1582)\n IDENTIFIER: (1579..1582) \"car\"\n ATMOSPHERE: (1582..1583) \" \"\n SYMBOL: (1583..1586)\n IDENTIFIER: (1583..1586) \"acc\"\n CLOSE_PAREN: (1586..1587) \")\"\n ATMOSPHERE: (1587..1588) \" \"\n SYMBOL: (1588..1593)\n IDENTIFIER: (1588..1593) \"right\"\n CLOSE_PAREN: (1593..1594) \")\"\n CLOSE_PAREN: (1594..1595) \")\"\n CLOSE_PAREN: (1595..1596) \")\"\n CLOSE_PAREN: (1596..1597) \")\"\n ATMOSPHERE: (1597..1610) \"\n \"\n FORM: (1610..1846)\n OPEN_PAREN: (1610..1611) \"(\"\n SYMBOL: (1611..1617)\n IDENTIFIER: (1611..1617) \"define\"\n ATMOSPHERE: (1617..1618) \" \"\n FORM: (1618..1648)\n OPEN_PAREN: (1618..1619) \"(\"\n SYMBOL: (1619..1632)\n IDENTIFIER: (1619..1632) \"append-helper\"\n ATMOSPHERE: (1632..1633) \" \"\n SYMBOL: (1633..1636)\n IDENTIFIER: (1633..1636) \"acc\"\n ATMOSPHERE: (1636..1637) \" \"\n SYMBOL: (1637..1641)\n IDENTIFIER: (1637..1641) \"left\"\n ATMOSPHERE: (1641..1642) \" \"\n SYMBOL: (1642..1647)\n IDENTIFIER: (1642..1647) \"right\"\n CLOSE_PAREN: (1647..1648) \")\"\n ATMOSPHERE: (1648..1665) \"\n \"\n FORM: (1665..1845)\n OPEN_PAREN: (1665..1666) \"(\"\n SYMBOL: (1666..1668)\n IDENTIFIER: (1666..1668) \"if\"\n ATMOSPHERE: (1668..1669) \" \"\n FORM: (1669..1681)\n OPEN_PAREN: (1669..1670) \"(\"\n SYMBOL: (1670..1675)\n IDENTIFIER: (1670..1675) \"null?\"\n ATMOSPHERE: (1675..1676) \" \"\n SYMBOL: (1676..1680)\n IDENTIFIER: (1676..1680) \"left\"\n CLOSE_PAREN: (1680..1681) \")\"\n ATMOSPHERE: (1681..1702) \"\n \"\n FORM: (1702..1721)\n OPEN_PAREN: (1702..1703) \"(\"\n SYMBOL: (1703..1710)\n IDENTIFIER: (1703..1710) \"rebuild\"\n ATMOSPHERE: (1710..1711) \" \"\n SYMBOL: (1711..1714)\n IDENTIFIER: (1711..1714) \"acc\"\n ATMOSPHERE: (1714..1715) \" \"\n SYMBOL: (1715..1720)\n IDENTIFIER: (1715..1720) \"right\"\n CLOSE_PAREN: (1720..1721) \")\"\n ATMOSPHERE: (1721..1742) \"\n \"\n FORM: (1742..1844)\n OPEN_PAREN: (1742..1743) \"(\"\n SYMBOL: (1743..1756)\n IDENTIFIER: (1743..1756) \"append-helper\"\n ATMOSPHERE: (1756..1757) \" \"\n FORM: (1757..1778)\n OPEN_PAREN: (1757..1758) \"(\"\n SYMBOL: (1758..1762)\n IDENTIFIER: (1758..1762) \"cons\"\n ATMOSPHERE: (1762..1763) \" \"\n FORM: (1763..1773)\n OPEN_PAREN: (1763..1764) \"(\"\n SYMBOL: (1764..1767)\n IDENTIFIER: (1764..1767) \"car\"\n ATMOSPHERE: (1767..1768) \" \"\n SYMBOL: (1768..1772)\n IDENTIFIER: (1768..1772) \"left\"\n CLOSE_PAREN: (1772..1773) \")\"\n ATMOSPHERE: (1773..1774) \" \"\n SYMBOL: (1774..1777)\n IDENTIFIER: (1774..1777) \"acc\"\n CLOSE_PAREN: (1777..1778) \")\"\n ATMOSPHERE: (1778..1803) \"\n \"\n FORM: (1803..1813)\n OPEN_PAREN: (1803..1804) \"(\"\n SYMBOL: (1804..1807)\n IDENTIFIER: (1804..1807) \"cdr\"\n ATMOSPHERE: (1807..1808) \" \"\n SYMBOL: (1808..1812)\n IDENTIFIER: (1808..1812) \"left\"\n CLOSE_PAREN: (1812..1813) \")\"\n ATMOSPHERE: (1813..1838) \"\n \"\n SYMBOL: (1838..1843)\n IDENTIFIER: (1838..1843) \"right\"\n CLOSE_PAREN: (1843..1844) \")\"\n CLOSE_PAREN: (1844..1845) \")\"\n CLOSE_PAREN: (1845..1846) \")\"\n ATMOSPHERE: (1846..1859) \"\n \"\n FORM: (1859..1889)\n OPEN_PAREN: (1859..1860) \"(\"\n SYMBOL: (1860..1873)\n IDENTIFIER: (1860..1873) \"append-helper\"\n ATMOSPHERE: (1873..1874) \" \"\n QUOTED_DATUM: (1874..1878)\n QUOTE: (1874..1875) \"'\"\n FORM: (1875..1877)\n OPEN_PAREN: (1875..1876) \"(\"\n CLOSE_PAREN: (1876..1877) \")\"\n ATMOSPHERE: (1877..1878) \" \"\n SYMBOL: (1878..1882)\n IDENTIFIER: (1878..1882) \"left\"\n ATMOSPHERE: (1882..1883) \" \"\n SYMBOL: (1883..1888)\n IDENTIFIER: (1883..1888) \"right\"\n CLOSE_PAREN: (1888..1889) \")\"\n CLOSE_PAREN: (1889..1890) \")\"\n ATMOSPHERE: (1890..1900) \"\n\n \"\n ATMOSPHERE: (1900..1938) \";; Recursive quicksort implementation.\"\n ATMOSPHERE: (1938..1947) \"\n \"\n ATMOSPHERE: (1947..1948) \";\"\n ATMOSPHERE: (1948..1957) \"\n \"\n ATMOSPHERE: (1957..2026) \"; Takes a list of numbers and returns a sorted list. Trivially sorted\"\n ATMOSPHERE: (2026..2035) \"\n \"\n ATMOSPHERE: (2035..2106) \"; lists are immediately returned. Complex lists are split using a token\"\n ATMOSPHERE: (2106..2115) \"\n \"\n ATMOSPHERE: (2115..2177) \"; pivot and the high and low sub-lists are individually sorted\"\n ATMOSPHERE: (2177..2186) \"\n \"\n ATMOSPHERE: (2186..2200) \"; recurisvely.\"\n ATMOSPHERE: (2200..2209) \"\n \"\n FORM: (2209..2534)\n OPEN_PAREN: (2209..2210) \"(\"\n SYMBOL: (2210..2216)\n IDENTIFIER: (2210..2216) \"define\"\n ATMOSPHERE: (2216..2217) \" \"\n FORM: (2217..2229)\n OPEN_PAREN: (2217..2218) \"(\"\n SYMBOL: (2218..2223)\n IDENTIFIER: (2218..2223) \"qsort\"\n ATMOSPHERE: (2223..2224) \" \"\n SYMBOL: (2224..2228)\n IDENTIFIER: (2224..2228) \"nums\"\n CLOSE_PAREN: (2228..2229) \")\"\n ATMOSPHERE: (2229..2242) \"\n \"\n FORM: (2242..2533)\n OPEN_PAREN: (2242..2243) \"(\"\n SYMBOL: (2243..2245)\n IDENTIFIER: (2243..2245) \"if\"\n ATMOSPHERE: (2245..2246) \" \"\n FORM: (2246..2282)\n OPEN_PAREN: (2246..2247) \"(\"\n SYMBOL: (2247..2249)\n IDENTIFIER: (2247..2249) \"or\"\n ATMOSPHERE: (2249..2250) \" \"\n FORM: (2250..2262)\n OPEN_PAREN: (2250..2251) \"(\"\n SYMBOL: (2251..2256)\n IDENTIFIER: (2251..2256) \"null?\"\n ATMOSPHERE: (2256..2257) \" \"\n SYMBOL: (2257..2261)\n IDENTIFIER: (2257..2261) \"nums\"\n CLOSE_PAREN: (2261..2262) \")\"\n ATMOSPHERE: (2262..2263) \" \"\n FORM: (2263..2281)\n OPEN_PAREN: (2263..2264) \"(\"\n SYMBOL: (2264..2269)\n IDENTIFIER: (2264..2269) \"null?\"\n ATMOSPHERE: (2269..2270) \" \"\n FORM: (2270..2280)\n OPEN_PAREN: (2270..2271) \"(\"\n SYMBOL: (2271..2274)\n IDENTIFIER: (2271..2274) \"cdr\"\n ATMOSPHERE: (2274..2275) \" \"\n SYMBOL: (2275..2279)\n IDENTIFIER: (2275..2279) \"nums\"\n CLOSE_PAREN: (2279..2280) \")\"\n CLOSE_PAREN: (2280..2281) \")\"\n CLOSE_PAREN: (2281..2282) \")\"\n ATMOSPHERE: (2282..2299) \"\n \"\n SYMBOL: (2299..2303)\n IDENTIFIER: (2299..2303) \"nums\"\n ATMOSPHERE: (2303..2320) \"\n \"\n FORM: (2320..2532)\n OPEN_PAREN: (2320..2321) \"(\"\n SYMBOL: (2321..2325)\n IDENTIFIER: (2321..2325) \"let*\"\n ATMOSPHERE: (2325..2326) \" \"\n FORM: (2326..2413)\n OPEN_PAREN: (2326..2327) \"(\"\n FORM: (2327..2345)\n OPEN_PAREN: (2327..2328) \"(\"\n SYMBOL: (2328..2333)\n IDENTIFIER: (2328..2333) \"pivot\"\n ATMOSPHERE: (2333..2334) \" \"\n FORM: (2334..2344)\n OPEN_PAREN: (2334..2335) \"(\"\n SYMBOL: (2335..2338)\n IDENTIFIER: (2335..2338) \"car\"\n ATMOSPHERE: (2338..2339) \" \"\n SYMBOL: (2339..2343)\n IDENTIFIER: (2339..2343) \"nums\"\n CLOSE_PAREN: (2343..2344) \")\"\n CLOSE_PAREN: (2344..2345) \")\"\n ATMOSPHERE: (2345..2370) \"\n \"\n FORM: (2370..2412)\n OPEN_PAREN: (2370..2371) \"(\"\n SYMBOL: (2371..2382)\n IDENTIFIER: (2371..2382) \"partitioned\"\n ATMOSPHERE: (2382..2383) \" \"\n FORM: (2383..2411)\n OPEN_PAREN: (2383..2384) \"(\"\n SYMBOL: (2384..2393)\n IDENTIFIER: (2384..2393) \"partition\"\n ATMOSPHERE: (2393..2394) \" \"\n SYMBOL: (2394..2399)\n IDENTIFIER: (2394..2399) \"pivot\"\n ATMOSPHERE: (2399..2400) \" \"\n FORM: (2400..2410)\n OPEN_PAREN: (2400..2401) \"(\"\n SYMBOL: (2401..2404)\n IDENTIFIER: (2401..2404) \"cdr\"\n ATMOSPHERE: (2404..2405) \" \"\n SYMBOL: (2405..2409)\n IDENTIFIER: (2405..2409) \"nums\"\n CLOSE_PAREN: (2409..2410) \")\"\n CLOSE_PAREN: (2410..2411) \")\"\n CLOSE_PAREN: (2411..2412) \")\"\n CLOSE_PAREN: (2412..2413) \")\"\n ATMOSPHERE: (2413..2434) \"\n \"\n FORM: (2434..2531)\n OPEN_PAREN: (2434..2435) \"(\"\n SYMBOL: (2435..2441)\n IDENTIFIER: (2435..2441) \"append\"\n ATMOSPHERE: (2441..2442) \" \"\n FORM: (2442..2467)\n OPEN_PAREN: (2442..2443) \"(\"\n SYMBOL: (2443..2448)\n IDENTIFIER: (2443..2448) \"qsort\"\n ATMOSPHERE: (2448..2449) \" \"\n FORM: (2449..2466)\n OPEN_PAREN: (2449..2450) \"(\"\n SYMBOL: (2450..2453)\n IDENTIFIER: (2450..2453) \"car\"\n ATMOSPHERE: (2453..2454) \" \"\n SYMBOL: (2454..2465)\n IDENTIFIER: (2454..2465) \"partitioned\"\n CLOSE_PAREN: (2465..2466) \")\"\n CLOSE_PAREN: (2466..2467) \")\"\n ATMOSPHERE: (2467..2492) \"\n \"\n FORM: (2492..2530)\n OPEN_PAREN: (2492..2493) \"(\"\n SYMBOL: (2493..2497)\n IDENTIFIER: (2493..2497) \"cons\"\n ATMOSPHERE: (2497..2498) \" \"\n SYMBOL: (2498..2503)\n IDENTIFIER: (2498..2503) \"pivot\"\n ATMOSPHERE: (2503..2504) \" \"\n FORM: (2504..2529)\n OPEN_PAREN: (2504..2505) \"(\"\n SYMBOL: (2505..2510)\n IDENTIFIER: (2505..2510) \"qsort\"\n ATMOSPHERE: (2510..2511) \" \"\n FORM: (2511..2528)\n OPEN_PAREN: (2511..2512) \"(\"\n SYMBOL: (2512..2515)\n IDENTIFIER: (2512..2515) \"cdr\"\n ATMOSPHERE: (2515..2516) \" \"\n SYMBOL: (2516..2527)\n IDENTIFIER: (2516..2527) \"partitioned\"\n CLOSE_PAREN: (2527..2528) \")\"\n CLOSE_PAREN: (2528..2529) \")\"\n CLOSE_PAREN: (2529..2530) \")\"\n CLOSE_PAREN: (2530..2531) \")\"\n CLOSE_PAREN: (2531..2532) \")\"\n CLOSE_PAREN: (2532..2533) \")\"\n CLOSE_PAREN: (2533..2534) \")\"\n ATMOSPHERE: (2534..2543) \"\n \"\n CLOSE_PAREN: (2543..2544) \")\"\n CLOSE_PAREN: (2544..2545) \")\"\n ATMOSPHERE: (2545..2547) \"\n\n\"\n FORM: (2547..2629)\n OPEN_PAREN: (2547..2548) \"(\"\n SYMBOL: (2548..2554)\n IDENTIFIER: (2548..2554) \"import\"\n ATMOSPHERE: (2554..2559) \"\n \"\n FORM: (2559..2572)\n OPEN_PAREN: (2559..2560) \"(\"\n SYMBOL: (2560..2566)\n IDENTIFIER: (2560..2566) \"scheme\"\n ATMOSPHERE: (2566..2567) \" \"\n SYMBOL: (2567..2571)\n IDENTIFIER: (2567..2571) \"base\"\n CLOSE_PAREN: (2571..2572) \")\"\n ATMOSPHERE: (2572..2577) \"\n \"\n FORM: (2577..2591)\n OPEN_PAREN: (2577..2578) \"(\"\n SYMBOL: (2578..2584)\n IDENTIFIER: (2578..2584) \"scheme\"\n ATMOSPHERE: (2584..2585) \" \"\n SYMBOL: (2585..2590)\n IDENTIFIER: (2585..2590) \"write\"\n CLOSE_PAREN: (2590..2591) \")\"\n ATMOSPHERE: (2591..2596) \"\n \"\n FORM: (2596..2628)\n OPEN_PAREN: (2596..2597) \"(\"\n SYMBOL: (2597..2603)\n IDENTIFIER: (2597..2603) \"rename\"\n ATMOSPHERE: (2603..2604) \" \"\n FORM: (2604..2610)\n OPEN_PAREN: (2604..2605) \"(\"\n SYMBOL: (2605..2609)\n IDENTIFIER: (2605..2609) \"sort\"\n CLOSE_PAREN: (2609..2610) \")\"\n ATMOSPHERE: (2610..2611) \" \"\n FORM: (2611..2627)\n OPEN_PAREN: (2611..2612) \"(\"\n SYMBOL: (2612..2616)\n IDENTIFIER: (2612..2616) \"sort\"\n ATMOSPHERE: (2616..2617) \" \"\n SYMBOL: (2617..2626)\n IDENTIFIER: (2617..2626) \"quicksort\"\n CLOSE_PAREN: (2626..2627) \")\"\n CLOSE_PAREN: (2627..2628) \")\"\n CLOSE_PAREN: (2628..2629) \")\"\n ATMOSPHERE: (2629..2631) \"\n\n\"\n FORM: (2631..2668)\n OPEN_PAREN: (2631..2632) \"(\"\n SYMBOL: (2632..2639)\n IDENTIFIER: (2632..2639) \"display\"\n ATMOSPHERE: (2639..2640) \" \"\n FORM: (2640..2667)\n OPEN_PAREN: (2640..2641) \"(\"\n SYMBOL: (2641..2650)\n IDENTIFIER: (2641..2650) \"quicksort\"\n ATMOSPHERE: (2650..2651) \" \"\n QUOTED_DATUM: (2651..2666)\n QUOTE: (2651..2652) \"'\"\n FORM: (2652..2666)\n OPEN_PAREN: (2652..2653) \"(\"\n CONSTANT: (2653..2655)\n NUMBER: (2653..2655) \"79\"\n ATMOSPHERE: (2655..2656) \" \"\n CONSTANT: (2656..2658)\n NUMBER: (2656..2658) \"23\"\n ATMOSPHERE: (2658..2659) \" \"\n CONSTANT: (2659..2661)\n NUMBER: (2659..2661) \"45\"\n ATMOSPHERE: (2661..2662) \" \"\n CONSTANT: (2662..2663)\n NUMBER: (2662..2663) \"6\"\n ATMOSPHERE: (2663..2664) \" \"\n CONSTANT: (2664..2665)\n NUMBER: (2664..2665) \"9\"\n CLOSE_PAREN: (2665..2666) \")\"\n CLOSE_PAREN: (2666..2667) \")\"\n CLOSE_PAREN: (2667..2668) \")\"\n FORM: (2668..2677)\n OPEN_PAREN: (2668..2669) \"(\"\n SYMBOL: (2669..2676)\n IDENTIFIER: (2669..2676) \"newline\"\n CLOSE_PAREN: (2676..2677) \")\"\n ATMOSPHERE: (2677..2678) \"\n\"\n FORM: (2678..2742)\n OPEN_PAREN: (2678..2679) \"(\"\n SYMBOL: (2679..2686)\n IDENTIFIER: (2679..2686) \"display\"\n ATMOSPHERE: (2686..2687) \" \"\n FORM: (2687..2741)\n OPEN_PAREN: (2687..2688) \"(\"\n SYMBOL: (2688..2697)\n IDENTIFIER: (2688..2697) \"quicksort\"\n ATMOSPHERE: (2697..2698) \" \"\n QUOTED_DATUM: (2698..2740)\n QUOTE: (2698..2699) \"'\"\n FORM: (2699..2740)\n OPEN_PAREN: (2699..2700) \"(\"\n CONSTANT: (2700..2701)\n NUMBER: (2700..2701) \"9\"\n ATMOSPHERE: (2701..2702) \" \"\n CONSTANT: (2702..2703)\n NUMBER: (2702..2703) \"8\"\n ATMOSPHERE: (2703..2704) \" \"\n CONSTANT: (2704..2705)\n NUMBER: (2704..2705) \"7\"\n ATMOSPHERE: (2705..2706) \" \"\n CONSTANT: (2706..2707)\n NUMBER: (2706..2707) \"6\"\n ATMOSPHERE: (2707..2708) \" \"\n CONSTANT: (2708..2709)\n NUMBER: (2708..2709) \"5\"\n ATMOSPHERE: (2709..2710) \" \"\n CONSTANT: (2710..2711)\n NUMBER: (2710..2711) \"4\"\n ATMOSPHERE: (2711..2712) \" \"\n CONSTANT: (2712..2713)\n NUMBER: (2712..2713) \"3\"\n ATMOSPHERE: (2713..2714) \" \"\n CONSTANT: (2714..2715)\n NUMBER: (2714..2715) \"2\"\n ATMOSPHERE: (2715..2716) \" \"\n CONSTANT: (2716..2717)\n NUMBER: (2716..2717) \"1\"\n ATMOSPHERE: (2717..2718) \" \"\n CONSTANT: (2718..2719)\n NUMBER: (2718..2719) \"0\"\n ATMOSPHERE: (2719..2720) \" \"\n CONSTANT: (2720..2721)\n NUMBER: (2720..2721) \"0\"\n ATMOSPHERE: (2721..2722) \" \"\n CONSTANT: (2722..2723)\n NUMBER: (2722..2723) \"1\"\n ATMOSPHERE: (2723..2724) \" \"\n CONSTANT: (2724..2725)\n NUMBER: (2724..2725) \"2\"\n ATMOSPHERE: (2725..2726) \" \"\n CONSTANT: (2726..2727)\n NUMBER: (2726..2727) \"3\"\n ATMOSPHERE: (2727..2728) \" \"\n CONSTANT: (2728..2729)\n NUMBER: (2728..2729) \"4\"\n ATMOSPHERE: (2729..2730) \" \"\n CONSTANT: (2730..2731)\n NUMBER: (2730..2731) \"5\"\n ATMOSPHERE: (2731..2732) \" \"\n CONSTANT: (2732..2733)\n NUMBER: (2732..2733) \"6\"\n ATMOSPHERE: (2733..2734) \" \"\n CONSTANT: (2734..2735)\n NUMBER: (2734..2735) \"7\"\n ATMOSPHERE: (2735..2736) \" \"\n CONSTANT: (2736..2737)\n NUMBER: (2736..2737) \"8\"\n ATMOSPHERE: (2737..2738) \" \"\n CONSTANT: (2738..2739)\n NUMBER: (2738..2739) \"9\"\n CLOSE_PAREN: (2739..2740) \")\"\n CLOSE_PAREN: (2740..2741) \")\"\n CLOSE_PAREN: (2741..2742) \")\"\n FORM: (2742..2751)\n OPEN_PAREN: (2742..2743) \"(\"\n SYMBOL: (2743..2750)\n IDENTIFIER: (2743..2750) \"newline\"\n CLOSE_PAREN: (2750..2751) \")\"\n ATMOSPHERE: (2751..2752) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_quotes.scm.json b/test/Feersum.Tests/_snapshots/Parse_quotes.scm.json
deleted file mode 100644
index e6b223f..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_quotes.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..502)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..54)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..50)\n IDENTIFIER: (43..50) \"display\"\n ATMOSPHERE: (50..51) \" \"\n QUOTED_DATUM: (51..53)\n QUOTE: (51..52) \"'\"\n CONSTANT: (52..53)\n NUMBER: (52..53) \"1\"\n CLOSE_PAREN: (53..54) \")\"\n FORM: (54..63)\n OPEN_PAREN: (54..55) \"(\"\n SYMBOL: (55..62)\n IDENTIFIER: (55..62) \"newline\"\n CLOSE_PAREN: (62..63) \")\"\n ATMOSPHERE: (63..64) \"\n\"\n FORM: (64..88)\n OPEN_PAREN: (64..65) \"(\"\n SYMBOL: (65..72)\n IDENTIFIER: (65..72) \"display\"\n ATMOSPHERE: (72..73) \" \"\n QUOTED_DATUM: (73..87)\n QUOTE: (73..74) \"'\"\n CONSTANT: (74..87)\n STRING: (74..87) \"\"hello world\"\"\n CLOSE_PAREN: (87..88) \")\"\n FORM: (88..97)\n OPEN_PAREN: (88..89) \"(\"\n SYMBOL: (89..96)\n IDENTIFIER: (89..96) \"newline\"\n CLOSE_PAREN: (96..97) \")\"\n ATMOSPHERE: (97..98) \"\n\"\n FORM: (98..111)\n OPEN_PAREN: (98..99) \"(\"\n SYMBOL: (99..106)\n IDENTIFIER: (99..106) \"display\"\n ATMOSPHERE: (106..107) \" \"\n QUOTED_DATUM: (107..110)\n QUOTE: (107..108) \"'\"\n FORM: (108..110)\n OPEN_PAREN: (108..109) \"(\"\n CLOSE_PAREN: (109..110) \")\"\n CLOSE_PAREN: (110..111) \")\"\n FORM: (111..120)\n OPEN_PAREN: (111..112) \"(\"\n SYMBOL: (112..119)\n IDENTIFIER: (112..119) \"newline\"\n CLOSE_PAREN: (119..120) \")\"\n ATMOSPHERE: (120..121) \"\n\"\n FORM: (121..139)\n OPEN_PAREN: (121..122) \"(\"\n SYMBOL: (122..129)\n IDENTIFIER: (122..129) \"display\"\n ATMOSPHERE: (129..130) \" \"\n QUOTED_DATUM: (130..138)\n QUOTE: (130..131) \"'\"\n FORM: (131..138)\n OPEN_PAREN: (131..132) \"(\"\n CONSTANT: (132..133)\n NUMBER: (132..133) \"1\"\n ATMOSPHERE: (133..134) \" \"\n CONSTANT: (134..135)\n NUMBER: (134..135) \"2\"\n ATMOSPHERE: (135..136) \" \"\n CONSTANT: (136..137)\n NUMBER: (136..137) \"3\"\n CLOSE_PAREN: (137..138) \")\"\n CLOSE_PAREN: (138..139) \")\"\n FORM: (139..148)\n OPEN_PAREN: (139..140) \"(\"\n SYMBOL: (140..147)\n IDENTIFIER: (140..147) \"newline\"\n CLOSE_PAREN: (147..148) \")\"\n ATMOSPHERE: (148..149) \"\n\"\n FORM: (149..168)\n OPEN_PAREN: (149..150) \"(\"\n SYMBOL: (150..157)\n IDENTIFIER: (150..157) \"display\"\n ATMOSPHERE: (157..158) \" \"\n FORM: (158..167)\n OPEN_PAREN: (158..159) \"(\"\n SYMBOL: (159..164)\n IDENTIFIER: (159..164) \"quote\"\n ATMOSPHERE: (164..165) \" \"\n CONSTANT: (165..166)\n NUMBER: (165..166) \"1\"\n CLOSE_PAREN: (166..167) \")\"\n CLOSE_PAREN: (167..168) \")\"\n FORM: (168..177)\n OPEN_PAREN: (168..169) \"(\"\n SYMBOL: (169..176)\n IDENTIFIER: (169..176) \"newline\"\n CLOSE_PAREN: (176..177) \")\"\n ATMOSPHERE: (177..178) \"\n\"\n FORM: (178..209)\n OPEN_PAREN: (178..179) \"(\"\n SYMBOL: (179..186)\n IDENTIFIER: (179..186) \"display\"\n ATMOSPHERE: (186..187) \" \"\n FORM: (187..208)\n OPEN_PAREN: (187..188) \"(\"\n SYMBOL: (188..193)\n IDENTIFIER: (188..193) \"quote\"\n ATMOSPHERE: (193..194) \" \"\n CONSTANT: (194..207)\n STRING: (194..207) \"\"hello world\"\"\n CLOSE_PAREN: (207..208) \")\"\n CLOSE_PAREN: (208..209) \")\"\n FORM: (209..218)\n OPEN_PAREN: (209..210) \"(\"\n SYMBOL: (210..217)\n IDENTIFIER: (210..217) \"newline\"\n CLOSE_PAREN: (217..218) \")\"\n ATMOSPHERE: (218..219) \"\n\"\n FORM: (219..239)\n OPEN_PAREN: (219..220) \"(\"\n SYMBOL: (220..227)\n IDENTIFIER: (220..227) \"display\"\n ATMOSPHERE: (227..228) \" \"\n FORM: (228..238)\n OPEN_PAREN: (228..229) \"(\"\n SYMBOL: (229..234)\n IDENTIFIER: (229..234) \"quote\"\n ATMOSPHERE: (234..235) \" \"\n FORM: (235..237)\n OPEN_PAREN: (235..236) \"(\"\n CLOSE_PAREN: (236..237) \")\"\n CLOSE_PAREN: (237..238) \")\"\n CLOSE_PAREN: (238..239) \")\"\n FORM: (239..248)\n OPEN_PAREN: (239..240) \"(\"\n SYMBOL: (240..247)\n IDENTIFIER: (240..247) \"newline\"\n CLOSE_PAREN: (247..248) \")\"\n ATMOSPHERE: (248..249) \"\n\"\n FORM: (249..274)\n OPEN_PAREN: (249..250) \"(\"\n SYMBOL: (250..257)\n IDENTIFIER: (250..257) \"display\"\n ATMOSPHERE: (257..258) \" \"\n FORM: (258..273)\n OPEN_PAREN: (258..259) \"(\"\n SYMBOL: (259..264)\n IDENTIFIER: (259..264) \"quote\"\n ATMOSPHERE: (264..265) \" \"\n FORM: (265..272)\n OPEN_PAREN: (265..266) \"(\"\n CONSTANT: (266..267)\n NUMBER: (266..267) \"1\"\n ATMOSPHERE: (267..268) \" \"\n CONSTANT: (268..269)\n NUMBER: (268..269) \"2\"\n ATMOSPHERE: (269..270) \" \"\n CONSTANT: (270..271)\n NUMBER: (270..271) \"3\"\n CLOSE_PAREN: (271..272) \")\"\n CLOSE_PAREN: (272..273) \")\"\n CLOSE_PAREN: (273..274) \")\"\n FORM: (274..283)\n OPEN_PAREN: (274..275) \"(\"\n SYMBOL: (275..282)\n IDENTIFIER: (275..282) \"newline\"\n CLOSE_PAREN: (282..283) \")\"\n ATMOSPHERE: (283..284) \"\n\"\n FORM: (284..313)\n OPEN_PAREN: (284..285) \"(\"\n SYMBOL: (285..292)\n IDENTIFIER: (285..292) \"display\"\n ATMOSPHERE: (292..293) \" \"\n FORM: (293..312)\n OPEN_PAREN: (293..294) \"(\"\n SYMBOL: (294..297)\n IDENTIFIER: (294..297) \"car\"\n ATMOSPHERE: (297..298) \" \"\n FORM: (298..311)\n OPEN_PAREN: (298..299) \"(\"\n SYMBOL: (299..302)\n IDENTIFIER: (299..302) \"cdr\"\n ATMOSPHERE: (302..303) \" \"\n QUOTED_DATUM: (303..310)\n QUOTE: (303..304) \"'\"\n QUOTED_DATUM: (304..310)\n QUOTE: (304..305) \"'\"\n QUOTED_DATUM: (305..310)\n QUOTE: (305..306) \"'\"\n QUOTED_DATUM: (306..310)\n QUOTE: (306..307) \"'\"\n CONSTANT: (307..310)\n NUMBER: (307..310) \"123\"\n CLOSE_PAREN: (310..311) \")\"\n CLOSE_PAREN: (311..312) \")\"\n CLOSE_PAREN: (312..313) \")\"\n FORM: (313..322)\n OPEN_PAREN: (313..314) \"(\"\n SYMBOL: (314..321)\n IDENTIFIER: (314..321) \"newline\"\n CLOSE_PAREN: (321..322) \")\"\n ATMOSPHERE: (322..323) \"\n\"\n FORM: (323..335)\n OPEN_PAREN: (323..324) \"(\"\n SYMBOL: (324..331)\n IDENTIFIER: (324..331) \"display\"\n ATMOSPHERE: (331..332) \" \"\n QUOTED_DATUM: (332..334)\n QUOTE: (332..333) \"'\"\n SYMBOL: (333..334)\n IDENTIFIER: (333..334) \"d\"\n CLOSE_PAREN: (334..335) \")\"\n FORM: (335..344)\n OPEN_PAREN: (335..336) \"(\"\n SYMBOL: (336..343)\n IDENTIFIER: (336..343) \"newline\"\n CLOSE_PAREN: (343..344) \")\"\n ATMOSPHERE: (344..345) \"\n\"\n FORM: (345..363)\n OPEN_PAREN: (345..346) \"(\"\n SYMBOL: (346..353)\n IDENTIFIER: (346..353) \"display\"\n ATMOSPHERE: (353..354) \" \"\n QUOTED_DATUM: (354..362)\n QUOTE: (354..355) \"'\"\n SYMBOL: (355..362)\n IDENTIFIER: (355..362) \"|\\x20;|\"\n CLOSE_PAREN: (362..363) \")\"\n FORM: (363..372)\n OPEN_PAREN: (363..364) \"(\"\n SYMBOL: (364..371)\n IDENTIFIER: (364..371) \"newline\"\n CLOSE_PAREN: (371..372) \")\"\n ATMOSPHERE: (372..373) \"\n\"\n FORM: (373..397)\n OPEN_PAREN: (373..374) \"(\"\n SYMBOL: (374..381)\n IDENTIFIER: (374..381) \"display\"\n ATMOSPHERE: (381..382) \" \"\n QUOTED_DATUM: (382..396)\n QUOTE: (382..383) \"'\"\n SYMBOL: (383..396)\n IDENTIFIER: (383..396) \"|test\\tident|\"\n CLOSE_PAREN: (396..397) \")\"\n FORM: (397..406)\n OPEN_PAREN: (397..398) \"(\"\n SYMBOL: (398..405)\n IDENTIFIER: (398..405) \"newline\"\n CLOSE_PAREN: (405..406) \")\"\n ATMOSPHERE: (406..407) \"\n\"\n FORM: (407..431)\n OPEN_PAREN: (407..408) \"(\"\n SYMBOL: (408..415)\n IDENTIFIER: (408..415) \"display\"\n ATMOSPHERE: (415..416) \" \"\n QUOTED_DATUM: (416..430)\n QUOTE: (416..417) \"'\"\n SYMBOL: (417..430)\n IDENTIFIER: (417..430) \"|hello world|\"\n CLOSE_PAREN: (430..431) \")\"\n FORM: (431..440)\n OPEN_PAREN: (431..432) \"(\"\n SYMBOL: (432..439)\n IDENTIFIER: (432..439) \"newline\"\n CLOSE_PAREN: (439..440) \")\"\n ATMOSPHERE: (440..441) \"\n\"\n FORM: (441..453)\n OPEN_PAREN: (441..442) \"(\"\n SYMBOL: (442..449)\n IDENTIFIER: (442..449) \"display\"\n ATMOSPHERE: (449..450) \" \"\n CONSTANT: (450..452)\n BOOLEAN: (450..452) \"#t\"\n CLOSE_PAREN: (452..453) \")\"\n FORM: (453..462)\n OPEN_PAREN: (453..454) \"(\"\n SYMBOL: (454..461)\n IDENTIFIER: (454..461) \"newline\"\n CLOSE_PAREN: (461..462) \")\"\n ATMOSPHERE: (462..463) \"\n\"\n FORM: (463..492)\n OPEN_PAREN: (463..464) \"(\"\n SYMBOL: (464..471)\n IDENTIFIER: (464..471) \"display\"\n ATMOSPHERE: (471..472) \" \"\n QUOTED_DATUM: (472..491)\n QUOTE: (472..473) \"’\"\n CONSTANT: (473..491)\n STRING: (473..491) \"\"funky-quote-char\"\"\n CLOSE_PAREN: (491..492) \")\"\n FORM: (492..501)\n OPEN_PAREN: (492..493) \"(\"\n SYMBOL: (493..500)\n IDENTIFIER: (493..500) \"newline\"\n CLOSE_PAREN: (500..501) \")\"\n ATMOSPHERE: (501..502) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_self-capture.scm.json b/test/Feersum.Tests/_snapshots/Parse_self-capture.scm.json
deleted file mode 100644
index f50487f..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_self-capture.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..818)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..43) \"\n\n\"\n ATMOSPHERE: (43..92) \";; Captured Local Compaction (shadow locals) Test\"\n ATMOSPHERE: (92..93) \"\n\"\n ATMOSPHERE: (93..94) \";\"\n ATMOSPHERE: (94..95) \"\n\"\n ATMOSPHERE: (95..174) \"; In this example `foo` has two locals. The first is the function `bar` and the\"\n ATMOSPHERE: (174..175) \"\n\"\n ATMOSPHERE: (175..248) \"; second is the initial value `baz`. Once we have performed free variable\"\n ATMOSPHERE: (248..249) \"\n\"\n ATMOSPHERE: (249..324) \"; analysis on the function we identify that `Local 0` (bar) is captured. We\"\n ATMOSPHERE: (324..325) \"\n\"\n ATMOSPHERE: (325..405) \"; want the Lower pass to re-write `baz` from `Local 1` down to `Local 0` in this\"\n ATMOSPHERE: (405..406) \"\n\"\n ATMOSPHERE: (406..484) \"; case, as well as re-writing the references to the captured value to the env.\"\n ATMOSPHERE: (484..485) \"\n\"\n ATMOSPHERE: (485..486) \";\"\n ATMOSPHERE: (486..487) \"\n\"\n ATMOSPHERE: (487..572) \"; captures, locals -- Lower --> captures, locals \"\n ATMOSPHERE: (572..573) \"\n\"\n FORM: (573..791)\n OPEN_PAREN: (573..574) \"(\"\n SYMBOL: (574..580)\n IDENTIFIER: (574..580) \"define\"\n ATMOSPHERE: (580..581) \" \"\n FORM: (581..586)\n OPEN_PAREN: (581..582) \"(\"\n SYMBOL: (582..585)\n IDENTIFIER: (582..585) \"foo\"\n CLOSE_PAREN: (585..586) \")\"\n ATMOSPHERE: (586..592) \" \"\n ATMOSPHERE: (592..637) \"; [], [Local 0; Local 1] -> [], [Local 0]\"\n ATMOSPHERE: (637..640) \"\n \"\n FORM: (640..760)\n OPEN_PAREN: (640..641) \"(\"\n SYMBOL: (641..647)\n IDENTIFIER: (641..647) \"define\"\n ATMOSPHERE: (647..648) \" \"\n FORM: (648..655)\n OPEN_PAREN: (648..649) \"(\"\n SYMBOL: (649..652)\n IDENTIFIER: (649..652) \"bar\"\n ATMOSPHERE: (652..653) \" \"\n SYMBOL: (653..654)\n IDENTIFIER: (653..654) \"x\"\n CLOSE_PAREN: (654..655) \")\"\n ATMOSPHERE: (655..657) \" \"\n ATMOSPHERE: (657..713) \"; [Local 0], [Arg 0] -> [Environment 0], [Arg 0]\"\n ATMOSPHERE: (713..718) \"\n \"\n FORM: (718..759)\n OPEN_PAREN: (718..719) \"(\"\n SYMBOL: (719..721)\n IDENTIFIER: (719..721) \"if\"\n ATMOSPHERE: (721..722) \" \"\n FORM: (722..730)\n OPEN_PAREN: (722..723) \"(\"\n SYMBOL: (723..724)\n IDENTIFIER: (723..724) \"<\"\n ATMOSPHERE: (724..725) \" \"\n SYMBOL: (725..726)\n IDENTIFIER: (725..726) \"x\"\n ATMOSPHERE: (726..727) \" \"\n CONSTANT: (727..729)\n NUMBER: (727..729) \"10\"\n CLOSE_PAREN: (729..730) \")\"\n ATMOSPHERE: (730..737) \"\n \"\n SYMBOL: (737..738)\n IDENTIFIER: (737..738) \"x\"\n ATMOSPHERE: (738..745) \"\n \"\n FORM: (745..758)\n OPEN_PAREN: (745..746) \"(\"\n SYMBOL: (746..749)\n IDENTIFIER: (746..749) \"bar\"\n ATMOSPHERE: (749..750) \" \"\n FORM: (750..757)\n OPEN_PAREN: (750..751) \"(\"\n SYMBOL: (751..752)\n IDENTIFIER: (751..752) \"-\"\n ATMOSPHERE: (752..753) \" \"\n SYMBOL: (753..754)\n IDENTIFIER: (753..754) \"x\"\n ATMOSPHERE: (754..755) \" \"\n CONSTANT: (755..756)\n NUMBER: (755..756) \"1\"\n CLOSE_PAREN: (756..757) \")\"\n CLOSE_PAREN: (757..758) \")\"\n CLOSE_PAREN: (758..759) \")\"\n CLOSE_PAREN: (759..760) \")\"\n ATMOSPHERE: (760..763) \"\n \"\n FORM: (763..778)\n OPEN_PAREN: (763..764) \"(\"\n SYMBOL: (764..770)\n IDENTIFIER: (764..770) \"define\"\n ATMOSPHERE: (770..771) \" \"\n SYMBOL: (771..774)\n IDENTIFIER: (771..774) \"baz\"\n ATMOSPHERE: (774..775) \" \"\n CONSTANT: (775..777)\n NUMBER: (775..777) \"10\"\n CLOSE_PAREN: (777..778) \")\"\n ATMOSPHERE: (778..781) \"\n \"\n FORM: (781..790)\n OPEN_PAREN: (781..782) \"(\"\n SYMBOL: (782..785)\n IDENTIFIER: (782..785) \"bar\"\n ATMOSPHERE: (785..786) \" \"\n SYMBOL: (786..789)\n IDENTIFIER: (786..789) \"baz\"\n CLOSE_PAREN: (789..790) \")\"\n CLOSE_PAREN: (790..791) \")\"\n ATMOSPHERE: (791..793) \"\n\n\"\n FORM: (793..808)\n OPEN_PAREN: (793..794) \"(\"\n SYMBOL: (794..801)\n IDENTIFIER: (794..801) \"display\"\n ATMOSPHERE: (801..802) \" \"\n FORM: (802..807)\n OPEN_PAREN: (802..803) \"(\"\n SYMBOL: (803..806)\n IDENTIFIER: (803..806) \"foo\"\n CLOSE_PAREN: (806..807) \")\"\n CLOSE_PAREN: (807..808) \")\"\n FORM: (808..817)\n OPEN_PAREN: (808..809) \"(\"\n SYMBOL: (809..816)\n IDENTIFIER: (809..816) \"newline\"\n CLOSE_PAREN: (816..817) \")\"\n ATMOSPHERE: (817..818) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_string-join.scm.json b/test/Feersum.Tests/_snapshots/Parse_string-join.scm.json
deleted file mode 100644
index ef42ddb..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_string-join.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..483)\n FORM: (0..39)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..24) \"\n \"\n FORM: (24..38)\n OPEN_PAREN: (24..25) \"(\"\n SYMBOL: (25..31)\n IDENTIFIER: (25..31) \"scheme\"\n ATMOSPHERE: (31..32) \" \"\n SYMBOL: (32..37)\n IDENTIFIER: (32..37) \"write\"\n CLOSE_PAREN: (37..38) \")\"\n CLOSE_PAREN: (38..39) \")\"\n ATMOSPHERE: (39..40) \"\n\"\n FORM: (40..300)\n OPEN_PAREN: (40..41) \"(\"\n SYMBOL: (41..47)\n IDENTIFIER: (41..47) \"define\"\n ATMOSPHERE: (47..48) \" \"\n FORM: (48..76)\n OPEN_PAREN: (48..49) \"(\"\n SYMBOL: (49..60)\n IDENTIFIER: (49..60) \"string-join\"\n ATMOSPHERE: (60..61) \" \"\n SYMBOL: (61..65)\n IDENTIFIER: (61..65) \"list\"\n ATMOSPHERE: (65..66) \" \"\n SYMBOL: (66..75)\n IDENTIFIER: (66..75) \"delimiter\"\n CLOSE_PAREN: (75..76) \")\"\n ATMOSPHERE: (76..79) \"\n \"\n FORM: (79..229)\n OPEN_PAREN: (79..80) \"(\"\n SYMBOL: (80..86)\n IDENTIFIER: (80..86) \"define\"\n ATMOSPHERE: (86..87) \" \"\n FORM: (87..115)\n OPEN_PAREN: (87..88) \"(\"\n SYMBOL: (88..102)\n IDENTIFIER: (88..102) \"string-join-to\"\n ATMOSPHERE: (102..103) \" \"\n SYMBOL: (103..109)\n IDENTIFIER: (103..109) \"result\"\n ATMOSPHERE: (109..110) \" \"\n SYMBOL: (110..114)\n IDENTIFIER: (110..114) \"list\"\n CLOSE_PAREN: (114..115) \")\"\n ATMOSPHERE: (115..120) \"\n \"\n FORM: (120..228)\n OPEN_PAREN: (120..121) \"(\"\n SYMBOL: (121..123)\n IDENTIFIER: (121..123) \"if\"\n ATMOSPHERE: (123..124) \" \"\n FORM: (124..136)\n OPEN_PAREN: (124..125) \"(\"\n SYMBOL: (125..130)\n IDENTIFIER: (125..130) \"null?\"\n ATMOSPHERE: (130..131) \" \"\n SYMBOL: (131..135)\n IDENTIFIER: (131..135) \"list\"\n CLOSE_PAREN: (135..136) \")\"\n ATMOSPHERE: (136..143) \"\n \"\n SYMBOL: (143..149)\n IDENTIFIER: (143..149) \"result\"\n ATMOSPHERE: (149..156) \"\n \"\n FORM: (156..227)\n OPEN_PAREN: (156..157) \"(\"\n SYMBOL: (157..171)\n IDENTIFIER: (157..171) \"string-join-to\"\n ATMOSPHERE: (171..172) \" \"\n FORM: (172..215)\n OPEN_PAREN: (172..173) \"(\"\n SYMBOL: (173..186)\n IDENTIFIER: (173..186) \"string-append\"\n ATMOSPHERE: (186..187) \" \"\n SYMBOL: (187..193)\n IDENTIFIER: (187..193) \"result\"\n ATMOSPHERE: (193..194) \" \"\n SYMBOL: (194..203)\n IDENTIFIER: (194..203) \"delimiter\"\n ATMOSPHERE: (203..204) \" \"\n FORM: (204..214)\n OPEN_PAREN: (204..205) \"(\"\n SYMBOL: (205..208)\n IDENTIFIER: (205..208) \"car\"\n ATMOSPHERE: (208..209) \" \"\n SYMBOL: (209..213)\n IDENTIFIER: (209..213) \"list\"\n CLOSE_PAREN: (213..214) \")\"\n CLOSE_PAREN: (214..215) \")\"\n ATMOSPHERE: (215..216) \" \"\n FORM: (216..226)\n OPEN_PAREN: (216..217) \"(\"\n SYMBOL: (217..220)\n IDENTIFIER: (217..220) \"cdr\"\n ATMOSPHERE: (220..221) \" \"\n SYMBOL: (221..225)\n IDENTIFIER: (221..225) \"list\"\n CLOSE_PAREN: (225..226) \")\"\n CLOSE_PAREN: (226..227) \")\"\n CLOSE_PAREN: (227..228) \")\"\n CLOSE_PAREN: (228..229) \")\"\n ATMOSPHERE: (229..232) \"\n \"\n FORM: (232..299)\n OPEN_PAREN: (232..233) \"(\"\n SYMBOL: (233..235)\n IDENTIFIER: (233..235) \"if\"\n ATMOSPHERE: (235..236) \" \"\n FORM: (236..248)\n OPEN_PAREN: (236..237) \"(\"\n SYMBOL: (237..242)\n IDENTIFIER: (237..242) \"null?\"\n ATMOSPHERE: (242..243) \" \"\n SYMBOL: (243..247)\n IDENTIFIER: (243..247) \"list\"\n CLOSE_PAREN: (247..248) \")\"\n ATMOSPHERE: (248..253) \"\n \"\n CONSTANT: (253..255)\n STRING: (253..255) \"\"\"\"\n ATMOSPHERE: (255..260) \"\n \"\n FORM: (260..298)\n OPEN_PAREN: (260..261) \"(\"\n SYMBOL: (261..275)\n IDENTIFIER: (261..275) \"string-join-to\"\n ATMOSPHERE: (275..276) \" \"\n FORM: (276..286)\n OPEN_PAREN: (276..277) \"(\"\n SYMBOL: (277..280)\n IDENTIFIER: (277..280) \"car\"\n ATMOSPHERE: (280..281) \" \"\n SYMBOL: (281..285)\n IDENTIFIER: (281..285) \"list\"\n CLOSE_PAREN: (285..286) \")\"\n ATMOSPHERE: (286..287) \" \"\n FORM: (287..297)\n OPEN_PAREN: (287..288) \"(\"\n SYMBOL: (288..291)\n IDENTIFIER: (288..291) \"cdr\"\n ATMOSPHERE: (291..292) \" \"\n SYMBOL: (292..296)\n IDENTIFIER: (292..296) \"list\"\n CLOSE_PAREN: (296..297) \")\"\n CLOSE_PAREN: (297..298) \")\"\n CLOSE_PAREN: (298..299) \")\"\n CLOSE_PAREN: (299..300) \")\"\n ATMOSPHERE: (300..301) \"\n\"\n FORM: (301..360)\n OPEN_PAREN: (301..302) \"(\"\n SYMBOL: (302..309)\n IDENTIFIER: (302..309) \"display\"\n ATMOSPHERE: (309..310) \" \"\n FORM: (310..359)\n OPEN_PAREN: (310..311) \"(\"\n SYMBOL: (311..324)\n IDENTIFIER: (311..324) \"string-append\"\n ATMOSPHERE: (324..325) \" \"\n CONSTANT: (325..330)\n STRING: (325..330) \"\"<<{\"\"\n ATMOSPHERE: (330..331) \" \"\n FORM: (331..352)\n OPEN_PAREN: (331..332) \"(\"\n SYMBOL: (332..343)\n IDENTIFIER: (332..343) \"string-join\"\n ATMOSPHERE: (343..344) \" \"\n QUOTED_DATUM: (344..348)\n QUOTE: (344..345) \"'\"\n FORM: (345..347)\n OPEN_PAREN: (345..346) \"(\"\n CLOSE_PAREN: (346..347) \")\"\n ATMOSPHERE: (347..348) \" \"\n CONSTANT: (348..351)\n STRING: (348..351) \"\"-\"\"\n CLOSE_PAREN: (351..352) \")\"\n ATMOSPHERE: (352..353) \" \"\n CONSTANT: (353..358)\n STRING: (353..358) \"\"}>>\"\"\n CLOSE_PAREN: (358..359) \")\"\n CLOSE_PAREN: (359..360) \")\"\n FORM: (360..369)\n OPEN_PAREN: (360..361) \"(\"\n SYMBOL: (361..368)\n IDENTIFIER: (361..368) \"newline\"\n CLOSE_PAREN: (368..369) \")\"\n ATMOSPHERE: (369..370) \"\n\"\n FORM: (370..415)\n OPEN_PAREN: (370..371) \"(\"\n SYMBOL: (371..378)\n IDENTIFIER: (371..378) \"display\"\n ATMOSPHERE: (378..379) \" \"\n FORM: (379..414)\n OPEN_PAREN: (379..380) \"(\"\n SYMBOL: (380..391)\n IDENTIFIER: (380..391) \"string-join\"\n ATMOSPHERE: (391..392) \" \"\n FORM: (392..408)\n OPEN_PAREN: (392..393) \"(\"\n SYMBOL: (393..397)\n IDENTIFIER: (393..397) \"cons\"\n ATMOSPHERE: (397..398) \" \"\n CONSTANT: (398..403)\n STRING: (398..403) \"\"foo\"\"\n ATMOSPHERE: (403..404) \" \"\n QUOTED_DATUM: (404..407)\n QUOTE: (404..405) \"'\"\n FORM: (405..407)\n OPEN_PAREN: (405..406) \"(\"\n CLOSE_PAREN: (406..407) \")\"\n CLOSE_PAREN: (407..408) \")\"\n ATMOSPHERE: (408..409) \" \"\n CONSTANT: (409..413)\n STRING: (409..413) \"\"||\"\"\n CLOSE_PAREN: (413..414) \")\"\n CLOSE_PAREN: (414..415) \")\"\n FORM: (415..424)\n OPEN_PAREN: (415..416) \"(\"\n SYMBOL: (416..423)\n IDENTIFIER: (416..423) \"newline\"\n CLOSE_PAREN: (423..424) \")\"\n ATMOSPHERE: (424..425) \"\n\"\n FORM: (425..473)\n OPEN_PAREN: (425..426) \"(\"\n SYMBOL: (426..433)\n IDENTIFIER: (426..433) \"display\"\n ATMOSPHERE: (433..434) \" \"\n FORM: (434..472)\n OPEN_PAREN: (434..435) \"(\"\n SYMBOL: (435..446)\n IDENTIFIER: (435..446) \"string-join\"\n ATMOSPHERE: (446..447) \" \"\n QUOTED_DATUM: (447..468)\n QUOTE: (447..448) \"'\"\n FORM: (448..467)\n OPEN_PAREN: (448..449) \"(\"\n CONSTANT: (449..454)\n STRING: (449..454) \"\"foo\"\"\n ATMOSPHERE: (454..455) \" \"\n CONSTANT: (455..460)\n STRING: (455..460) \"\"bar\"\"\n ATMOSPHERE: (460..461) \" \"\n CONSTANT: (461..466)\n STRING: (461..466) \"\"baz\"\"\n CLOSE_PAREN: (466..467) \")\"\n ATMOSPHERE: (467..468) \" \"\n CONSTANT: (468..471)\n STRING: (468..471) \"\":\"\"\n CLOSE_PAREN: (471..472) \")\"\n CLOSE_PAREN: (472..473) \")\"\n FORM: (473..482)\n OPEN_PAREN: (473..474) \"(\"\n SYMBOL: (474..481)\n IDENTIFIER: (474..481) \"newline\"\n CLOSE_PAREN: (481..482) \")\"\n ATMOSPHERE: (482..483) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_strings.scm.json b/test/Feersum.Tests/_snapshots/Parse_strings.scm.json
deleted file mode 100644
index 9e5fc06..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_strings.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..33)\n CONSTANT: (0..13)\n STRING: (0..13) \"\"hello world\"\"\n ATMOSPHERE: (13..14) \"\n\"\n CONSTANT: (14..32)\n STRING: (14..32) \"\"stuff and things\"\"\n ATMOSPHERE: (32..33) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_swapit.scm.json b/test/Feersum.Tests/_snapshots/Parse_swapit.scm.json
deleted file mode 100644
index cf03e97..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_swapit.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..403)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..43) \"\n\n\"\n FORM: (43..115)\n OPEN_PAREN: (43..44) \"(\"\n SYMBOL: (44..50)\n IDENTIFIER: (44..50) \"define\"\n ATMOSPHERE: (50..51) \" \"\n FORM: (51..64)\n OPEN_PAREN: (51..52) \"(\"\n SYMBOL: (52..56)\n IDENTIFIER: (52..56) \"swap\"\n ATMOSPHERE: (56..57) \" \"\n SYMBOL: (57..59)\n IDENTIFIER: (57..59) \"me\"\n ATMOSPHERE: (59..60) \" \"\n SYMBOL: (60..63)\n IDENTIFIER: (60..63) \"you\"\n CLOSE_PAREN: (63..64) \")\"\n ATMOSPHERE: (64..69) \"\n \"\n FORM: (69..114)\n OPEN_PAREN: (69..70) \"(\"\n SYMBOL: (70..73)\n IDENTIFIER: (70..73) \"let\"\n ATMOSPHERE: (73..74) \" \"\n FORM: (74..101)\n OPEN_PAREN: (74..75) \"(\"\n FORM: (75..83)\n OPEN_PAREN: (75..76) \"(\"\n SYMBOL: (76..78)\n IDENTIFIER: (76..78) \"me\"\n ATMOSPHERE: (78..79) \" \"\n SYMBOL: (79..82)\n IDENTIFIER: (79..82) \"you\"\n CLOSE_PAREN: (82..83) \")\"\n ATMOSPHERE: (83..92) \"\n \"\n FORM: (92..100)\n OPEN_PAREN: (92..93) \"(\"\n SYMBOL: (93..96)\n IDENTIFIER: (93..96) \"you\"\n ATMOSPHERE: (96..97) \" \"\n SYMBOL: (97..99)\n IDENTIFIER: (97..99) \"me\"\n CLOSE_PAREN: (99..100) \")\"\n CLOSE_PAREN: (100..101) \")\"\n ATMOSPHERE: (101..110) \"\n \"\n SYMBOL: (110..113)\n IDENTIFIER: (110..113) \"you\"\n CLOSE_PAREN: (113..114) \")\"\n CLOSE_PAREN: (114..115) \")\"\n ATMOSPHERE: (115..117) \"\n\n\"\n FORM: (117..340)\n OPEN_PAREN: (117..118) \"(\"\n SYMBOL: (118..121)\n IDENTIFIER: (118..121) \"let\"\n ATMOSPHERE: (121..122) \" \"\n FORM: (122..135)\n OPEN_PAREN: (122..123) \"(\"\n FORM: (123..128)\n OPEN_PAREN: (123..124) \"(\"\n SYMBOL: (124..125)\n IDENTIFIER: (124..125) \"x\"\n ATMOSPHERE: (125..126) \" \"\n CONSTANT: (126..127)\n NUMBER: (126..127) \"1\"\n CLOSE_PAREN: (127..128) \")\"\n ATMOSPHERE: (128..129) \" \"\n FORM: (129..134)\n OPEN_PAREN: (129..130) \"(\"\n SYMBOL: (130..131)\n IDENTIFIER: (130..131) \"y\"\n ATMOSPHERE: (131..132) \" \"\n CONSTANT: (132..133)\n NUMBER: (132..133) \"2\"\n CLOSE_PAREN: (133..134) \")\"\n CLOSE_PAREN: (134..135) \")\"\n ATMOSPHERE: (135..140) \"\n \"\n FORM: (140..298)\n OPEN_PAREN: (140..141) \"(\"\n SYMBOL: (141..154)\n IDENTIFIER: (141..154) \"define-syntax\"\n ATMOSPHERE: (154..155) \" \"\n SYMBOL: (155..160)\n IDENTIFIER: (155..160) \"swap!\"\n ATMOSPHERE: (160..169) \"\n \"\n FORM: (169..297)\n OPEN_PAREN: (169..170) \"(\"\n SYMBOL: (170..182)\n IDENTIFIER: (170..182) \"syntax-rules\"\n ATMOSPHERE: (182..183) \" \"\n FORM: (183..185)\n OPEN_PAREN: (183..184) \"(\"\n CLOSE_PAREN: (184..185) \")\"\n ATMOSPHERE: (185..198) \"\n \"\n FORM: (198..296)\n OPEN_PAREN: (198..199) \"(\"\n FORM: (199..210)\n OPEN_PAREN: (199..200) \"(\"\n SYMBOL: (200..205)\n IDENTIFIER: (200..205) \"swap!\"\n ATMOSPHERE: (205..206) \" \"\n SYMBOL: (206..207)\n IDENTIFIER: (206..207) \"a\"\n ATMOSPHERE: (207..208) \" \"\n SYMBOL: (208..209)\n IDENTIFIER: (208..209) \"b\"\n CLOSE_PAREN: (209..210) \")\"\n ATMOSPHERE: (210..224) \"\n \"\n FORM: (224..295)\n OPEN_PAREN: (224..225) \"(\"\n SYMBOL: (225..228)\n IDENTIFIER: (225..228) \"let\"\n ATMOSPHERE: (228..229) \" \"\n FORM: (229..238)\n OPEN_PAREN: (229..230) \"(\"\n FORM: (230..237)\n OPEN_PAREN: (230..231) \"(\"\n SYMBOL: (231..234)\n IDENTIFIER: (231..234) \"tmp\"\n ATMOSPHERE: (234..235) \" \"\n SYMBOL: (235..236)\n IDENTIFIER: (235..236) \"a\"\n CLOSE_PAREN: (236..237) \")\"\n CLOSE_PAREN: (237..238) \")\"\n ATMOSPHERE: (238..255) \"\n \"\n FORM: (255..265)\n OPEN_PAREN: (255..256) \"(\"\n SYMBOL: (256..260)\n IDENTIFIER: (256..260) \"set!\"\n ATMOSPHERE: (260..261) \" \"\n SYMBOL: (261..262)\n IDENTIFIER: (261..262) \"a\"\n ATMOSPHERE: (262..263) \" \"\n SYMBOL: (263..264)\n IDENTIFIER: (263..264) \"b\"\n CLOSE_PAREN: (264..265) \")\"\n ATMOSPHERE: (265..282) \"\n \"\n FORM: (282..294)\n OPEN_PAREN: (282..283) \"(\"\n SYMBOL: (283..287)\n IDENTIFIER: (283..287) \"set!\"\n ATMOSPHERE: (287..288) \" \"\n SYMBOL: (288..289)\n IDENTIFIER: (288..289) \"b\"\n ATMOSPHERE: (289..290) \" \"\n SYMBOL: (290..293)\n IDENTIFIER: (290..293) \"tmp\"\n CLOSE_PAREN: (293..294) \")\"\n CLOSE_PAREN: (294..295) \")\"\n CLOSE_PAREN: (295..296) \")\"\n CLOSE_PAREN: (296..297) \")\"\n CLOSE_PAREN: (297..298) \")\"\n ATMOSPHERE: (298..303) \"\n \"\n FORM: (303..314)\n OPEN_PAREN: (303..304) \"(\"\n SYMBOL: (304..309)\n IDENTIFIER: (304..309) \"swap!\"\n ATMOSPHERE: (309..310) \" \"\n SYMBOL: (310..311)\n IDENTIFIER: (310..311) \"x\"\n ATMOSPHERE: (311..312) \" \"\n SYMBOL: (312..313)\n IDENTIFIER: (312..313) \"y\"\n CLOSE_PAREN: (313..314) \")\"\n ATMOSPHERE: (314..319) \"\n \"\n FORM: (319..339)\n OPEN_PAREN: (319..320) \"(\"\n SYMBOL: (320..327)\n IDENTIFIER: (320..327) \"display\"\n ATMOSPHERE: (327..328) \" \"\n FORM: (328..338)\n OPEN_PAREN: (328..329) \"(\"\n SYMBOL: (329..333)\n IDENTIFIER: (329..333) \"list\"\n ATMOSPHERE: (333..334) \" \"\n SYMBOL: (334..335)\n IDENTIFIER: (334..335) \"x\"\n ATMOSPHERE: (335..336) \" \"\n SYMBOL: (336..337)\n IDENTIFIER: (336..337) \"y\"\n CLOSE_PAREN: (337..338) \")\"\n CLOSE_PAREN: (338..339) \")\"\n CLOSE_PAREN: (339..340) \")\"\n ATMOSPHERE: (340..342) \"\n\n\"\n FORM: (342..376)\n OPEN_PAREN: (342..343) \"(\"\n SYMBOL: (343..350)\n IDENTIFIER: (343..350) \"display\"\n ATMOSPHERE: (350..351) \" \"\n FORM: (351..375)\n OPEN_PAREN: (351..352) \"(\"\n SYMBOL: (352..356)\n IDENTIFIER: (352..356) \"swap\"\n ATMOSPHERE: (356..357) \" \"\n CONSTANT: (357..365)\n STRING: (357..365) \"\"Fooble\"\"\n ATMOSPHERE: (365..366) \" \"\n CONSTANT: (366..374)\n STRING: (366..374) \"\"Barble\"\"\n CLOSE_PAREN: (374..375) \")\"\n CLOSE_PAREN: (375..376) \")\"\n ATMOSPHERE: (376..378) \"\n\n\"\n FORM: (378..403)\n OPEN_PAREN: (378..379) \"(\"\n SYMBOL: (379..380)\n IDENTIFIER: (379..380) \"=\"\n ATMOSPHERE: (380..381) \" \"\n FORM: (381..398)\n OPEN_PAREN: (381..382) \"(\"\n SYMBOL: (382..386)\n IDENTIFIER: (382..386) \"swap\"\n ATMOSPHERE: (386..387) \" \"\n CONSTANT: (387..390)\n NUMBER: (387..390) \"123\"\n ATMOSPHERE: (390..391) \" \"\n CONSTANT: (391..397)\n STRING: (391..397) \"\"Test\"\"\n CLOSE_PAREN: (397..398) \")\"\n ATMOSPHERE: (398..399) \" \"\n CONSTANT: (399..402)\n NUMBER: (399..402) \"123\"\n CLOSE_PAREN: (402..403) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_symbols.scm.json b/test/Feersum.Tests/_snapshots/Parse_symbols.scm.json
deleted file mode 100644
index 9803e3b..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_symbols.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..792)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..231)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..50)\n IDENTIFIER: (43..50) \"display\"\n ATMOSPHERE: (50..51) \" \"\n FORM: (51..230)\n OPEN_PAREN: (51..52) \"(\"\n SYMBOL: (52..56)\n IDENTIFIER: (52..56) \"list\"\n ATMOSPHERE: (56..61) \"\n \"\n FORM: (61..75)\n OPEN_PAREN: (61..62) \"(\"\n SYMBOL: (62..69)\n IDENTIFIER: (62..69) \"symbol?\"\n ATMOSPHERE: (69..70) \" \"\n QUOTED_DATUM: (70..74)\n QUOTE: (70..71) \"’\"\n SYMBOL: (71..74)\n IDENTIFIER: (71..74) \"foo\"\n CLOSE_PAREN: (74..75) \")\"\n ATMOSPHERE: (75..76) \" \"\n ATMOSPHERE: (76..83) \"; -> #t\"\n ATMOSPHERE: (83..88) \"\n \"\n FORM: (88..110)\n OPEN_PAREN: (88..89) \"(\"\n SYMBOL: (89..96)\n IDENTIFIER: (89..96) \"symbol?\"\n ATMOSPHERE: (96..97) \" \"\n FORM: (97..109)\n OPEN_PAREN: (97..98) \"(\"\n SYMBOL: (98..101)\n IDENTIFIER: (98..101) \"car\"\n ATMOSPHERE: (101..102) \" \"\n QUOTED_DATUM: (102..108)\n QUOTE: (102..103) \"’\"\n FORM: (103..108)\n OPEN_PAREN: (103..104) \"(\"\n SYMBOL: (104..105)\n IDENTIFIER: (104..105) \"a\"\n ATMOSPHERE: (105..106) \" \"\n SYMBOL: (106..107)\n IDENTIFIER: (106..107) \"b\"\n CLOSE_PAREN: (107..108) \")\"\n CLOSE_PAREN: (108..109) \")\"\n CLOSE_PAREN: (109..110) \")\"\n ATMOSPHERE: (110..111) \" \"\n ATMOSPHERE: (111..118) \"; -> #t\"\n ATMOSPHERE: (118..123) \"\n \"\n FORM: (123..138)\n OPEN_PAREN: (123..124) \"(\"\n SYMBOL: (124..131)\n IDENTIFIER: (124..131) \"symbol?\"\n ATMOSPHERE: (131..132) \" \"\n CONSTANT: (132..137)\n STRING: (132..137) \"\"bar\"\"\n CLOSE_PAREN: (137..138) \")\"\n ATMOSPHERE: (138..139) \" \"\n ATMOSPHERE: (139..146) \"; -> #f\"\n ATMOSPHERE: (146..151) \"\n \"\n FORM: (151..165)\n OPEN_PAREN: (151..152) \"(\"\n SYMBOL: (152..159)\n IDENTIFIER: (152..159) \"symbol?\"\n ATMOSPHERE: (159..160) \" \"\n QUOTED_DATUM: (160..164)\n QUOTE: (160..161) \"’\"\n SYMBOL: (161..164)\n IDENTIFIER: (161..164) \"nil\"\n CLOSE_PAREN: (164..165) \")\"\n ATMOSPHERE: (165..166) \" \"\n ATMOSPHERE: (166..173) \"; -> #t\"\n ATMOSPHERE: (173..178) \"\n \"\n FORM: (178..191)\n OPEN_PAREN: (178..179) \"(\"\n SYMBOL: (179..186)\n IDENTIFIER: (179..186) \"symbol?\"\n ATMOSPHERE: (186..187) \" \"\n QUOTED_DATUM: (187..190)\n QUOTE: (187..188) \"’\"\n FORM: (188..190)\n OPEN_PAREN: (188..189) \"(\"\n CLOSE_PAREN: (189..190) \")\"\n CLOSE_PAREN: (190..191) \")\"\n ATMOSPHERE: (191..192) \" \"\n ATMOSPHERE: (192..199) \"; -> #f\"\n ATMOSPHERE: (199..204) \"\n \"\n FORM: (204..216)\n OPEN_PAREN: (204..205) \"(\"\n SYMBOL: (205..212)\n IDENTIFIER: (205..212) \"symbol?\"\n ATMOSPHERE: (212..213) \" \"\n CONSTANT: (213..215)\n BOOLEAN: (213..215) \"#f\"\n CLOSE_PAREN: (215..216) \")\"\n ATMOSPHERE: (216..217) \" \"\n ATMOSPHERE: (217..224) \"; -> #f\"\n ATMOSPHERE: (224..229) \"\n \"\n CLOSE_PAREN: (229..230) \")\"\n CLOSE_PAREN: (230..231) \")\"\n FORM: (231..240)\n OPEN_PAREN: (231..232) \"(\"\n SYMBOL: (232..239)\n IDENTIFIER: (232..239) \"newline\"\n CLOSE_PAREN: (239..240) \")\"\n ATMOSPHERE: (240..241) \"\n\"\n FORM: (241..326)\n OPEN_PAREN: (241..242) \"(\"\n SYMBOL: (242..249)\n IDENTIFIER: (242..249) \"display\"\n ATMOSPHERE: (249..250) \" \"\n FORM: (250..325)\n OPEN_PAREN: (250..251) \"(\"\n SYMBOL: (251..255)\n IDENTIFIER: (251..255) \"list\"\n ATMOSPHERE: (255..260) \"\n \"\n FORM: (260..291)\n OPEN_PAREN: (260..261) \"(\"\n SYMBOL: (261..269)\n IDENTIFIER: (261..269) \"symbol=?\"\n ATMOSPHERE: (269..270) \" \"\n QUOTED_DATUM: (270..277)\n QUOTE: (270..271) \"'\"\n SYMBOL: (271..276)\n IDENTIFIER: (271..276) \"hello\"\n ATMOSPHERE: (276..277) \" \"\n QUOTED_DATUM: (277..284)\n QUOTE: (277..278) \"'\"\n SYMBOL: (278..283)\n IDENTIFIER: (278..283) \"hello\"\n ATMOSPHERE: (283..284) \" \"\n QUOTED_DATUM: (284..290)\n QUOTE: (284..285) \"'\"\n SYMBOL: (285..290)\n IDENTIFIER: (285..290) \"hello\"\n CLOSE_PAREN: (290..291) \")\"\n ATMOSPHERE: (291..296) \"\n \"\n FORM: (296..319)\n OPEN_PAREN: (296..297) \"(\"\n SYMBOL: (297..305)\n IDENTIFIER: (297..305) \"symbol=?\"\n ATMOSPHERE: (305..306) \" \"\n CONSTANT: (306..312)\n STRING: (306..312) \"\"nope\"\"\n ATMOSPHERE: (312..313) \" \"\n QUOTED_DATUM: (313..318)\n QUOTE: (313..314) \"'\"\n SYMBOL: (314..318)\n IDENTIFIER: (314..318) \"nope\"\n CLOSE_PAREN: (318..319) \")\"\n ATMOSPHERE: (319..324) \"\n \"\n CLOSE_PAREN: (324..325) \")\"\n CLOSE_PAREN: (325..326) \")\"\n FORM: (326..335)\n OPEN_PAREN: (326..327) \"(\"\n SYMBOL: (327..334)\n IDENTIFIER: (327..334) \"newline\"\n CLOSE_PAREN: (334..335) \")\"\n ATMOSPHERE: (335..336) \"\n\"\n FORM: (336..783)\n OPEN_PAREN: (336..337) \"(\"\n SYMBOL: (337..344)\n IDENTIFIER: (337..344) \"display\"\n ATMOSPHERE: (344..345) \" \"\n FORM: (345..782)\n OPEN_PAREN: (345..346) \"(\"\n SYMBOL: (346..350)\n IDENTIFIER: (346..350) \"list\"\n ATMOSPHERE: (350..355) \"\n \"\n FORM: (355..384)\n OPEN_PAREN: (355..356) \"(\"\n SYMBOL: (356..370)\n IDENTIFIER: (356..370) \"symbol->string\"\n ATMOSPHERE: (370..371) \" \"\n QUOTED_DATUM: (371..383)\n QUOTE: (371..372) \"’\"\n SYMBOL: (372..383)\n IDENTIFIER: (372..383) \"flying-fish\"\n CLOSE_PAREN: (383..384) \")\"\n ATMOSPHERE: (384..385) \" \"\n ATMOSPHERE: (385..403) \"; -> \"flying-fish\"\"\n ATMOSPHERE: (403..408) \"\n \"\n FORM: (408..432)\n OPEN_PAREN: (408..409) \"(\"\n SYMBOL: (409..423)\n IDENTIFIER: (409..423) \"symbol->string\"\n ATMOSPHERE: (423..424) \" \"\n QUOTED_DATUM: (424..431)\n QUOTE: (424..425) \"’\"\n SYMBOL: (425..431)\n IDENTIFIER: (425..431) \"Martin\"\n CLOSE_PAREN: (431..432) \")\"\n ATMOSPHERE: (432..433) \" \"\n ATMOSPHERE: (433..446) \"; -> \"Martin\"\"\n ATMOSPHERE: (446..451) \"\n \"\n FORM: (451..494)\n OPEN_PAREN: (451..452) \"(\"\n SYMBOL: (452..466)\n IDENTIFIER: (452..466) \"symbol->string\"\n ATMOSPHERE: (466..467) \" \"\n FORM: (467..493)\n OPEN_PAREN: (467..468) \"(\"\n SYMBOL: (468..482)\n IDENTIFIER: (468..482) \"string->symbol\"\n ATMOSPHERE: (482..483) \" \"\n CONSTANT: (483..492)\n STRING: (483..492) \"\"Malvina\"\"\n CLOSE_PAREN: (492..493) \")\"\n CLOSE_PAREN: (493..494) \")\"\n ATMOSPHERE: (494..495) \" \"\n ATMOSPHERE: (495..509) \"; -> \"Malvina\"\"\n ATMOSPHERE: (509..514) \"\n \"\n FORM: (514..544)\n OPEN_PAREN: (514..515) \"(\"\n SYMBOL: (515..529)\n IDENTIFIER: (515..529) \"string->symbol\"\n ATMOSPHERE: (529..530) \" \"\n CONSTANT: (530..543)\n STRING: (530..543) \"\"mISSISSIppi\"\"\n CLOSE_PAREN: (543..544) \")\"\n ATMOSPHERE: (544..545) \" \"\n ATMOSPHERE: (545..561) \"; -> mISSISSIppi\"\n ATMOSPHERE: (561..566) \"\n \"\n FORM: (566..606)\n OPEN_PAREN: (566..567) \"(\"\n SYMBOL: (567..571)\n IDENTIFIER: (567..571) \"eqv?\"\n ATMOSPHERE: (571..572) \" \"\n QUOTED_DATUM: (572..580)\n QUOTE: (572..573) \"’\"\n SYMBOL: (573..579)\n IDENTIFIER: (573..579) \"bitBlt\"\n ATMOSPHERE: (579..580) \" \"\n FORM: (580..605)\n OPEN_PAREN: (580..581) \"(\"\n SYMBOL: (581..595)\n IDENTIFIER: (581..595) \"string->symbol\"\n ATMOSPHERE: (595..596) \" \"\n CONSTANT: (596..604)\n STRING: (596..604) \"\"bitBlt\"\"\n CLOSE_PAREN: (604..605) \")\"\n CLOSE_PAREN: (605..606) \")\"\n ATMOSPHERE: (606..607) \" \"\n ATMOSPHERE: (607..614) \"; -> #t\"\n ATMOSPHERE: (614..619) \"\n \"\n FORM: (619..677)\n OPEN_PAREN: (619..620) \"(\"\n SYMBOL: (620..624)\n IDENTIFIER: (620..624) \"eqv?\"\n ATMOSPHERE: (624..625) \" \"\n QUOTED_DATUM: (625..634)\n QUOTE: (625..626) \"’\"\n SYMBOL: (626..634)\n IDENTIFIER: (626..634) \"LollyPop\"\n FORM: (634..676)\n OPEN_PAREN: (634..635) \"(\"\n SYMBOL: (635..649)\n IDENTIFIER: (635..649) \"string->symbol\"\n FORM: (649..675)\n OPEN_PAREN: (649..650) \"(\"\n SYMBOL: (650..664)\n IDENTIFIER: (650..664) \"symbol->string\"\n ATMOSPHERE: (664..665) \" \"\n QUOTED_DATUM: (665..674)\n QUOTE: (665..666) \"’\"\n SYMBOL: (666..674)\n IDENTIFIER: (666..674) \"LollyPop\"\n CLOSE_PAREN: (674..675) \")\"\n CLOSE_PAREN: (675..676) \")\"\n CLOSE_PAREN: (676..677) \")\"\n ATMOSPHERE: (677..678) \" \"\n ATMOSPHERE: (678..685) \"; -> #t\"\n ATMOSPHERE: (685..690) \"\n \"\n FORM: (690..768)\n OPEN_PAREN: (690..691) \"(\"\n SYMBOL: (691..699)\n IDENTIFIER: (691..699) \"string=?\"\n ATMOSPHERE: (699..700) \" \"\n CONSTANT: (700..717)\n STRING: (700..717) \"\"K. Harper, M.D.\"\"\n FORM: (717..767)\n OPEN_PAREN: (717..718) \"(\"\n SYMBOL: (718..732)\n IDENTIFIER: (718..732) \"symbol->string\"\n FORM: (732..766)\n OPEN_PAREN: (732..733) \"(\"\n SYMBOL: (733..747)\n IDENTIFIER: (733..747) \"string->symbol\"\n ATMOSPHERE: (747..748) \" \"\n CONSTANT: (748..765)\n STRING: (748..765) \"\"K. Harper, M.D.\"\"\n CLOSE_PAREN: (765..766) \")\"\n CLOSE_PAREN: (766..767) \")\"\n CLOSE_PAREN: (767..768) \")\"\n ATMOSPHERE: (768..769) \" \"\n ATMOSPHERE: (769..776) \"; -> #t\"\n ATMOSPHERE: (776..781) \"\n \"\n CLOSE_PAREN: (781..782) \")\"\n CLOSE_PAREN: (782..783) \")\"\n FORM: (783..792)\n OPEN_PAREN: (783..784) \"(\"\n SYMBOL: (784..791)\n IDENTIFIER: (784..791) \"newline\"\n CLOSE_PAREN: (791..792) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_tail.scm.json b/test/Feersum.Tests/_snapshots/Parse_tail.scm.json
deleted file mode 100644
index 7c61b89..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_tail.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..986)\n FORM: (0..211)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n ATMOSPHERE: (26..93) \";; FIXME: we shouldn't _need_ to import this, but we have no way of\"\n ATMOSPHERE: (93..98) \"\n \"\n ATMOSPHERE: (98..162) \";; exporting or re-exporting macro definitions currently.\"\n ATMOSPHERE: (162..167) \"\n \"\n FORM: (167..191)\n OPEN_PAREN: (167..168) \"(\"\n SYMBOL: (168..175)\n IDENTIFIER: (168..175) \"feersum\"\n ATMOSPHERE: (175..176) \" \"\n SYMBOL: (176..183)\n IDENTIFIER: (176..183) \"builtin\"\n ATMOSPHERE: (183..184) \" \"\n SYMBOL: (184..190)\n IDENTIFIER: (184..190) \"macros\"\n CLOSE_PAREN: (190..191) \")\"\n ATMOSPHERE: (191..196) \"\n \"\n FORM: (196..210)\n OPEN_PAREN: (196..197) \"(\"\n SYMBOL: (197..203)\n IDENTIFIER: (197..203) \"scheme\"\n ATMOSPHERE: (203..204) \" \"\n SYMBOL: (204..209)\n IDENTIFIER: (204..209) \"write\"\n CLOSE_PAREN: (209..210) \")\"\n CLOSE_PAREN: (210..211) \")\"\n ATMOSPHERE: (211..213) \"\n\n\"\n ATMOSPHERE: (213..275) \";; Without proper tail recursion this will overflow the stack:\"\n ATMOSPHERE: (275..276) \"\n\"\n ATMOSPHERE: (276..277) \";\"\n ATMOSPHERE: (277..278) \"\n\"\n ATMOSPHERE: (278..296) \"; ! stack overflow\"\n ATMOSPHERE: (296..297) \"\n\"\n ATMOSPHERE: (297..343) \"; [ping] -> [ping] -> [ping] -> ... -> [ping]\"\n ATMOSPHERE: (343..344) \"\n\"\n ATMOSPHERE: (344..350) \"; ....\"\n ATMOSPHERE: (350..351) \"\n\"\n ATMOSPHERE: (351..397) \"; -> [ping] -> ... -> [ping]\"\n ATMOSPHERE: (397..398) \"\n\"\n ATMOSPHERE: (398..444) \"; -> [pong] -> [pong] -> ... -> [pong]\"\n ATMOSPHERE: (444..445) \"\n\"\n ATMOSPHERE: (445..491) \"; [ping] -> [ping] -> [ping] -> ... -> [ping]\"\n ATMOSPHERE: (491..493) \"\n\n\"\n ATMOSPHERE: (493..552) \";; With proper tail recursive calls stack use is constant: \"\n ATMOSPHERE: (552..553) \"\n\"\n ATMOSPHERE: (553..591) \"; [ping] -> [pong] -> [ping] -> [pong]\"\n ATMOSPHERE: (591..593) \"\n\n\"\n FORM: (593..756)\n OPEN_PAREN: (593..594) \"(\"\n SYMBOL: (594..601)\n IDENTIFIER: (594..601) \"display\"\n ATMOSPHERE: (601..605) \" \n \"\n FORM: (605..755)\n OPEN_PAREN: (605..606) \"(\"\n SYMBOL: (606..612)\n IDENTIFIER: (606..612) \"letrec\"\n ATMOSPHERE: (612..613) \" \"\n FORM: (613..738)\n OPEN_PAREN: (613..614) \"(\"\n FORM: (614..644)\n OPEN_PAREN: (614..615) \"(\"\n SYMBOL: (615..619)\n IDENTIFIER: (615..619) \"ping\"\n ATMOSPHERE: (619..620) \" \"\n FORM: (620..643)\n OPEN_PAREN: (620..621) \"(\"\n SYMBOL: (621..627)\n IDENTIFIER: (621..627) \"lambda\"\n ATMOSPHERE: (627..628) \" \"\n FORM: (628..631)\n OPEN_PAREN: (628..629) \"(\"\n SYMBOL: (629..630)\n IDENTIFIER: (629..630) \"x\"\n CLOSE_PAREN: (630..631) \")\"\n ATMOSPHERE: (631..634) \"\n \"\n FORM: (634..642)\n OPEN_PAREN: (634..635) \"(\"\n SYMBOL: (635..639)\n IDENTIFIER: (635..639) \"pong\"\n ATMOSPHERE: (639..640) \" \"\n SYMBOL: (640..641)\n IDENTIFIER: (640..641) \"x\"\n CLOSE_PAREN: (641..642) \")\"\n CLOSE_PAREN: (642..643) \")\"\n CLOSE_PAREN: (643..644) \")\"\n ATMOSPHERE: (644..654) \"\n \"\n FORM: (654..737)\n OPEN_PAREN: (654..655) \"(\"\n SYMBOL: (655..659)\n IDENTIFIER: (655..659) \"pong\"\n ATMOSPHERE: (659..660) \" \"\n FORM: (660..736)\n OPEN_PAREN: (660..661) \"(\"\n SYMBOL: (661..667)\n IDENTIFIER: (661..667) \"lambda\"\n ATMOSPHERE: (667..668) \" \"\n FORM: (668..671)\n OPEN_PAREN: (668..669) \"(\"\n SYMBOL: (669..670)\n IDENTIFIER: (669..670) \"x\"\n CLOSE_PAREN: (670..671) \")\"\n ATMOSPHERE: (671..682) \"\n \"\n FORM: (682..735)\n OPEN_PAREN: (682..683) \"(\"\n SYMBOL: (683..685)\n IDENTIFIER: (683..685) \"if\"\n ATMOSPHERE: (685..686) \" \"\n FORM: (686..693)\n OPEN_PAREN: (686..687) \"(\"\n SYMBOL: (687..688)\n IDENTIFIER: (687..688) \">\"\n ATMOSPHERE: (688..689) \" \"\n CONSTANT: (689..690)\n NUMBER: (689..690) \"0\"\n ATMOSPHERE: (690..691) \" \"\n SYMBOL: (691..692)\n IDENTIFIER: (691..692) \"x\"\n CLOSE_PAREN: (692..693) \")\"\n ATMOSPHERE: (693..706) \"\n \"\n SYMBOL: (706..707)\n IDENTIFIER: (706..707) \"x\"\n ATMOSPHERE: (707..720) \"\n \"\n FORM: (720..734)\n OPEN_PAREN: (720..721) \"(\"\n SYMBOL: (721..725)\n IDENTIFIER: (721..725) \"ping\"\n ATMOSPHERE: (725..726) \" \"\n FORM: (726..733)\n OPEN_PAREN: (726..727) \"(\"\n SYMBOL: (727..728)\n IDENTIFIER: (727..728) \"-\"\n ATMOSPHERE: (728..729) \" \"\n SYMBOL: (729..730)\n IDENTIFIER: (729..730) \"x\"\n ATMOSPHERE: (730..731) \" \"\n CONSTANT: (731..732)\n NUMBER: (731..732) \"1\"\n CLOSE_PAREN: (732..733) \")\"\n CLOSE_PAREN: (733..734) \")\"\n CLOSE_PAREN: (734..735) \")\"\n CLOSE_PAREN: (735..736) \")\"\n CLOSE_PAREN: (736..737) \")\"\n CLOSE_PAREN: (737..738) \")\"\n ATMOSPHERE: (738..741) \"\n \"\n FORM: (741..754)\n OPEN_PAREN: (741..742) \"(\"\n SYMBOL: (742..746)\n IDENTIFIER: (742..746) \"ping\"\n ATMOSPHERE: (746..747) \" \"\n CONSTANT: (747..753)\n NUMBER: (747..753) \"100000\"\n CLOSE_PAREN: (753..754) \")\"\n CLOSE_PAREN: (754..755) \")\"\n CLOSE_PAREN: (755..756) \")\"\n ATMOSPHERE: (756..759) \"\n\n\n\"\n FORM: (759..768)\n OPEN_PAREN: (759..760) \"(\"\n SYMBOL: (760..767)\n IDENTIFIER: (760..767) \"newline\"\n CLOSE_PAREN: (767..768) \")\"\n ATMOSPHERE: (768..770) \"\n\n\"\n ATMOSPHERE: (770..823) \"; Tail context should flow into `and` and `or` macros\"\n ATMOSPHERE: (823..824) \"\n\"\n FORM: (824..985)\n OPEN_PAREN: (824..825) \"(\"\n SYMBOL: (825..832)\n IDENTIFIER: (825..832) \"display\"\n ATMOSPHERE: (832..835) \"\n \"\n FORM: (835..984)\n OPEN_PAREN: (835..836) \"(\"\n SYMBOL: (836..842)\n IDENTIFIER: (836..842) \"letrec\"\n ATMOSPHERE: (842..847) \"\n \"\n FORM: (847..967)\n OPEN_PAREN: (847..848) \"(\"\n FORM: (848..966)\n OPEN_PAREN: (848..849) \"(\"\n SYMBOL: (849..852)\n IDENTIFIER: (849..852) \"foo\"\n ATMOSPHERE: (852..853) \" \"\n FORM: (853..965)\n OPEN_PAREN: (853..854) \"(\"\n SYMBOL: (854..860)\n IDENTIFIER: (854..860) \"lambda\"\n ATMOSPHERE: (860..861) \" \"\n FORM: (861..864)\n OPEN_PAREN: (861..862) \"(\"\n SYMBOL: (862..863)\n IDENTIFIER: (862..863) \"x\"\n CLOSE_PAREN: (863..864) \")\"\n ATMOSPHERE: (864..872) \"\n \"\n FORM: (872..964)\n OPEN_PAREN: (872..873) \"(\"\n SYMBOL: (873..876)\n IDENTIFIER: (873..876) \"and\"\n ATMOSPHERE: (876..877) \" \"\n CONSTANT: (877..879)\n BOOLEAN: (877..879) \"#t\"\n ATMOSPHERE: (879..889) \"\n \"\n FORM: (889..963)\n OPEN_PAREN: (889..890) \"(\"\n SYMBOL: (890..892)\n IDENTIFIER: (890..892) \"or\"\n ATMOSPHERE: (892..893) \" \"\n CONSTANT: (893..895)\n BOOLEAN: (893..895) \"#f\"\n ATMOSPHERE: (895..907) \"\n \"\n FORM: (907..962)\n OPEN_PAREN: (907..908) \"(\"\n SYMBOL: (908..910)\n IDENTIFIER: (908..910) \"if\"\n ATMOSPHERE: (910..911) \" \"\n FORM: (911..918)\n OPEN_PAREN: (911..912) \"(\"\n SYMBOL: (912..913)\n IDENTIFIER: (912..913) \">\"\n ATMOSPHERE: (913..914) \" \"\n CONSTANT: (914..915)\n NUMBER: (914..915) \"0\"\n ATMOSPHERE: (915..916) \" \"\n SYMBOL: (916..917)\n IDENTIFIER: (916..917) \"x\"\n CLOSE_PAREN: (917..918) \")\"\n ATMOSPHERE: (918..932) \"\n \"\n CONSTANT: (932..934)\n BOOLEAN: (932..934) \"#t\"\n ATMOSPHERE: (934..948) \"\n \"\n FORM: (948..961)\n OPEN_PAREN: (948..949) \"(\"\n SYMBOL: (949..952)\n IDENTIFIER: (949..952) \"foo\"\n ATMOSPHERE: (952..953) \" \"\n FORM: (953..960)\n OPEN_PAREN: (953..954) \"(\"\n SYMBOL: (954..955)\n IDENTIFIER: (954..955) \"-\"\n ATMOSPHERE: (955..956) \" \"\n SYMBOL: (956..957)\n IDENTIFIER: (956..957) \"x\"\n ATMOSPHERE: (957..958) \" \"\n CONSTANT: (958..959)\n NUMBER: (958..959) \"1\"\n CLOSE_PAREN: (959..960) \")\"\n CLOSE_PAREN: (960..961) \")\"\n CLOSE_PAREN: (961..962) \")\"\n CLOSE_PAREN: (962..963) \")\"\n CLOSE_PAREN: (963..964) \")\"\n CLOSE_PAREN: (964..965) \")\"\n CLOSE_PAREN: (965..966) \")\"\n CLOSE_PAREN: (966..967) \")\"\n ATMOSPHERE: (967..971) \"\n \"\n FORM: (971..983)\n OPEN_PAREN: (971..972) \"(\"\n SYMBOL: (972..975)\n IDENTIFIER: (972..975) \"foo\"\n ATMOSPHERE: (975..976) \" \"\n CONSTANT: (976..982)\n NUMBER: (976..982) \"100000\"\n CLOSE_PAREN: (982..983) \")\"\n CLOSE_PAREN: (983..984) \")\"\n CLOSE_PAREN: (984..985) \")\"\n ATMOSPHERE: (985..986) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_time.scm.json b/test/Feersum.Tests/_snapshots/Parse_time.scm.json
deleted file mode 100644
index f84bb69..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_time.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..265)\n FORM: (0..55)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..24) \"\n \"\n FORM: (24..38)\n OPEN_PAREN: (24..25) \"(\"\n SYMBOL: (25..31)\n IDENTIFIER: (25..31) \"scheme\"\n ATMOSPHERE: (31..32) \" \"\n SYMBOL: (32..37)\n IDENTIFIER: (32..37) \"write\"\n CLOSE_PAREN: (37..38) \")\"\n ATMOSPHERE: (38..41) \"\n \"\n FORM: (41..54)\n OPEN_PAREN: (41..42) \"(\"\n SYMBOL: (42..48)\n IDENTIFIER: (42..48) \"scheme\"\n ATMOSPHERE: (48..49) \" \"\n SYMBOL: (49..53)\n IDENTIFIER: (49..53) \"time\"\n CLOSE_PAREN: (53..54) \")\"\n CLOSE_PAREN: (54..55) \")\"\n ATMOSPHERE: (55..57) \"\n\n\"\n FORM: (57..224)\n OPEN_PAREN: (57..58) \"(\"\n SYMBOL: (58..64)\n IDENTIFIER: (58..64) \"define\"\n ATMOSPHERE: (64..65) \" \"\n FORM: (65..80)\n OPEN_PAREN: (65..66) \"(\"\n SYMBOL: (66..77)\n IDENTIFIER: (66..77) \"time-length\"\n ATMOSPHERE: (77..78) \" \"\n SYMBOL: (78..79)\n IDENTIFIER: (78..79) \"x\"\n CLOSE_PAREN: (79..80) \")\"\n ATMOSPHERE: (80..83) \"\n \"\n FORM: (83..223)\n OPEN_PAREN: (83..84) \"(\"\n SYMBOL: (84..87)\n IDENTIFIER: (84..87) \"let\"\n ATMOSPHERE: (87..88) \" \"\n FORM: (88..142)\n OPEN_PAREN: (88..89) \"(\"\n FORM: (89..109)\n OPEN_PAREN: (89..90) \"(\"\n SYMBOL: (90..94)\n IDENTIFIER: (90..94) \"list\"\n ATMOSPHERE: (94..95) \" \"\n FORM: (95..108)\n OPEN_PAREN: (95..96) \"(\"\n SYMBOL: (96..105)\n IDENTIFIER: (96..105) \"make-list\"\n ATMOSPHERE: (105..106) \" \"\n SYMBOL: (106..107)\n IDENTIFIER: (106..107) \"x\"\n CLOSE_PAREN: (107..108) \")\"\n CLOSE_PAREN: (108..109) \")\"\n ATMOSPHERE: (109..118) \"\n \"\n FORM: (118..141)\n OPEN_PAREN: (118..119) \"(\"\n SYMBOL: (119..124)\n IDENTIFIER: (119..124) \"start\"\n ATMOSPHERE: (124..125) \" \"\n FORM: (125..140)\n OPEN_PAREN: (125..126) \"(\"\n SYMBOL: (126..139)\n IDENTIFIER: (126..139) \"current-jiffy\"\n CLOSE_PAREN: (139..140) \")\"\n CLOSE_PAREN: (140..141) \")\"\n CLOSE_PAREN: (141..142) \")\"\n ATMOSPHERE: (142..147) \"\n \"\n FORM: (147..160)\n OPEN_PAREN: (147..148) \"(\"\n SYMBOL: (148..154)\n IDENTIFIER: (148..154) \"length\"\n ATMOSPHERE: (154..155) \" \"\n SYMBOL: (155..159)\n IDENTIFIER: (155..159) \"list\"\n CLOSE_PAREN: (159..160) \")\"\n ATMOSPHERE: (160..165) \"\n \"\n FORM: (165..222)\n OPEN_PAREN: (165..166) \"(\"\n SYMBOL: (166..167)\n IDENTIFIER: (166..167) \"/\"\n ATMOSPHERE: (167..168) \" \"\n FORM: (168..193)\n OPEN_PAREN: (168..169) \"(\"\n SYMBOL: (169..170)\n IDENTIFIER: (169..170) \"-\"\n ATMOSPHERE: (170..171) \" \"\n FORM: (171..186)\n OPEN_PAREN: (171..172) \"(\"\n SYMBOL: (172..185)\n IDENTIFIER: (172..185) \"current-jiffy\"\n CLOSE_PAREN: (185..186) \")\"\n ATMOSPHERE: (186..187) \" \"\n SYMBOL: (187..192)\n IDENTIFIER: (187..192) \"start\"\n CLOSE_PAREN: (192..193) \")\"\n ATMOSPHERE: (193..201) \"\n \"\n FORM: (201..221)\n OPEN_PAREN: (201..202) \"(\"\n SYMBOL: (202..220)\n IDENTIFIER: (202..220) \"jiffies-per-second\"\n CLOSE_PAREN: (220..221) \")\"\n CLOSE_PAREN: (221..222) \")\"\n CLOSE_PAREN: (222..223) \")\"\n CLOSE_PAREN: (223..224) \")\"\n ATMOSPHERE: (224..226) \"\n\n\"\n FORM: (226..242)\n OPEN_PAREN: (226..227) \"(\"\n SYMBOL: (227..238)\n IDENTIFIER: (227..238) \"time-length\"\n ATMOSPHERE: (238..239) \" \"\n CONSTANT: (239..241)\n NUMBER: (239..241) \"10\"\n CLOSE_PAREN: (241..242) \")\"\n ATMOSPHERE: (242..243) \"\n\"\n FORM: (243..261)\n OPEN_PAREN: (243..244) \"(\"\n SYMBOL: (244..255)\n IDENTIFIER: (244..255) \"time-length\"\n ATMOSPHERE: (255..256) \" \"\n CONSTANT: (256..260)\n NUMBER: (256..260) \"1000\"\n CLOSE_PAREN: (260..261) \")\"\n ATMOSPHERE: (261..263) \"\n\n\"\n CONSTANT: (263..264)\n NUMBER: (263..264) \"0\"\n ATMOSPHERE: (264..265) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_user-macros.scm.json b/test/Feersum.Tests/_snapshots/Parse_user-macros.scm.json
deleted file mode 100644
index 2b6e1ab..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_user-macros.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..555)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..43) \"\n\n\"\n FORM: (43..131)\n OPEN_PAREN: (43..44) \"(\"\n SYMBOL: (44..57)\n IDENTIFIER: (44..57) \"define-syntax\"\n ATMOSPHERE: (57..58) \" \"\n SYMBOL: (58..61)\n IDENTIFIER: (58..61) \"foo\"\n ATMOSPHERE: (61..66) \"\n \"\n FORM: (66..130)\n OPEN_PAREN: (66..67) \"(\"\n SYMBOL: (67..79)\n IDENTIFIER: (67..79) \"syntax-rules\"\n ATMOSPHERE: (79..80) \" \"\n FORM: (80..82)\n OPEN_PAREN: (80..81) \"(\"\n CLOSE_PAREN: (81..82) \")\"\n ATMOSPHERE: (82..91) \"\n \"\n FORM: (91..109)\n OPEN_PAREN: (91..92) \"(\"\n FORM: (92..99)\n OPEN_PAREN: (92..93) \"(\"\n SYMBOL: (93..94)\n IDENTIFIER: (93..94) \"_\"\n ATMOSPHERE: (94..95) \" \"\n CONSTANT: (95..98)\n NUMBER: (95..98) \"123\"\n CLOSE_PAREN: (98..99) \")\"\n ATMOSPHERE: (99..100) \" \"\n QUOTED_DATUM: (100..108)\n QUOTE: (100..101) \"'\"\n FORM: (101..108)\n OPEN_PAREN: (101..102) \"(\"\n CONSTANT: (102..103)\n NUMBER: (102..103) \"1\"\n ATMOSPHERE: (103..104) \" \"\n CONSTANT: (104..105)\n NUMBER: (104..105) \"2\"\n ATMOSPHERE: (105..106) \" \"\n CONSTANT: (106..107)\n NUMBER: (106..107) \"3\"\n CLOSE_PAREN: (107..108) \")\"\n CLOSE_PAREN: (108..109) \")\"\n ATMOSPHERE: (109..118) \"\n \"\n FORM: (118..129)\n OPEN_PAREN: (118..119) \"(\"\n FORM: (119..122)\n OPEN_PAREN: (119..120) \"(\"\n SYMBOL: (120..121)\n IDENTIFIER: (120..121) \"_\"\n CLOSE_PAREN: (121..122) \")\"\n ATMOSPHERE: (122..123) \" \"\n CONSTANT: (123..128)\n STRING: (123..128) \"\"bar\"\"\n CLOSE_PAREN: (128..129) \")\"\n CLOSE_PAREN: (129..130) \")\"\n CLOSE_PAREN: (130..131) \")\"\n ATMOSPHERE: (131..132) \"\n\"\n FORM: (132..172)\n OPEN_PAREN: (132..133) \"(\"\n SYMBOL: (133..140)\n IDENTIFIER: (133..140) \"display\"\n ATMOSPHERE: (140..141) \" \"\n FORM: (141..171)\n OPEN_PAREN: (141..142) \"(\"\n SYMBOL: (142..146)\n IDENTIFIER: (142..146) \"list\"\n ATMOSPHERE: (146..151) \"\n \"\n FORM: (151..160)\n OPEN_PAREN: (151..152) \"(\"\n SYMBOL: (152..155)\n IDENTIFIER: (152..155) \"foo\"\n ATMOSPHERE: (155..156) \" \"\n CONSTANT: (156..159)\n NUMBER: (156..159) \"123\"\n CLOSE_PAREN: (159..160) \")\"\n ATMOSPHERE: (160..165) \"\n \"\n FORM: (165..170)\n OPEN_PAREN: (165..166) \"(\"\n SYMBOL: (166..169)\n IDENTIFIER: (166..169) \"foo\"\n CLOSE_PAREN: (169..170) \")\"\n CLOSE_PAREN: (170..171) \")\"\n CLOSE_PAREN: (171..172) \")\"\n ATMOSPHERE: (172..173) \"\n\"\n FORM: (173..182)\n OPEN_PAREN: (173..174) \"(\"\n SYMBOL: (174..181)\n IDENTIFIER: (174..181) \"newline\"\n CLOSE_PAREN: (181..182) \")\"\n ATMOSPHERE: (182..184) \"\n\n\"\n FORM: (184..360)\n OPEN_PAREN: (184..185) \"(\"\n SYMBOL: (185..188)\n IDENTIFIER: (185..188) \"let\"\n ATMOSPHERE: (188..189) \" \"\n FORM: (189..191)\n OPEN_PAREN: (189..190) \"(\"\n CLOSE_PAREN: (190..191) \")\"\n ATMOSPHERE: (191..196) \"\n \"\n FORM: (196..306)\n OPEN_PAREN: (196..197) \"(\"\n SYMBOL: (197..210)\n IDENTIFIER: (197..210) \"define-syntax\"\n ATMOSPHERE: (210..211) \" \"\n SYMBOL: (211..214)\n IDENTIFIER: (211..214) \"foo\"\n ATMOSPHERE: (214..223) \"\n \"\n FORM: (223..305)\n OPEN_PAREN: (223..224) \"(\"\n SYMBOL: (224..236)\n IDENTIFIER: (224..236) \"syntax-rules\"\n ATMOSPHERE: (236..237) \" \"\n FORM: (237..242)\n OPEN_PAREN: (237..238) \"(\"\n SYMBOL: (238..241)\n IDENTIFIER: (238..241) \"bar\"\n CLOSE_PAREN: (241..242) \")\"\n ATMOSPHERE: (242..255) \"\n \"\n FORM: (255..273)\n OPEN_PAREN: (255..256) \"(\"\n FORM: (256..263)\n OPEN_PAREN: (256..257) \"(\"\n SYMBOL: (257..258)\n IDENTIFIER: (257..258) \"_\"\n ATMOSPHERE: (258..259) \" \"\n SYMBOL: (259..262)\n IDENTIFIER: (259..262) \"bar\"\n CLOSE_PAREN: (262..263) \")\"\n ATMOSPHERE: (263..264) \" \"\n CONSTANT: (264..272)\n STRING: (264..272) \"\"foobar\"\"\n CLOSE_PAREN: (272..273) \")\"\n ATMOSPHERE: (273..286) \"\n \"\n FORM: (286..304)\n OPEN_PAREN: (286..287) \"(\"\n FORM: (287..294)\n OPEN_PAREN: (287..288) \"(\"\n SYMBOL: (288..289)\n IDENTIFIER: (288..289) \"_\"\n ATMOSPHERE: (289..290) \" \"\n SYMBOL: (290..293)\n IDENTIFIER: (290..293) \"baz\"\n CLOSE_PAREN: (293..294) \")\"\n ATMOSPHERE: (294..295) \" \"\n CONSTANT: (295..303)\n STRING: (295..303) \"\"bizbaz\"\"\n CLOSE_PAREN: (303..304) \")\"\n CLOSE_PAREN: (304..305) \")\"\n CLOSE_PAREN: (305..306) \")\"\n ATMOSPHERE: (306..311) \"\n \"\n FORM: (311..345)\n OPEN_PAREN: (311..312) \"(\"\n SYMBOL: (312..319)\n IDENTIFIER: (312..319) \"display\"\n ATMOSPHERE: (319..320) \" \"\n FORM: (320..344)\n OPEN_PAREN: (320..321) \"(\"\n SYMBOL: (321..325)\n IDENTIFIER: (321..325) \"list\"\n ATMOSPHERE: (325..326) \" \"\n FORM: (326..335)\n OPEN_PAREN: (326..327) \"(\"\n SYMBOL: (327..330)\n IDENTIFIER: (327..330) \"foo\"\n ATMOSPHERE: (330..331) \" \"\n SYMBOL: (331..334)\n IDENTIFIER: (331..334) \"bar\"\n CLOSE_PAREN: (334..335) \")\"\n ATMOSPHERE: (335..336) \" \"\n FORM: (336..343)\n OPEN_PAREN: (336..337) \"(\"\n SYMBOL: (337..340)\n IDENTIFIER: (337..340) \"foo\"\n ATMOSPHERE: (340..341) \" \"\n SYMBOL: (341..342)\n IDENTIFIER: (341..342) \"b\"\n CLOSE_PAREN: (342..343) \")\"\n CLOSE_PAREN: (343..344) \")\"\n CLOSE_PAREN: (344..345) \")\"\n ATMOSPHERE: (345..350) \"\n \"\n FORM: (350..359)\n OPEN_PAREN: (350..351) \"(\"\n SYMBOL: (351..358)\n IDENTIFIER: (351..358) \"newline\"\n CLOSE_PAREN: (358..359) \")\"\n CLOSE_PAREN: (359..360) \")\"\n ATMOSPHERE: (360..362) \"\n\n\"\n FORM: (362..477)\n OPEN_PAREN: (362..363) \"(\"\n SYMBOL: (363..370)\n IDENTIFIER: (363..370) \"display\"\n ATMOSPHERE: (370..375) \"\n \"\n FORM: (375..476)\n OPEN_PAREN: (375..376) \"(\"\n SYMBOL: (376..386)\n IDENTIFIER: (376..386) \"let-syntax\"\n ATMOSPHERE: (386..395) \"\n \"\n FORM: (395..455)\n OPEN_PAREN: (395..396) \"(\"\n FORM: (396..454)\n OPEN_PAREN: (396..397) \"(\"\n SYMBOL: (397..400)\n IDENTIFIER: (397..400) \"foo\"\n ATMOSPHERE: (400..401) \" \"\n FORM: (401..453)\n OPEN_PAREN: (401..402) \"(\"\n SYMBOL: (402..414)\n IDENTIFIER: (402..414) \"syntax-rules\"\n ATMOSPHERE: (414..415) \" \"\n FORM: (415..417)\n OPEN_PAREN: (415..416) \"(\"\n CLOSE_PAREN: (416..417) \")\"\n ATMOSPHERE: (417..430) \"\n \"\n FORM: (430..452)\n OPEN_PAREN: (430..431) \"(\"\n FORM: (431..438)\n OPEN_PAREN: (431..432) \"(\"\n SYMBOL: (432..435)\n IDENTIFIER: (432..435) \"foo\"\n ATMOSPHERE: (435..436) \" \"\n SYMBOL: (436..437)\n IDENTIFIER: (436..437) \"_\"\n CLOSE_PAREN: (437..438) \")\"\n ATMOSPHERE: (438..439) \" \"\n QUOTED_DATUM: (439..451)\n QUOTE: (439..440) \"'\"\n FORM: (440..451)\n OPEN_PAREN: (440..441) \"(\"\n SYMBOL: (441..446)\n IDENTIFIER: (441..446) \"inner\"\n ATMOSPHERE: (446..447) \" \"\n SYMBOL: (447..450)\n IDENTIFIER: (447..450) \"foo\"\n CLOSE_PAREN: (450..451) \")\"\n CLOSE_PAREN: (451..452) \")\"\n CLOSE_PAREN: (452..453) \")\"\n CLOSE_PAREN: (453..454) \")\"\n CLOSE_PAREN: (454..455) \")\"\n ATMOSPHERE: (455..464) \"\n \"\n FORM: (464..475)\n OPEN_PAREN: (464..465) \"(\"\n SYMBOL: (465..468)\n IDENTIFIER: (465..468) \"foo\"\n ATMOSPHERE: (468..469) \" \"\n CONSTANT: (469..474)\n STRING: (469..474) \"\"123\"\"\n CLOSE_PAREN: (474..475) \")\"\n CLOSE_PAREN: (475..476) \")\"\n CLOSE_PAREN: (476..477) \")\"\n FORM: (477..486)\n OPEN_PAREN: (477..478) \"(\"\n SYMBOL: (478..485)\n IDENTIFIER: (478..485) \"newline\"\n CLOSE_PAREN: (485..486) \")\"\n ATMOSPHERE: (486..488) \"\n\n\"\n ATMOSPHERE: (488..524) \"; Should be the first `foo` again...\"\n ATMOSPHERE: (524..525) \"\n\"\n FORM: (525..544)\n OPEN_PAREN: (525..526) \"(\"\n SYMBOL: (526..533)\n IDENTIFIER: (526..533) \"display\"\n ATMOSPHERE: (533..534) \" \"\n FORM: (534..543)\n OPEN_PAREN: (534..535) \"(\"\n SYMBOL: (535..538)\n IDENTIFIER: (535..538) \"foo\"\n ATMOSPHERE: (538..539) \" \"\n CONSTANT: (539..542)\n NUMBER: (539..542) \"123\"\n CLOSE_PAREN: (542..543) \")\"\n CLOSE_PAREN: (543..544) \")\"\n FORM: (544..553)\n OPEN_PAREN: (544..545) \"(\"\n SYMBOL: (545..552)\n IDENTIFIER: (545..552) \"newline\"\n CLOSE_PAREN: (552..553) \")\"\n ATMOSPHERE: (553..555) \"\n\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_vectors.scm.json b/test/Feersum.Tests/_snapshots/Parse_vectors.scm.json
deleted file mode 100644
index ee44d6c..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_vectors.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..511)\n FORM: (0..41)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..26) \"\n \"\n FORM: (26..40)\n OPEN_PAREN: (26..27) \"(\"\n SYMBOL: (27..33)\n IDENTIFIER: (27..33) \"scheme\"\n ATMOSPHERE: (33..34) \" \"\n SYMBOL: (34..39)\n IDENTIFIER: (34..39) \"write\"\n CLOSE_PAREN: (39..40) \")\"\n CLOSE_PAREN: (40..41) \")\"\n ATMOSPHERE: (41..42) \"\n\"\n FORM: (42..511)\n OPEN_PAREN: (42..43) \"(\"\n SYMBOL: (43..50)\n IDENTIFIER: (43..50) \"display\"\n ATMOSPHERE: (50..51) \" \"\n FORM: (51..510)\n OPEN_PAREN: (51..52) \"(\"\n SYMBOL: (52..56)\n IDENTIFIER: (52..56) \"list\"\n ATMOSPHERE: (56..66) \"\n \n \"\n ATMOSPHERE: (66..79) \";; vector new\"\n ATMOSPHERE: (79..84) \"\n \"\n FORM: (84..98)\n OPEN_PAREN: (84..85) \"(\"\n SYMBOL: (85..91)\n IDENTIFIER: (85..91) \"vector\"\n ATMOSPHERE: (91..92) \" \"\n CONSTANT: (92..93)\n NUMBER: (92..93) \"1\"\n ATMOSPHERE: (93..94) \" \"\n CONSTANT: (94..95)\n NUMBER: (94..95) \"2\"\n ATMOSPHERE: (95..96) \" \"\n CONSTANT: (96..97)\n NUMBER: (96..97) \"3\"\n CLOSE_PAREN: (97..98) \")\"\n ATMOSPHERE: (98..103) \"\n \"\n FORM: (103..123)\n OPEN_PAREN: (103..104) \"(\"\n SYMBOL: (104..115)\n IDENTIFIER: (104..115) \"make-vector\"\n ATMOSPHERE: (115..116) \" \"\n CONSTANT: (116..118)\n NUMBER: (116..118) \"10\"\n ATMOSPHERE: (118..119) \" \"\n CONSTANT: (119..122)\n CHARACTER: (119..122) \"#\\a\"\n CLOSE_PAREN: (122..123) \")\"\n ATMOSPHERE: (123..129) \"\n\n \"\n ATMOSPHERE: (129..147) \";; Vector literals\"\n ATMOSPHERE: (147..152) \"\n \"\n VEC: (152..173)\n OPEN_PAREN: (152..154) \"#(\"\n CONSTANT: (154..155)\n NUMBER: (154..155) \"0\"\n ATMOSPHERE: (155..156) \" \"\n FORM: (156..165)\n OPEN_PAREN: (156..157) \"(\"\n CONSTANT: (157..158)\n NUMBER: (157..158) \"2\"\n ATMOSPHERE: (158..159) \" \"\n CONSTANT: (159..160)\n NUMBER: (159..160) \"2\"\n ATMOSPHERE: (160..161) \" \"\n CONSTANT: (161..162)\n NUMBER: (161..162) \"2\"\n ATMOSPHERE: (162..163) \" \"\n CONSTANT: (163..164)\n NUMBER: (163..164) \"2\"\n CLOSE_PAREN: (164..165) \")\"\n ATMOSPHERE: (165..166) \" \"\n CONSTANT: (166..172)\n STRING: (166..172) \"\"Anna\"\"\n CLOSE_PAREN: (172..173) \")\"\n ATMOSPHERE: (173..179) \"\n\n \"\n ATMOSPHERE: (179..199) \";; Vector type check\"\n ATMOSPHERE: (199..204) \"\n \"\n FORM: (204..217)\n OPEN_PAREN: (204..205) \"(\"\n SYMBOL: (205..212)\n IDENTIFIER: (205..212) \"vector?\"\n ATMOSPHERE: (212..213) \" \"\n VEC: (213..216)\n OPEN_PAREN: (213..215) \"#(\"\n CLOSE_PAREN: (215..216) \")\"\n CLOSE_PAREN: (216..217) \")\"\n ATMOSPHERE: (217..222) \"\n \"\n FORM: (222..240)\n OPEN_PAREN: (222..223) \"(\"\n SYMBOL: (223..230)\n IDENTIFIER: (223..230) \"vector?\"\n ATMOSPHERE: (230..231) \" \"\n VEC: (231..239)\n OPEN_PAREN: (231..233) \"#(\"\n CONSTANT: (233..234)\n NUMBER: (233..234) \"1\"\n ATMOSPHERE: (234..235) \" \"\n CONSTANT: (235..236)\n NUMBER: (235..236) \"2\"\n ATMOSPHERE: (236..237) \" \"\n CONSTANT: (237..238)\n NUMBER: (237..238) \"3\"\n CLOSE_PAREN: (238..239) \")\"\n CLOSE_PAREN: (239..240) \")\"\n ATMOSPHERE: (240..245) \"\n \"\n FORM: (245..261)\n OPEN_PAREN: (245..246) \"(\"\n SYMBOL: (246..253)\n IDENTIFIER: (246..253) \"vector?\"\n ATMOSPHERE: (253..254) \" \"\n CONSTANT: (254..260)\n STRING: (254..260) \"\"Test\"\"\n CLOSE_PAREN: (260..261) \")\"\n ATMOSPHERE: (261..267) \"\n\n \"\n ATMOSPHERE: (267..291) \";; General vector method\"\n ATMOSPHERE: (291..296) \"\n \"\n FORM: (296..326)\n OPEN_PAREN: (296..297) \"(\"\n SYMBOL: (297..310)\n IDENTIFIER: (297..310) \"vector-length\"\n ATMOSPHERE: (310..311) \" \"\n VEC: (311..325)\n OPEN_PAREN: (311..313) \"#(\"\n CONSTANT: (313..316)\n CHARACTER: (313..316) \"#\\a\"\n ATMOSPHERE: (316..317) \" \"\n CONSTANT: (317..320)\n CHARACTER: (317..320) \"#\\b\"\n ATMOSPHERE: (320..321) \" \"\n CONSTANT: (321..324)\n CHARACTER: (321..324) \"#\\c\"\n CLOSE_PAREN: (324..325) \")\"\n CLOSE_PAREN: (325..326) \")\"\n ATMOSPHERE: (326..331) \"\n \"\n FORM: (331..360)\n OPEN_PAREN: (331..332) \"(\"\n SYMBOL: (332..342)\n IDENTIFIER: (332..342) \"vector-ref\"\n ATMOSPHERE: (342..343) \" \"\n VEC: (343..357)\n OPEN_PAREN: (343..345) \"#(\"\n SYMBOL: (345..346)\n IDENTIFIER: (345..346) \"a\"\n ATMOSPHERE: (346..347) \" \"\n CONSTANT: (347..349)\n BOOLEAN: (347..349) \"#f\"\n ATMOSPHERE: (349..350) \" \"\n CONSTANT: (350..356)\n STRING: (350..356) \"\"test\"\"\n CLOSE_PAREN: (356..357) \")\"\n ATMOSPHERE: (357..358) \" \"\n CONSTANT: (358..359)\n NUMBER: (358..359) \"2\"\n CLOSE_PAREN: (359..360) \")\"\n ATMOSPHERE: (360..365) \"\n \"\n FORM: (365..401)\n OPEN_PAREN: (365..366) \"(\"\n SYMBOL: (366..376)\n IDENTIFIER: (366..376) \"vector-ref\"\n ATMOSPHERE: (376..377) \" \"\n QUOTED_DATUM: (377..399)\n QUOTE: (377..378) \"'\"\n VEC: (378..398)\n OPEN_PAREN: (378..380) \"#(\"\n CONSTANT: (380..381)\n NUMBER: (380..381) \"1\"\n ATMOSPHERE: (381..382) \" \"\n CONSTANT: (382..383)\n NUMBER: (382..383) \"1\"\n ATMOSPHERE: (383..384) \" \"\n CONSTANT: (384..385)\n NUMBER: (384..385) \"2\"\n ATMOSPHERE: (385..386) \" \"\n CONSTANT: (386..387)\n NUMBER: (386..387) \"3\"\n ATMOSPHERE: (387..388) \" \"\n CONSTANT: (388..389)\n NUMBER: (388..389) \"5\"\n ATMOSPHERE: (389..390) \" \"\n CONSTANT: (390..391)\n NUMBER: (390..391) \"8\"\n ATMOSPHERE: (391..392) \" \"\n CONSTANT: (392..394)\n NUMBER: (392..394) \"13\"\n ATMOSPHERE: (394..395) \" \"\n CONSTANT: (395..397)\n NUMBER: (395..397) \"21\"\n CLOSE_PAREN: (397..398) \")\"\n ATMOSPHERE: (398..399) \" \"\n CONSTANT: (399..400)\n NUMBER: (399..400) \"5\"\n CLOSE_PAREN: (400..401) \")\"\n ATMOSPHERE: (401..406) \"\n \"\n FORM: (406..503)\n OPEN_PAREN: (406..407) \"(\"\n SYMBOL: (407..410)\n IDENTIFIER: (407..410) \"let\"\n ATMOSPHERE: (410..411) \" \"\n FORM: (411..447)\n OPEN_PAREN: (411..412) \"(\"\n FORM: (412..446)\n OPEN_PAREN: (412..413) \"(\"\n SYMBOL: (413..416)\n IDENTIFIER: (413..416) \"vec\"\n ATMOSPHERE: (416..417) \" \"\n FORM: (417..445)\n OPEN_PAREN: (417..418) \"(\"\n SYMBOL: (418..424)\n IDENTIFIER: (418..424) \"vector\"\n ATMOSPHERE: (424..425) \" \"\n CONSTANT: (425..426)\n NUMBER: (425..426) \"0\"\n ATMOSPHERE: (426..427) \" \"\n QUOTED_DATUM: (427..438)\n QUOTE: (427..428) \"'\"\n FORM: (428..437)\n OPEN_PAREN: (428..429) \"(\"\n CONSTANT: (429..430)\n NUMBER: (429..430) \"2\"\n ATMOSPHERE: (430..431) \" \"\n CONSTANT: (431..432)\n NUMBER: (431..432) \"2\"\n ATMOSPHERE: (432..433) \" \"\n CONSTANT: (433..434)\n NUMBER: (433..434) \"2\"\n ATMOSPHERE: (434..435) \" \"\n CONSTANT: (435..436)\n NUMBER: (435..436) \"2\"\n CLOSE_PAREN: (436..437) \")\"\n ATMOSPHERE: (437..438) \" \"\n CONSTANT: (438..444)\n STRING: (438..444) \"\"Anna\"\"\n CLOSE_PAREN: (444..445) \")\"\n CLOSE_PAREN: (445..446) \")\"\n CLOSE_PAREN: (446..447) \")\"\n ATMOSPHERE: (447..456) \"\n \"\n FORM: (456..490)\n OPEN_PAREN: (456..457) \"(\"\n SYMBOL: (457..468)\n IDENTIFIER: (457..468) \"vector-set!\"\n ATMOSPHERE: (468..469) \" \"\n SYMBOL: (469..472)\n IDENTIFIER: (469..472) \"vec\"\n ATMOSPHERE: (472..473) \" \"\n CONSTANT: (473..474)\n NUMBER: (473..474) \"1\"\n ATMOSPHERE: (474..475) \" \"\n QUOTED_DATUM: (475..489)\n QUOTE: (475..476) \"'\"\n FORM: (476..489)\n OPEN_PAREN: (476..477) \"(\"\n CONSTANT: (477..482)\n STRING: (477..482) \"\"Sue\"\"\n ATMOSPHERE: (482..483) \" \"\n CONSTANT: (483..488)\n STRING: (483..488) \"\"Sue\"\"\n CLOSE_PAREN: (488..489) \")\"\n CLOSE_PAREN: (489..490) \")\"\n ATMOSPHERE: (490..499) \"\n \"\n SYMBOL: (499..502)\n IDENTIFIER: (499..502) \"vec\"\n CLOSE_PAREN: (502..503) \")\"\n ATMOSPHERE: (503..509) \"\n\n \"\n CLOSE_PAREN: (509..510) \")\"\n CLOSE_PAREN: (510..511) \")\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/Parse_zed.scm.json b/test/Feersum.Tests/_snapshots/Parse_zed.scm.json
deleted file mode 100644
index f1b7c4e..0000000
--- a/test/Feersum.Tests/_snapshots/Parse_zed.scm.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Diagnostics": [],
- "Root": "PROGRAM: (0..725)\n FORM: (0..39)\n OPEN_PAREN: (0..1) \"(\"\n SYMBOL: (1..7)\n IDENTIFIER: (1..7) \"import\"\n ATMOSPHERE: (7..8) \" \"\n FORM: (8..21)\n OPEN_PAREN: (8..9) \"(\"\n SYMBOL: (9..15)\n IDENTIFIER: (9..15) \"scheme\"\n ATMOSPHERE: (15..16) \" \"\n SYMBOL: (16..20)\n IDENTIFIER: (16..20) \"base\"\n CLOSE_PAREN: (20..21) \")\"\n ATMOSPHERE: (21..24) \"\n \"\n FORM: (24..38)\n OPEN_PAREN: (24..25) \"(\"\n SYMBOL: (25..31)\n IDENTIFIER: (25..31) \"scheme\"\n ATMOSPHERE: (31..32) \" \"\n SYMBOL: (32..37)\n IDENTIFIER: (32..37) \"write\"\n CLOSE_PAREN: (37..38) \")\"\n CLOSE_PAREN: (38..39) \")\"\n ATMOSPHERE: (39..41) \"\n\n\"\n ATMOSPHERE: (41..92) \";; This is the zed combinator from lambda calculus.\"\n ATMOSPHERE: (92..93) \"\n\"\n FORM: (93..181)\n OPEN_PAREN: (93..94) \"(\"\n SYMBOL: (94..100)\n IDENTIFIER: (94..100) \"define\"\n ATMOSPHERE: (100..101) \" \"\n FORM: (101..106)\n OPEN_PAREN: (101..102) \"(\"\n SYMBOL: (102..103)\n IDENTIFIER: (102..103) \"Z\"\n ATMOSPHERE: (103..104) \" \"\n SYMBOL: (104..105)\n IDENTIFIER: (104..105) \"f\"\n CLOSE_PAREN: (105..106) \")\"\n ATMOSPHERE: (106..109) \"\n \"\n FORM: (109..180)\n OPEN_PAREN: (109..110) \"(\"\n FORM: (110..128)\n OPEN_PAREN: (110..111) \"(\"\n SYMBOL: (111..117)\n IDENTIFIER: (111..117) \"lambda\"\n ATMOSPHERE: (117..118) \" \"\n FORM: (118..121)\n OPEN_PAREN: (118..119) \"(\"\n SYMBOL: (119..120)\n IDENTIFIER: (119..120) \"g\"\n CLOSE_PAREN: (120..121) \")\"\n ATMOSPHERE: (121..122) \" \"\n FORM: (122..127)\n OPEN_PAREN: (122..123) \"(\"\n SYMBOL: (123..124)\n IDENTIFIER: (123..124) \"g\"\n ATMOSPHERE: (124..125) \" \"\n SYMBOL: (125..126)\n IDENTIFIER: (125..126) \"g\"\n CLOSE_PAREN: (126..127) \")\"\n CLOSE_PAREN: (127..128) \")\"\n ATMOSPHERE: (128..132) \"\n \"\n FORM: (132..179)\n OPEN_PAREN: (132..133) \"(\"\n SYMBOL: (133..139)\n IDENTIFIER: (133..139) \"lambda\"\n ATMOSPHERE: (139..140) \" \"\n FORM: (140..143)\n OPEN_PAREN: (140..141) \"(\"\n SYMBOL: (141..142)\n IDENTIFIER: (141..142) \"g\"\n CLOSE_PAREN: (142..143) \")\"\n ATMOSPHERE: (143..148) \"\n \"\n FORM: (148..178)\n OPEN_PAREN: (148..149) \"(\"\n SYMBOL: (149..150)\n IDENTIFIER: (149..150) \"f\"\n ATMOSPHERE: (150..151) \" \"\n FORM: (151..177)\n OPEN_PAREN: (151..152) \"(\"\n SYMBOL: (152..158)\n IDENTIFIER: (152..158) \"lambda\"\n ATMOSPHERE: (158..159) \" \"\n SYMBOL: (159..160)\n IDENTIFIER: (159..160) \"a\"\n ATMOSPHERE: (160..161) \" \"\n FORM: (161..176)\n OPEN_PAREN: (161..162) \"(\"\n SYMBOL: (162..167)\n IDENTIFIER: (162..167) \"apply\"\n ATMOSPHERE: (167..168) \" \"\n FORM: (168..173)\n OPEN_PAREN: (168..169) \"(\"\n SYMBOL: (169..170)\n IDENTIFIER: (169..170) \"g\"\n ATMOSPHERE: (170..171) \" \"\n SYMBOL: (171..172)\n IDENTIFIER: (171..172) \"g\"\n CLOSE_PAREN: (172..173) \")\"\n ATMOSPHERE: (173..174) \" \"\n SYMBOL: (174..175)\n IDENTIFIER: (174..175) \"a\"\n CLOSE_PAREN: (175..176) \")\"\n CLOSE_PAREN: (176..177) \")\"\n CLOSE_PAREN: (177..178) \")\"\n CLOSE_PAREN: (178..179) \")\"\n CLOSE_PAREN: (179..180) \")\"\n CLOSE_PAREN: (180..181) \")\"\n ATMOSPHERE: (181..183) \"\n\n\"\n ATMOSPHERE: (183..220) \";; Echo just prints out its arguments\"\n ATMOSPHERE: (220..221) \"\n\"\n FORM: (221..295)\n OPEN_PAREN: (221..222) \"(\"\n SYMBOL: (222..228)\n IDENTIFIER: (222..228) \"define\"\n ATMOSPHERE: (228..229) \" \"\n SYMBOL: (229..233)\n IDENTIFIER: (229..233) \"echo\"\n ATMOSPHERE: (233..236) \"\n \"\n FORM: (236..294)\n OPEN_PAREN: (236..237) \"(\"\n SYMBOL: (237..238)\n IDENTIFIER: (237..238) \"Z\"\n ATMOSPHERE: (238..239) \" \"\n FORM: (239..293)\n OPEN_PAREN: (239..240) \"(\"\n SYMBOL: (240..246)\n IDENTIFIER: (240..246) \"lambda\"\n ATMOSPHERE: (246..247) \" \"\n FORM: (247..253)\n OPEN_PAREN: (247..248) \"(\"\n SYMBOL: (248..252)\n IDENTIFIER: (248..252) \"echo\"\n CLOSE_PAREN: (252..253) \")\"\n ATMOSPHERE: (253..258) \"\n \"\n FORM: (258..292)\n OPEN_PAREN: (258..259) \"(\"\n SYMBOL: (259..265)\n IDENTIFIER: (259..265) \"lambda\"\n ATMOSPHERE: (265..266) \" \"\n SYMBOL: (266..270)\n IDENTIFIER: (266..270) \"args\"\n ATMOSPHERE: (270..277) \"\n \"\n FORM: (277..291)\n OPEN_PAREN: (277..278) \"(\"\n SYMBOL: (278..285)\n IDENTIFIER: (278..285) \"display\"\n ATMOSPHERE: (285..286) \" \"\n SYMBOL: (286..290)\n IDENTIFIER: (286..290) \"args\"\n CLOSE_PAREN: (290..291) \")\"\n CLOSE_PAREN: (291..292) \")\"\n CLOSE_PAREN: (292..293) \")\"\n CLOSE_PAREN: (293..294) \")\"\n CLOSE_PAREN: (294..295) \")\"\n ATMOSPHERE: (295..297) \"\n\n\"\n FORM: (297..317)\n OPEN_PAREN: (297..298) \"(\"\n SYMBOL: (298..302)\n IDENTIFIER: (298..302) \"echo\"\n ATMOSPHERE: (302..303) \" \"\n CONSTANT: (303..316)\n STRING: (303..316) \"\"hello world\"\"\n CLOSE_PAREN: (316..317) \")\"\n FORM: (317..326)\n OPEN_PAREN: (317..318) \"(\"\n SYMBOL: (318..325)\n IDENTIFIER: (318..325) \"newline\"\n CLOSE_PAREN: (325..326) \")\"\n ATMOSPHERE: (326..328) \"\n\n\"\n ATMOSPHERE: (328..380) \";; Recursive fibonacci defined using the combinator.\"\n ATMOSPHERE: (380..381) \"\n\"\n FORM: (381..501)\n OPEN_PAREN: (381..382) \"(\"\n SYMBOL: (382..388)\n IDENTIFIER: (382..388) \"define\"\n ATMOSPHERE: (388..389) \" \"\n SYMBOL: (389..392)\n IDENTIFIER: (389..392) \"fib\"\n ATMOSPHERE: (392..395) \"\n \"\n FORM: (395..500)\n OPEN_PAREN: (395..396) \"(\"\n SYMBOL: (396..397)\n IDENTIFIER: (396..397) \"Z\"\n ATMOSPHERE: (397..398) \" \"\n FORM: (398..499)\n OPEN_PAREN: (398..399) \"(\"\n SYMBOL: (399..405)\n IDENTIFIER: (399..405) \"lambda\"\n ATMOSPHERE: (405..406) \" \"\n FORM: (406..411)\n OPEN_PAREN: (406..407) \"(\"\n SYMBOL: (407..410)\n IDENTIFIER: (407..410) \"fib\"\n CLOSE_PAREN: (410..411) \")\"\n ATMOSPHERE: (411..416) \"\n \"\n FORM: (416..498)\n OPEN_PAREN: (416..417) \"(\"\n SYMBOL: (417..423)\n IDENTIFIER: (417..423) \"lambda\"\n ATMOSPHERE: (423..424) \" \"\n FORM: (424..427)\n OPEN_PAREN: (424..425) \"(\"\n SYMBOL: (425..426)\n IDENTIFIER: (425..426) \"n\"\n CLOSE_PAREN: (426..427) \")\"\n ATMOSPHERE: (427..434) \"\n \"\n FORM: (434..497)\n OPEN_PAREN: (434..435) \"(\"\n SYMBOL: (435..437)\n IDENTIFIER: (435..437) \"if\"\n ATMOSPHERE: (437..438) \" \"\n FORM: (438..446)\n OPEN_PAREN: (438..439) \"(\"\n SYMBOL: (439..441)\n IDENTIFIER: (439..441) \"<=\"\n ATMOSPHERE: (441..442) \" \"\n SYMBOL: (442..443)\n IDENTIFIER: (442..443) \"n\"\n ATMOSPHERE: (443..444) \" \"\n CONSTANT: (444..445)\n NUMBER: (444..445) \"2\"\n CLOSE_PAREN: (445..446) \")\"\n ATMOSPHERE: (446..455) \"\n \"\n CONSTANT: (455..456)\n NUMBER: (455..456) \"1\"\n ATMOSPHERE: (456..465) \"\n \"\n FORM: (465..496)\n OPEN_PAREN: (465..466) \"(\"\n SYMBOL: (466..467)\n IDENTIFIER: (466..467) \"+\"\n ATMOSPHERE: (467..468) \" \"\n FORM: (468..481)\n OPEN_PAREN: (468..469) \"(\"\n SYMBOL: (469..472)\n IDENTIFIER: (469..472) \"fib\"\n ATMOSPHERE: (472..473) \" \"\n FORM: (473..480)\n OPEN_PAREN: (473..474) \"(\"\n SYMBOL: (474..475)\n IDENTIFIER: (474..475) \"-\"\n ATMOSPHERE: (475..476) \" \"\n SYMBOL: (476..477)\n IDENTIFIER: (476..477) \"n\"\n ATMOSPHERE: (477..478) \" \"\n CONSTANT: (478..479)\n NUMBER: (478..479) \"1\"\n CLOSE_PAREN: (479..480) \")\"\n CLOSE_PAREN: (480..481) \")\"\n ATMOSPHERE: (481..482) \" \"\n FORM: (482..495)\n OPEN_PAREN: (482..483) \"(\"\n SYMBOL: (483..486)\n IDENTIFIER: (483..486) \"fib\"\n ATMOSPHERE: (486..487) \" \"\n FORM: (487..494)\n OPEN_PAREN: (487..488) \"(\"\n SYMBOL: (488..489)\n IDENTIFIER: (488..489) \"-\"\n ATMOSPHERE: (489..490) \" \"\n SYMBOL: (490..491)\n IDENTIFIER: (490..491) \"n\"\n ATMOSPHERE: (491..492) \" \"\n CONSTANT: (492..493)\n NUMBER: (492..493) \"2\"\n CLOSE_PAREN: (493..494) \")\"\n CLOSE_PAREN: (494..495) \")\"\n CLOSE_PAREN: (495..496) \")\"\n CLOSE_PAREN: (496..497) \")\"\n CLOSE_PAREN: (497..498) \")\"\n CLOSE_PAREN: (498..499) \")\"\n CLOSE_PAREN: (499..500) \")\"\n CLOSE_PAREN: (500..501) \")\"\n ATMOSPHERE: (501..503) \"\n\n\"\n FORM: (503..520)\n OPEN_PAREN: (503..504) \"(\"\n SYMBOL: (504..511)\n IDENTIFIER: (504..511) \"display\"\n ATMOSPHERE: (511..512) \" \"\n FORM: (512..519)\n OPEN_PAREN: (512..513) \"(\"\n SYMBOL: (513..516)\n IDENTIFIER: (513..516) \"fib\"\n ATMOSPHERE: (516..517) \" \"\n CONSTANT: (517..518)\n NUMBER: (517..518) \"5\"\n CLOSE_PAREN: (518..519) \")\"\n CLOSE_PAREN: (519..520) \")\"\n FORM: (520..529)\n OPEN_PAREN: (520..521) \"(\"\n SYMBOL: (521..528)\n IDENTIFIER: (521..528) \"newline\"\n CLOSE_PAREN: (528..529) \")\"\n ATMOSPHERE: (529..531) \"\n\n\"\n ATMOSPHERE: (531..583) \";; Recursive factorial defined using the combinator.\"\n ATMOSPHERE: (583..584) \"\n\"\n FORM: (584..694)\n OPEN_PAREN: (584..585) \"(\"\n SYMBOL: (585..591)\n IDENTIFIER: (585..591) \"define\"\n ATMOSPHERE: (591..592) \" \"\n SYMBOL: (592..596)\n IDENTIFIER: (592..596) \"fact\"\n ATMOSPHERE: (596..599) \"\n \"\n FORM: (599..693)\n OPEN_PAREN: (599..600) \"(\"\n SYMBOL: (600..601)\n IDENTIFIER: (600..601) \"Z\"\n ATMOSPHERE: (601..602) \" \"\n FORM: (602..692)\n OPEN_PAREN: (602..603) \"(\"\n SYMBOL: (603..609)\n IDENTIFIER: (603..609) \"lambda\"\n ATMOSPHERE: (609..610) \" \"\n FORM: (610..616)\n OPEN_PAREN: (610..611) \"(\"\n SYMBOL: (611..615)\n IDENTIFIER: (611..615) \"fact\"\n CLOSE_PAREN: (615..616) \")\"\n ATMOSPHERE: (616..621) \"\n \"\n FORM: (621..691)\n OPEN_PAREN: (621..622) \"(\"\n SYMBOL: (622..628)\n IDENTIFIER: (622..628) \"lambda\"\n ATMOSPHERE: (628..629) \" \"\n FORM: (629..632)\n OPEN_PAREN: (629..630) \"(\"\n SYMBOL: (630..631)\n IDENTIFIER: (630..631) \"n\"\n CLOSE_PAREN: (631..632) \")\"\n ATMOSPHERE: (632..639) \"\n \"\n FORM: (639..690)\n OPEN_PAREN: (639..640) \"(\"\n SYMBOL: (640..642)\n IDENTIFIER: (640..642) \"if\"\n ATMOSPHERE: (642..643) \" \"\n FORM: (643..650)\n OPEN_PAREN: (643..644) \"(\"\n SYMBOL: (644..645)\n IDENTIFIER: (644..645) \"=\"\n ATMOSPHERE: (645..646) \" \"\n SYMBOL: (646..647)\n IDENTIFIER: (646..647) \"n\"\n ATMOSPHERE: (647..648) \" \"\n CONSTANT: (648..649)\n NUMBER: (648..649) \"0\"\n CLOSE_PAREN: (649..650) \")\"\n ATMOSPHERE: (650..659) \"\n \"\n CONSTANT: (659..660)\n NUMBER: (659..660) \"1\"\n ATMOSPHERE: (660..669) \"\n \"\n FORM: (669..689)\n OPEN_PAREN: (669..670) \"(\"\n SYMBOL: (670..671)\n IDENTIFIER: (670..671) \"*\"\n ATMOSPHERE: (671..672) \" \"\n SYMBOL: (672..673)\n IDENTIFIER: (672..673) \"n\"\n ATMOSPHERE: (673..674) \" \"\n FORM: (674..688)\n OPEN_PAREN: (674..675) \"(\"\n SYMBOL: (675..679)\n IDENTIFIER: (675..679) \"fact\"\n ATMOSPHERE: (679..680) \" \"\n FORM: (680..687)\n OPEN_PAREN: (680..681) \"(\"\n SYMBOL: (681..682)\n IDENTIFIER: (681..682) \"-\"\n ATMOSPHERE: (682..683) \" \"\n SYMBOL: (683..684)\n IDENTIFIER: (683..684) \"n\"\n ATMOSPHERE: (684..685) \" \"\n CONSTANT: (685..686)\n NUMBER: (685..686) \"1\"\n CLOSE_PAREN: (686..687) \")\"\n CLOSE_PAREN: (687..688) \")\"\n CLOSE_PAREN: (688..689) \")\"\n CLOSE_PAREN: (689..690) \")\"\n CLOSE_PAREN: (690..691) \")\"\n CLOSE_PAREN: (691..692) \")\"\n CLOSE_PAREN: (692..693) \")\"\n CLOSE_PAREN: (693..694) \")\"\n ATMOSPHERE: (694..696) \"\n\n\"\n FORM: (696..715)\n OPEN_PAREN: (696..697) \"(\"\n SYMBOL: (697..704)\n IDENTIFIER: (697..704) \"display\"\n ATMOSPHERE: (704..705) \" \"\n FORM: (705..714)\n OPEN_PAREN: (705..706) \"(\"\n SYMBOL: (706..710)\n IDENTIFIER: (706..710) \"fact\"\n ATMOSPHERE: (710..711) \" \"\n CONSTANT: (711..713)\n NUMBER: (711..713) \"12\"\n CLOSE_PAREN: (713..714) \")\"\n CLOSE_PAREN: (714..715) \")\"\n FORM: (715..724)\n OPEN_PAREN: (715..716) \"(\"\n SYMBOL: (716..723)\n IDENTIFIER: (716..723) \"newline\"\n CLOSE_PAREN: (723..724) \")\"\n ATMOSPHERE: (724..725) \"\n\"\n"
-}
\ No newline at end of file
diff --git a/test/Feersum.Tests/_snapshots/SpecTests_spec tests compile and run.json b/test/Feersum.Tests/_snapshots/SpecTests_spec tests compile and run.json
index 0efac6a..3f98c0f 100644
--- a/test/Feersum.Tests/_snapshots/SpecTests_spec tests compile and run.json
+++ b/test/Feersum.Tests/_snapshots/SpecTests_spec tests compile and run.json
@@ -821,5 +821,10 @@
"Output": "<<{}>>\nfoo\nfoo:bar:baz\n",
"Error": "",
"Exit": 0
+ },
+ "alist.scm": {
+ "Output": "((foo . 10) (bar . 20) (baz . 30))\n",
+ "Error": "",
+ "Exit": 0
}
}
\ No newline at end of file