Structs have better type safety, but they make allocation more difficult, especially when we have multiple Python modules trying to share the same code.
The file `libImaging/Imaging.h` gets installed flat on
Ubuntus into the public Python includes.
When building a newer version of Pillow from source and
hinting the Python includes "too early" in includes, e.g.
in package managers, this can confuse the two files and
pick up the external file over the internal one. With
different versions, this mismatch can lead to build errors,
e.g. undefined macros.
The most robust way to avoid this is to pre-fix the internal
include accordingly, so that the relative path to the including
file has to match as well.