package x

func indexOf[T comparable] (haystack []T, needle T) int {
	for index, test := range haystack {
		if test == needle {
			return index
		}
	}
	return -1
}

func remove[T any] (slice []T, index int) []T {
	return append(slice[:index], slice[index + 1:]...)
}

func insert[T any] (slice []T, index int, element T) []T {
	slice = append(slice[:index + 1], slice[index:]...)
	slice[index] = element
	return slice
}