You might want to read this topic: https://forums.swift.org/t/lifting-the-self-or-associated-type-constraint-on-existentials