private static Datum buildSymbolForm(Datum name, IEnumerable<string> contents)
{
// "prefix" with a 'dot' so that higher level macros can interpret it.
// This means you can't have normal symbols containing dots, which is a
// small price to pay IMO.
var args = compound(contents.Select(c => c == "" ? nil : parseSymbol(c)).ToArray());
return cons(name, args);
}