public string Process()
{
// Make both comments and non-comments optional to handle trivial empty file case (or *only* comments)
var stringList = Interleave<string>(Optional (CommentsAndNewlines), Optional(MainInk));
if (stringList != null) {
return string.Join("", stringList);
} else {
return null;
}
}