iota
An R7RS-small Scheme interpreter in Haskell

These pages document iota, an interpreter for the whole of R7RS-small, written in Haskell. Building and installing it is covered in the README. The report itself is at small.r7rs.org.

Disclaimer: iota was initially written while following the tutorials Write Yourself a Scheme in 48 Hours and Version 2. I left the code unpublished for years and now I revamped it with AI. So most of the source code and documentation that you will see has been generated by AI.

The following documents could be of interest:

  1. Using iota, the user's guide: the command line, data types, control, macros, libraries, the repl and the standard library.
  2. R7RS-small coverage, the coverage table against the report, with the few deviations and extensions listed at the end.
  3. How iota is put together, notes on the inside of the interpreter: the pipeline, the CPS evaluator, hygiene, libraries and numbers.
  4. Hacking on iota, building, testing, where things go, and how to send a change.

These pages are published at https://fuzztheplanet.github.io/iota or www.skywhi.net/iota.