This makes sense if you forget anything you know about what an empty interface's implications were before, I think. Though I assume all the old reflection tricks are still valid, and potentially dangerous.
I didn't read all the discussion, but I wonder if someone is thinking about detecting cases of existing `interface{}` and helping lift it to a generic constraint when possible.
Or have I misunderstood something?
From the proposal:
> However, it‘s tedious to have to write interface{} every time you write a generic function that doesn’t impose constraints on its type parameters. So in this design we suggest a type constraint any that is equivalent to interface{}.
Further unification possible: https://github.com/golang/go/issues/33232
However I do agree this is making it somewhat confusing what is in a static and what is in a runtime position.
> we suggest a type constraint any that is equivalent to interface{}.
That's my point. They chose the keyword any to disambiguate the type constraint interface{} from the type interface{}.