code: func (r *RefErrInvalidDetail) Lines() []string {
  	lines := []string{r.Ref.String()}
  	offset := len(r.Ref[:r.Pos].String()) + 1
  	pad := strings.Repeat(" ", offset)
  	lines = append(lines, fmt.Sprintf("%s^", pad))
  	if r.Have != nil {
  		lines = append(lines, fmt.Sprintf("%shave (type): %v", pad, r.Have))
  	} else {
  		lines = append(lines, fmt.Sprintf("%shave: %v", pad, r.Ref[r.Pos]))
  	}
  	if len(r.OneOf) > 0 {
  		lines = append(lines, fmt.Sprintf("%swant (one of): %v", pad, r.OneOf))
  	} else {
  		lines = append(lines, fmt.Sprintf("%swant (type): %v", pad, r.Want))
  	}
  	return lines
  }
docs: // Lines returns the string representation of the detail.