diff -r 2b13f8a0c8ba -r 22fd33834ab7 src/direct_product.rs --- a/src/direct_product.rs Mon May 12 20:40:14 2025 -0500 +++ b/src/direct_product.rs Mon May 12 21:56:42 2025 -0500 @@ -365,15 +365,6 @@ = Pair, Q::Decomposition<'b>> where Pair: 'b; - type Reference<'b> - = Pair, Q::Reference<'b>> - where - Pair: 'b; - - #[inline] - fn lift<'b>(Pair(u, v): Self::Reference<'b>) -> Self::Decomposition<'b> { - Pair(D::lift(u), Q::lift(v)) - } } impl Instance, PairDecomposition> for Pair @@ -399,7 +390,7 @@ fn eval_ref_decompose<'b, R>( &'b self, - f: impl FnOnce(Pair, Q::Reference<'b>>) -> R, + f: impl FnOnce(Pair, Q::Decomposition<'b>>) -> R, ) -> R where Pair: 'b, @@ -442,15 +433,13 @@ Pair: 'b, Self: 'b, { - self.0.eval_ref_decompose(|a| { - self.1 - .eval_ref_decompose(|b| f(Pair(D::lift(a), Q::lift(b)))) - }) + self.0 + .eval_ref_decompose(|a| self.1.eval_ref_decompose(|b| f(Pair(a, b)))) } fn eval_ref_decompose<'b, R>( &'b self, - f: impl FnOnce(Pair, Q::Reference<'b>>) -> R, + f: impl FnOnce(Pair, Q::Decomposition<'b>>) -> R, ) -> R where Pair: 'b,