I\'m modeling a owner/ownee scheme on Swift:
class Owner { // ... } protocol Ownee { var owner: Owner { get } }
The following syntax should support what you're after:
protocol Ownee { associatedtype Owned = Self where Owned:Ownee var owner: Owner { get } }
(tested using Swift 4 - Beta 1)