Tue Mar 25 19:59:59 EDT 2008

syntax-case implementation

let's see:

  two identifiers are bound-identifier=? only if they they have the
  same name and are present in the original program or are introduced
  by the same macro.

  free-identifier=? determines if two identifiers WOULD refer to the
  same binding.

  generate-temporaries creates a list of temporary names. not becase
  renaming is necessary (never is!) but because it might be convenient
  to insert (a list of) names.

macro implementation:

  for each expansion, a mark is created. input and output syntax is
  marked, and double marks are dropped. the net result is that
  identifiers introduced by the macro are marked once.