Moved common Type analysis to TypeExtensions