Sat Mar 15 09:09:15 EDT 2008

the design choices

* use syntax objects for everything that represents code. this gives
  the best match to PLT scheme: it allows to use most of the
  underlying machinery in the way it integrates well.

    - representation: lambda + redefinable language structure
    - namespaces: modules and units
    - compile/interpret: use the scheme expander instead

  in retrospect, this took a long time for me to understand, but it
  looks like i'm finally getting it. identifier scope management
  (lexical, dynamic, module, unit) is hard. if somebody does it for
  you, then use it!

* syntax streams: are these really necessary? they complicate things
  due to having to deal with both lists and streams. maybe, when
  everything is syntax and usable as scheme macros, streams are no
  longer necessary?

it looks like the more important choice is going to be to have a
complete map from text -> binary code / assembly code that lives in
the syntax domain.