code: func (value *Float64) UnmarshalJSON(arg []byte) error {
  	err := json.Unmarshal(arg, (*float64)(value))
  	if err != nil {
  		str := string(arg)
  		switch str {
  		case `"NaN"`:
  			*value = Float64(math.NaN())
  		case `"Infinity"`:
  			*value = Float64(math.Inf(1))
  		case `"-Infinity"`:
  			*value = Float64(math.Inf(-1))
  		default:
  			return err
  		}
  	}
  	return nil
  }
docs: // UnmarshalJSON implements the Unmarshaler interface for custom unmarshalling.