> Sadly, Go's generics are a bit of a basket case in terms of usefulness since they don't support compile time duck typing like C++ generics,
What are you referring to here? Code like
func PrintAnything[T Stringer](item T) {
fmt.Println(item.String())
}
looks like type-safe duck typing to me.