It's slightly awkward having the 3D and 4D geometry types share the same type as the 2D geometry types; as:
there's no codec-level type safety like there is for other postgres types
you have to add extra assertions or transform the codec type into your own type, something which you don't have to do for other primitive postgres types
It's slightly awkward having the 3D and 4D geometry types share the same type as the 2D geometry types; as: