Adding old code that introduces minimal support for projection types