pub trait Unit: Copy + Clone + From<f64> + PartialEq + PartialOrd + Add<Output = Self> + Sub<Output = Self> + Mul<Output = Self> + Div<Output = Self> + Div<f64, Output = Self> + Float + Display { fn val(self) -> f64; }