func AggregateProfiles(profiles [][]*cover.Profile) ([]*cover.Profile, error) {
	setProfiles := make([][]*cover.Profile, 0, len(profiles))
	for _, p := range profiles {
		c := countToBoolean(p)
		setProfiles = append(setProfiles, c)
	}
	aggregateProfiles, err := MergeMultipleProfiles(setProfiles)
	if err != nil {
		return nil, err
	}
	return aggregateProfiles, nil
}
func AggregateProfiles(profiles [][]*cover.Profile) ([]*cover.Profile, error) {
	setProfiles := make([][]*cover.Profile, 0, len(profiles))
	for _, p := range profiles {
		c := countToBoolean(p)
		setProfiles = append(setProfiles, c)
	}
	aggregateProfiles, err := MergeMultipleProfiles(setProfiles)
	if err != nil {
		return nil, err
	}
	return aggregateProfiles, nil
}
// AggregateProfiles takes multiple coverage profiles and produces a new
// coverage profile that counts the number of profiles that hit a block at least
// once.