restructuring of core type checker types