In general Go generics allow the program to say that the type must
have a certain structure (see
https://go.dev/blog/deconstructing-type-parameters) but Go does not
permit the program to say that the type must _not_ have a certain
structure. In general this hasn't been a big problem. It is of
course possible to dynamically reject type structure at run time using
the reflect package, but there is no way to do it statically.
Personally I mostly think that is OK. One of the guidelines that Go
follows is to encourage people to write code rather than write types.
To me this falls into writing types.
That said, if we do decide to add facilities for rejecting type
structure, I don't think we should just add something to say "no
pointers, please." We should have a more general approach that also
allows us to say things like "no structs" or "no interface types."
Ian