--- a/src/direct_product.rs Mon Sep 01 23:08:27 2025 -0500 +++ b/src/direct_product.rs Tue Sep 02 00:05:29 2025 -0500 @@ -392,6 +392,8 @@ D: Decomposition<A>, Q: Decomposition<B>, { + type OwnedInstance = Pair<D::OwnedInstance, Q::OwnedInstance>; + type Decomposition<'b> = Pair<D::Decomposition<'b>, Q::Decomposition<'b>> where @@ -441,7 +443,7 @@ } #[inline] - fn cow<'b>(self) -> MyCow<'b, Pair<A, B>> + fn cow<'b>(self) -> MyCow<'b, Pair<D::OwnedInstance, Q::OwnedInstance>> where Self: 'b, { @@ -449,7 +451,7 @@ } #[inline] - fn own(self) -> Pair<A, B> { + fn own(self) -> Pair<D::OwnedInstance, Q::OwnedInstance> { Pair(self.0.own(), self.1.own()) } } @@ -492,7 +494,7 @@ } #[inline] - fn cow<'b>(self) -> MyCow<'b, Pair<A, B>> + fn cow<'b>(self) -> MyCow<'b, Pair<D::OwnedInstance, Q::OwnedInstance>> where Self: 'b, { @@ -500,7 +502,7 @@ } #[inline] - fn own(self) -> Pair<A, B> { + fn own(self) -> Pair<D::OwnedInstance, Q::OwnedInstance> { let Pair(ref u, ref v) = self; Pair(u.own(), v.own()) }