The novice reader would associate shape with only two of the DerivedTypes: VectorType and ArrayType. How could a FunctionType or an IntegerType have a shape ?
Also, I didn't understand what was meant by a struct having a shape.
I raised this patch because I had misinterpreted it the first time I read it.
I see. My problem was that "There exists exactly one instance of a given Type at any one time." sounds like a circular statement. How about "Types in LLVM are interned, and this means pointer equality is the same as type equality".