code: func ParseMany(targets []string) ([]*expr, error) {
  	var out []*expr
  	for _, target := range targets {
  		e, leftover, err := Parse(target)
  		if err != nil {
  			return nil, err
  		}
  		if leftover != "" {
  			return nil, fmt.Errorf("failed to parse %q fully. got leftover %q", target, leftover)
  		}
  		out = append(out, e)
  	}
  	return out, nil
  }
docs: // ParseMany parses a slice of strings into a slice of expressions (recursively)
  // not included: validation that requested functions exist, correct args are passed, etc.