Conversation

So I tried to rewrite this protocol in Rust: protocol P1 { associatedtype R : P1 associatedtype S : P1 where S.S.S.S == Self, S.S.R.S.S.R == Self, R.S.R.S.R.S == Self }
1
2
Here is what I came up with: trait P1 { type S : P1<S = Self::SS>; type SS : P1<SS = Self, R = Self::SSR>; type SSR : P1<SSR = Self>; type R : P1<S = Self::RS>; type RS : P1<RS = Self::RSRS>; type RSRS : P1<RS = Self>; } Is there a better way?
1
1