pub fn general_div<T1, T2, T3>(l: T1, r: T2) -> Result<T3>where T1: Into<T3> + Debug, T2: Into<T3> + Debug, T3: CheckedDiv + Zero,