gitextract_0ybyg9g2/ ├── .gitattributes ├── .github/ │ ├── pull_request_template.md │ └── workflows/ │ └── main.yml ├── .gitignore ├── .gitmodules ├── .travis.yml ├── IMPLS.yml ├── LICENSE ├── Makefile ├── Makefile.impls ├── README.md ├── ci.sh ├── docs/ │ ├── FAQ.md │ ├── Hints.md │ ├── TODO │ ├── cheatsheet.html │ ├── exercises.md │ ├── graph/ │ │ ├── README.md │ │ ├── all_data.json │ │ ├── base_data.yaml │ │ ├── collect_data.js │ │ ├── graph_languages.js │ │ ├── index.html │ │ ├── package.json │ │ └── so-tags.csv │ ├── index.html │ ├── notes.md │ ├── step_notes.txt │ └── web/ │ ├── ansi.css │ ├── base.css │ ├── console.css │ ├── himera.css │ ├── layout.css │ ├── mal.js │ └── skeleton.css ├── examples/ │ ├── clojurewest2014.mal │ ├── exercises.mal │ ├── hello.mal │ └── presentation.mal ├── get-ci-matrix.py ├── impls/ │ ├── .gitignore │ ├── ada/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.adb │ │ ├── core.ads │ │ ├── envs.adb │ │ ├── envs.ads │ │ ├── eval_callback.ads │ │ ├── printer.adb │ │ ├── printer.ads │ │ ├── reader.adb │ │ ├── reader.ads │ │ ├── run │ │ ├── smart_pointers.adb │ │ ├── smart_pointers.ads │ │ ├── step0_repl.adb │ │ ├── step1_read_print.adb │ │ ├── step2_eval.adb │ │ ├── step3_env.adb │ │ ├── step4_if_fn_do.adb │ │ ├── step5_tco.adb │ │ ├── step6_file.adb │ │ ├── step7_quote.adb │ │ ├── step8_macros.adb │ │ ├── step9_try.adb │ │ ├── stepa_mal.adb │ │ ├── types-hash_map.adb │ │ ├── types-hash_map.ads │ │ ├── types-vector.adb │ │ ├── types-vector.ads │ │ ├── types.adb │ │ └── types.ads │ ├── ada.2/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README │ │ ├── core.adb │ │ ├── core.ads │ │ ├── envs.adb │ │ ├── envs.ads │ │ ├── err.adb │ │ ├── err.ads │ │ ├── garbage_collected.adb │ │ ├── garbage_collected.ads │ │ ├── printer.adb │ │ ├── printer.ads │ │ ├── reader.adb │ │ ├── reader.ads │ │ ├── readline.adb │ │ ├── readline.ads │ │ ├── run │ │ ├── step0_repl.adb │ │ ├── step1_read_print.adb │ │ ├── step2_eval.adb │ │ ├── step3_env.adb │ │ ├── step4_if_fn_do.adb │ │ ├── step5_tco.adb │ │ ├── step6_file.adb │ │ ├── step7_quote.adb │ │ ├── step8_macros.adb │ │ ├── step9_try.adb │ │ ├── stepa_mal.adb │ │ ├── types-atoms.adb │ │ ├── types-atoms.ads │ │ ├── types-builtins.adb │ │ ├── types-builtins.ads │ │ ├── types-fns.adb │ │ ├── types-fns.ads │ │ ├── types-maps.adb │ │ ├── types-maps.ads │ │ ├── types-sequences.adb │ │ ├── types-sequences.ads │ │ ├── types-strings.adb │ │ ├── types-strings.ads │ │ ├── types.adb │ │ └── types.ads │ ├── awk/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.awk │ │ ├── env.awk │ │ ├── printer.awk │ │ ├── reader.awk │ │ ├── run │ │ ├── step0_repl.awk │ │ ├── step1_read_print.awk │ │ ├── step2_eval.awk │ │ ├── step3_env.awk │ │ ├── step4_if_fn_do.awk │ │ ├── step5_tco.awk │ │ ├── step6_file.awk │ │ ├── step7_quote.awk │ │ ├── step8_macros.awk │ │ ├── step9_try.awk │ │ ├── stepA_mal.awk │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.awk │ ├── bash/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.sh │ │ ├── env.sh │ │ ├── printer.sh │ │ ├── reader.sh │ │ ├── run │ │ ├── step0_repl.sh │ │ ├── step1_read_print.sh │ │ ├── step2_eval.sh │ │ ├── step3_env.sh │ │ ├── step4_if_fn_do.sh │ │ ├── step5_tco.sh │ │ ├── step6_file.sh │ │ ├── step7_quote.sh │ │ ├── step8_macros.sh │ │ ├── step9_try.sh │ │ ├── stepA_mal.sh │ │ ├── tests/ │ │ │ └── stepA_mal.mal │ │ └── types.sh │ ├── basic/ │ │ ├── .args.mal │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── basicpp.py │ │ ├── cbmbasic_console.patch │ │ ├── core.in.bas │ │ ├── debug.in.bas │ │ ├── env.in.bas │ │ ├── mem.in.bas │ │ ├── printer.in.bas │ │ ├── reader.in.bas │ │ ├── readline.in.bas │ │ ├── run │ │ ├── step0_repl.in.bas │ │ ├── step1_read_print.in.bas │ │ ├── step2_eval.in.bas │ │ ├── step3_env.in.bas │ │ ├── step4_if_fn_do.in.bas │ │ ├── step5_tco.in.bas │ │ ├── step6_file.in.bas │ │ ├── step7_quote.in.bas │ │ ├── step8_macros.in.bas │ │ ├── step9_try.in.bas │ │ ├── stepA_mal.in.bas │ │ ├── types.in.bas │ │ └── variables.txt │ ├── bbc-basic/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── core.bas │ │ ├── env.bas │ │ ├── printer.bas │ │ ├── reader.bas │ │ ├── riscos/ │ │ │ ├── .gitignore │ │ │ ├── setup,feb │ │ │ └── tokenize,ffe │ │ ├── run │ │ ├── step0_repl.bas │ │ ├── step1_read_print.bas │ │ ├── step2_eval.bas │ │ ├── step3_env.bas │ │ ├── step4_if_fn_do.bas │ │ ├── step5_tco.bas │ │ ├── step6_file.bas │ │ ├── step7_quote.bas │ │ ├── step8_macros.bas │ │ ├── step9_try.bas │ │ ├── stepA_mal.bas │ │ └── types.bas │ ├── c/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.c │ │ ├── core.h │ │ ├── env.c │ │ ├── interop.c │ │ ├── interop.h │ │ ├── printer.c │ │ ├── printer.h │ │ ├── reader.c │ │ ├── reader.h │ │ ├── readline.c │ │ ├── readline.h │ │ ├── run │ │ ├── step0_repl.c │ │ ├── step1_read_print.c │ │ ├── step2_eval.c │ │ ├── step3_env.c │ │ ├── step4_if_fn_do.c │ │ ├── step5_tco.c │ │ ├── step6_file.c │ │ ├── step7_quote.c │ │ ├── step8_macros.c │ │ ├── step9_try.c │ │ ├── stepA_mal.c │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ ├── types.c │ │ └── types.h │ ├── c.2/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README │ │ ├── core.c │ │ ├── core.h │ │ ├── env.c │ │ ├── env.h │ │ ├── error.c │ │ ├── error.h │ │ ├── hashmap.c │ │ ├── hashmap.h │ │ ├── linked_list.c │ │ ├── linked_list.h │ │ ├── printer.c │ │ ├── printer.h │ │ ├── reader.c │ │ ├── reader.h │ │ ├── readline.c │ │ ├── readline.h │ │ ├── run │ │ ├── step0_repl.c │ │ ├── step1_read_print.c │ │ ├── step2_eval.c │ │ ├── step3_env.c │ │ ├── step4_if_fn_do.c │ │ ├── step5_tco.c │ │ ├── step6_file.c │ │ ├── step7_quote.c │ │ ├── step8_macros.c │ │ ├── step9_try.c │ │ ├── stepA_mal.c │ │ ├── tests/ │ │ │ └── stepA_mal.mal │ │ ├── types.c │ │ ├── types.h │ │ ├── vector.c │ │ └── vector.h │ ├── chuck/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── chuck.md │ │ ├── core.ck │ │ ├── env.ck │ │ ├── func.ck │ │ ├── notes.md │ │ ├── printer.ck │ │ ├── reader.ck │ │ ├── readline.ck │ │ ├── run │ │ ├── step0_repl.ck │ │ ├── step1_read_print.ck │ │ ├── step2_eval.ck │ │ ├── step3_env.ck │ │ ├── step4_if_fn_do.ck │ │ ├── step5_tco.ck │ │ ├── step6_file.ck │ │ ├── step7_quote.ck │ │ ├── step8_macros.ck │ │ ├── step9_try.ck │ │ ├── stepA_mal.ck │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ ├── types/ │ │ │ ├── MalObject.ck │ │ │ ├── MalSubr.ck │ │ │ ├── mal/ │ │ │ │ ├── MalAtom.ck │ │ │ │ ├── MalError.ck │ │ │ │ ├── MalFalse.ck │ │ │ │ ├── MalHashMap.ck │ │ │ │ ├── MalInt.ck │ │ │ │ ├── MalKeyword.ck │ │ │ │ ├── MalList.ck │ │ │ │ ├── MalNil.ck │ │ │ │ ├── MalString.ck │ │ │ │ ├── MalSymbol.ck │ │ │ │ ├── MalTrue.ck │ │ │ │ └── MalVector.ck │ │ │ └── subr/ │ │ │ ├── MalAdd.ck │ │ │ ├── MalApply.ck │ │ │ ├── MalAssoc.ck │ │ │ ├── MalAtomify.ck │ │ │ ├── MalConcat.ck │ │ │ ├── MalConj.ck │ │ │ ├── MalCons.ck │ │ │ ├── MalCount.ck │ │ │ ├── MalDeref.ck │ │ │ ├── MalDissoc.ck │ │ │ ├── MalDiv.ck │ │ │ ├── MalDoReset.ck │ │ │ ├── MalDoSwap.ck │ │ │ ├── MalEqual.ck │ │ │ ├── MalFirst.ck │ │ │ ├── MalGet.ck │ │ │ ├── MalGreater.ck │ │ │ ├── MalGreaterEqual.ck │ │ │ ├── MalHashMapify.ck │ │ │ ├── MalIsAtom.ck │ │ │ ├── MalIsContains.ck │ │ │ ├── MalIsEmpty.ck │ │ │ ├── MalIsFalse.ck │ │ │ ├── MalIsFn.ck │ │ │ ├── MalIsHashMap.ck │ │ │ ├── MalIsKeyword.ck │ │ │ ├── MalIsList.ck │ │ │ ├── MalIsMacro.ck │ │ │ ├── MalIsNil.ck │ │ │ ├── MalIsNumber.ck │ │ │ ├── MalIsString.ck │ │ │ ├── MalIsSymbol.ck │ │ │ ├── MalIsTrue.ck │ │ │ ├── MalIsVector.ck │ │ │ ├── MalKeys.ck │ │ │ ├── MalKeywordify.ck │ │ │ ├── MalLess.ck │ │ │ ├── MalLessEqual.ck │ │ │ ├── MalListify.ck │ │ │ ├── MalMap.ck │ │ │ ├── MalMeta.ck │ │ │ ├── MalMul.ck │ │ │ ├── MalNth.ck │ │ │ ├── MalPrStr.ck │ │ │ ├── MalPrintln.ck │ │ │ ├── MalPrn.ck │ │ │ ├── MalReadStr.ck │ │ │ ├── MalReadline.ck │ │ │ ├── MalRest.ck │ │ │ ├── MalSeq.ck │ │ │ ├── MalSequential.ck │ │ │ ├── MalSlurp.ck │ │ │ ├── MalStr.ck │ │ │ ├── MalSub.ck │ │ │ ├── MalSymbolify.ck │ │ │ ├── MalThrow.ck │ │ │ ├── MalTimeMs.ck │ │ │ ├── MalVals.ck │ │ │ ├── MalVec.ck │ │ │ ├── MalVectorify.ck │ │ │ └── MalWithMeta.ck │ │ └── util/ │ │ ├── Constants.ck │ │ ├── String.ck │ │ └── Util.ck │ ├── clojure/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── package.json │ │ ├── project.clj │ │ ├── run │ │ ├── src/ │ │ │ └── mal/ │ │ │ ├── core.cljc │ │ │ ├── env.cljc │ │ │ ├── node_readline.js │ │ │ ├── printer.cljc │ │ │ ├── reader.cljc │ │ │ ├── readline.clj │ │ │ ├── readline.cljs │ │ │ ├── step0_repl.cljc │ │ │ ├── step1_read_print.cljc │ │ │ ├── step2_eval.cljc │ │ │ ├── step3_env.cljc │ │ │ ├── step4_if_fn_do.cljc │ │ │ ├── step5_tco.cljc │ │ │ ├── step6_file.cljc │ │ │ ├── step7_quote.cljc │ │ │ ├── step8_macros.cljc │ │ │ ├── step9_try.cljc │ │ │ └── stepA_mal.cljc │ │ └── tests/ │ │ ├── step5_tco.mal │ │ └── stepA_mal.mal │ ├── coffee/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.coffee │ │ ├── env.coffee │ │ ├── node_readline.coffee │ │ ├── package.json │ │ ├── printer.coffee │ │ ├── reader.coffee │ │ ├── run │ │ ├── step0_repl.coffee │ │ ├── step1_read_print.coffee │ │ ├── step2_eval.coffee │ │ ├── step3_env.coffee │ │ ├── step4_if_fn_do.coffee │ │ ├── step5_tco.coffee │ │ ├── step6_file.coffee │ │ ├── step7_quote.coffee │ │ ├── step8_macros.coffee │ │ ├── step9_try.coffee │ │ ├── stepA_mal.coffee │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ └── types.coffee │ ├── common-lisp/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.org │ │ ├── fake-readline.lisp │ │ ├── hist/ │ │ │ └── .keepdir │ │ ├── run │ │ ├── run-abcl.lisp │ │ ├── run-mkcl.lisp │ │ ├── src/ │ │ │ ├── core.lisp │ │ │ ├── env.lisp │ │ │ ├── printer.lisp │ │ │ ├── reader.lisp │ │ │ ├── step0_repl.lisp │ │ │ ├── step1_read_print.lisp │ │ │ ├── step2_eval.lisp │ │ │ ├── step3_env.lisp │ │ │ ├── step4_if_fn_do.lisp │ │ │ ├── step5_tco.lisp │ │ │ ├── step6_file.lisp │ │ │ ├── step7_quote.lisp │ │ │ ├── step8_macros.lisp │ │ │ ├── step9_try.lisp │ │ │ ├── stepA_mal.lisp │ │ │ ├── types.lisp │ │ │ └── utils.lisp │ │ ├── step0_repl.asd │ │ ├── step1_read_print.asd │ │ ├── step2_eval.asd │ │ ├── step3_env.asd │ │ ├── step4_if_fn_do.asd │ │ ├── step5_tco.asd │ │ ├── step6_file.asd │ │ ├── step7_quote.asd │ │ ├── step8_macros.asd │ │ ├── step9_try.asd │ │ ├── stepA_mal.asd │ │ └── tests/ │ │ └── stepA_mal.mal │ ├── cpp/ │ │ ├── .gitignore │ │ ├── Core.cpp │ │ ├── Debug.h │ │ ├── Dockerfile │ │ ├── Environment.cpp │ │ ├── Environment.h │ │ ├── MAL.h │ │ ├── Makefile │ │ ├── README.md │ │ ├── ReadLine.cpp │ │ ├── ReadLine.h │ │ ├── Reader.cpp │ │ ├── RefCountedPtr.h │ │ ├── StaticList.h │ │ ├── String.cpp │ │ ├── String.h │ │ ├── Types.cpp │ │ ├── Types.h │ │ ├── Validation.cpp │ │ ├── Validation.h │ │ ├── docker.sh │ │ ├── run │ │ ├── step0_repl.cpp │ │ ├── step1_read_print.cpp │ │ ├── step2_eval.cpp │ │ ├── step3_env.cpp │ │ ├── step4_if_fn_do.cpp │ │ ├── step5_tco.cpp │ │ ├── step6_file.cpp │ │ ├── step7_quote.cpp │ │ ├── step8_macros.cpp │ │ ├── step9_try.cpp │ │ ├── stepA_mal.cpp │ │ └── tests/ │ │ └── step5_tco.mal │ ├── crystal/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.cr │ │ ├── env.cr │ │ ├── error.cr │ │ ├── printer.cr │ │ ├── reader.cr │ │ ├── run │ │ ├── shard.yml │ │ ├── step0_repl.cr │ │ ├── step1_read_print.cr │ │ ├── step2_eval.cr │ │ ├── step3_env.cr │ │ ├── step4_if_fn_do.cr │ │ ├── step5_tco.cr │ │ ├── step6_file.cr │ │ ├── step7_quote.cr │ │ ├── step8_macros.cr │ │ ├── step9_try.cr │ │ ├── stepA_mal.cr │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.cr │ ├── cs/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.cs │ │ ├── env.cs │ │ ├── getline.cs │ │ ├── interop.cs │ │ ├── printer.cs │ │ ├── reader.cs │ │ ├── readline.cs │ │ ├── run │ │ ├── step0_repl.cs │ │ ├── step1_read_print.cs │ │ ├── step2_eval.cs │ │ ├── step3_env.cs │ │ ├── step4_if_fn_do.cs │ │ ├── step5_tco.cs │ │ ├── step6_file.cs │ │ ├── step7_quote.cs │ │ ├── step8_macros.cs │ │ ├── step9_try.cs │ │ ├── stepA_mal.cs │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.cs │ ├── d/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── env.d │ │ ├── main.di │ │ ├── mal_core.d │ │ ├── printer.d │ │ ├── reader.d │ │ ├── readline.d │ │ ├── run │ │ ├── step0_repl.d │ │ ├── step1_read_print.d │ │ ├── step2_eval.d │ │ ├── step3_env.d │ │ ├── step4_if_fn_do.d │ │ ├── step5_tco.d │ │ ├── step6_file.d │ │ ├── step7_quote.d │ │ ├── step8_macros.d │ │ ├── step9_try.d │ │ ├── stepA_mal.d │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.d │ ├── dart/ │ │ ├── .analysis_options │ │ ├── .packages │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.dart │ │ ├── env.dart │ │ ├── printer.dart │ │ ├── pubspec.yaml │ │ ├── reader.dart │ │ ├── run │ │ ├── step0_repl.dart │ │ ├── step1_read_print.dart │ │ ├── step2_eval.dart │ │ ├── step3_env.dart │ │ ├── step4_if_fn_do.dart │ │ ├── step5_tco.dart │ │ ├── step6_file.dart │ │ ├── step7_quote.dart │ │ ├── step8_macros.dart │ │ ├── step9_try.dart │ │ ├── stepA_mal.dart │ │ └── types.dart │ ├── elisp/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── mal/ │ │ │ ├── core.el │ │ │ ├── env.el │ │ │ ├── printer.el │ │ │ ├── reader.el │ │ │ └── types.el │ │ ├── run │ │ ├── step0_repl.el │ │ ├── step1_read_print.el │ │ ├── step2_eval.el │ │ ├── step3_env.el │ │ ├── step4_if_fn_do.el │ │ ├── step5_tco.el │ │ ├── step6_file.el │ │ ├── step7_quote.el │ │ ├── step8_macros.el │ │ ├── step9_try.el │ │ ├── stepA_mal.el │ │ └── tests/ │ │ ├── step5_tco.mal │ │ └── stepA_mal.mal │ ├── elixir/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── lib/ │ │ │ ├── mal/ │ │ │ │ ├── atom.ex │ │ │ │ ├── core.ex │ │ │ │ ├── env.ex │ │ │ │ ├── printer.ex │ │ │ │ ├── reader.ex │ │ │ │ └── types.ex │ │ │ ├── mal.ex │ │ │ └── mix/ │ │ │ └── tasks/ │ │ │ ├── step0_repl.ex │ │ │ ├── step1_read_print.ex │ │ │ ├── step2_eval.ex │ │ │ ├── step3_env.ex │ │ │ ├── step4_if_fn_do.ex │ │ │ ├── step5_tco.ex │ │ │ ├── step6_file.ex │ │ │ ├── step7_quote.ex │ │ │ ├── step8_macros.ex │ │ │ ├── step9_try.ex │ │ │ └── stepA_mal.ex │ │ ├── mix.exs │ │ ├── run │ │ └── tests/ │ │ └── step5_tco.mal │ ├── elm/ │ │ ├── .dockerignore │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── bootstrap.js │ │ ├── elm.json │ │ ├── node_readline.js │ │ ├── package.json │ │ ├── run │ │ └── src/ │ │ ├── Core.elm │ │ ├── Env.elm │ │ ├── Eval.elm │ │ ├── IO.elm │ │ ├── Printer.elm │ │ ├── Reader.elm │ │ ├── Step0_repl.elm │ │ ├── Step1_read_print.elm │ │ ├── Step2_eval.elm │ │ ├── Step3_env.elm │ │ ├── Step4_if_fn_do.elm │ │ ├── Step5_tco.elm │ │ ├── Step6_file.elm │ │ ├── Step7_quote.elm │ │ ├── Step8_macros.elm │ │ ├── Step9_try.elm │ │ ├── StepA_mal.elm │ │ ├── Types.elm │ │ └── Utils.elm │ ├── erlang/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── rebar.config │ │ ├── rebar.config.script │ │ ├── run │ │ ├── src/ │ │ │ ├── atom.erl │ │ │ ├── core.erl │ │ │ ├── env.erl │ │ │ ├── mal.app.src │ │ │ ├── printer.erl │ │ │ ├── reader.erl │ │ │ ├── step0_repl.erl │ │ │ ├── step1_read_print.erl │ │ │ ├── step2_eval.erl │ │ │ ├── step3_env.erl │ │ │ ├── step4_if_fn_do.erl │ │ │ ├── step5_tco.erl │ │ │ ├── step6_file.erl │ │ │ ├── step7_quote.erl │ │ │ ├── step8_macros.erl │ │ │ ├── step9_try.erl │ │ │ ├── stepA_mal.erl │ │ │ └── types.erl │ │ └── tests/ │ │ └── step5_tco.mal │ ├── es6/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.mjs │ │ ├── env.mjs │ │ ├── node_readline.mjs │ │ ├── package.json │ │ ├── printer.mjs │ │ ├── reader.mjs │ │ ├── run │ │ ├── step0_repl.mjs │ │ ├── step1_read_print.mjs │ │ ├── step2_eval.mjs │ │ ├── step3_env.mjs │ │ ├── step4_if_fn_do.mjs │ │ ├── step5_tco.mjs │ │ ├── step6_file.mjs │ │ ├── step7_quote.mjs │ │ ├── step8_macros.mjs │ │ ├── step9_try.mjs │ │ ├── stepA_mal.mjs │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.mjs │ ├── factor/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── lib/ │ │ │ ├── core/ │ │ │ │ ├── core-tests.factor │ │ │ │ └── core.factor │ │ │ ├── env/ │ │ │ │ ├── env-tests.factor │ │ │ │ └── env.factor │ │ │ ├── printer/ │ │ │ │ ├── printer-tests.factor │ │ │ │ └── printer.factor │ │ │ ├── reader/ │ │ │ │ ├── reader-tests.factor │ │ │ │ └── reader.factor │ │ │ └── types/ │ │ │ └── types.factor │ │ ├── run │ │ ├── step0_repl/ │ │ │ ├── deploy.factor │ │ │ └── step0_repl.factor │ │ ├── step1_read_print/ │ │ │ ├── deploy.factor │ │ │ └── step1_read_print.factor │ │ ├── step2_eval/ │ │ │ ├── deploy.factor │ │ │ └── step2_eval.factor │ │ ├── step3_env/ │ │ │ ├── deploy.factor │ │ │ └── step3_env.factor │ │ ├── step4_if_fn_do/ │ │ │ ├── deploy.factor │ │ │ └── step4_if_fn_do.factor │ │ ├── step5_tco/ │ │ │ ├── deploy.factor │ │ │ └── step5_tco.factor │ │ ├── step6_file/ │ │ │ ├── deploy.factor │ │ │ └── step6_file.factor │ │ ├── step7_quote/ │ │ │ ├── deploy.factor │ │ │ └── step7_quote.factor │ │ ├── step8_macros/ │ │ │ ├── deploy.factor │ │ │ └── step8_macros.factor │ │ ├── step9_try/ │ │ │ ├── deploy.factor │ │ │ └── step9_try.factor │ │ ├── stepA_mal/ │ │ │ ├── deploy.factor │ │ │ └── stepA_mal.factor │ │ └── tests/ │ │ └── step5_tco.mal │ ├── fantom/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── run │ │ ├── src/ │ │ │ ├── mallib/ │ │ │ │ ├── build.fan │ │ │ │ └── fan/ │ │ │ │ ├── core.fan │ │ │ │ ├── env.fan │ │ │ │ ├── interop.fan │ │ │ │ ├── reader.fan │ │ │ │ └── types.fan │ │ │ ├── step0_repl/ │ │ │ │ ├── build.fan │ │ │ │ └── fan/ │ │ │ │ └── main.fan │ │ │ ├── step1_read_print/ │ │ │ │ ├── build.fan │ │ │ │ └── fan/ │ │ │ │ └── main.fan │ │ │ ├── step2_eval/ │ │ │ │ ├── build.fan │ │ │ │ └── fan/ │ │ │ │ └── main.fan │ │ │ ├── step3_env/ │ │ │ │ ├── build.fan │ │ │ │ └── fan/ │ │ │ │ └── main.fan │ │ │ ├── step4_if_fn_do/ │ │ │ │ ├── build.fan │ │ │ │ └── fan/ │ │ │ │ └── main.fan │ │ │ ├── step5_tco/ │ │ │ │ ├── build.fan │ │ │ │ └── fan/ │ │ │ │ └── main.fan │ │ │ ├── step6_file/ │ │ │ │ ├── build.fan │ │ │ │ └── fan/ │ │ │ │ └── main.fan │ │ │ ├── step7_quote/ │ │ │ │ ├── build.fan │ │ │ │ └── fan/ │ │ │ │ └── main.fan │ │ │ ├── step8_macros/ │ │ │ │ ├── build.fan │ │ │ │ └── fan/ │ │ │ │ └── main.fan │ │ │ ├── step9_try/ │ │ │ │ ├── build.fan │ │ │ │ └── fan/ │ │ │ │ └── main.fan │ │ │ └── stepA_mal/ │ │ │ ├── build.fan │ │ │ └── fan/ │ │ │ └── main.fan │ │ └── tests/ │ │ ├── step5_tco.mal │ │ └── stepA_mal.mal │ ├── fennel/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.fnl │ │ ├── env.fnl │ │ ├── printer.fnl │ │ ├── reader.fnl │ │ ├── run │ │ ├── step0_repl.fnl │ │ ├── step1_read_print.fnl │ │ ├── step2_eval.fnl │ │ ├── step3_env.fnl │ │ ├── step4_if_fn_do.fnl │ │ ├── step5_tco.fnl │ │ ├── step6_file.fnl │ │ ├── step7_quote.fnl │ │ ├── step8_macros.fnl │ │ ├── step9_try.fnl │ │ ├── stepA_mal.fnl │ │ ├── types.fnl │ │ └── utils.fnl │ ├── forth/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.fs │ │ ├── env.fs │ │ ├── misc-tests.fs │ │ ├── printer.fs │ │ ├── reader.fs │ │ ├── run │ │ ├── step0_repl.fs │ │ ├── step1_read_print.fs │ │ ├── step2_eval.fs │ │ ├── step3_env.fs │ │ ├── step4_if_fn_do.fs │ │ ├── step5_tco.fs │ │ ├── step6_file.fs │ │ ├── step7_quote.fs │ │ ├── step8_macros.fs │ │ ├── step9_try.fs │ │ ├── stepA_mal.fs │ │ ├── str.fs │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ └── types.fs │ ├── fsharp/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.fs │ │ ├── env.fs │ │ ├── error.fs │ │ ├── node.fs │ │ ├── printer.fs │ │ ├── reader.fs │ │ ├── readline.fs │ │ ├── run │ │ ├── step0_repl.fs │ │ ├── step1_read_print.fs │ │ ├── step2_eval.fs │ │ ├── step3_env.fs │ │ ├── step4_if_fn_do.fs │ │ ├── step5_tco.fs │ │ ├── step6_file.fs │ │ ├── step7_quote.fs │ │ ├── step8_macros.fs │ │ ├── step9_try.fs │ │ ├── stepA_mal.fs │ │ ├── terminal.cs │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ ├── tokenizer.fs │ │ └── types.fs │ ├── gnu-smalltalk/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.st │ │ ├── env.st │ │ ├── func.st │ │ ├── printer.st │ │ ├── reader.st │ │ ├── readline.st │ │ ├── run │ │ ├── step0_repl.st │ │ ├── step1_read_print.st │ │ ├── step2_eval.st │ │ ├── step3_env.st │ │ ├── step4_if_fn_do.st │ │ ├── step5_tco.st │ │ ├── step6_file.st │ │ ├── step7_quote.st │ │ ├── step8_macros.st │ │ ├── step9_try.st │ │ ├── stepA_mal.st │ │ ├── tests/ │ │ │ └── stepA_mal.mal │ │ ├── types.st │ │ └── util.st │ ├── go/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── go.mod │ │ ├── run │ │ ├── src/ │ │ │ ├── core/ │ │ │ │ └── core.go │ │ │ ├── env/ │ │ │ │ └── env.go │ │ │ ├── printer/ │ │ │ │ └── printer.go │ │ │ ├── reader/ │ │ │ │ └── reader.go │ │ │ ├── readline/ │ │ │ │ └── readline.go │ │ │ ├── step0_repl/ │ │ │ │ └── step0_repl.go │ │ │ ├── step1_read_print/ │ │ │ │ └── step1_read_print.go │ │ │ ├── step2_eval/ │ │ │ │ └── step2_eval.go │ │ │ ├── step3_env/ │ │ │ │ └── step3_env.go │ │ │ ├── step4_if_fn_do/ │ │ │ │ └── step4_if_fn_do.go │ │ │ ├── step5_tco/ │ │ │ │ └── step5_tco.go │ │ │ ├── step6_file/ │ │ │ │ └── step6_file.go │ │ │ ├── step7_quote/ │ │ │ │ └── step7_quote.go │ │ │ ├── step8_macros/ │ │ │ │ └── step8_macros.go │ │ │ ├── step9_try/ │ │ │ │ └── step9_try.go │ │ │ ├── stepA_mal/ │ │ │ │ └── stepA_mal.go │ │ │ └── types/ │ │ │ └── types.go │ │ └── tests/ │ │ ├── step2_eval.mal │ │ ├── step4_if_fn_do.mal │ │ └── step5_tco.mal │ ├── groovy/ │ │ ├── Dockerfile │ │ ├── GroovyWrapper.groovy │ │ ├── Makefile │ │ ├── core.groovy │ │ ├── env.groovy │ │ ├── printer.groovy │ │ ├── reader.groovy │ │ ├── run │ │ ├── step0_repl.groovy │ │ ├── step1_read_print.groovy │ │ ├── step2_eval.groovy │ │ ├── step3_env.groovy │ │ ├── step4_if_fn_do.groovy │ │ ├── step5_tco.groovy │ │ ├── step6_file.groovy │ │ ├── step7_quote.groovy │ │ ├── step8_macros.groovy │ │ ├── step9_try.groovy │ │ ├── stepA_mal.groovy │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.groovy │ ├── guile/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.scm │ │ ├── env.scm │ │ ├── pcre.scm │ │ ├── printer.scm │ │ ├── reader.scm │ │ ├── readline.scm │ │ ├── run │ │ ├── step0_repl.scm │ │ ├── step1_read_print.scm │ │ ├── step2_eval.scm │ │ ├── step3_env.scm │ │ ├── step4_if_fn_do.scm │ │ ├── step5_tco.scm │ │ ├── step6_file.scm │ │ ├── step7_quote.scm │ │ ├── step8_macros.scm │ │ ├── step9_try.scm │ │ ├── stepA_mal.scm │ │ └── types.scm │ ├── hare/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── makefile │ │ ├── mal/ │ │ │ ├── core.ha │ │ │ ├── env.ha │ │ │ ├── error.ha │ │ │ ├── gc.ha │ │ │ ├── hashmap.ha │ │ │ ├── printer.ha │ │ │ ├── reader.ha │ │ │ ├── tokenizer.ha │ │ │ └── types.ha │ │ ├── run │ │ ├── step0_repl.ha │ │ ├── step1_read_print.ha │ │ ├── step2_eval.ha │ │ ├── step3_env.ha │ │ ├── step4_if_fn_do.ha │ │ ├── step5_tco.ha │ │ ├── step6_file.ha │ │ ├── step7_quote.ha │ │ ├── step8_macros.ha │ │ ├── step9_try.ha │ │ └── stepA_mal.ha │ ├── haskell/ │ │ ├── Core.hs │ │ ├── Dockerfile │ │ ├── Env.hs │ │ ├── Makefile │ │ ├── Printer.hs │ │ ├── Reader.hs │ │ ├── Readline.hs │ │ ├── Types.hs │ │ ├── run │ │ ├── step0_repl.hs │ │ ├── step1_read_print.hs │ │ ├── step2_eval.hs │ │ ├── step3_env.hs │ │ ├── step4_if_fn_do.hs │ │ ├── step5_tco.hs │ │ ├── step6_file.hs │ │ ├── step7_quote.hs │ │ ├── step8_macros.hs │ │ ├── step9_try.hs │ │ ├── stepA_mal.hs │ │ └── tests/ │ │ └── step5_tco.mal │ ├── haxe/ │ │ ├── Compat.hx │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── Step0_repl.hx │ │ ├── Step1_read_print.hx │ │ ├── Step2_eval.hx │ │ ├── Step3_env.hx │ │ ├── Step4_if_fn_do.hx │ │ ├── Step5_tco.hx │ │ ├── Step6_file.hx │ │ ├── Step7_quote.hx │ │ ├── Step8_macros.hx │ │ ├── Step9_try.hx │ │ ├── StepA_mal.hx │ │ ├── core/ │ │ │ └── Core.hx │ │ ├── env/ │ │ │ └── Env.hx │ │ ├── node_readline.js │ │ ├── package.json │ │ ├── printer/ │ │ │ └── Printer.hx │ │ ├── reader/ │ │ │ ├── BlankLine.hx │ │ │ └── Reader.hx │ │ ├── run │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types/ │ │ ├── MalException.hx │ │ └── Types.hx │ ├── hy/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.hy │ │ ├── env.hy │ │ ├── mal_types.hy │ │ ├── printer.hy │ │ ├── reader.hy │ │ ├── run │ │ ├── step0_repl.hy │ │ ├── step1_read_print.hy │ │ ├── step2_eval.hy │ │ ├── step3_env.hy │ │ ├── step4_if_fn_do.hy │ │ ├── step5_tco.hy │ │ ├── step6_file.hy │ │ ├── step7_quote.hy │ │ ├── step8_macros.hy │ │ ├── step9_try.hy │ │ ├── stepA_mal.hy │ │ └── tests/ │ │ └── step5_tco.mal │ ├── io/ │ │ ├── Dockerfile │ │ ├── Env.io │ │ ├── Makefile │ │ ├── MalCore.io │ │ ├── MalReader.io │ │ ├── MalReadline.io │ │ ├── MalTypes.io │ │ ├── run │ │ ├── step0_repl.io │ │ ├── step1_read_print.io │ │ ├── step2_eval.io │ │ ├── step3_env.io │ │ ├── step4_if_fn_do.io │ │ ├── step5_tco.io │ │ ├── step6_file.io │ │ ├── step7_quote.io │ │ ├── step8_macros.io │ │ ├── step9_try.io │ │ ├── stepA_mal.io │ │ └── tests/ │ │ ├── step5_tco.mal │ │ └── stepA_mal.mal │ ├── janet/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.janet │ │ ├── env.janet │ │ ├── printer.janet │ │ ├── reader.janet │ │ ├── run │ │ ├── step0_repl.janet │ │ ├── step1_read_print.janet │ │ ├── step2_eval.janet │ │ ├── step3_env.janet │ │ ├── step4_if_fn_do.janet │ │ ├── step5_tco.janet │ │ ├── step6_file.janet │ │ ├── step7_quote.janet │ │ ├── step8_macros.janet │ │ ├── step9_try.janet │ │ ├── stepA_mal.janet │ │ ├── tests/ │ │ │ └── stepA_mal.mal │ │ ├── types.janet │ │ └── utils.janet │ ├── java/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── pom.xml │ │ ├── run │ │ ├── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── mal/ │ │ │ ├── core.java │ │ │ ├── env.java │ │ │ ├── printer.java │ │ │ ├── reader.java │ │ │ ├── readline.java │ │ │ ├── step0_repl.java │ │ │ ├── step1_read_print.java │ │ │ ├── step2_eval.java │ │ │ ├── step3_env.java │ │ │ ├── step4_if_fn_do.java │ │ │ ├── step5_tco.java │ │ │ ├── step6_file.java │ │ │ ├── step7_quote.java │ │ │ ├── step8_macros.java │ │ │ ├── step9_try.java │ │ │ ├── stepA_mal.java │ │ │ └── types.java │ │ └── tests/ │ │ └── step5_tco.mal │ ├── java-truffle/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── build.gradle │ │ ├── make-native.sh │ │ ├── run │ │ ├── settings.gradle │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── truffle/ │ │ └── mal/ │ │ ├── Core.java │ │ ├── MalEnv.java │ │ ├── Printer.java │ │ ├── Reader.java │ │ ├── Types.java │ │ ├── step0_repl.java │ │ ├── step1_read_print.java │ │ ├── step2_eval.java │ │ ├── step3_env.java │ │ ├── step4_if_fn_do.java │ │ ├── step5_tco.java │ │ ├── step6_file.java │ │ ├── step7_quote.java │ │ ├── step8_macros.java │ │ ├── step9_try.java │ │ ├── stepA_mal.java │ │ ├── stepB_calls.java │ │ ├── stepC_slots.java │ │ ├── stepD_caching.java │ │ └── stepE_macros.java │ ├── jq/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.jq │ │ ├── docs/ │ │ │ └── impl-notes.md │ │ ├── env.jq │ │ ├── interp.jq │ │ ├── printer.jq │ │ ├── reader.jq │ │ ├── run │ │ ├── step0_repl.jq │ │ ├── step1_read_print.jq │ │ ├── step2_eval.jq │ │ ├── step3_env.jq │ │ ├── step4_if_fn_do.jq │ │ ├── step5_tco.jq │ │ ├── step6_file.jq │ │ ├── step7_quote.jq │ │ ├── step8_macros.jq │ │ ├── step9_try.jq │ │ ├── stepA_mal.jq │ │ └── utils.jq │ ├── js/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.js │ │ ├── env.js │ │ ├── interop.js │ │ ├── jq_readline.js │ │ ├── node_readline.js │ │ ├── package.json │ │ ├── printer.js │ │ ├── reader.js │ │ ├── run │ │ ├── step0_repl.js │ │ ├── step1_read_print.js │ │ ├── step2_eval.js │ │ ├── step3_env.js │ │ ├── step4_if_fn_do.js │ │ ├── step5_tco.js │ │ ├── step6_file.js │ │ ├── step7_quote.js │ │ ├── step8_macros.js │ │ ├── step9_try.js │ │ ├── stepA_mal.js │ │ ├── tests/ │ │ │ ├── common.js │ │ │ ├── reader.js │ │ │ ├── step5_tco.mal │ │ │ ├── stepA_mal.mal │ │ │ └── types.js │ │ └── types.js │ ├── julia/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.jl │ │ ├── env.jl │ │ ├── printer.jl │ │ ├── reader.jl │ │ ├── readline_mod.jl │ │ ├── run │ │ ├── step0_repl.jl │ │ ├── step1_read_print.jl │ │ ├── step2_eval.jl │ │ ├── step3_env.jl │ │ ├── step4_if_fn_do.jl │ │ ├── step5_tco.jl │ │ ├── step6_file.jl │ │ ├── step7_quote.jl │ │ ├── step8_macros.jl │ │ ├── step9_try.jl │ │ ├── stepA_mal.jl │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.jl │ ├── kotlin/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── run │ │ ├── src/ │ │ │ └── mal/ │ │ │ ├── core.kt │ │ │ ├── env.kt │ │ │ ├── printer.kt │ │ │ ├── reader.kt │ │ │ ├── readline.kt │ │ │ ├── step0_repl.kt │ │ │ ├── step1_read_print.kt │ │ │ ├── step2_eval.kt │ │ │ ├── step3_env.kt │ │ │ ├── step4_if_fn_do.kt │ │ │ ├── step5_tco.kt │ │ │ ├── step6_file.kt │ │ │ ├── step7_quote.kt │ │ │ ├── step8_macros.kt │ │ │ ├── step9_try.kt │ │ │ ├── stepA_mal.kt │ │ │ └── types.kt │ │ └── tests/ │ │ └── step5_tco.mal │ ├── latex3/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.sty │ │ ├── env.sty │ │ ├── printer.sty │ │ ├── reader.sty │ │ ├── run │ │ ├── step0_repl.tex │ │ ├── step1_read_print.tex │ │ ├── step2_eval.tex │ │ ├── step3_env.tex │ │ ├── step4_if_fn_do.tex │ │ ├── step6_file.tex │ │ ├── step7_quote.tex │ │ ├── step8_macros.tex │ │ ├── step9_try.tex │ │ ├── stepA_mal.tex │ │ └── types.sty │ ├── lib/ │ │ ├── README.md │ │ ├── alias-hacks.mal │ │ ├── benchmark.mal │ │ ├── equality.mal │ │ ├── load-file-once.mal │ │ ├── memoize.mal │ │ ├── perf.mal │ │ ├── pprint.mal │ │ ├── protocols.mal │ │ ├── reducers.mal │ │ ├── test_cascade.mal │ │ ├── threading.mal │ │ └── trivial.mal │ ├── livescript/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.ls │ │ ├── env.ls │ │ ├── error.ls │ │ ├── node_readline.js │ │ ├── package.json │ │ ├── printer.ls │ │ ├── reader.ls │ │ ├── run │ │ ├── step0_repl.ls │ │ ├── step1_read_print.ls │ │ ├── step2_eval.ls │ │ ├── step3_env.ls │ │ ├── step4_if_fn_do.ls │ │ ├── step5_tco.ls │ │ ├── step6_file.ls │ │ ├── step7_quote.ls │ │ ├── step8_macros.ls │ │ ├── step9_try.ls │ │ ├── stepA_mal.ls │ │ └── utils.ls │ ├── logo/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.lg │ │ ├── env.lg │ │ ├── examples/ │ │ │ └── tree.mal │ │ ├── printer.lg │ │ ├── reader.lg │ │ ├── readline.lg │ │ ├── run │ │ ├── step0_repl.lg │ │ ├── step1_read_print.lg │ │ ├── step2_eval.lg │ │ ├── step3_env.lg │ │ ├── step4_if_fn_do.lg │ │ ├── step5_tco.lg │ │ ├── step6_file.lg │ │ ├── step7_quote.lg │ │ ├── step8_macros.lg │ │ ├── step9_try.lg │ │ ├── stepA_mal.lg │ │ ├── tests/ │ │ │ └── stepA_mal.mal │ │ └── types.lg │ ├── lua/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.lua │ │ ├── env.lua │ │ ├── printer.lua │ │ ├── reader.lua │ │ ├── readline.lua │ │ ├── run │ │ ├── step0_repl.lua │ │ ├── step1_read_print.lua │ │ ├── step2_eval.lua │ │ ├── step3_env.lua │ │ ├── step4_if_fn_do.lua │ │ ├── step5_tco.lua │ │ ├── step6_file.lua │ │ ├── step7_quote.lua │ │ ├── step8_macros.lua │ │ ├── step9_try.lua │ │ ├── stepA_mal.lua │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ ├── types.lua │ │ └── utils.lua │ ├── make/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README │ │ ├── core.mk │ │ ├── env.mk │ │ ├── gmsl.mk │ │ ├── numbers.mk │ │ ├── printer.mk │ │ ├── reader.mk │ │ ├── readline.mk │ │ ├── rules.mk │ │ ├── run │ │ ├── step0_repl.mk │ │ ├── step1_read_print.mk │ │ ├── step2_eval.mk │ │ ├── step3_env.mk │ │ ├── step4_if_fn_do.mk │ │ ├── step6_file.mk │ │ ├── step7_quote.mk │ │ ├── step8_macros.mk │ │ ├── step9_try.mk │ │ ├── stepA_mal.mk │ │ ├── tests/ │ │ │ └── stepA_mal.mal │ │ ├── types.mk │ │ └── util.mk │ ├── matlab/ │ │ ├── +types/ │ │ │ ├── Atom.m │ │ │ ├── Function.m │ │ │ ├── HashMap.m │ │ │ ├── List.m │ │ │ ├── MalException.m │ │ │ ├── Nil.m │ │ │ ├── Reader.m │ │ │ ├── Symbol.m │ │ │ └── Vector.m │ │ ├── .dockerignore │ │ ├── Dict.m │ │ ├── Dockerfile │ │ ├── Env.m │ │ ├── Makefile │ │ ├── core.m │ │ ├── printer.m │ │ ├── reader.m │ │ ├── run │ │ ├── step0_repl.m │ │ ├── step1_read_print.m │ │ ├── step2_eval.m │ │ ├── step3_env.m │ │ ├── step4_if_fn_do.m │ │ ├── step5_tco.m │ │ ├── step6_file.m │ │ ├── step7_quote.m │ │ ├── step8_macros.m │ │ ├── step9_try.m │ │ ├── stepA_mal.m │ │ └── type_utils.m │ ├── miniMAL/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.json │ │ ├── env.json │ │ ├── miniMAL-core.json │ │ ├── node_readline.js │ │ ├── package.json │ │ ├── printer.json │ │ ├── reader.json │ │ ├── run │ │ ├── step0_repl.json │ │ ├── step1_read_print.json │ │ ├── step2_eval.json │ │ ├── step3_env.json │ │ ├── step4_if_fn_do.json │ │ ├── step5_tco.json │ │ ├── step6_file.json │ │ ├── step7_quote.json │ │ ├── step8_macros.json │ │ ├── step9_try.json │ │ ├── stepA_mal.json │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.json │ ├── nasm/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── core.asm │ │ ├── env.asm │ │ ├── exceptions.asm │ │ ├── macros.mac │ │ ├── printer.asm │ │ ├── reader.asm │ │ ├── run │ │ ├── step0_repl.asm │ │ ├── step1_read_print.asm │ │ ├── step2_eval.asm │ │ ├── step3_env.asm │ │ ├── step4_if_fn_do.asm │ │ ├── step5_tco.asm │ │ ├── step6_file.asm │ │ ├── step7_quote.asm │ │ ├── step8_macros.asm │ │ ├── step9_try.asm │ │ ├── stepA_mal.asm │ │ ├── system.asm │ │ └── types.asm │ ├── nim/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.nim │ │ ├── env.nim │ │ ├── mal.nimble │ │ ├── nim.cfg │ │ ├── printer.nim │ │ ├── reader.nim │ │ ├── run │ │ ├── step0_repl.nim │ │ ├── step1_read_print.nim │ │ ├── step2_eval.nim │ │ ├── step3_env.nim │ │ ├── step4_if_fn_do.nim │ │ ├── step5_tco.nim │ │ ├── step6_file.nim │ │ ├── step7_quote.nim │ │ ├── step8_macros.nim │ │ ├── step9_try.nim │ │ ├── stepA_mal.nim │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.nim │ ├── objc/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.h │ │ ├── core.m │ │ ├── env.h │ │ ├── env.m │ │ ├── mal_readline.c │ │ ├── mal_readline.h │ │ ├── malfunc.h │ │ ├── malfunc.m │ │ ├── printer.h │ │ ├── printer.m │ │ ├── reader.h │ │ ├── reader.m │ │ ├── run │ │ ├── step0_repl.m │ │ ├── step1_read_print.m │ │ ├── step2_eval.m │ │ ├── step3_env.m │ │ ├── step4_if_fn_do.m │ │ ├── step5_tco.m │ │ ├── step6_file.m │ │ ├── step7_quote.m │ │ ├── step8_macros.m │ │ ├── step9_try.m │ │ ├── stepA_mal.m │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ ├── types.h │ │ └── types.m │ ├── objpascal/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.pas │ │ ├── mal_env.pas │ │ ├── mal_func.pas │ │ ├── mal_readline.pas │ │ ├── mal_types.pas │ │ ├── printer.pas │ │ ├── reader.pas │ │ ├── regexpr/ │ │ │ └── Source/ │ │ │ └── RegExpr.pas │ │ ├── run │ │ ├── step0_repl.pas │ │ ├── step1_read_print.pas │ │ ├── step2_eval.pas │ │ ├── step3_env.pas │ │ ├── step4_if_fn_do.pas │ │ ├── step5_tco.pas │ │ ├── step6_file.pas │ │ ├── step7_quote.pas │ │ ├── step8_macros.pas │ │ ├── step9_try.pas │ │ ├── stepA_mal.pas │ │ └── tests/ │ │ └── step5_tco.mal │ ├── ocaml/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.ml │ │ ├── env.ml │ │ ├── printer.ml │ │ ├── reader.ml │ │ ├── run │ │ ├── step0_repl.ml │ │ ├── step1_read_print.ml │ │ ├── step2_eval.ml │ │ ├── step3_env.ml │ │ ├── step4_if_fn_do.ml │ │ ├── step6_file.ml │ │ ├── step7_quote.ml │ │ ├── step8_macros.ml │ │ ├── step9_try.ml │ │ ├── stepA_mal.ml │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.ml │ ├── perl/ │ │ ├── Core.pm │ │ ├── Dockerfile │ │ ├── Env.pm │ │ ├── Interop.pm │ │ ├── Makefile │ │ ├── Printer.pm │ │ ├── README.md │ │ ├── Reader.pm │ │ ├── Readline.pm │ │ ├── Types.pm │ │ ├── run │ │ ├── step0_repl.pl │ │ ├── step1_read_print.pl │ │ ├── step2_eval.pl │ │ ├── step3_env.pl │ │ ├── step4_if_fn_do.pl │ │ ├── step5_tco.pl │ │ ├── step6_file.pl │ │ ├── step7_quote.pl │ │ ├── step8_macros.pl │ │ ├── step9_try.pl │ │ ├── stepA_mal.pl │ │ └── tests/ │ │ ├── step5_tco.mal │ │ └── stepA_mal.mal │ ├── perl6/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.pm │ │ ├── env.pm │ │ ├── printer.pm │ │ ├── reader.pm │ │ ├── run │ │ ├── step0_repl.pl │ │ ├── step1_read_print.pl │ │ ├── step2_eval.pl │ │ ├── step3_env.pl │ │ ├── step4_if_fn_do.pl │ │ ├── step5_tco.pl │ │ ├── step6_file.pl │ │ ├── step7_quote.pl │ │ ├── step8_macros.pl │ │ ├── step9_try.pl │ │ ├── stepA_mal.pl │ │ ├── tests/ │ │ │ └── stepA_mal.mal │ │ └── types.pm │ ├── php/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── core.php │ │ ├── env.php │ │ ├── interop.php │ │ ├── printer.php │ │ ├── reader.php │ │ ├── readline.php │ │ ├── run │ │ ├── step0_repl.php │ │ ├── step1_read_print.php │ │ ├── step2_eval.php │ │ ├── step3_env.php │ │ ├── step4_if_fn_do.php │ │ ├── step5_tco.php │ │ ├── step6_file.php │ │ ├── step7_quote.php │ │ ├── step8_macros.php │ │ ├── step9_try.php │ │ ├── stepA_mal.php │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ ├── types.php │ │ └── webrunner.php │ ├── picolisp/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.l │ │ ├── env.l │ │ ├── func.l │ │ ├── printer.l │ │ ├── reader.l │ │ ├── readline.l │ │ ├── run │ │ ├── step0_repl.l │ │ ├── step1_read_print.l │ │ ├── step2_eval.l │ │ ├── step3_env.l │ │ ├── step4_if_fn_do.l │ │ ├── step5_tco.l │ │ ├── step6_file.l │ │ ├── step7_quote.l │ │ ├── step8_macros.l │ │ ├── step9_try.l │ │ ├── stepA_mal.l │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ └── types.l │ ├── pike/ │ │ ├── Core.pmod │ │ ├── Dockerfile │ │ ├── Env.pmod │ │ ├── Interop.pmod │ │ ├── Makefile │ │ ├── Printer.pmod │ │ ├── Reader.pmod │ │ ├── Readline.pmod │ │ ├── Types.pmod │ │ ├── run │ │ ├── step0_repl.pike │ │ ├── step1_read_print.pike │ │ ├── step2_eval.pike │ │ ├── step3_env.pike │ │ ├── step4_if_fn_do.pike │ │ ├── step5_tco.pike │ │ ├── step6_file.pike │ │ ├── step7_quote.pike │ │ ├── step8_macros.pike │ │ ├── step9_try.pike │ │ ├── stepA_mal.pike │ │ └── tests/ │ │ ├── step5_tco.mal │ │ └── stepA_mal.mal │ ├── plpgsql/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.sql │ │ ├── entrypoint.sh │ │ ├── envs.sql │ │ ├── init.sql │ │ ├── io.sql │ │ ├── printer.sql │ │ ├── reader.sql │ │ ├── run │ │ ├── step0_repl.sql │ │ ├── step1_read_print.sql │ │ ├── step2_eval.sql │ │ ├── step3_env.sql │ │ ├── step4_if_fn_do.sql │ │ ├── step5_tco.sql │ │ ├── step6_file.sql │ │ ├── step7_quote.sql │ │ ├── step8_macros.sql │ │ ├── step9_try.sql │ │ ├── stepA_mal.sql │ │ ├── types.sql │ │ └── wrap.sh │ ├── plsql/ │ │ ├── Dockerfile │ │ ├── Dockerfile-oracle │ │ ├── Dockerfile-postgres │ │ ├── Makefile │ │ ├── core.sql │ │ ├── entrypoint.sh │ │ ├── env.sql │ │ ├── io.sql │ │ ├── login.sql │ │ ├── printer.sql │ │ ├── reader.sql │ │ ├── run │ │ ├── step0_repl.sql │ │ ├── step1_read_print.sql │ │ ├── step2_eval.sql │ │ ├── step3_env.sql │ │ ├── step4_if_fn_do.sql │ │ ├── step5_tco.sql │ │ ├── step6_file.sql │ │ ├── step7_quote.sql │ │ ├── step8_macros.sql │ │ ├── step9_try.sql │ │ ├── stepA_mal.sql │ │ ├── types.sql │ │ └── wrap.sh │ ├── powershell/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.psm1 │ │ ├── env.psm1 │ │ ├── printer.psm1 │ │ ├── reader.psm1 │ │ ├── run │ │ ├── step0_repl.ps1 │ │ ├── step1_read_print.ps1 │ │ ├── step2_eval.ps1 │ │ ├── step3_env.ps1 │ │ ├── step4_if_fn_do.ps1 │ │ ├── step5_tco.ps1 │ │ ├── step6_file.ps1 │ │ ├── step7_quote.ps1 │ │ ├── step8_macros.ps1 │ │ ├── step9_try.ps1 │ │ ├── stepA_mal.ps1 │ │ └── types.psm1 │ ├── prolog/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.pl │ │ ├── env.pl │ │ ├── printer.pl │ │ ├── reader.pl │ │ ├── run │ │ ├── step0_repl.pl │ │ ├── step1_read_print.pl │ │ ├── step2_eval.pl │ │ ├── step3_env.pl │ │ ├── step4_if_fn_do.pl │ │ ├── step6_file.pl │ │ ├── step7_quote.pl │ │ ├── step8_macros.pl │ │ ├── step9_try.pl │ │ ├── stepA_mal.pl │ │ ├── tests/ │ │ │ └── stepA_mal.mal │ │ ├── types.pl │ │ └── utils.pl │ ├── ps/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.ps │ │ ├── env.ps │ │ ├── interop.ps │ │ ├── printer.ps │ │ ├── reader.ps │ │ ├── run │ │ ├── step0_repl.ps │ │ ├── step1_read_print.ps │ │ ├── step2_eval.ps │ │ ├── step3_env.ps │ │ ├── step4_if_fn_do.ps │ │ ├── step5_tco.ps │ │ ├── step6_file.ps │ │ ├── step7_quote.ps │ │ ├── step8_macros.ps │ │ ├── step9_try.ps │ │ ├── stepA_mal.ps │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ └── types.ps │ ├── purs/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── package.json │ │ ├── packages.dhall │ │ ├── run │ │ ├── spago.dhall │ │ └── src/ │ │ ├── Core.purs │ │ ├── Env.purs │ │ ├── Printer.purs │ │ ├── Reader.purs │ │ ├── Readline.js │ │ ├── Readline.purs │ │ ├── Types.purs │ │ ├── step0_repl.purs │ │ ├── step1_read_print.purs │ │ ├── step2_eval.purs │ │ ├── step3_env.purs │ │ ├── step4_if_fn_do.purs │ │ ├── step5_tco.purs │ │ ├── step6_file.purs │ │ ├── step7_quote.purs │ │ ├── step8_macros.purs │ │ ├── step9_try.purs │ │ └── stepA_mal.purs │ ├── python2/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.py │ │ ├── env.py │ │ ├── mal_readline.py │ │ ├── mal_types.py │ │ ├── printer.py │ │ ├── reader.py │ │ ├── run │ │ ├── step0_repl.py │ │ ├── step1_read_print.py │ │ ├── step2_eval.py │ │ ├── step3_env.py │ │ ├── step4_if_fn_do.py │ │ ├── step5_tco.py │ │ ├── step6_file.py │ │ ├── step7_quote.py │ │ ├── step8_macros.py │ │ ├── step9_try.py │ │ ├── stepA_mal.py │ │ └── tests/ │ │ ├── step5_tco.mal │ │ └── stepA_mal.mal │ ├── python3/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.py │ │ ├── env.py │ │ ├── mal_readline.py │ │ ├── mal_types.py │ │ ├── reader.py │ │ ├── run │ │ ├── step0_repl.py │ │ ├── step1_read_print.py │ │ ├── step2_eval.py │ │ ├── step3_env.py │ │ ├── step4_if_fn_do.py │ │ ├── step5_tco.py │ │ ├── step6_file.py │ │ ├── step7_quote.py │ │ ├── step8_macros.py │ │ ├── step9_try.py │ │ ├── stepA_mal.py │ │ └── tests/ │ │ ├── __init__.py │ │ ├── step5_tco.mal │ │ ├── stepA_mal.mal │ │ ├── test_step2.py │ │ ├── test_step3.py │ │ ├── test_step4.py │ │ ├── test_step5.py │ │ ├── test_step6.py │ │ ├── test_step7.py │ │ ├── test_step8.py │ │ ├── test_step9.py │ │ └── test_stepA.py │ ├── r/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.r │ │ ├── env.r │ │ ├── printer.r │ │ ├── reader.r │ │ ├── readline.r │ │ ├── run │ │ ├── step0_repl.r │ │ ├── step1_read_print.r │ │ ├── step2_eval.r │ │ ├── step3_env.r │ │ ├── step4_if_fn_do.r │ │ ├── step5_tco.r │ │ ├── step6_file.r │ │ ├── step7_quote.r │ │ ├── step8_macros.r │ │ ├── step9_try.r │ │ ├── stepA_mal.r │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.r │ ├── racket/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.rkt │ │ ├── env.rkt │ │ ├── printer.rkt │ │ ├── reader.rkt │ │ ├── readline.rkt │ │ ├── run │ │ ├── step0_repl.rkt │ │ ├── step1_read_print.rkt │ │ ├── step2_eval.rkt │ │ ├── step3_env.rkt │ │ ├── step4_if_fn_do.rkt │ │ ├── step5_tco.rkt │ │ ├── step6_file.rkt │ │ ├── step7_quote.rkt │ │ ├── step8_macros.rkt │ │ ├── step9_try.rkt │ │ ├── stepA_mal.rkt │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.rkt │ ├── rexx/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.rexx │ │ ├── env.rexx │ │ ├── printer.rexx │ │ ├── reader.rexx │ │ ├── readline.rexx │ │ ├── run │ │ ├── step0_repl.rexx │ │ ├── step1_read_print.rexx │ │ ├── step2_eval.rexx │ │ ├── step3_env.rexx │ │ ├── step4_if_fn_do.rexx │ │ ├── step5_tco.rexx │ │ ├── step6_file.rexx │ │ ├── step7_quote.rexx │ │ ├── step8_macros.rexx │ │ ├── step9_try.rexx │ │ ├── stepA_mal.rexx │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ └── types.rexx │ ├── rpython/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.py │ │ ├── env.py │ │ ├── mal_readline.py │ │ ├── mal_types.py │ │ ├── printer.py │ │ ├── reader.py │ │ ├── run │ │ ├── step0_repl.py │ │ ├── step1_read_print.py │ │ ├── step2_eval.py │ │ ├── step3_env.py │ │ ├── step4_if_fn_do.py │ │ ├── step5_tco.py │ │ ├── step6_file.py │ │ ├── step7_quote.py │ │ ├── step8_macros.py │ │ ├── step9_try.py │ │ ├── stepA_mal.py │ │ └── tests/ │ │ └── step5_tco.mal │ ├── ruby/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.rb │ │ ├── env.rb │ │ ├── mal_readline.rb │ │ ├── printer.rb │ │ ├── reader.rb │ │ ├── run │ │ ├── step0_repl.rb │ │ ├── step1_read_print.rb │ │ ├── step2_eval.rb │ │ ├── step3_env.rb │ │ ├── step4_if_fn_do.rb │ │ ├── step5_tco.rb │ │ ├── step6_file.rb │ │ ├── step7_quote.rb │ │ ├── step8_macros.rb │ │ ├── step9_try.rb │ │ ├── stepA_mal.rb │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ └── types.rb │ ├── ruby.2/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.rb │ │ ├── env.rb │ │ ├── errors.rb │ │ ├── printer.rb │ │ ├── reader.rb │ │ ├── run │ │ ├── step0_repl.rb │ │ ├── step1_read_print.rb │ │ ├── step2_eval.rb │ │ ├── step3_env.rb │ │ ├── step4_if_fn_do.rb │ │ ├── step5_tco.rb │ │ ├── step6_file.rb │ │ ├── step7_quote.rb │ │ ├── step8_macros.rb │ │ ├── step9_try.rb │ │ ├── stepA_mal.rb │ │ └── types.rb │ ├── rust/ │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.rs │ │ ├── env.rs │ │ ├── printer.rs │ │ ├── reader.rs │ │ ├── readline.rs │ │ ├── run │ │ ├── step0_repl.rs │ │ ├── step1_read_print.rs │ │ ├── step2_eval.rs │ │ ├── step3_env.rs │ │ ├── step4_if_fn_do.rs │ │ ├── step5_tco.rs │ │ ├── step6_file.rs │ │ ├── step7_quote.rs │ │ ├── step8_macros.rs │ │ ├── step9_try.rs │ │ ├── stepA_mal.rs │ │ └── types.rs │ ├── scala/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── assembly.sbt │ │ ├── build.sbt │ │ ├── core.scala │ │ ├── env.scala │ │ ├── printer.scala │ │ ├── project/ │ │ │ └── assembly.sbt │ │ ├── reader.scala │ │ ├── run │ │ ├── step0_repl.scala │ │ ├── step1_read_print.scala │ │ ├── step2_eval.scala │ │ ├── step3_env.scala │ │ ├── step4_if_fn_do.scala │ │ ├── step5_tco.scala │ │ ├── step6_file.scala │ │ ├── step7_quote.scala │ │ ├── step8_macros.scala │ │ ├── step9_try.scala │ │ ├── stepA_mal.scala │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.scala │ ├── scheme/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── lib/ │ │ │ ├── core.sld │ │ │ ├── env.sld │ │ │ ├── printer.sld │ │ │ ├── reader.sld │ │ │ ├── types.sld │ │ │ └── util.sld │ │ ├── run │ │ ├── step0_repl.scm │ │ ├── step1_read_print.scm │ │ ├── step2_eval.scm │ │ ├── step3_env.scm │ │ ├── step4_if_fn_do.scm │ │ ├── step5_tco.scm │ │ ├── step6_file.scm │ │ ├── step7_quote.scm │ │ ├── step8_macros.scm │ │ ├── step9_try.scm │ │ ├── stepA_mal.scm │ │ └── tests/ │ │ └── stepA_mal.mal │ ├── skew/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.sk │ │ ├── env.sk │ │ ├── printer.sk │ │ ├── reader.sk │ │ ├── run │ │ ├── step0_repl.sk │ │ ├── step1_read_print.sk │ │ ├── step2_eval.sk │ │ ├── step3_env.sk │ │ ├── step4_if_fn_do.sk │ │ ├── step5_tco.sk │ │ ├── step6_file.sk │ │ ├── step7_quote.sk │ │ ├── step8_macros.sk │ │ ├── step9_try.sk │ │ ├── stepA_mal.sk │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ ├── types.sk │ │ └── util.sk │ ├── sml/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── LargeInt.sml │ │ ├── Makefile │ │ ├── README.md │ │ ├── core.sml │ │ ├── env.sml │ │ ├── main.sml │ │ ├── printer.sml │ │ ├── reader.sml │ │ ├── run │ │ ├── step0_repl.mlb │ │ ├── step0_repl.sml │ │ ├── step1_read_print.mlb │ │ ├── step1_read_print.sml │ │ ├── step2_eval.mlb │ │ ├── step2_eval.sml │ │ ├── step3_env.mlb │ │ ├── step3_env.sml │ │ ├── step4_if_fn_do.mlb │ │ ├── step4_if_fn_do.sml │ │ ├── step6_file.mlb │ │ ├── step6_file.sml │ │ ├── step7_quote.mlb │ │ ├── step7_quote.sml │ │ ├── step8_macros.mlb │ │ ├── step8_macros.sml │ │ ├── step9_try.mlb │ │ ├── step9_try.sml │ │ ├── stepA_mal.mlb │ │ ├── stepA_mal.sml │ │ ├── types.sml │ │ └── util.sml │ ├── swift3/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── Sources/ │ │ │ ├── core.swift │ │ │ ├── env.swift │ │ │ ├── printer.swift │ │ │ ├── reader.swift │ │ │ ├── step0_repl/ │ │ │ │ └── main.swift │ │ │ ├── step1_read_print/ │ │ │ │ └── main.swift │ │ │ ├── step2_eval/ │ │ │ │ └── main.swift │ │ │ ├── step3_env/ │ │ │ │ └── main.swift │ │ │ ├── step4_if_fn_do/ │ │ │ │ └── main.swift │ │ │ ├── step5_tco/ │ │ │ │ └── main.swift │ │ │ ├── step6_file/ │ │ │ │ └── main.swift │ │ │ ├── step7_quote/ │ │ │ │ └── main.swift │ │ │ ├── step8_macros/ │ │ │ │ └── main.swift │ │ │ ├── step9_try/ │ │ │ │ └── main.swift │ │ │ ├── stepA_mal/ │ │ │ │ └── main.swift │ │ │ └── types.swift │ │ ├── run │ │ └── tests/ │ │ └── step5_tco.mal │ ├── swift4/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── Sources/ │ │ │ ├── core.swift │ │ │ ├── env.swift │ │ │ ├── printer.swift │ │ │ ├── reader.swift │ │ │ ├── step0_repl/ │ │ │ │ └── main.swift │ │ │ ├── step1_read_print/ │ │ │ │ └── main.swift │ │ │ ├── step2_eval/ │ │ │ │ └── main.swift │ │ │ ├── step3_env/ │ │ │ │ └── main.swift │ │ │ ├── step4_if_fn_do/ │ │ │ │ └── main.swift │ │ │ ├── step5_tco/ │ │ │ │ └── main.swift │ │ │ ├── step6_file/ │ │ │ │ └── main.swift │ │ │ ├── step7_quote/ │ │ │ │ └── main.swift │ │ │ ├── step8_macros/ │ │ │ │ └── main.swift │ │ │ ├── step9_try/ │ │ │ │ └── main.swift │ │ │ ├── stepA_mal/ │ │ │ │ └── main.swift │ │ │ └── types.swift │ │ └── run │ ├── swift6/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── Package.swift │ │ ├── Sources/ │ │ │ ├── core/ │ │ │ │ ├── Core.swift │ │ │ │ ├── Env.swift │ │ │ │ ├── Errors.swift │ │ │ │ ├── Parser.swift │ │ │ │ ├── Printer.swift │ │ │ │ ├── Reader.swift │ │ │ │ ├── Types.swift │ │ │ │ └── Utils.swift │ │ │ ├── step0_repl/ │ │ │ │ └── main.swift │ │ │ ├── step1_read_print/ │ │ │ │ └── main.swift │ │ │ ├── step2_eval/ │ │ │ │ └── main.swift │ │ │ ├── step3_env/ │ │ │ │ └── main.swift │ │ │ ├── step4_if_fn_do/ │ │ │ │ └── main.swift │ │ │ ├── step5_tco/ │ │ │ │ └── main.swift │ │ │ ├── step6_file/ │ │ │ │ └── main.swift │ │ │ ├── step7_quote/ │ │ │ │ └── main.swift │ │ │ ├── step8_macros/ │ │ │ │ └── main.swift │ │ │ ├── step9_try/ │ │ │ │ └── main.swift │ │ │ └── stepA_mal/ │ │ │ └── main.swift │ │ └── run │ ├── tcl/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.tcl │ │ ├── env.tcl │ │ ├── mal_readline.tcl │ │ ├── printer.tcl │ │ ├── reader.tcl │ │ ├── run │ │ ├── step0_repl.tcl │ │ ├── step1_read_print.tcl │ │ ├── step2_eval.tcl │ │ ├── step3_env.tcl │ │ ├── step4_if_fn_do.tcl │ │ ├── step5_tco.tcl │ │ ├── step6_file.tcl │ │ ├── step7_quote.tcl │ │ ├── step8_macros.tcl │ │ ├── step9_try.tcl │ │ ├── stepA_mal.tcl │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ └── types.tcl │ ├── tests/ │ │ ├── busywork.mal │ │ ├── computations.mal │ │ ├── docker/ │ │ │ └── Dockerfile │ │ ├── docker-build.sh │ │ ├── docker-run.sh │ │ ├── fib.mal │ │ ├── inc.mal │ │ ├── incA.mal │ │ ├── incB.mal │ │ ├── incC.mal │ │ ├── lib/ │ │ │ ├── alias-hacks.mal │ │ │ ├── equality.mal │ │ │ ├── load-file-once-inc.mal │ │ │ ├── load-file-once.mal │ │ │ ├── memoize.mal │ │ │ ├── pprint.mal │ │ │ ├── protocols.mal │ │ │ ├── reducers.mal │ │ │ ├── test_cascade.mal │ │ │ ├── threading.mal │ │ │ └── trivial.mal │ │ ├── perf1.mal │ │ ├── perf2.mal │ │ ├── perf3.mal │ │ ├── print_argv.mal │ │ ├── run_argv_test.sh │ │ ├── step0_repl.mal │ │ ├── step1_read_print.mal │ │ ├── step2_eval.mal │ │ ├── step3_env.mal │ │ ├── step4_if_fn_do.mal │ │ ├── step5_tco.mal │ │ ├── step6_file.mal │ │ ├── step7_quote.mal │ │ ├── step8_macros.mal │ │ ├── step9_try.mal │ │ ├── stepA_mal.mal │ │ ├── test.txt │ │ └── travis_trigger.sh │ ├── ts/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.ts │ │ ├── env.ts │ │ ├── node_readline.ts │ │ ├── package.json │ │ ├── printer.ts │ │ ├── reader.ts │ │ ├── run │ │ ├── step0_repl.ts │ │ ├── step1_read_print.ts │ │ ├── step2_eval.ts │ │ ├── step3_env.ts │ │ ├── step4_if_fn_do.ts │ │ ├── step5_tco.ts │ │ ├── step6_file.ts │ │ ├── step7_quote.ts │ │ ├── step8_macros.ts │ │ ├── step9_try.ts │ │ ├── stepA_mal.ts │ │ ├── tsconfig.json │ │ └── types.ts │ ├── vala/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── core.vala │ │ ├── env.vala │ │ ├── gc.vala │ │ ├── printer.vala │ │ ├── reader.vala │ │ ├── run │ │ ├── step0_repl.vala │ │ ├── step1_read_print.vala │ │ ├── step2_eval.vala │ │ ├── step3_env.vala │ │ ├── step4_if_fn_do.vala │ │ ├── step5_tco.vala │ │ ├── step6_file.vala │ │ ├── step7_quote.vala │ │ ├── step8_macros.vala │ │ ├── step9_try.vala │ │ ├── stepA_mal.vala │ │ └── types.vala │ ├── vb/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.vb │ │ ├── env.vb │ │ ├── getline.cs │ │ ├── printer.vb │ │ ├── reader.vb │ │ ├── readline.vb │ │ ├── run │ │ ├── step0_repl.vb │ │ ├── step1_read_print.vb │ │ ├── step2_eval.vb │ │ ├── step3_env.vb │ │ ├── step4_if_fn_do.vb │ │ ├── step5_tco.vb │ │ ├── step6_file.vb │ │ ├── step7_quote.vb │ │ ├── step8_macros.vb │ │ ├── step9_try.vb │ │ ├── stepA_mal.vb │ │ ├── tests/ │ │ │ └── step5_tco.mal │ │ └── types.vb │ ├── vbs/ │ │ ├── Makefile │ │ ├── core.vbs │ │ ├── env.vbs │ │ ├── install.vbs │ │ ├── io.vbs │ │ ├── printer.vbs │ │ ├── reader.vbs │ │ ├── run │ │ ├── step0_repl.vbs │ │ ├── step1_read_print.vbs │ │ ├── step2_eval.vbs │ │ ├── step3_env.vbs │ │ ├── step4_if_fn_do.vbs │ │ ├── step5_tco.vbs │ │ ├── step6_file.vbs │ │ ├── step7_quote.vbs │ │ ├── step8_macros.vbs │ │ ├── step9_try.vbs │ │ ├── stepA_mal.vbs │ │ ├── tests/ │ │ │ ├── step4_if_fn_do.mal │ │ │ └── step9_try.mal │ │ └── types.vbs │ ├── vhdl/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.vhdl │ │ ├── env.vhdl │ │ ├── pkg_readline.vhdl │ │ ├── printer.vhdl │ │ ├── reader.vhdl │ │ ├── run │ │ ├── run_vhdl.sh │ │ ├── step0_repl.vhdl │ │ ├── step1_read_print.vhdl │ │ ├── step2_eval.vhdl │ │ ├── step3_env.vhdl │ │ ├── step4_if_fn_do.vhdl │ │ ├── step5_tco.vhdl │ │ ├── step6_file.vhdl │ │ ├── step7_quote.vhdl │ │ ├── step8_macros.vhdl │ │ ├── step9_try.vhdl │ │ ├── stepA_mal.vhdl │ │ └── types.vhdl │ ├── vimscript/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.vim │ │ ├── env.vim │ │ ├── printer.vim │ │ ├── reader.vim │ │ ├── readline.vim │ │ ├── run │ │ ├── run_vimscript.sh │ │ ├── step0_repl.vim │ │ ├── step1_read_print.vim │ │ ├── step2_eval.vim │ │ ├── step3_env.vim │ │ ├── step4_if_fn_do.vim │ │ ├── step5_tco.vim │ │ ├── step6_file.vim │ │ ├── step7_quote.vim │ │ ├── step8_macros.vim │ │ ├── step9_try.vim │ │ ├── stepA_mal.vim │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ ├── types.vim │ │ └── vimextras.c │ ├── wasm/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.wam │ │ ├── debug.wam │ │ ├── env.wam │ │ ├── mem.wam │ │ ├── node_readline.js │ │ ├── package.json │ │ ├── platform_direct.wam │ │ ├── platform_libc.wam │ │ ├── platform_wasi.wam │ │ ├── printer.wam │ │ ├── printf.wam │ │ ├── reader.wam │ │ ├── run │ │ ├── run.js │ │ ├── step0_repl.wam │ │ ├── step1_read_print.wam │ │ ├── step2_eval.wam │ │ ├── step3_env.wam │ │ ├── step4_if_fn_do.wam │ │ ├── step5_tco.wam │ │ ├── step6_file.wam │ │ ├── step7_quote.wam │ │ ├── step8_macros.wam │ │ ├── step9_try.wam │ │ ├── stepA_mal.wam │ │ ├── string.wam │ │ └── types.wam │ ├── wren/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── README.md │ │ ├── core.wren │ │ ├── env.wren │ │ ├── interop.wren │ │ ├── printer.wren │ │ ├── reader.wren │ │ ├── readline.wren │ │ ├── run │ │ ├── step0_repl.wren │ │ ├── step1_read_print.wren │ │ ├── step2_eval.wren │ │ ├── step3_env.wren │ │ ├── step4_if_fn_do.wren │ │ ├── step5_tco.wren │ │ ├── step6_file.wren │ │ ├── step7_quote.wren │ │ ├── step8_macros.wren │ │ ├── step9_try.wren │ │ ├── stepA_mal.wren │ │ ├── tests/ │ │ │ ├── step5_tco.mal │ │ │ └── stepA_mal.mal │ │ ├── types.wren │ │ └── wren-add-gettimeofday.patch │ ├── xslt/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.xslt │ │ ├── env.xslt │ │ ├── printer.xslt │ │ ├── reader.xslt │ │ ├── readline.xslt │ │ ├── run │ │ ├── step0_repl.inc.xslt │ │ ├── step0_repl.xslt │ │ ├── step1_read_print.inc.xslt │ │ ├── step1_read_print.xslt │ │ ├── step2_eval.inc.xslt │ │ ├── step2_eval.xslt │ │ ├── step3_env.inc.xslt │ │ ├── step3_env.xslt │ │ ├── step4_if_fn_do.inc.xslt │ │ ├── step4_if_fn_do.xslt │ │ ├── step6_file.inc.xslt │ │ ├── step6_file.xslt │ │ ├── step7_quote.inc.xslt │ │ ├── step7_quote.xslt │ │ ├── step8_macros.inc.xslt │ │ ├── step8_macros.xslt │ │ ├── step9_try.inc.xslt │ │ ├── step9_try.xslt │ │ ├── stepA_mal.inc.xslt │ │ ├── stepA_mal.xslt │ │ └── test.xslt │ ├── yorick/ │ │ ├── Dockerfile │ │ ├── Makefile │ │ ├── core.i │ │ ├── env.i │ │ ├── hash.i │ │ ├── printer.i │ │ ├── reader.i │ │ ├── run │ │ ├── step0_repl.i │ │ ├── step1_read_print.i │ │ ├── step2_eval.i │ │ ├── step3_env.i │ │ ├── step4_if_fn_do.i │ │ ├── step5_tco.i │ │ ├── step6_file.i │ │ ├── step7_quote.i │ │ ├── step8_macros.i │ │ ├── step9_try.i │ │ ├── stepA_mal.i │ │ ├── tests/ │ │ │ └── stepA_mal.mal │ │ └── types.i │ └── zig/ │ ├── Dockerfile │ ├── Makefile │ ├── README │ ├── build.zig │ ├── core.zig │ ├── env.zig │ ├── error.zig │ ├── hmap.zig │ ├── linked_list.zig │ ├── printer.zig │ ├── reader.zig │ ├── readline.zig │ ├── run │ ├── step0_repl.zig │ ├── step1_read_print.zig │ ├── step2_eval.zig │ ├── step3_env.zig │ ├── step4_if_fn_do.zig │ ├── step5_tco.zig │ ├── step6_file.zig │ ├── step7_quote.zig │ ├── step8_macros.zig │ ├── step9_try.zig │ ├── stepA_mal.zig │ └── types.zig ├── process/ │ ├── guide.md │ ├── step0_repl.txt │ ├── step1_read_print.txt │ ├── step2_eval.txt │ ├── step3_env.txt │ ├── step4_if_fn_do.txt │ ├── step5_tco.txt │ ├── step6_file.txt │ ├── step7_quote.txt │ ├── step8_macros.txt │ ├── step9_try.txt │ ├── stepA_mal.txt │ └── steps.drawio ├── runtest.py └── voom-like-version.sh