> We can have a `Bunch[int]` or a `Bunch[string]` or a `Bunch` of elements of any other specific type. What we can’t have is a `Bunch` of mixed-type elements.
> It’s easy to hear a term like “generic slice” and jump to the conclusion that it means “slice containing values of different types”. But that’s actually not the case.
> There are, in fact, no generic types in Go. I know that sounds crazy, but stick with me.
> That is, you can define generic types like `Bunch[E]`, but to actually use them in your program, you need to instantiate them on some specific type, like `int`.
> At that point, what you have is an ordinary Go slice of `int`, and it stands to reason that such a slice can only contain `int` elements.
> So just because we used a type parameter, it doesn’t mean we can create a single slice that contains elements of different types. What we can create are different slice types, such as `[]int`, or `[]string`, without having to specify their element type in advance.
> One way to express this is to say that, while we can define generic types at compile time, there are no generic types at run time.
But the title editorialises. If that’s what he wants to say that’s fine, but it should be in the article’s title, not just the title of his posting to HN.