code: func (m Type) MarshalJSON() ([]byte, error) {
  	type Alias Type
  	return json.Marshal(&struct {
  		Type   string `json:"type"`
  		String string `json:"string"`
  		Alias
  	}{
  		Type:   m.Type(),
  		String: m.String(),
  		Alias:  (Alias)(m),
  	})
  }
docs: // MarshalJSON returns the JSON encoding of m.