--- a/src/direct_product.rs Mon May 12 16:28:50 2025 -0500 +++ b/src/direct_product.rs Mon May 12 17:10:39 2025 -0500 @@ -264,10 +264,10 @@ /// We only support 'closed' `Euclidean` `Pair`s, as more general ones cause /// compiler overflows. -impl<A, B, F: Float> Euclidean<F> for Pair<A, B> +impl<A, B, F: Float> Euclidean for Pair<A, B> where - A: Euclidean<F>, - B: Euclidean<F>, + A: Euclidean<Field = F>, + B: Euclidean<Field = F>, //Pair<A, B>: Euclidean<F>, Self: Sized + Mul<F, Output = Pair<A, B>> @@ -284,8 +284,6 @@ + for<'b> SubAssign<&'b Self> + Neg<Output = Pair<A, B>>, { - type Output = Pair<A, B>; - fn dot<I: Instance<Self>>(&self, other: I) -> F { let Pair(u, v) = other.decompose(); self.0.dot(u) + self.1.dot(v)