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 }