The more time passes the more I think ubiquitous reflection in statically typed languages is what's broken (and a reflection (heh) of deep limitations of the language).
So while I could understand having issues with generics breaking existing reflection code (which doesn't seem to be the case), I'm not going to be sad over reflection having never supported toplevel functions in the first place.
> any script interpreter
What are you even talking about.
> or management RPC server
I would very much expect RPC endpoints to be opted in explicitly and statically.
> or other languages’ FFI?
I fail to see why Go-level reflection would be involved in that in any capacity.
> What good are top-level functions
You can call them? From your go code?
Are you saying rust or C can't be because they don't have reflection? That's a strange position.
Or in Java's case annotation processors.
Yes, not everything gets exposed, but it also does the job.
According to the spec:
> It's impossible for non-generic code to refer to generic code without instantiating it, so there is no reflection information for uninstantiated generic types or functions.
You won't be able to reflect a generic List or List[T] at all which… makes sense, I think? `reflect` works on values at runtime, so it necessarily works with instantiated types as you can't have a value of an un-instantiated (generic) type: what would you give to `reflect.TypeOf` which could return an uninstantiated generic type?