geometry :: IPoint :: dist2_with_2d
private fun dist2_with_2d(other: IPoint[Numeric]): Numeric do return dist2_xy(other)
redef fun dist2_with_2d(other) do return dist2_xy(other).add(z.mul(z))