The current default definition seems dangerous to me — it could silently give the nonsensical results. (For `SVector{N,T}` it already gives a somewhat confusing error.) It seems safer to default to throwing a `MethodError`, or maybe `typeof(real(one(T)))`