I would like to choice `GetExportedType()` rather than `GetTypes()` as with the two reasons below, though I implemented it.

1. *By which overridden method a sub-class can filter?*
To filter `TypeElement`(s), maybe we can use two methods - `Visit(AssemlbyElement)` and `Visit(TypeElement[])`.

	Here, @ploeh said 

	>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.

	I have understood this is related only the `Visit(TypeElement[])` method, but we can still filter using the overridden `Visit(AssemlbyElement)` method.

2. *Moreover, the `GetTypes()` method is inconsistent with other ways for selecting elements.*
For example, the `Verify(TypeElement)` method currently relaies only public fileds, properties and methods and so to collesponding `Visit` methods. To be going with consistency, we need to return non-public elements for the other ways too.