You can define multiple generic type parameters like the Cache type below. The use case is to let Cache work with any types, with the key being comparable and value of any types. Cache is actually just a map with its key and value constraints based on the generic type definition.
type Cache[K comparable, V any] map[K]V