code: func (g *Generator) addType(t reflect.Type) {
  	if g.typesSeen[t] {
  		return
  	}
  	for _, t1 := range g.typesUnseen {
  		if t1 == t {
  			return
  		}
  	}
  	g.typesUnseen = append(g.typesUnseen, t)
  }
docs: // addTypes requests to generate encoding/decoding funcs for the given type.