package util type Set[T comparable] map[T]struct{} func NewSet[T comparable](elements ...T) Set[T] { set := Set[T]{} for _, e := range elements { set[e] = struct{}{} } return set } func (set Set[T]) Add(value T) { set[value] = struct{}{} } func (set Set[T]) Remove(value T) { delete(set, value) } func (set Set[T]) Has(value T) bool { _, found := set[value] return found }