Now that I've thought it over a bit longer, it's probably good with `GetTypes()`. If we use `GetTypes()`, a derived class can always filter away the non-public types. On the other hand, if we use `GetExportedTypes()`, there's no easy way to get the non-public types back.