pub fn mix<X: Clone + Copy, Y>(a: Y, b: Y, p: X) -> Ywhere Y: Sub<Y, Output = Y> + Mul<X, Output = Y> + Add<Y, Output = Y> + Clone + Copy,