pub trait AngleCast { fn from<N: NumCast + Num, T: Angle<N>>(v: T) -> Option<Self> where Self: Sized; }