code: func valueOfValue(t *ast.ValueSpec) int {
  	if len(t.Values) != 1 {
  		fmt.Println("unexpected values", t.Values)
  		panic("unexpected values")
  	}
  
  	switch t := t.Values[0].(type) {
  	case *ast.BasicLit:
  		n, _ := strconv.Atoi(t.Value)
  		return n
  
  	case *ast.UnaryExpr:
  		x := t.X.(*ast.BasicLit)
  		n, _ := strconv.Atoi(x.Value)
  		return n
  
  	default:
  		fmt.Println("unexpected type", t)
  		panic("unexpected type")
  	}
  
  	panic("fell through")
  	return 0
  }
docs: // valueOfValue extracts the value of an enum value, ex. 7