Here you can find some information about the way types are reflected.
The result of a reflection process with NReflect is an object tree. Every reflected type is represented by an object of one of types displayed in Figure 1.

As you can see, every type derives from NReflect.NREntities.NRTypeBase. Since enums can't be a generic, they directly derive this class. Every other type derives from the derived abstract class NReflect.NREntities.NRGenericType which adds information about the generic. Thats enough for a delegate so they derive this class. The next step is the NReflect.NREntities.NRCompositeType. The only type which uses this class to derive from is the interface. All other types derive from NReflect.NREntities.NRSingleInheritanceType. These types can only have one other type to derive from which ars structs and classes.
For more details about the used types, please refer to the reference documentation of the namespace NReflect.NREntities in which you will find all mentioned types.