function Writer() {
    this.cache = {};
  }
A Writer knows how to take a stream of tokens and render them to a
string, given a context. It also maintains a cache of templates to
avoid the need to parse the same template twice.