Set can be defined almost the same way, but instead of slice, the underlying structure would be map:

type Set[T comparable] struct {

elems map[T]bool

}

Note that I'm using the newest generics syntax: [T comparable]

And not the older syntax from the article: (type T)

Solutions Architect @Depop, author of “Hands-on Design Patterns with Kotlin” book and “Web Development with Kotlin” course