Sol is currently implemented as an embedded language in R4RS Scheme Lisp. This has the advantages of flexibility, portability (Scheme runs on many platforms), and rapid language development. The disadvantages include a (temporary) lack of true parallelism and some performance limitations. In order to address these shortcomings, a Java-centric implementation is in progress which will maintain portability, improve performance, and support true parallelism.
The rest of this document is devoted to the actual Scheme (Kawa) sourcode implementing Sol. Symbols are defined before they are used wherever possible for the sake of readability, but this is not a restriction imposed by the Scheme programming language. Since Sol is a work in progress, the version of the document you are reading may contain documentation inconsistancies or source code errors. Whenever possible, rely on the latest version (available at http:://acg.media.mit.edu/people/rich/research/sol/index.html), and where there is a conflict between the internal (source code) and external documentation of a procedure or macro, rely on the internal documentation.