public static SchemeString Join(List l, SchemeString sep)
{
StringBuilder b = new StringBuilder();
bool haveFirst = false;
sep.ensureNative();
foreach (SchemeString s in l) {
if (haveFirst)
b.Append(sep._string);
if (s.isNative()) {
b.Append(s._string);
} else {
b.Append(s._chars);
}
haveFirst = true;
}
return new SchemeString(b, true);
}