Funkcja protokołu zwracająca Self

Mam protokół P, który zwraca kopię obiektu: protocol P { func copy() -> Self } i klasa C, która implementuje P: class C : P { func copy() -> Self { return C() } } Jednak czy umieszczę wartość zwracaną, gdy Selfotrzymam następujący błąd: Nie można przekonwertować wyrażenia...