For constraints they also could be after type name:
func IndexOf(slice []type T comparable, find T) int
or maybe this is clearer:
func IndexOf(slice []type comparable T, find T) int
This generic type information could be added on leftmost first use of the type in the parameter list or return, and only the type name (i.e T) used if more than once as above.
Multiple type parameters should be just doing this for each parameter:
func IndexOf(slice []type T, find T, range type R) int
types used only in the function but not as a parameter could have an underscore _ as their parameter name, not great, but workable for an edgy case perhaps.
It might have too many problems, but funny how introducing the "type" keyword opens up new possibilities!