code: func NewEncoder(w io.Writer) *Encoder {
  	enc := Encoder{syms: make(map[string]int, 0), tags: make(map[string]*tagDef, 0), nextTag: FirstUserTag}
  	enc.out = w
  	enc.bytebuf = make([]byte, 32)
  	enc.writeHeader()
  	return &enc
  }
docs: // NewEncoder - create and return a new Encoder. This is a "session" for tbin, i.e. accumulated
  // state for this encoder can make repeated Marshal calls more efficient.