Función de protocolo que regresa Self

Tengo un protocolo P que devuelve una copia del objeto: protocol P { func copy() -> Self } y una clase C que implementa P: class C : P { func copy() -> Self { return C() } } Sin embargo, si pongo el valor de retorno, Selfobtengo el siguiente error: No se puede convertir la...