used by Cartesian_converter/Homogeneous_converter, where we absolutely must not throw. TODO : find a way to keep the assertion while having the converters still work. (should types come with their own conversions, like they all have .bbox() ?)